First let's look at the USB-to-serial converter setup. This configuration is historically older, but is still generally relevant. While more and more processors are being provided with a USB interface peripheral (native USB), it's still not as universal as I2C, SPI, and good old fashioned serial UART. So plenty of modern Arduino boards are still using this configuration.
The main processor is where the Arduino sketch is loaded and runs. It only has a serial interface for uploading new sketch code. This serial interface can not directly connect to a host's USB port. Therefore, a separate specialized chip, called a USB-to-serial converter (or adapter), is used to "bridge" the host PC's USB to the processor's serial interface.
Also note the reset behavior. Pressing the reset button on the Arduino board resets the main processor. However, the USB-to-serial converter is not reset and remains powered. Therefore, from the point of view of the host PC, it never sees a USB disconnect when the processor resets. It just sees the USB-to-serial converter sitting there happily providing a COM port.
Example Boards
Here are some example boards that have processors that lack any USB connectivity and therefore use a USB-to-serial adapter. Both of the main processor and the USB-to-serial adapter are shown.
Other common boards that have a USB-Serial chip are:
- Any ESP8266 board
- Any ESP32 board (not ESP32-Sx or ESP32-Cx)
- Any ATmega328 board
- Any ATmega2560 board
Drawbacks
Since the USB-to-serial adapter provides a constant and reliable COM port connection to the host PC, these style Arduino boards are generally less prone to COM port weirdness when trying to upload an Arduino sketch. So why not use this approach for all boards?
The main drawback is that the USB-to-serial converter does one thing and one thing only - it acts as a COM port. From the point of view of the host PC, it'll never be anything but a COM port. That's all it can do.
That's great when it comes to uploading sketches, since that's done via the COM port. But what if you wanted to emulate a USB keyboard, mouse, mass storage (MSD), or some other USB device? You can't. At least not via this "USB connection".
Another drawback is the potential need to install drivers. There are numerous companies that make dedicated USB-to-serial adapter chips. For these to work properly, and show up as a COM port, company provided and device specific drivers may need to be installed. That typically requires going to the company's website and hunting down and installing these drivers for a given operating system.
There's also an associated cost and board size increase required for the extra circuitry
Text editor powered by tinymce.