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.
Tool/software:
I am currently working with the AM263PX SoC and looking to utilize more than 6 UARTs for my project. If anyone has examples of UART configurations, particularly on the RPU, I'd greatly appreciate the insights.
Edited August 14 2024
Hello Baruch,
I assume instead of RPU, you mean the PRU (Programmable Real-time Unit) or ICSS module of the device?
If so, there are a few open-source software drivers developed on the previous AM335x device which integrates the same PRU-ICSS module. However, we do not support these by default right now in the SDK.
Please refer to the links below for examples.
https://github.com/MarkAYoder/pru-software-support-package/blob/master/pru_cape/pru_fw/PRU_Hardware_UART/PRU_Hardware_UART.c See next response
I am also including a link to the default HW UART example provided in the AM263Px SDK.
One note is that we do have SDK support for the SENT protocol. It is currently available for AM263x and should be ported to AM263Px shortly.
https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/SENT.html
Please let us know if this is enough to help get you started.
Best Regards,
Zackary Fleenor
Adding a couple clarifications to Zack's response:
There are multiple ways to do UART with the PRU.
1) Use another core to control the hardware UART instance in the PRU subsystem. We describe that from the Linux standpoint on
https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pruss-uart.html
though you would be doing it from a different OS on AM263x.
2) Use the PRU to control the hardware UART instance in the PRU subsystem. You can find example projects for how to do that here:
AM335x: https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am335x/PRU_Hardware_UART
AM62x (register definitions are probably closer to AM263x): https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am62x/PRU_Hardware_UART
where the register definitions that I use in those projects are linked in the linker.cmd file, and defined in the include files here:
https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/include/am62x/pru_uart.h
3) use the PRU cores to emulate UART instances (i.e., "software UART" or "SoftUART"). The Linux documentation for that on AM335x is at
https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pru-sw-uart.html
Regards,
Nick