Mar 29, 2010

My Daddy Kenji named me 'Hana Gontakureno Dorosky'.
(  Hana means a flower in Japanese,
  Gontakureno means a hoodlum,
  Dorosky means being crazy about mud. )
When I find muddy water,
I lose my sane, and mad on mud, then  I'm muddy all over.
After come to myself, I feel sorry and return to Daddy.
Daddy wash me, with mumbling.
He He He,

読み込み中
クリックでキャンセルします
画像が存在しません

Mar 26, 2010

Hana


My name is Hana, I'm 8 years old.
I introduce my family.
















This is my daddy, my neighbor.
He is almost 13 years old, but he is in good health.
















My mother and me, when I'm a baby.
She passed away 5 years ago, I miss her.

Mar 11, 2010

It snowed the day before yesterday, in Hiroshima.

Walking around with my dogs,
Hana was very pleased that snow lay.

My Dogs

They are my dogs.
From this side
Hana ( Full name is Hana Gontakureno Dorosky,
  Hana means a flower in Japanese, 
  Gontakureno means a hoodlum, 
  Dorosky means being crazy about mad. )
Mery ( Full name is Mery Antoinette Jiji )
Lapi ( Full name is Lapis Raspberry )

Mar 4, 2010

STM32_USB_FS_Device_Lib_V3.1.0

CANとUSBを同時に使うためSTM32F10XCLに飛びついたが、STM32_USB-FS-Device_Lib_V3.1.0 で挫折中。
stMicroのライブラリは使って細かいバグはあっても基本的には良くできていたので全面的に信頼していたんだが、
これはハードのことに詳しくない癖にビットフィールドを使って妙に格好付けるような人間が書いたんじゃないかとだんだん腹が立ってきた。
今日stMicroのコミュニティを見たら4月の予定でBugfixしたライブラリを出しますとのアナウンスがあった。
とりあえずは半二重で試作品も使えるようになったので4月まで辛抱強く待つことにする。

STM32_USB-FS-Device_Lib_V3.1.0

STM32_USB-FS-Device_Lib_V3.1.0
ライブラリを使ってEPINとEPOUTの割込が重なるとエラーが発生し通信が出来なくなるので、
RAMにトレース用リングバッファを設けて割込の状態を記録してみた。
怪しい部分を見つけたので誰かの参考になればと思って晒しておく。

debugline=39
time(us) +++++++++++++++++++++++++++
52402 @Exit_FS_IRQ main=130 intr=102 itlevel=0 sp=2000FF04
52506  EPStartXFer ep=200067CC xfer_len=4 maxpacket=64 ep->isin=1
52590 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF48
52665 ** IN Endpoint interrupt
52697 +++ Handle_InEP_ISR ep_intr=00000002
52743 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090 <- ep empty割込
52818 +++++ WriteEmptyTxFifo epnum=1,xfer_len=4,xfer_count=0      <- 多分これは正常
52884 ****** Call OTGD_FS_WritePacket epnum=1,len=4
52939 ----- WriteEmptyTxFifo epnum=1,xfer_len=4,xfer_count=4
53004 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2091
53075 --- Handle_InEP_ISR ep_intr=00000000
53119 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF48
53193 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF48
53269 ** IN Endpoint interrupt
53300 +++ Handle_InEP_ISR ep_intr=00000002
53345  **** xfer complete.. main=131 intr=102 itlevel=1 sp=2000FE78 <- 正常な時はxfer complete割込が発生
53426 --- Handle_InEP_ISR ep_intr=00000000
53469 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF48
53544 @Enter_TIM4_IRQ main=131 intr=102 itlevel=1 sp=2000FF48
53634 @Exit_TIM4_IRQ main=131 intr=102 itlevel=0 sp=2000FF48
53781  EPStartXFer ep=200067CC xfer_len=10 maxpacket=64 ep->isin=1
53866 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
53941 ** IN Endpoint interrupt
53973 +++ Handle_InEP_ISR ep_intr=00000002
54019 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090 <- ep empty割込発生
54094 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=0
54161 ****** Call OTGD_FS_WritePacket epnum=1,len=10
54218 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
54284 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
54356 --- Handle_InEP_ISR ep_intr=00000000
54399 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
54474 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
 ** Receive FIFO Queue Status Level interrupt
