This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
In my application I am using all 8 UARTs. Which are connected to external 8 devices and these devices sending some characters for up to 12 seconds when they turn on. MSP432E401 will wait for particular character and then turn off and turn on that particular device from that 8 devices. And again wait for that particular character. MSP423E401Y will do 100 times this on/off cycles for 1 device. This same thing it do for all 8 devices.
Now my problem is if I start the application running then all UARTs ISR's are triggered. And MSP432E401Y is missing that particular character for any 2 or 3 UARTs. If I put 2 sec delay in between the on cycle of all 8 devices means 1st turn on then 2nd turn on after 2 sec and 3rd turn on after another 2 sec and so on.. then also some UARTs are missing that character. These all 8 devices sending the characters at 115200 baud, 8-1-N.
Can anybody tell is there any other option to work this out? How can I get every single characters and process them for all UARTs without missing? What happen while one UART IRQ is running and same time other IRQ has the same character arrived and MSP432 need to process at the same time for the particular character?
Thanks,
Kaushik
Hello,
Do you process the characters and 100 times turn on/off in ISR?
This will let CPU blocked in one ISR and miss the other UART characters.
You may use UART receive in DMA mode.
And process the data and 100 times turn/off in main loop.
The UART ISR/DMA is only used for data receive.
Thanks for the reply,
Can you please send guidelines of ISR for UART in DMA mode?
In the example code its very difficult to understand.
Thanks,
Kaushik
Hi Winter Yu,
I have tried to decode the example code for DMA. But I need more clarification related to use of DMA. Because I have to use all UARTs for external communication with 8 individual devices. If you give the basic guidelines or structure for my application for one UART then it would be great. In my application I am getting maximum 85 characters at a time and then new line is the last character after that another characters coming on UART. this will run up to 12 sec. in those received characters I have to find out the required string.
Can you help on this with DMA? with out DMA for 1to 3 UARTs its working fine. but if I connects more then its missing characters. I have also taken out all the process for characters and 100 time on/off to the main loop.
please help in this regard.
k
Please see this code example which demonstrates the use of the uDMA controller to transfer data between memory buffers, and to transfer data to and from a UART.
**Attention** This is a public forum