iMX287 Application UART - No data over wire

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

iMX287 Application UART - No data over wire

2,133 Views
kirannevaskar
Contributor II

I am using application uart of iMX287. I am using AUART2 on the same.

Initially to test AUART I did echo "Hello World" /dev/ttySP2.

This ended with some error/warning "Usage: mxmxs-auart mxs-auart.2: Unhandled status 52028d".

On forum I came to know about this could be some parity or framing error. I am not sure how simple echo can lead to such kind of errors.

Then I tested one of my working program (tested one on iMX233) with the iMX287 board that also lead to same error/warning. In that code I have used no parity.

Later I enable DMA for this AUART and compiled linux kernel (2.6.35.3) and tested the code. After enabling DMA I haven't seen any "Usage: mxmxs-auart mxs-auart.2: Unhandled status 52028d".

But I am not able to see any data over wire. I tested minicom with and without DMA. With minicom I was not able to see any data over TX/RX lines.

Unfortunately "cat /proc/tty/driver/auart" show TX/RX count to be zero. Someone on forum has mentioned that those counters are disable for security reasons.

Has anyone faced such kind of issue?

Labels (2)
0 Kudos
Reply
5 Replies

1,510 Views
jimmychan
NXP TechSupport
NXP TechSupport

Is the pin mux setting correct?

have you enable the AUART function in kernel configuration?

1,510 Views
kirannevaskar
Contributor II

I had enabled AUART support in kernel. I was suspecting MUX issue but not sure how I can resolve it.

But eventually I found the issue in original mx28evk_pins.c. I have highlighted.

{

.name = "usb0",

.id = PINID_AUART2_TX,

.fun = PIN_GPIO,

}

{

.name = "usb1",

.id = PINID_AUART2_RX,

.fun = PIN_GPIO,

}

I replaced with below mentioned changes and it worked.

#ifdef CONFIG_MXS_AUART2_DEVICE_ENABLE

{

.name = "AUART2.TX",

.id = PINID_AUART2_TX,

.fun = PIN_FUN1,

}

{

.name = "AUART2.RX",

.id = PINID_AUART2_RX,

.fun = PIN_FUN1,

}

#endif

Also I found that AUART2 configuration code is not under CONFIG_MXC_AUART_DEVICE_ENABLE compilation flag.

Simarly AUART1 will not work as RX/TX pins are shared with LED PWM0/1 and proper compilation flags are not used.

I have shared reference if anyone wants to use AUART1 instead of LED PWM0/1. One can make it better by adding "#error" messages if both features enabled.

#ifndef CONFIG_MXS_AUART1_DEVICE_ENABLE  // LED PWM0 & 1 are muxed with AUART1

#if defined(CONFIG_LEDS_MXS) || defined(CONFIG_LEDS_MXS_MODULE)

    {

     .name = "LEDS_PWM0",

     .id = PINID_AUART1_RX,

     .fun           = PIN_FUN3,

     .strength      = PAD_8MA,

     .voltage       = PAD_3_3V,

     .pullup        = 1,

     .drive         = 1,

     .pull          = 1,

     },

    {

     .name = "LEDS_PWM1",

     .id = PINID_AUART1_TX,

     .fun           = PIN_FUN3,

     .strength      = PAD_8MA,

     .voltage       = PAD_3_3V,

     .pullup        = 1,

     .drive         = 1,

     .pull          = 1,

     },

#endif

#else // if AUART1 is defined then enable UART

    {

     .name = "AUART1.TX",

     .id = PINID_AUART1_RX, /* Power enable pin*/

     .fun = PIN_FUN1,

     },

     {

     .name  = "AUART1.RX",

     .id    = PINID_AUART1_TX,

     .fun   = PIN_FUN1,

     },

#endif

Thanks.

Kiran Nevaskar

1,510 Views
jimmychan
NXP TechSupport
NXP TechSupport

Yes, the mx28evk_pins.c setting is for i.MX28EVK only.

If the pins used on your board (e.g. AUART) are different, please modify the mx28evk_pins.c to fit your board.

0 Kudos
Reply

1,510 Views
saurabh206
Senior Contributor III

Hi,

Send your post to imx community (e.g. i.MX Community ) to get it visible for active members.

Saurabh

0 Kudos
Reply

1,510 Views
kirannevaskar
Contributor II

Hi

Thanks for your inputs.

With Regards,

Kiran Nevaskar

0 Kudos
Reply