Conversor USB a UART
CH340G
Pinout
| Pin | Función |
|---|---|
| Pin 1 (GND) | Masa común, conectada directamente a la masa del bus USB. |
| Pin 2 (TXD) | Salida de datos serie asíncronos (nivel TTL). |
| Pin 3 (RXD) | Entrada de datos serie asíncronos, con resistencias de pull-up y pull-down internas controlables. |
| Pin 4 (V3) | Nodo del regulador interno de 3,3 V. Con VCC = 5 V se conecta un condensador de desacoplo de 0,1 µF; con VCC = 3,3 V se cortocircuita a VCC. |
| Pin 5 (UD+) | Línea de datos D+ del bus USB. Se conecta directamente al conector, sin resistencia en serie. |
| Pin 6 (UD−) | Línea de datos D− del bus USB. Se conecta directamente al conector, sin resistencia en serie. |
| Pin 7 (XI) | Entrada del oscilador de cristal. Requiere un cristal externo de 12 MHz con sus condensadores de carga. |
| Pin 8 (XO) | Salida del oscilador de cristal. Se conecta al otro extremo del cristal de 12 MHz con su condensador de carga. |
| Pin 9 (CTS#) | Señal de contacto MODEM de entrada, "clear to send", activa a nivel bajo. |
| Pin 10 (DSR#) | Señal de contacto MODEM de entrada, "data set ready", activa a nivel bajo. |
| Pin 11 (RI#) | Señal de contacto MODEM de entrada, indicación de timbre, activa a nivel bajo. |
| Pin 12 (DCD#) | Señal de contacto MODEM de entrada, detección de portadora, activa a nivel bajo. |
| Pin 13 (DTR#) | Señal de contacto MODEM de salida, "data terminal ready", activa a nivel bajo. |
| Pin 14 (RTS#) | Señal de contacto MODEM de salida, "request to send", activa a nivel bajo. |
| Pin 15 (R232) | Entrada de habilitación de la función auxiliar RS232, activa a nivel alto, con pull-down interno. Sólo se comprueba una vez tras el reset de encendido. |
| Pin 16 (VCC) | Entrada de alimentación positiva (5 V o 3,3 V). Requiere un condensador de desacoplo externo de 0,1 µF. |
Conversor USB a UART con CH340G
Este circuito convierte un puerto USB en un puerto serie asíncrono TTL (UART). Al conectarlo al ordenador aparece como un puerto COM virtual, y todo lo que se envíe o reciba por él viaja como datos serie de nivel lógico (0 V / VCC) por las líneas TXD y RXD del conector J2. Es la solución clásica para programar microcontroladores (ESP8266, ESP32, AVR, STM32…), abrir una consola de depuración o dar puerto USB a cualquier periférico con salida serie antigua.
El núcleo es el CH340G, un adaptador USB a puerto serie de WCH compatible con USB 2.0 a velocidad “full-speed”. El transceptor USB, el pull-up de identificación como dispositivo y el búfer de transmisión/recepción están ya integrados en el chip, así que el circuito externo se reduce al cristal de reloj, tres condensadores de desacoplo y los dos conectores.
Encapsulado SOP-16.
Cómo funciona
El CH340G integra un transceptor USB completo, un motor UART hardware full-duplex y toda la lógica de control. Cuando se conecta al ordenador, se identifica como dispositivo USB, el sistema operativo carga el driver VCP (Virtual COM Port) y crea un puerto serie virtual. A partir de ahí, los caracteres que la aplicación envía al puerto COM salen por el pin TXD del chip a nivel TTL, y los que llegan al pin RXD se transmiten al ordenador por USB.
Alimentación
El circuito se alimenta del bus USB, que entrega 5 V por el pin VBUS del conector J1. Esta tensión se conecta al pin VCC (pin 16) del CH340G y sirve también como alimentación auxiliar (+5V) en el conector UART J2. El condensador C24 (1 µF) proporciona el filtrado del bus, y C23 (0,1 µF) desacopla el pin VCC en alta frecuencia.
El pin V3 (pin 4) es el nodo del regulador interno que genera los 3,3 V para el transceptor USB. Cuando se alimenta el chip a 5 V, este pin sólo necesita un condensador de desacoplo de 0,1 µF a masa (una parte de C23/C24 en el esquema). Si se quisiera alimentar el chip directamente a 3,3 V, V3 se cortocircuitaría a VCC y se inyectarían los 3,3 V en ambos.
Reloj de 12 MHz
El CH340G necesita un reloj externo de 12 MHz para el motor USB y el generador de baudios. El cristal X4 se conecta entre los pines XI (pin 7) y XO (pin 8), con los condensadores de carga C21 y C22 de 33 pF a masa en cada extremo. Este oscilador es la única razón por la que el chip lleva encapsulado SOP-16 en lugar de SOP-8: las variantes CH340C, CH340N y otras integran el reloj y prescinden de estos tres componentes.
La tolerancia del cristal es crítica para el error de baudios del transmisor: el datasheet garantiza un error inferior al 0,3 % en los modelos con cristal externo (CH340G/T/R), frente al 1,8 % de los que usan reloj interno.
Interfaz USB
Los pines UD+ (pin 5) y UD− (pin 6) se conectan directamente a las líneas D+ y D− del conector USB J1, sin resistencias en serie. El propio chip integra el pull-up de 1,5 kΩ sobre D+ que identifica al dispositivo como “full-speed” ante el host.
Interfaz serie
El conector J2 expone las cuatro señales típicas de un adaptador USB-TTL: GND, TXD, RXD y +5V. TXD y RXD trabajan a nivel TTL (0 V / 5 V, o 0 V / 3,3 V si se alimenta a 3,3 V), con formato estándar: 1 bit de inicio, 5–8 bits de datos, 1 o 2 bits de parada y paridad opcional. Los baudios admitidos van de 50 bps a 2 Mbps.
Las señales MODEM adicionales (CTS#, DSR#, RI#, DCD#, DTR#, RTS#) quedan sin conectar en este esquema básico. Se pueden dejar al aire si no se usan; el software del ordenador puede leerlas o controlarlas si en un montaje concreto se sacan a otro conector, lo cual resulta útil, por ejemplo, para el reset y arranque en modo bootloader de placas de desarrollo.
Elección del cristal y sus condensadores
El cristal debe ser de 12 MHz exactos (el datasheet acepta 11,98–12,02 MHz). Es lo único que fija la frecuencia interna del CH340G, así que un cristal fuera de tolerancia se traduce directamente en error de baudios y en pérdida de comunicación con el ordenador.
Los condensadores de carga (C21 y C22) dependen del tipo de cristal:
| Tipo de cristal | Carga típica | Condensadores C21/C22 |
|---|---|---|
| Cuarzo estándar | 12–20 pF | 33 pF |
| Cerámico económico | 15–30 pF | 47 pF (dato del fabricante) |
Para cristales de cuarzo, 33 pF es el valor recomendado por WCH y funciona con la gran mayoría de referencias comerciales. Si se usa un resonador cerámico, hay que atenerse al valor que indique su fabricante.
Conector USB y protección
El conector J1 es un USB tipo A (macho o hembra según el uso). Sus cuatro pines son:
| Pin | Señal | Función |
|---|---|---|
| 1 | VBUS | +5 V del host |
| 2 | D− | Línea de datos negativa |
| 3 | D+ | Línea de datos positiva |
| 4 | GND | Masa |
Para un adaptador básico como éste, el propio bus USB del ordenador aporta protección contra sobrecorriente en su puerto (fusible resetable), pero en montajes en los que el circuito pueda quedar expuesto a descargas electrostáticas conviene añadir un TVS array (por ejemplo, USBLC6-2SC6) sobre las líneas D+, D− y VBUS.
Baudios y precisión
El CH340G genera internamente todos los baudios estándar dividiendo el reloj de 12 MHz. Los valores más habituales (9600, 19200, 38400, 57600, 115200, 230400, 460800…) están soportados directamente, y también los no estándar como 250000 (usado por DMX) o hasta 2 Mbps.
El error total del enlace es la suma del error del cristal y el del divisor interno. Con un cristal de ±20 ppm el error queda muy por debajo del margen del ±2 % que tolera cualquier UART, y la comunicación es fiable incluso a 921600 bps.
Otras aplicaciones
Además de servir como cable USB-TTL genérico, este circuito es la base de:
- Programadores de microcontroladores. Muchos módulos ESP8266/ESP32, placas Arduino Nano y clones de Arduino UNO utilizan el CH340G (o su variante CH340C sin cristal) como puente USB-serie de fábrica; las señales DTR# y RTS# se emplean para controlar la secuencia de reset y arranque en modo bootloader.
- Puertos serie legacy en PC modernos. Añadir un puerto COM a un ordenador que sólo tiene USB, para hablar con instrumentos de laboratorio, básculas, lectores de códigos de barras u otros periféricos serie antiguos.
- Consola de depuración. Ver los mensajes de
printfde un microcontrolador desde un terminal serie en el ordenador durante el desarrollo. - Adaptadores USB a RS232 y RS485. Añadiendo un integrado de conversión de nivel (MAX232, MAX485), el CH340G se convierte en la base de un adaptador USB a RS232 o RS485, tal como muestran los circuitos de aplicación del propio datasheet.
- KVM y automatización serie. Interfaz USB para dispositivos que controlan otras máquinas por consola serie (routers, switches, servidores) desde un ordenador o un sistema embebido.
Referencias y documentación adicional
- PDFDatasheet del CH340G
Esta es la fuente principal a partir de la cual se ha creado este artículo.
- WEB
- WEB