AnsweredAssumed Answered

[BF609] BF60x USB OTG Issue

Question asked by kris.huang@avnet.com on May 14, 2015
Latest reply on Sep 21, 2015 by seaemperor

Sir,

This is Taiwan AVNET FAE Kris Huang.

My customer write USB OTG function by himself. (not buy Micrium uC/Host)

And has one USB issue when continuous read SD card through Card Reader.

Could you provide any suggestion or direction to debug?

Thank you!

 

Environment :

CCES : 1.1.0

Board : ADI ADSP-BF609 EVAL board

HW : BF609 --> USB Card Reader --> SD card

 

Description:

1. Continuous random read SD data, ( different LBA and different data size every time)

    ---> BF609 can't read SD card data after some time. ( this "time" is not fixed, it may be minutes or hours ....)

 

2. Try three different card reader

    a. issue happened most frequently VID=14CD  PID=6700

    b. issue happened 2nd frequently  VID=058F  PID=6366

    c. issue never happened till now     VID=0BDA  PID=0119

 

3. Test flow

    a. Use adi_musbmhdrc_SubmitURB() to read/write data.  (this function is provided by ADI)

    b. After some period/time, adi_musbmhdrc_GetURBState() return ADI_USB_URB_STATE_SUBMITTED

        ---> that makes system can't send new read LBA command.

    c. Using USB analyzer

          -- Check receiver buffer --> get final data but there is no CSW packet(end packet)

          -- USB analyzer --> device has sent CSW packet

          -- Check USB DMA --> DMA Cnt / Ctr value has no change.

          -- Analyze abnormal CSW packet

                  --> In adi_usbdrv_ScheduleDma() function , RXPKTRDY = 0 ( from EPn_RXCSR_H)

                  --> in last normal CSW packet , RXPKTRDY = 1

Outcomes