changing DMA and INT in UART in runtime

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
SaGa_4641021
Level 5
Level 5
50 questions asked 50 replies posted 100 sign-ins

Hi

I am trying to setup the UART such that, I use the RxFIFO INT until I receive a certain code, upon which, I disable the INT using (NVIC_DisableIRQ()) and start the DMA for the same UART.

However, there seems to be an error in the received bytes using the DMA.

Is disabling the INT on UART and setting up the DMA in runtime a good practice or should I avoid it ?

thanks

0 Likes
2 Replies
Hari
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi @SaGa_4641021 

 

Would it be possible to share your project so that we can try it at our end?

It should be possible to use the DMA and UART Interrupt selectively as long as the hardware connections and configurations (for DMA) and the software configurations (such as disabling the interrupts for the UART component) are managed correctly. 

 

Best regards, 
Hari

0 Likes
lock attach
Attachments are accessible only for community members.
SaGa_4641021
Level 5
Level 5
50 questions asked 50 replies posted 100 sign-ins

Hello Hari

Thank you for offering to help. I set up 2 UARTs, one to echo to the PC terminal for user feedback, and the other is to communicate the PSoC with an Arduino (Arduino is a managing a BLE sensor which I can't get the BLE driver to operate with PSoC, so I have to use Arduino).

The UART for the arduino is UART_belt and on startup, it operates with RxFIFO INT: UART_belt_ISR()

It listens to UART until it receives 2 bytes with the start code indicating that the BLE sensor is ready . Then the ISR would deactivate itself and start the DMA for the UART_belt block to handle any further data transfer which will be only streaming data.

thanks

0 Likes