Corrigindo a falha de voltagem 5V/3.3V do CH341A

ch341a

Se você está lendo ou gravando um chip de flash SPI com um programador USB baseado no CH341A e a leitura vem toda em FF, ou a gravação termina mas o checksum de verificação não bate, o problema provavelmente não é um chip morto nem fiação errada. É uma incompatibilidade de tensão na própria placa do programador — um defeito de hardware conhecido em certas placas CH341A baratas, com mais de uma solução documentada.

É comum encontrar esse problema em placas-mãe X99 (LGA2011‑3) chinesas recentes, já que boa parte delas passou a usar esse tipo de chip nos últimos anos — mas o defeito em si não tem relação especial com essa plataforma, nem com nenhuma marca de chip específica.

Por que isso acontece

As placas CH341A mais baratas compartilham um atalho de projeto conhecido há muito tempo. O próprio chip CH341A alimenta seus pinos de I/O diretamente com os 5V vindos da USB, enquanto um pequeno regulador AMS1117 na placa reduz essa tensão para 3,3V apenas para o pino VCC do soquete ZIF, nunca para a alimentação do próprio CH341A. Assim, um chip que só aceita 3,3V, ao ser colocado no soquete, acaba recebendo níveis lógicos de 5V nas linhas de dados — fora da especificação em qualquer placa construída dessa forma. A maioria dos chips Winbond e Macronix aguenta bem essa situação, graças à margem de tolerância do próprio projeto de I/O — por isso o problema raramente aparece em chips de BIOS “comuns”. Já famílias de flash mais novas e baratas do mercado chinês, como XMC e GallopMem, toleram muito menos essa condição, e é isso que causa leituras corrompidas e falhas de checksum.

5V nas linhas de dados pode danificar permanentemente chips de flash SPI sensíveis à tensão, não apenas corromper uma leitura ou gravação. Eles também são mais sensíveis a contato de má qualidade e alimentação instável do que as peças tradicionais da Winbond ou Macronix.

Quais placas CH341A são realmente afetadas

Não existe uma numeração de versão confiável e padronizada para o setor, então não confie apenas na cor da placa ou em um número de versão impresso — em vez disso, verifique com um multímetro:

  • Verifique você mesmo: conecte o programador (o soquete ZIF pode estar vazio) e meça a tensão no pino 28 (VCC) do chip CH341A, ou nos pinos de dados MISO/MOSI no soquete ZIF. Próximo de 5V, sua placa tem o problema. Próximo de 3,3V, já está tudo certo.
  • O tipo afetado: placas simples e baratas (US$ 3–5), com soquete ZIF e PCB preta, sem nenhum hardware dedicado de conversão de nível — só o chip CH341A e um regulador de 3,3V alimentando apenas o soquete. Alguns lotes de produção mais recentes da mesma placa aparentemente já saem de fábrica em 3,3V, mas não dá para saber isso pela foto de um anúncio — por isso, meça em vez de supor.
  • Placas mais caras que anunciam “conversão de nível” multi-tensão — muitas vezes vendidas como “CH341A V1.7”, com um jumper de 5V/3,3V/2,5V/1,8V — usam um chip dedicado de conversão de nível e não têm esse problema. Só que os vendedores nem sempre aplicam esse rótulo corretamente, então não confie nele de cara — o teste com o multímetro é o que realmente confirma.

Como corrigir

Antes de mexer em qualquer coisa: confirme que esse é realmente o problema da sua placa com a verificação do multímetro acima. As duas correções abaixo são modificações de hardware, feitas por sua conta e risco.

Na placa “preta” afetada, o regulador de 3,3V embutido alimenta só o soquete ZIF — nunca alimenta o próprio chip CH341A, que continua em 5V, não importa o que esteja no soquete. Existem duas correções documentadas para redirecionar essa alimentação. As duas vêm da comunidade, não do fabricante — por isso, em vez de reescrever aqui o passo a passo exato, preferimos indicar os tutoriais originais:

  • Correção com solda — o pino VCC do CH341A é desconectado da placa e religado diretamente à saída do regulador de 3,3V embutido, ignorando completamente a alimentação de 5V. É a abordagem mais antiga e mais amplamente documentada, e funciona independentemente da revisão da placa. Passo a passo completo com fotos: tutorial de Chuck Nemeth, baseado na correção original desenvolvida nesta thread do EEVblog.
  • Correção sem solda — em placas que já expõem um pino de 3,3V sobrando ao lado de um pino de 5V em um dos headers, você obtém o mesmo resultado cortando uma única trilha e ligando dois pinos existentes com um jumper. Não é preciso ferro de solda. Passo a passo completo com fotos: tutorial de Sawyer Shepherd.

Seja qual for a correção que você usar, confira o resultado com um multímetro antes de conectar um chip. Alimentar um chip que só suporta 3,3V com 5V é exatamente o modo de falha que você está tentando evitar.

Fontes & leitura complementar