Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hello,
I am using the TI MSPM0G3507 board. I have configured the UART in normal mode with a baud rate of 9600.
Q1: Does this TI board support TX and RX pin inversion in UART?
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:
Hello,
I am using the TI MSPM0G3507 board. I have configured the UART in normal mode with a baud rate of 9600.
Q1: Does this TI board support TX and RX pin inversion in UART?
No. The question is Separate signal polarity control for transmission and reception is available or not?
Like In STM it is available.
Hello Bhaskar,
I don't remember M0 has this function but I want to know why did you need this function ?
Best Regards,
Janz Bai
I stumbled across this in the TRM:
I'll leave implementing it with the UART to the interested student. 8^)
I suppose you set it using DL_GPIO_initPeripheralInputFunctionFeatures() [third argument=DL_GPIO_INVERSION_ENABLE].
Since it's part of the IOMUX, the UART module presumably doesn't need to know.
Hello Bhaskar,
I am sorry that I have not paid attention to this function before because not many customer use this function. I double check this function in TRM and Sysconfig. You can find this figure in TRM
And you can find the related configuration in Sysconfig.
So I think you can do some tests on this function.
Best Regards,
Janz Bai
Hi, I am using Pa10 as Uart0_Tx and I have configured Tx pin as invert enabled, currently I am sending 0x55 byte over Uart, but the expected output is not inverted logic(i.e 0xAA) still the output was 0x55.
What's at the other end of the wire? I expect INV inverts everything, and I'm not sure what a standard UART will do with inverted start/stop bits.
0x55/0xAA have some symmetries. What does it do e.g. 0x31 (where inversion is distinct from shifting)?
[Disclaimer: I haven't tried this feature, but they seem to have gone to some trouble to document it, so I'm guessing it works somehow.]
I imported a copy of uart_external_loopback_interrupt and changed "Inverted" to "enabled". ti_msp_dl_config.c (SYSCFG_DO_GPIO_init) does indeed change to:
DL_GPIO_initPeripheralOutputFunctionFeatures( GPIO_UART_0_IOMUX_TX, GPIO_UART_0_IOMUX_TX_FUNC, DL_GPIO_INVERSION_ENABLE, DL_GPIO_RESISTOR_NONE, DL_GPIO_DRIVE_STRENGTH_LOW, DL_GPIO_HIZ_DISABLE);
I don't have my equipment here so I can't try it myself.
Did it change the idle state? I believe the standard idle state is high, inversion should make it low.
"Hi, I am using Pa10 as Uart0_Tx and I have configured Tx pin as invert enabled, currently I am sending 0x55 byte over Uart, but the expected output is not inverted logic(i.e 0xAA) still the output was 0x55."
As I show, *everything* is inverted. If you change just the data without changing what the receiver expects, the startbits are all messed up, you are *not* just inverting the data.
Hello Bhaskar,
Keith is right, everything is inverted. You can't see this function as just invert the data which you want to transmit. You can also configurate "inversion" on the receiver device and catch the transmission data using oscilloscope and check whether the transmission is correct.
Best Regards,
Janz Bai