Si estás leyendo o escribiendo un chip de memoria flash SPI con un programador USB basado en CH341A y la lectura regresa puro FF, o una escritura se completa pero el checksum de verificación no coincide, probablemente no se trate de un chip muerto ni mal conectado. Se trata de un desajuste de voltaje en la propia placa del programador: una falla de hardware bien conocida en ciertas placas CH341A baratas, con más de una solución ya documentada.
Aparece con frecuencia en chips de memoria flash más nuevos y económicos del mercado chino. Las placas X99 (LGA2011‑3) chinas recientes son un lugar común donde te puedes topar con esto, ya que muchas de ellas cambiaron a este tipo de chip en los últimos años, pero la falla en sí no tiene nada que ver específicamente con esa plataforma ni con ninguna marca de chip en particular.
Por qué ocurre
Las placas CH341A más baratas comparten un atajo de diseño conocido desde hace tiempo. El propio chip CH341A alimenta sus pines de E/S directamente con los 5V que llegan del USB, mientras que un pequeño regulador AMS1117 integrado reduce ese voltaje a 3.3V únicamente para el pin VCC del zócalo ZIF, nunca para la alimentación propia del CH341A. Así, un chip que solo admite 3.3V, al quedar en el zócalo, termina recibiendo niveles lógicos de 5V en sus líneas de datos, algo fuera de especificación en cualquier placa construida de esta forma. La mayoría de los chips Winbond y Macronix toleran esto sin problema gracias al margen incorporado en el diseño de sus E/S; por eso el problema casi no se presenta en chips de BIOS “comunes”. Las familias de flash más nuevas y económicas del mercado chino, como XMC y GallopMem, lo toleran notablemente peor, y de ahí vienen las lecturas corruptas y los checksums fallidos.
Los 5V en las líneas de datos pueden dañar permanentemente a los chips de memoria flash SPI sensibles al voltaje, y no solo corromper una lectura o escritura. Estos chips también son más sensibles a una mala calidad de contacto y a una alimentación inestable que los componentes tradicionales de Winbond o Macronix.
Qué placas CH341A están realmente afectadas
No existe una numeración de versiones confiable ni estandarizada en la industria para esto, así que no vayas solo por el color de la placa o un número de versión impreso: verifica con un multímetro.
- Compruébalo tú mismo: conecta el programador (no importa si el zócalo ZIF está vacío) y mide el voltaje en el pin 28 (VCC) del chip CH341A, o en los pines de datos MISO/MOSI del zócalo ZIF. Si marca cerca de 5V, tu placa tiene la falla. Si marca cerca de 3.3V, ya estás bien.
- El tipo afectado: placas básicas de 3 a 5 dólares, de “PCB negro” y zócalo ZIF, sin hardware dedicado de conversión de nivel — solo el chip CH341A y un regulador de 3.3V que alimenta nada más al zócalo. Según se ha reportado, algunos lotes de producción más recientes de la misma placa ya salen de fábrica con 3.3V, pero no hay forma de saberlo por la foto de un anuncio, así que mide en lugar de adivinar.
- Las placas más caras que anuncian “conversión de nivel” multivoltaje —a menudo vendidas como “CH341A V1.7”, con un jumper de 5V/3.3V/2.5V/1.8V— usan un chip conversor de nivel dedicado y no tienen este problema. Eso sí, los vendedores aplican la etiqueta “V1.7” de forma inconsistente, así que no la tomes al pie de la letra: la comprobación con el multímetro es lo que realmente te lo confirma.
Cómo se soluciona
En la placa “negra” afectada, el regulador de 3.3V integrado solo alimenta al zócalo ZIF; nunca toca la alimentación propia del chip CH341A, que se queda en 5V sin importar lo que haya en el zócalo. Hay dos soluciones documentadas para redirigir esa alimentación. Ambas vienen de la comunidad, no del fabricante, así que en lugar de parafrasear aquí los pasos exactos, te dejamos las guías originales:
- Solución con soldadura — el pin VCC del CH341A se despega de la placa y se recablea directamente a la salida del regulador de 3.3V integrado, evitando por completo la alimentación de 5V. Es el método más antiguo, el que más se ha documentado, y funciona sin importar la revisión de la placa. Pasos completos con fotos: la guía de Chuck Nemeth, basada en la solución original que se desarrolló en este hilo de EEVblog.
- Solución sin soldadura — en placas que ya tienen un pin de 3.3V libre junto a un pin de 5V en alguno de los headers, se logra el mismo resultado cortando una sola pista y puenteando dos pines existentes con un jumper. No se necesita cautín. Pasos completos con fotos: la guía de Sawyer Shepherd.
Sea cual sea la solución que uses, comprueba el resultado con un multímetro antes de conectar un chip. Meterle 5V a un chip que solo admite 3.3V es justo el modo de falla que quieres evitar.
Fuentes y lecturas adicionales
- Solución con soldadura, paso a paso y con fotos: wiki de Chuck Nemeth
- Solución sin soldadura, paso a paso y con fotos: blog de Sawyer Shepherd
- El hilo original de EEVblog del que sale esta modificación: foro de EEVblog
- Demostración en video de cómo identificar y resolver el problema: Voltlog #318
- Contexto general y una tercera variante documentada de la solución: wiki de OpenIPC
