i.MX RT1060 UART FIFO does not work I want to send 120 bytes via UART1 with an i.MX RT1060 (MIMXRT1061CVJ5B) using the FIFO. I've set the TX FIFO to 256 bytes, but it's not working. Is this a processor bug? Re: i.MX RT1060 UART FIFO does not work Hello, As I said, I can't do anything with these bloated examples, because I need complete control over the module, and many important functions aren't included in the API. But I was able to solve it after all: an important control bit "DREQ" wasn't set: Now it's running like crazy 😉 It's a great machine, but the API is completely inadequate... Thanks for your effort. Regards, Mark Re: i.MX RT1060 UART FIFO does not work Hi @Mark16 ,
Thanks for your reply.
The SDK demo provides API functions that you can call directly, which is more convenient and quicker than you set set the registers.
I did a test for you, I think you can refer to it. I have send detail information to you Email(
Due to NXP the latest policy, I can not send your code directly, but I can send you picture).
Wish it helps you. If you still have question about it, please kindly let me know.
Wish you a nice day!
Best Regards MayLiu
Re: i.MX RT1060 UART FIFO does not work Hello, I'm not confused. I just want to send 120 bytes over UART1 every 100ms, with minimal overhead, i.e., without interrupts, etc. With a 256-byte FIFO, this would be super easy. With a 4-byte FIFO, it won't work without interrupts or polling. I've been trying to solve it with the famous eDMA for 5 days now, but I've completely failed. I've read the relevant chapters in the manual several times, but a lot remains unclear. The example programs in the SDK and the drivers in "fsl_lpuart_edma," "fsl_edma," etc., are incredibly bloated, deeply nested, and can only be used in a specific way. They're useless for simple, straightforward applications. I have 25 years of professional experience as an embedded programmer, with a wide variety of processors, but I've never experienced anything like this. Please explain to me how to set the registers for UART1 and eDMA to easily send 120 bytes over UART1. Please use "bare metal" style, e.g.: LPUART1->CTRL = ? etc... DMA0->SERQ = ? etc... DMA0->TCD[0].SADDR = ? etc... Re: i.MX RT1060 UART FIFO does not work Hi @Mark16 ,
Thanks for your reply.
The LPUART FIFO size of the RT1060 processor is also 16 bytes. Could you share with me the application requirements for a larger FIFO size? and could you tell me your point of confusion? I can forward your requirements to the NXP internal team.
You mentioned that "using LPUART + DMA " is also an effective transmission method. The NXP SDK demos have a lot of examples for you to use.
Best Regards
MayLiu Re: i.MX RT1060 UART FIFO does not work That's a bit disappointing. Now they've built this mega-machine, with amazing features, and then they're skimping on the UART FIFO. Why is that? Even my old LPC2478 had a larger UART FIFO of 16 bytes. I want my money back 😉 Then I guess I'll have to pump the data via eDMA... Re: i.MX RT1060 UART FIFO does not work Hi @Mark16 ,
Thanks for your updated information.
LPUART TXFIFOSIZE/RXFIFOSIZE size is fixed, you can not modify it.
The value in RXWATER and TXWATER must be set to be less than the receive FIFO/buffer and transmit buffer/FIFO size, it means the value in RXWATER and TXWATER must be set to be less than 4 datawords.
Best Regards MayLiu Re: i.MX RT1060 UART FIFO does not work Where can i set the value? In the Config Tool? Re: i.MX RT1060 UART FIFO does not work Where can i set the value? In the Config Tool? Re: i.MX RT1060 UART FIFO does not work Hi @Mark16 ,
Thank you so much for your interest in our products and for using our community.
Question: I want to send 120 bytes via UART1 with an i.MX RT1060 (MIMXRT1061CVJ5B) using the FIFO. I've set the TX FIFO to 256 bytes, but it's not working. Is this a processor bug?
Answer:
This is not a processor bug.
In IMXRT1060RM, The maximum number of transmit/receive datawords that can be stored in the TXFIFOSIZE/RXFIFOSIZE.
https://www.nxp.com/webapp/Download?colCode=IMXRT1060RM&location=null
I run a SDK demo on MIMXRT1060-EVK board for you to better understand.
The LPUART RXFIFOSIZE / TXFIFOSIZE value are 4 datawords. The value in RXWATER and TXWATER must be set to be less than the receive FIFO/buffer and transmit buffer/FIFO size
The value you set the TX FIFO to 256 bytes are not correct value, Please set the value based on the MIMXRT1060RM.
Wish it helps you. If you still have question about it, please kindly let me know.
Wish you a nice day!
Best Regards MayLiu
記事全体を表示