i.MX6Solo:UART DMA transfer problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6Solo:UART DMA transfer problem

Jump to solution
677 Views
koichisakagami
Contributor II

Dear community,

We have been developing our product with iMX6Solo.

[Background]
When we use the UART DMA transfer with "RXTL=8 CTSTL=8", it works fine.
However, when we use the UART DMA transfer with "RXTL=16 CTSTL=16",unnecessary data are included in RX data.


The unnecessary data are not included in the real waveform.
The appearance frequency of unnecessary data is high-frequency.
The unnecessary data appear 8 byte order.

[Question]
We changed only " RXTL and CTSTL field".

Why are the unnecessary data included in RX data ?
Do we have to set any register other than RXTL and CTSTL  in order to work uart module correctly ?

We attached log file. (Red character is unnecessary data.)
Could you check it and advise us  ?

[   52.059266] [bt] open ttymxc1

[   52.059284] [bt] UCR1 = 0x00000021

[   52.059294] [bt] UCR2 = 0x00000007

[   52.059303] [bt] UCR3 = 0x00000784

[   52.059311] [bt] UCR4 = 0x00004000

[   52.059358] [bt] set ttymxc1 speed: 9600

[   52.059368] [bt] UCR1 = 0x00000d2d

[   52.059376] [bt] UCR2 = 0x00004027

[   52.059383] [bt] UCR3 = 0x00000784

[   52.059391] [bt] UCR4 = 0x00004040

[   52.059628] [bt] set ttymxc1 speed: 9600

[   52.059641] [bt] UCR1 = 0x00000d2d

[   52.059650] [bt] UCR2 = 0x00002027

[   52.059658] [bt] UCR3 = 0x00000784

[   52.059665] [bt] UCR4 = 0x00004040

[   52.059721] [bt] set ttymxc1 speed: 115200

[   52.059731] [bt] UCR1 = 0x00000d2d

[   52.059739] [bt] UCR2 = 0x00002027

[   52.059746] [bt] UCR3 = 0x00000784

[   52.059754] [bt] UCR4 = 0x00004040

[   52.237021] [bt] USR1 = 0x00006040

[   52.237031] [bt] USR2 = 0x00004008

[   52.237043] [bt] rx: 04 0E 04 04 03 0C 00

[   52.237049] [bt] USR1 = 0x00006040

[   52.237053] [bt] USR2 = 0x00004008

[   52.268972] [bt] rx: 04 0E 0B 04 05 10 00 FD 00 00 00 00 00 00 00 00 03 FE 04 00

[   52.268980] [bt] rx: 03 00

[   52.268988] [bt] USR1 = 0x00006040

[   52.268992] [bt] USR2 = 0x00004008

[   52.309350] [bt] rx: 04 0E 04 04 33 0C 01

[   52.309370] [bt] USR1 = 0x00006040

[   52.309379] [bt] USR2 = 0x00004008

[   52.338923] [bt] rx: 04 0E 0C 04 03 10 00 FF 03 03 03 03 03 03 03 03 FB AD FE DB

[   52.338933] [bt] rx: FF 7B 87

[   52.338942] [bt] USR1 = 0x00006040

[   52.338946] [bt] USR2 = 0x00004008

[   52.368318] [bt] rx: 04 0E 0E 04 04 10 00 01 03 03 03 03 03 03 03 03 01 00 00 00

[   52.368328] [bt] rx: 00 00 00 00 01 01 01 01 01 01 01 01 00

[   52.368336] [bt] USR1 = 0x00006040

[   52.368340] [bt] USR2 = 0x00004008

Best Regards,
Koichi Sakagami

Labels (1)
0 Kudos
1 Solution
552 Views
igorpadykov
NXP Employee
NXP Employee

Hi Koichi

In general this may be caused by fact that sdma script watermark level

also should be changed when RXTL changed. Please note that

FSL provides BSPs with thoroughly tested sdma scripts and

drivers which use these scripts.  Sorry, FSL does not support

modifications and customizations sdma scripts and drivers using them.

If you have special reasons for that please elevate this through local marketing.

Best regards

igor

View solution in original post

0 Kudos
2 Replies
553 Views
igorpadykov
NXP Employee
NXP Employee

Hi Koichi

In general this may be caused by fact that sdma script watermark level

also should be changed when RXTL changed. Please note that

FSL provides BSPs with thoroughly tested sdma scripts and

drivers which use these scripts.  Sorry, FSL does not support

modifications and customizations sdma scripts and drivers using them.

If you have special reasons for that please elevate this through local marketing.

Best regards

igor

0 Kudos
552 Views
koichisakagami
Contributor II

Dear Igor san,

Thank you for your advice.

We will check them.

Best regards

Sakagami

0 Kudos