54588 ** IN Endpoint interrupt
54619 +++ Handle_InEP_ISR ep_intr=00000002
54665 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090 <- ep empty割込発生?
54741 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
54808 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
54874 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
54945 --- Handle_InEP_ISR ep_intr=00000000
54989 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
55063 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
 ** Receive FIFO Queue Status Level interrupt
55176 ** IN Endpoint interrupt
55207 +++ Handle_InEP_ISR ep_intr=00000002
55253 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090 <- ep empty割込発生??
55329 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
55396 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
55462 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
55533 --- Handle_InEP_ISR ep_intr=00000000
55577 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
55651 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
55727 ** OUT Endpoint interrupt                                                       <- OUTEP割込
55760 +++ Handle_OutEP_ISR ep_intr=00000004
55805 **** out xfercompl ep_intr=00000001
55847   Enter_ProcEP2OUT main=131 intr=102 itlevel=1 sp=2000FE98
55924  EPStartXFer ep=2000686C xfer_len=1 maxpacket=64 ep->isin=0
56006 --- Handle_OutEP_ISR ep_intr=00000000
56049 ** IN Endpoint interrupt                                                          <- INEP割込、この辺りで通信ストップ
56081 +++ Handle_InEP_ISR ep_intr=00000002
56127 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
56203 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
56270 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
56337 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
56409 --- Handle_InEP_ISR ep_intr=00000000
 ** Incomplete Isochrous OUT transfer error interrupt     <- チェックのためエラー割込みENABLEにしている、これも怪しい
56493 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
56568 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
56643 ** IN Endpoint interrupt
56675 +++ Handle_InEP_ISR ep_intr=00000002
56722 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090 <- 以降延々と ep empty割込が続きメインループ処理ストップ
56798 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
56865 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
56931 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
57003 --- Handle_InEP_ISR ep_intr=00000000
57047 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
57122 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
57197 ** IN Endpoint interrupt
57229 +++ Handle_InEP_ISR ep_intr=00000002
57276 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
57352 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
57419 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
57485 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
57557 --- Handle_InEP_ISR ep_intr=00000000
57601 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
57676 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
57751 ** IN Endpoint interrupt
57783 +++ Handle_InEP_ISR ep_intr=00000002
57830 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
57906 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
57973 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
58039 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
58111 --- Handle_InEP_ISR ep_intr=00000000
58155 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
58230 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
58305 ** IN Endpoint interrupt
58337 +++ Handle_InEP_ISR ep_intr=00000002
58384 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
58460 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
58527 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
58593 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
58665 --- Handle_InEP_ISR ep_intr=00000000
58709 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
58784 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
58860 ** IN Endpoint interrupt
58891 +++ Handle_InEP_ISR ep_intr=00000002
58938 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
59014 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
59081 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
59147 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
59219 --- Handle_InEP_ISR ep_intr=00000000
59263 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
59338 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
59414 ** IN Endpoint interrupt
59445 +++ Handle_InEP_ISR ep_intr=00000002
59492 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
59568 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
59635 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
59701 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
59773 --- Handle_InEP_ISR ep_intr=00000000
59817 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
59892 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
59968 ** IN Endpoint interrupt
59999 +++ Handle_InEP_ISR ep_intr=00000002
60046 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
60122 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
60189 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
60256 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
60327 --- Handle_InEP_ISR ep_intr=00000000
60371 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
60446 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
60522 ** IN Endpoint interrupt
60554 +++ Handle_InEP_ISR ep_intr=00000002
60600 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
60676 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
60743 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
60810 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
60882 --- Handle_InEP_ISR ep_intr=00000000
60926 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
61001 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
61076 ** IN Endpoint interrupt
61108 +++ Handle_InEP_ISR ep_intr=00000002
61154 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
61230 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
61297 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
61363 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
61435 --- Handle_InEP_ISR ep_intr=00000000
61479 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
61554 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
61630 ** IN Endpoint interrupt
61662 +++ Handle_InEP_ISR ep_intr=00000002
61708 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
61784 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
61851 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
61918 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
61990 --- Handle_InEP_ISR ep_intr=00000000
62034 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
62109 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
62184 ** IN Endpoint interrupt
62216 +++ Handle_InEP_ISR ep_intr=00000002
62262 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
62338 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
62405 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
62472 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
62544 --- Handle_InEP_ISR ep_intr=00000000
62588 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
62663 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
62738 ** IN Endpoint interrupt
62770 +++ Handle_InEP_ISR ep_intr=00000002
62816 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
62892 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
62959 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
63026 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
63098 --- Handle_InEP_ISR ep_intr=00000000
63142 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
63217 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
63292 ** IN Endpoint interrupt
63324 +++ Handle_InEP_ISR ep_intr=00000002
63370 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
63446 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
63513 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
63580 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
63652 --- Handle_InEP_ISR ep_intr=00000000
63696 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
63771 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
63846 ** IN Endpoint interrupt
63878 +++ Handle_InEP_ISR ep_intr=00000002
63925 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
64001 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
64068 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
64134 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
64206 --- Handle_InEP_ISR ep_intr=00000000
64250 @Exit_FS_IRQ main=131 intr=102 itlevel=0 sp=2000FF40
64325 @Enter_FS_IRQ main=131 intr=102 itlevel=1 sp=2000FF40
64400 ** IN Endpoint interrupt
64432 +++ Handle_InEP_ISR ep_intr=00000002
64479 ++++ in ep empty..  epnum=1 EPTxStatus=00000030 diepint=2090
64554 +++++ WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
64621 ----- WriteEmptyTxFifo epnum=1,xfer_len=10,xfer_count=10
64688 ---- in ep empty..  epnum=1 EPTxStatus=00000030 ep_int=2090
------------------------------------


