2024-09-23 02:51 PM
Hi all,
I'm working a project that utilizes the STM32H747, and specifically uses the ULPI outputs for USB 2.0 HS (using STM32 USB OTG DEVICE LIBRARY, our chip is USB3320--Same as Eval Board) communication. USB is having trouble outputting the data and specifically has an interrupt series that consumes 2ms to transfer from our buffer. This is interfering with another operation (in this case the initiation of a DMA mem2mem transaction). The buffer is 32kB in size. Setting the DMA transaction as a higher priority interrupt crashes the USB transaction intermittently.
Below is a scope capture with USB as the highest priority interrupt.
The blue waveform represents our USB interrupt routine, which we tied to a GPIO to track. Yellow is DMA completion for our memory copying operation. Note the heavy periods where little to no memory copy operations occur and how they overlap with the USB interrupt. The totality of the interrupts consume 2ms per submission.
Has anyone ever encountered this? Is there a way to reduce the impact of USB's interrupts without compromising on the data size? Thanks in advance, and apologies in advance if any of this isn't clear. I'm more than happy to provide additional details if needed.
2024-09-24 09:18 AM
Could you share your firmware implementation to reproduce on my end?
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.