Hello, guys.
We need USB CDC ACM and UART driver with DMA to run in parallel as two different nodes in the device tree.
For that purpose, here is what we have in the prj.conf file:
CONFIG_USB_DEVICE_STACK=y #set to y if using usb CONFIG_USB_DEVICE_PRODUCT="BT40" CONFIG_SERIAL=y CONFIG_CONSOLE=n CONFIG_UART_LINE_CTRL=y CONFIG_UART_ASYNC_API=y
and the .overlay file
&uart2 { status = "okay"; current-speed = <115200>; tx-pin = <47>; rx-pin = <45>; rts-pin = <0xFFFFFFFF>; cts-pin = <0xFFFFFFFF>; }; &uart3 { status = "okay"; compatible = "nordic,nrf-uarte"; current-speed = <115200>; tx-pin = <31>; rx-pin = <36>; rts-pin = <0xFFFFFFFF>; cts-pin = <0xFFFFFFFF>; }; &zephyr_udc0 { cdc_acm_uart2 { compatible = "zephyr,cdc-acm-uart"; label = "CDC_ACM_0"; }; };
UART2 is used for USB CDC ACM driver whereas UART3 is used as a simple UART port with DMA
It seems there is some kind of conflict between USB CDC ACM and UART3. I can't neither set the callback for UART2 with
nor I can send/receive data over UART3. I always get 134 (ENOTSUP) error.
Only when I don't use the USB CDC ACM and remove the following line from the prj.conf file:
CONFIG_USB_DEVICE_STACK=y #set to y if using usb
I'm able to properly use UART3 as UART device with DMA.
Do you have any idea how can I make those two (USB CDC ACM on UART2 and UART3 with DMA) to work in parallel?
Thank you very much for your time and efforts. It is really appreciated.
Sincerely,
Bojan.