1 of 1 people found this helpful
Please check the PSoC 6 Dual-Core MCU Architecture given at this link:
USB comes under Cortex-M4 (Main) core resources.
You can run the USBFS in CM0+.
The problem is probably related to the way you init the interrupts.
Are you using PSoC Creator? If yes, make sure you select the CM0+ in the Interrupt tabs under the Design Resources file.
If you have correctly setup, can you share the project?
Yes I'm using PSoC Creator, my initial post was partially incorrect as I was basing it on another engineers testing. I've loaded the code myself and it does seem to run but we're getting an error in the Device Manager when we connect the device to our Window machine: "Device Descriptor Request Failed". I'm using example CE223368 and it runs fine on the M4 (just running the project unchanged) but when I try to get it to run on the M0 I get the above error and no COM Port. The only changes I made were:
1) Moving the "main_cm4.c" code over to the"main_cm0p.c"
2) Enabling the USB interrupts on the M0+ (via Design Wide Resources > Interrupts)
3) Changing the interrupt priority to match the 3 levels available on the M0+ (vs the 7 available on the M4)
If I debug the code it looks like we're just not getting any interrupts on the M0+ and it sits waiting in the following line of code: Cy_USB_Dev_Connect(true, CY_USB_DEV_WAIT_FOREVER, &USBUART_devContext);
The project is attached
CE223368_USB_CDC_M0.cydsn.zip 220.7 K
So the problem is related to the way you initialized the interrupts. In CM0+, there is an extra variable in the structure.
Since you are using PSoC Creator, you can refer to config structure create in Generated_Source>PSoC6>cy_fitter_sysint_cfg.c.
Use these config structures with Cy_SysInt_Init().
Great that seems to have resolved it, I'm having a separate driver issue now, but at least it's showing up as a recognised USB device! Thanks