El programador CH341A es la herramienta de pocos dólares con la que se leen y graban memorias de BIOS, EEPROM de televisores y monitores y flash de routers. Funciona bien si combinas tres cosas: el driver correcto de WCH, el programa AsProgrammer (gratuito, de código abierto y con traducción al español) y una precaución de hardware que la placa negra no trae resuelta de fábrica. Aquí tienes las tres.
Última verificación: 26 de octubre de 2026.
⬇ AsProgrammer 2.1.2 + driver CH341A (CH341PAR)
WCH publica hoy la versión 2.6 del driver (24/04/2025). Si la 2.4 te da problemas en un Windows muy reciente, baja la 2.6 de la página oficial del CH341PAR. Instala primero el driver y después descomprime AsProgrammer en cualquier carpeta: no tiene instalador.
Qué muestra el Administrador de dispositivos
El mismo chip CH341A puede presentarse de dos maneras, y solo una sirve para programar memorias. Los identificadores y nombres de esta tabla salen del CH341WDM.INF del driver alojado y del CH341SER.INF del driver serie de WCH:
| VID:PID | Nombre en el Administrador | Qué significa |
|---|---|---|
1A86:5512 |
USB-EPP/I2C… CH341A | Modo programador con el driver correcto. AsProgrammer lo encuentra. |
4348:5512 |
USB-EPP/I2C… CH341 | El mismo modo con el VID antiguo de WCH. |
1A86:5523 |
USB-SERIAL CH341A | El chip arrancó en modo serie. AsProgrammer no lo verá; en placas con puente de modo, cámbialo a la posición de programador. |
1A86:55DB, 55DD, 55DE |
USB HighSpeed-SPI/I2C… CH347T / CH347F | No es un CH341A: es el CH347, que usa el mismo driver y se elige como «CH347T» en AsProgrammer. |
AsProgrammer habla con el CH341A a través de CH341DLL.DLL, la biblioteca de WCH (se ve en el archivo ch341hw.pas del código fuente, que llama a CH341OpenDevice). Por eso necesita el driver de WCH y no un driver genérico. Si alguna vez usaste Zadig sobre el programador para otra herramienta, desinstala ese dispositivo marcando la opción de eliminar el controlador y vuelve a instalar CH341PAR.
Si buscabas el driver para un Arduino o un adaptador USB-TTL con CH340, es otro paquete: está en la guía del driver CH340.
Primer uso de AsProgrammer, en español
- Abre
AsProgrammer.exe. En el menú Language elige Español: el paquete trae el archivolang/es.po, traducido por MELERIX. - En el menú Programador marca CH341a. Este paso no es opcional, y es la causa de muchos «no detecta nada»: el
settings.xmlque viene en el ZIP de la 2.1.2 traehw="ch347", así que, recién descomprimido, el programa busca un CH347. - Pulsa Leer identificación para que el programa lea el ID JEDEC de la memoria, o elige el chip a mano en la lista si la detección se equivoca.
- Leer → guarda el archivo. Lee dos veces y compara los dos archivos antes de tocar nada: una pinza mal asentada da lecturas distintas, y una copia de seguridad mala es peor que ninguna.
- Carga la imagen nueva → Borrar → Escribir → Comparar contenido.
La lista de chips de la 2.1.2 (chiplist.xml) tiene 892 memorias SPI de 57 fabricantes, 12 EEPROM I²C y 6 Microwire.
Los dos mensajes de error que vas a ver
- «Error conectando a CH341(-1)»: el programa no pudo abrir el programador. El texto se arma en
ch341hw.pascon la cadena de error, el nombre «CH341» y el código que devuelve la DLL. Revisa la tabla de arriba: o falta el driver CH341PAR, o el chip arrancó en modo serie, o el menú Programador sigue en CH347. - «Error de comparación en:» seguido de una dirección: la escritura salió, pero al leer no coincide. Con pinza, casi siempre es contacto o una placa que se alimenta por la memoria; desuelda el chip si se repite.

La parte que nadie cuenta: la trampa de los 5 V en la placa negra
La placa negra tiene un regulador de 3,3 V, pero ese regulador solo alimenta el zócalo. El chip CH341A sigue conectado a los 5 V del USB. El análisis del esquema publicado por One Transistor lo dice sin rodeos: «el chip se alimenta con 5 V, así que sus puertos de E/S también usan 5 V», y en su medición el nivel alto del reloj llega a 4,5 V. La documentación de flashrom lo confirma: en las salidas del CH341A hay «poco menos de 5 voltios», demasiado para la entrada de muchas EEPROM.
Cuánto es «demasiado» lo dice la hoja de datos de la memoria. Para una Winbond W25Q80DV alimentada a 3,3 V, la tabla de límites absolutos permite como máximo VCC + 0,4 V en cualquier pin, es decir 3,7 V. Los 4,5 V medidos quedan 0,8 V por encima, de forma continua. La misma hoja aclara que pasar esos límites «puede causar daño permanente»; no siempre mata el chip en el acto, y por eso hay quien graba decenas sin problema y quien pierde una placa.

Qué hacer, de menos a más trabajo:
- Mide antes de conectar una memoria. Con el programador en USB y el zócalo vacío, mide con el multímetro entre GND y los pines de datos del zócalo. Cerca de 5 V: tu placa tiene el problema. Cerca de 3,3 V: no hay nada que corregir.
- Placa azul CH341A/B: según flashrom, la tensión de trabajo se elige con dos puentes. Déjalos en 3,3 V salvo que la memoria pida 5 V.
- Placa negra sin corregir: la corrección que describe flashrom es levantar el pin 28 del CH341A y conectarlo a 3,3 V, junto con el pin 9. Si no te sientes cómodo levantando un pin de un encapsulado SOP, usa un adaptador de nivel.
- Memorias de 1,8 V: si la hoja de datos de tu memoria indica 1,8 V, ni 5 V ni 3,3 V sirven. Necesitas el adaptador de 1,8 V, sea cual sea la placa.
Preguntas frecuentes
¿Puedo usar el CD que vino con el programador? Puedes, pero no sabes qué versión es ni de dónde salió. AsProgrammer es de código abierto, tiene versión, fecha y huella verificables, y trae el mismo driver de WCH dentro.
¿El CH341A sirve para cualquier chip? Sirve para memorias serie: flash SPI 25xx, EEPROM I²C 24xx y Microwire 93xx. Para memorias paralelas, NAND o microcontroladores necesitas un programador universal.
Leí la memoria y todo sale FF o 00. La pinza tiene alimentación pero no datos. Vuelve a asentarla con el pin 1 donde corresponde; si la placa está montada, desconecta todo lo demás o desuelda la memoria.
Veredicto
Por lo que cuesta, el CH341A con AsProgrammer resuelve la mayoría de los trabajos con memorias de 8 pines. Instala CH341PAR antes de conectar, marca CH341a en el menú Programador, mide los 5 V una vez y guarda siempre dos lecturas iguales antes de escribir.
Fuentes
- nofeletru/UsbAsp-flash (AsProgrammer): repositorio (licencia MIT, programadores admitidos,
software/ch341hw.pasysoftware/main.pas) y releases;chiplist.xml,settings.xmlylang/es.podentro del ZIP 2.1.2. - WCH, CH341PAR (versión 2.6, 24/04/2025);
CH341WDM.INFdel paquete alojado (DriverVer 2.4.2023.10). - Winbond, hoja de datos W25Q80DV, revisión J, sección 9.1.
- flashrom, CH341A/B; One Transistor, esquema del CH341A mini programmer.
