Go Down

Topic: Increasing arduino UART voltage level (Read 620 times) previous topic - next topic

i3dm

Hello guys,
i was wondering if there is a way to increase arduino UART level voltage from 5V to 10V for a deice (turbine ECU) that uses 10V UART logic.

i know i can use a level shifter but trying to avoid it if possible.
i thought about a pull up resistor on the TX line - is that possible or will that kill the UART channel?
any other options? once again hopefully without external hardware.
thanks.

WattsThat

No, this cannot and will not happen without more hardware. Even a pull-up resistor (which will not work) is an external device.

What is the required speed?
Vacuum tube guy in a solid state world

Paul__B

once again hopefully without external hardware.
Really?

One or two transistors.

wvmarle

Shifting down (10V TX to 5V RX) can be done with a voltage divider.
Shifting up (5V TX to 10V RX) can be done with a transistor - do make sure you're not inverting the signal. This page tells you how it's done for 3.3V to 5V, same for 5V to 10V except that you have to change the resistor values of the divider to be equal.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

i3dm


wvmarle

no extra room on my board :(
Not even for a transistor in SOT23 package and 3x 0604 resistors? That must be one super tight packed PCB. Maybe you should place them on the other side then, or is that packed as well?

If really no space, too bad. End of story. This is impossible without extra hardware.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

Grumpy_Mike

Quote
deice (turbine ECU) that uses 10V UART logic.
Are you sure that the signal is not a form of RS232 signal? And is a simple mark ( idle state of the line ) is high?

I too would say
Quote
This is impossible without extra hardware.

i3dm

Are you sure that the signal is not a form of RS232 signal? And is a simple mark ( idle state of the line ) is high?

I too would say
yes im sure.

OK guys. i thought its worty a try.
thank you.

MorganS

Can you post a link to a manual or datasheet for the ECU? 10V Serial is very unusual.

RS232 standard is as common as dirt and may read as 10V on a multimeter, depending on the data being sent.
"The problem is in the code you didn't post."

i3dm

#9
May 23, 2019, 04:11 pm Last Edit: May 23, 2019, 04:12 pm by i3dm
theres no datasheet. its a reverse engineering project.
the ECU HW is based on LIN bus but with regular UART protocol.
logic 1 is pulled up to power supply which is 10V in my case.

MorganS

Then you need a LIN transceiver.

Are you expecting to transmit and receive or just one of those? (Which one?)
"The problem is in the code you didn't post."

i3dm

both.
ive already decoded the protocol using a voltage devider on the Rx line.
thinking about a level shifter on both Tx and Rx lines for next stage to be able to transmit too.

MorganS

A MAX232 makes a great level shifter for both TX and RX. You could hack it to 0-10V by omitting one capacitor from the recommended circuit and connect V- to ground. But be aware that it reverses the polarity too: a HIGH input gives a low-voltage output.
"The problem is in the code you didn't post."

i3dm

interesting idea as i actually have a MAX232 at hand. but i need non reversed UART. is it possible to logically invert the software serial UART from the ardu?

wvmarle

Place an inverter such as the 74HC04 in between. Much easier.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

Go Up