Mar 3, 2010

USB

STM32F105RCTへのUSBドライバポーティングで壁にぶちあたって一週間が経つ。
コミュニティの反応などを見るとどうもUSB_OTG_FS用ライブラリ3.1.0のバグではないかと思われるのだが、stMicroの技術サポートは英語対応のみなのでレポートを英語で書いてみた。

USB

Bugs in USB OTG library?

I am testing for the motor drive board using STM32F105RCT using USB, the following problems have occurred.

(Test situation)
  Via EP1IN, the data  is continuously sent from a board to PC.
 And via EP2OUT, it sent a character at a time to a board from PC , the next error will sometimes occur.

(State of an error)
The EP1IN packet exceeding 64 bytes occurs, and it becomes impossible to send data to PC from a board after it.
An EP2OUT packet is then sent to a board normally from PC.
At STM32F, it is "usb_istr.c. : Since  IN Endpoint interrupt(diepint.b.emptyintr == TRUE)" has occurred continuously,
 it is in the state where a main loop cannot be performed.

Although USB communication was completed very simply using the stMicro offer library in STM32F103 series,
 is there still any bug in the library for USB_OTG_FS?

(Test environment)
 CPU              : STM32F105RCT6
 Compiler        : GCC4.4.2USB
 USB library     : stMicro   STM32_USB-FS-Device_Lib_V3.1.0  included in um0424
 Test Program :   Changed a part of Virtual_COM_Port according to the board.


Application: Maxon ECFlat45 Motor Drive Board





USB packet log by USB-Streamscope




Changed part : um0424\STM32_USB-FS-Device_Lib_V3.1.0\Project\Virtual_COM_Port\src\main.c

int main(void)
{
  char s[]="*********************************\r\n";
  int len,i,n,lp;
  volatile int j,k;
 
  Set_System();
  Set_USBClock();
  USB_Interrupts_Config();
  SCI5_Config(115200);
  USB_Init();
  while (bDeviceState != CONFIGURED) ;

  len = strlen(s);
  lp = 0;
  for(j=0;;j++)
  {
//    sioputs("test\r\n");
      /* Write the data to the USB endpoint */
    //n = VIRTUAL_COM_PORT_DATA_SIZE-count_in;
    if( 10 < j ){
      //sioputs("len=");
      //sioputint(len);
      //sioputs("\r\n");
      j=0;
      __disable_irq();
      if( count_in == 0  )
      {
          for(i=0; i<len; i++){
            buffer_in[i] = s[i];
        }
        count_in = len;
          USB_SIL_Write(EP1_IN, buffer_in, count_in);
          //count_in += n;
      }
      __enable_irq();
      //sioputs("end usb_sil_write\r\n");
    }
    if ((count_out != 0) && (bDeviceState == CONFIGURED))
    {
      //USB_To_USART_Send_Data(&buffer_out[0], count_out);
      sioconout(buffer_out[0]);
      count_out = 0;
    }
  }
}