Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi TI Team,
Do we have any updates on the thread below? Shaunak Deshpande mentioned he would look into it and resolve the issue by mid-July.
Thanks,
Rahul
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 Rahul,
There was some change in our release commitments so the dates got changes internally along with the priority for bug fixes. I'm still working with the SDK team to get a fix for this.
Shaunak
Hi Rahul,
Please find attached the fix for the DMA LLD UART issue. Please replace these 3 files at the mentioned original locations in the SDK
File-1: uart_v0_lld.c
Path: mcu_plus_sdk_am263x_10_02_00_13\source\drivers\uart\v0\lld
File-2: uart_open_close_config_v2_lld.c.xdt
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/2664.uart_5F00_open_5F00_close_5F00_config_5F00_v2_5F00_lld.c.xdt
Path: mcu_plus_sdk_am263x_10_02_00_13\source\sysconfig\drivers\.meta\uart\templates
File-3: uart_config_v2_lld.c.xdt
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/uart_5F00_config_5F00_v2_5F00_lld.c.xdt
Path: mcu_plus_sdk_am263x_10_02_00_13\source\sysconfig\drivers\.meta\uart\templates
After this, re-check the application configuration from syscfg and test.
Regards,
Shaunak
Hi Shaunak,
I believe it is working, but I will test it thoroughly and update you if I encounter any issues.
The only change I made in your files was to update the arguments in the read and write callback functions:
void `config.readCallbackFxn`(struct UARTLLD_Object_s *args)
TO
void `config.readCallbackFxn`(void *args)
void `config.writeCallbackFxn`(struct UARTLLD_Object_s *args)
TO
void `config.writeCallbackFxn`(void *args)
Thanks,
Rahul
Hi Shaunak,
I noticed that during the transfer, some bytes are getting missed, and it’s happening quite frequently. Please check the output below:
Available commands:
help: Show available commands
echo: Echo the arguments
led: Change LED state
uart: Send data on UART
> help
Available commands:
help: Show available commands
echo: Echo the arguments
d: Change LED state ------> 'le' missed
uart: Send data on UART
> help
As you can see in the above log, in the led: command, the characters "le" are missing.
Thanks,
Rahul
In SysConfig, the Transmit buffer size is limited to 56 bytes, and I am unable to set it higher. When I use the UART_lld_writeDma API to send more than 56 characters (for example, 100), the interrupt triggers twice instead of just once—ideally, one interrupt should occur only after all 100 bytes are transferred.
This behaviour prevents me from fully utilising DMA to efficiently transfer large amounts of data in a single operation.
Hi Rahul,
In SysConfig, the Transmit buffer size is limited to 56 bytes, and I am unable to set it higher.
The UART IP does not support a interrupt trigger for 100B. There is no option to configure the UART IP to trigger an interrupt on reaching a FIFO level of 100B on both Rx and Tx paths.
But this trigger level is not the buffer size, this indicates the number of bytes needed in UART FIFO to trigger interrupt. You can customize the buffer size in your application as it is not created/configured in the syscfg.
Also a note,
As the above provided patches are temporary and there will be even more bug-fixes in the official v11.0 SDK release, there is another change that will be added based on the UART IP Errata i2310. In DMA mode, the trigger levels that you will be allowed to set will be powers of 2 only. i.e., Trigger level of 1, 2, 4, 8, 16, 32. This is due to the errata i2310, which you can find more details about here:

I'd recommend designing your application accordingly so you don't have issues incase you migrate to v11.0 in future
Regards,
Shaunak