A
Arduino21h ago
Guin

Confusion about COM port terminology

Hey guys, I recently got an ESP32-S3 to mess around with and I'm a little overwhelmed with all the new terminology. I was under the impression that a COM port was a software layer that mimicked a physical USB-to-Serial wire. However, my board has a port labelled COM, and online research says that its labelled that because it has a physical UART implemented for that USB port. Does this mean COM just refers to a some section where we translate USB data to serial data? Also, serial seems to be a catch-all term that depends on the context it's being used in. How exactly do you guys get familiar with knowing what it means exactly purely based off the context? For example, USB-to-Serial, in this case it refers to using a physical UART to do the conversion but can't serial also mean other serial communication protocols? How exactly would you know which one is implied? Another question, In this link here "https://forum.arduino.cc/t/i-use-esp32-s3-but-arduino-ide-serial-monitor-doesnt-output/1119003/8", an arduino team member says the following: "When you have Tools > USB CDC On Boot > Disabled selected from the Arduino IDE menus, calling Serial.println etc. in your sketch will cause the serial communication to be done via that socket's serial port. When you have Tools > USB CDC On Boot > Enabled selected from the Arduino IDE menus, serial communication will instead be done via the serial port of the USB socket labeled "USB":" The specific parts that confuses me is: 1. the serial communication to be done via that socket's serial port 2. serial communication will instead be done via the serial port of the USB socket labeled "USB". Why does he refer to the port labelled COM as a serial port, but then call the port labelled USB as the USB port? Aren't they both USB ports, though the COM port has a physical UART implemented in it? Is he calling it a serial port because the USB port can communicate in RS-232, RS-422, or RS-485?
6 Replies
Tuuli 🎹🎸🤘
Basically you look it up in the data sheets. Serial just means... serial data, vs parallel data. One bit at a time is sent. Usually a "serial port" refers to a TX/RX pair that is either at 3.3V or 5V logic level. You can learn more here https://learn.sparkfun.com/tutorials/serial-communication/all What voltage level, and how the packages of data are formatted varies depending on the protocol and settings. So when you're learning, you need to check (to avoid frying things....). RS232, USB, I2C and SPI are other common "serial" protocols but those are typically specifically called out as such.
Tuuli 🎹🎸🤘
I suggest you do this too 😉 And never plug cables in if you arent sure what logic level they are; your ESP32 can be fried if it gets too much voltage on the serial pins 😉
No description
Tuuli 🎹🎸🤘
(Or ANY pins for that matter... it cant handle 5V signals)
Guin
GuinOP20h ago
Hmm does that mean that a UART really only just turns parallel data into serial data and that's it? Does it not convert it to a specific communication protocol?
Tuuli 🎹🎸🤘
Basically. Look up "hardware UART", and if you're interested in USB, the CH340 chip is a common UART to USB converter. https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF
Guin
GuinOP20h ago
got it, thank you

Did you find this page helpful?