A arquitetura AM5 trouxe saltos imensos de performance, mas também introduziu um dos problemas mais frustrantes para quem monta PCs de alto desempenho: a instabilidade do Memory Training durante a inicialização a frio, o infame Cold Boot.
Aqui na bancada da RM Info, recentemente pegamos um caso crítico envolvendo uma placa-mãe MSI B650M GAMING WIFI, um processador Ryzen 7 8700G e 32GB de memória DRAM DDR5 JUHOR. O sintoma era clássico: ao ligar o PC pela primeira vez no dia, a tela ficava preta e os LEDs de diagnóstico de CPU e RAM travavam acesos. A máquina só dava vídeo se o usuário forçasse o desligamento ou apertasse o botão Reset.
O Diagnóstico e a Limitação do Hardware
Módulos de memória custo-benefício costumam utilizar chips com tolerâncias elétricas mais baixas. Durante o Cold Boot (quando os capacitores estão totalmente descarregados), a placa-mãe falha em negociar os tempos primários com a memória.
Tentamos todas as abordagens via software e firmware:
- Ativação simultânea do Memory Context Restore e Power Down Enable.
- Teste de regressão com todas as versões de BIOS fornecidas pela MSI.
- Ajuste manual cravado nas tensões do SoC (1.25V), VDDIO e VDD.
- Fixação da frequência em 5200 MT/s (JEDEC base).
Para descartar falhas físicas na fonte ou na placa, utilizamos nosso osciloscópio Rigol de 4 canais para sondar as linhas do PMIC da memória e o sinal de Power Good. Eletronicamente, a entrega de energia estava perfeita. O problema era puramente lógico: o controlador de memória do Ryzen não conseguia sincronizar no primeiro disparo elétrico, mas funcionava 100% no segundo (após os capacitores já estarem carregados).
A solução definitiva seria trocar as memórias por um kit com chips SK Hynix homologados (QVL), mas nem sempre essa é uma opção viável no momento para o cliente. Foi aí que entrou a engenharia criativa.
A Solução: Automação de Reset com ATtiny85
Para evitar que o usuário precisasse abrir o gabinete ou apertar o reset manualmente toda vez que fosse ligar o PC, desenvolvemos um módulo de intervenção autônoma.
O projeto consiste em um microcontrolador ATtiny85 que "escuta" o acionamento da fonte. Ele aguarda exatos 4 segundos, pisca um LED de aviso e envia um pulso limpo para os pinos de Reset da placa-mãe através de um optoacoplador, forçando o re-training térmico de forma invisível.
Lista de Componentes:
| Componente | Função |
| Microcontrolador ATtiny85 | Cérebro da automação (pode usar uma placa Digispark). |
| Optoacoplador PC817 | Isola o microcontrolador da placa-mãe, agindo como um interruptor seguro. Pode ser usado outro, de alguma sucata de fonte. |
| Resistor 220Ω até 470Ω | Limita a corrente do LED de sinalização e do LED interno do PC817. |
| Fios e Conectores Dupont | pode usar qualquer um eu usei por exemplo o Molex |
Guia Passo a Passo
1. O Circuito Eletrônico
- A alimentação do ATtiny85 (pinos VCC e GND) deve ser puxada de uma conexão 5V da fonte (como um cabo Molex ou SATA) ou de uma porta USB interna da placa-mãe que forneça energia ao ligar.
- O pino de saída digital 0 (PB0) do ATtiny85 vai para o ânodo (pino 1) do optoacoplador PC817, passando por um resistor de 220Ω. O cátodo (pino 2) do PC817 vai para o GND.
- Os pinos de saída do optoacoplador (pinos 3 e 4) devem ser soldados a conectores Dupont fêmea, que serão plugados exatamente nos dois pinos de RESET SW do painel frontal da placa-mãe.
- Um LED com resistor pode ser ligado ao pino PB1 para servir de aviso visual.
2. O Código (Arduino IDE)
Você pode gravar esse código no ATtiny85 utilizando um gravador de soquete dedicado, uma placa Digispark via USB, ou até mesmo usando um RP2040 ou Arduino Uno como gravador ISP.
// Pinos do ATtiny85
const int pinOpto = 0; // Liga ao pino 1 do PC817
const int pinLed = 1; // Liga ao LED de status
void setup() {
pinMode(pinOpto, OUTPUT);
pinMode(pinLed, OUTPUT);
digitalWrite(pinOpto, LOW); // Garante que o reset está inativo
// Contagem de 4 segundos com feedback visual
for(int i = 0; i < 4; i++) {
digitalWrite(pinLed, HIGH);
delay(500);
digitalWrite(pinLed, LOW);
delay(500);
}
// Dispara o pulso de Reset (simula o clique no botão)
digitalWrite(pinOpto, HIGH);
delay(300); // 300 milissegundos é o suficiente
digitalWrite(pinOpto, LOW);
}
void loop() {
// Entra em repouso infinito até o próximo ciclo de energia total
}
3. Instalação e Resultado
Conecte o módulo dentro do gabinete. Ao pressionar o botão Power, a placa-mãe tentará iniciar e travará nos LEDs de erro. O ATtiny85 fará a contagem silenciosa, o LED piscará e, em 4 segundos, o optoacoplador fechará o curto seguro nos pinos de reset. A placa-mãe reiniciará automaticamente e dará vídeo em seguida, entregando um sistema 100% estável no Windows.
Essa é uma excelente forma de aplicar eletrônica básica para resolver frustrações de hardware enquanto um upgrade definitivo não é realizado.
Gostaria de aproveitar para transformar esse conteúdo também no roteiro principal para o seu canal @RMINFOSG no YouTube?
Se vocês gostaram desse Post não deixe de compartilhar com seus amigos!!!
E para não perder nenhuma novidade nos sigam nas redes sociais:
Twitter: @Bulfaitelo
Facebook: Bulfaitelo Project
Blogger: Bulfaitelo Project

0 Comentários