2020-12-01 03:30 AM
2020-12-01 03:37 AM
How is the transfer from board to PC done (e.g. Serial, USB FS, USB HS)? What device?
2020-12-01 03:41 AM
HI, Thanks for the quick reply. It is USB HS. STM32L151VEYx MCU. Device is a datalogger board, designed and fabricated by us.
2020-12-01 03:44 AM
I'd imagine it could be done faster.
Post a bit light on any usable detail to provide a diagnosis.
Why can't you and your team better understand and debug the failure?
Interrupts and callbacks not occurring suggests an error is being flagged or the transfer is not actually happening. Or you're using C++. Do an inspection of the peripheral registers. Do a disassembly of the code, check the vector table and associations with interrupts used and callbacks. That your routines linked in.
2020-12-01 03:50 AM
Depends where the bottleneck is. USB MSC probably looking at 4-5 minutes
2020-12-01 03:57 AM
Hi Clive1,
Thanks. Actually transmission happens without an issue. We are able to copy files from device to PC and vice versa. The problem is the timing. How to improve or reduce cycle time. We are reading 512 bytes per read, so for a 4096 block, we need 8 such reads. Again, this current setup works fine.
2020-12-01 04:04 AM
A USB MSC or something else?
Check MSC_PACKET_SIZE definition, or something similar, don't recall, not at a computer.
2020-12-01 08:34 PM
it is USB MSC only. We declared our own variable for packet size as 512 bytes. HAL_SPI_Receive_DMA(&heval_Spi3, buf, USB_BLK_SIZ); declared USB_BLK_SIZ as 0x200
2020-12-01 09:24 PM
/* MSC Class Config */
#define MSC_MEDIA_PACKET 8192
Allows for more efficient multi-block read requests from host OS
2020-12-01 09:26 PM
Thanks. We will try and update on the results.