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)

Windows · licencia MIT · programadores CH341A, CH347, FT232H, USBasp, Arduino y AVRISP mkII · paquetes oficiales sin modificar

Descargar AsProgrammer 2.1.2

Archivo: AsProgrammer_2.1.2.zip · 21.436.082 bytes (20,4 MB) · publicado el 24/01/2025, sigue siendo la última versión el 26/10/2026 · SHA-256: 7921dcaa0296e73eb4cc66f91698ca879ce2164790fce335e64afb89597a152f, idéntico al archivo del release oficial en GitHub.

 
Descargar driver CH341A

Archivo: CH341PAR_Driver.zip · 531.174 bytes · SHA-256: 6d8284cfe12ffebfd42a8ca9f0a867bacca4c5bcf70bd08b16eec673ed9cab1d · contiene CH34XPAR.EXE de WCH (580.400 bytes, SHA-256 7f8d4c822b4a5f1bd146e90df17666f0c435878f488c5d0828a00254b65ccf77, el mismo archivo que AsProgrammer trae en drivers\CH34X); su CH341WDM.INF dice DriverVer = 10/10/2023, 2.4.2023.10.

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

  1. Abre AsProgrammer.exe. En el menú Language elige Español: el paquete trae el archivo lang/es.po, traducido por MELERIX.
  2. En el menú Programador marca CH341a. Este paso no es opcional, y es la causa de muchos «no detecta nada»: el settings.xml que viene en el ZIP de la 2.1.2 trae hw="ch347", así que, recién descomprimido, el programa busca un CH347.
  3. 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.
  4. 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.
  5. 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

Programador CH341A con adaptador y pinza SOIC-8 para leer memorias sin desoldarlas
CH341A con el adaptador y la pinza SOIC-8 para leer la memoria sin desoldarla. Por convención, el hilo rojo del cable plano va al pin 1 de la memoria. Foto: RAIL P (RAIL.PHOTOGRAPHY), Wikimedia Commons, CC0.

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.

Tabla 9.1 de la hoja de datos Winbond W25Q80DV con el límite de tensión en cualquier pin de VCC más 0,4 V
Sección 9.1 de la hoja de datos W25Q80DV: «Voltage Applied to Any Pin», de −0,6 V a VCC + 0,4 V. Fragmento de la hoja de datos de Winbond, revisión J.

Qué hacer, de menos a más trabajo:

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