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?
CCES : 1.1.0
Board : ADI ADSP-BF609 EVAL board
HW : BF609 --> USB Card Reader --> SD card
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