DMA to USB IN endpoint? | Cypress Semiconductor
DMA to USB IN endpoint?
Good evening, everyone,
I'm trying to DMA CAN messages directly to a USB IN endpoint, but it does not appear that it is possible to DMA anything *to* USB. It seems that you can only DMA from data received from USB into the PSoC. Is this correct?
I am trying to send any CAN messages that are accepted into one of the mailboxes over to a PC over USB. I can easily do this with the "message received" interrupt on CAN and an interrupt handler running on the ARM but I would like to try to do this using DMA and without CPU intervention. I added a hardware interrupt pin to the CAN component and set up the interrupts so that only "message received" generated an interrupt, then wired this to a DMA component.
The DMA Wizard allows me to configure the DMA component to transfer from SRAM to SRAM, but not from SRAM to a USB IN endpoint. The DMA Wizard will also let me configure the USB DMA component with a source of SRAM, Flash, EEPROM or two very odd options: "USB_EP17_DMA_Done_SR" and "USB_EP8_DMA_Done_SR". The only destination that the USB DMA component can choose is SRAM. I have no way to transfer from SRAM to USB.
What is also odd is that I have only one EP configured, EP1 which is an IN endpoint. I don't know where EP17 and EP8 are coming from.
Can anyone shed some light on this?