-1
\$\begingroup\$

I have one question about USB and TTL.

Both USB and TTL works on the same voltage range (0 to +5 V), both are serial protocols. From my point of view, they are the same.

Why then we have USB to TTL converter? When programming on Arduino, why it uses integrated TTL or requires external TTL (if a board doesn't have TTL integrated)?

Thanks!

\$\endgroup\$
4
  • 5
    \$\begingroup\$ TTL is not a protocol, it is a logic family type, Transitor-Transistor Logic. TTL has defined switching voltage levels for logic 0 and logic 1. \$\endgroup\$
    – Transistor
    Jul 22, 2018 at 12:29
  • 4
    \$\begingroup\$ I'm voting to close this question as off-topic because it shows no research \$\endgroup\$
    – Andy aka
    Jul 22, 2018 at 13:39
  • 1
    \$\begingroup\$ @Andyaka don't mix lack of information with lack of research. The question itself shows a lot of research - not just TTL but also other technologies \$\endgroup\$
    – saksija
    Jul 22, 2018 at 14:26
  • 2
    \$\begingroup\$ "sasija", no, good research produces plentiful information. Your question shows horrible ignorance, you are confusing a fairly complicated serial packet-based protocol with 3-V (or 400 mV differential) signaling interface with just two signal levels (basically) defined by TTL electrical standard. These things are miles apart in electronics. \$\endgroup\$ Jul 22, 2018 at 15:12

2 Answers 2

4
\$\begingroup\$

I think you're referring to the USB to UART device on the Arduino board. Older Arduinos actually had FTDI chips on them (beloved and hated by many of us in the industry)

What an FTDI chip or the Atmega16u2 (with special firmware) does is take the differential USB signal, and turn it into usable UART data that can be consumed by the main Atmega chip on the Arduino itself.

So, in other words, it's taking two completely incompatible protocols and bridging the gap so they can talk to each other. If the Arduino MCU had a USB peripheral on it, there would be no need for the USB to UART conversion (as it's done on chip!).

As for TTL, it's the architecture of how ICs were produced. Most chips these days are CMOS due to the fact that they are much lower power.

Hopefully that makes sense!

\$\endgroup\$
1
\$\begingroup\$

Learn here about TTL voltage levels: https://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/

The fact that both TTL and USB are based around a 5 V supply is more due to history, TTL is older and it needed 5 V due to available transistor technology (in the 1960s).

Later that 5 V supply was used in almost any computer as computers are made using logic chips which need 5 V, at least the TTL ones. Even as TTL was replaced by CMOS logic large parts of computer electronics still used 5 V even though CMOS could also run on lower voltages.

Since 5 V is a voltage which is also suitable for a lot of low to medium power (up to a couple of Watt) electronics it was choosen to be used for USB as well. Note that the supply of USB is 5 V, the data signals use a lower voltage.

The "TTL" on an Arduino board means that the signals are 5 V. There is no TTL logic on an Arduino board at all. The ATMega chip on the Arduino can work at 3.3 V to 5.5 V so that includes TTL level signals. Many serial ports use TTL level (5 V) signals and you should not connect those directly to an ATMega chip unless it also runs on 5 V. Often Arduino boards are configured such that the ATMega chip is running on 3.3 V so then some levelshifting is needed. Many USB-to-serial adapters have this already.

\$\endgroup\$
4
  • \$\begingroup\$ I remember the early CMOS that needed 12V to 15V to get any decent speed and early versions of micros that needed negative supplies as well :) \$\endgroup\$ Jul 22, 2018 at 13:32
  • \$\begingroup\$ Thanks mate! It is much clearer now. USB have 5V SUPPLY, but SIGNAL voltage level is lower. Just one correction: You said that Arduino board doesn't have TTL logic at all. But almost all arduino boards have usb-to-ttl converter chip (CH430 or atmega16u2) which are used to convert usb signal to ttl. \$\endgroup\$
    – saksija
    Jul 22, 2018 at 14:16
  • 2
    \$\begingroup\$ @saksija - that is not the formal name of those chips at all. You need to stop mistaking TTL-compatible signal levels for a communication scheme. TTL is an implementation technology for logic ICs, specifically an old one that is not use anywhere on an Arduino. \$\endgroup\$ Jul 22, 2018 at 14:59
  • \$\begingroup\$ @saksija - there is a handy chart with logic levels and thresholds vs. a number of families at interfacebus.com/voltage_threshold.html \$\endgroup\$ Jul 22, 2018 at 15:12

Not the answer you're looking for? Browse other questions tagged or ask your own question.