Hi,
I am trying to use USB1 on an LPC55S16. I can do this easily by changing the following two defines in the SDK example lpcxpresso55s16_dev_cdc_vcom_bm:
#define USB_DEVICE_CONFIG_LPCIP3511FS (1U)
#define USB_DEVICE_CONFIG_LPCIP3511HS (0U)
to:
#define USB_DEVICE_CONFIG_LPCIP3511FS (0U)
#define USB_DEVICE_CONFIG_LPCIP3511HS (1U)
However, when I look at the linkerscript, I notice that — regardless of the configuration — the USB always uses the same RAM section:
USB_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 0x4000 /* 16 KB (alias RAM2) */
But according to Chapter 45 of the UM11295 user manual, the USB1 peripheral has its own dedicated RAM located at address range 0x40100000 to 0x40103FFF.
So, when using the USB1 peripheral, I would expect it to use this dedicated USB1 RAM region rather than the general SRAM.
I also checked the lpcxpresso55s16_dev_cdc_vcom_bm.map file, and found that nothing is allocated at the 0x40100000 region.
On the other hand, if I modify the linkerscript to place USB_RAM at 0x40100000, the application crashes during usb-initialization with a hardfault exception.
So here are my questions:
Do I need to rewrite parts of the USB stack to make this work?
Are there any examples available that demonstrate how to use this memory with USB1?
Would using this dedicated USB RAM result in better performance compared to regular SRAM?
Thanks in advance for your help!