Sim, isso é um haiku. (EDIT: consertou ... agora é na verdade um haicai)
Não, eu não estou sorrindo.
Estou fazendo alguns testes padrão; vendo o que acontece quando um dos dois trilhos de energia é curto para GND em uma PCB que eu projetei. Estamos falando de um trilho de alimentação de 12 V fornecido por uma fonte de alimentação de bancada, com um conversor de fan de 5 V separado que está fornecendo o outro trilho na PCB (à qual meu ATmega328PB está conectado).
O trilho de 12 V possui um monte de tomadas de barril DC que serão expostas aos usuários finais. Então, naturalmente, decidi colocar uma chave de fenda em um deles para realizar meu teste de curto-circuito.
Eis que uma nuvem de fumaça do meu ATmega328PB.
Eu acho que isso significa que uma das seguintes coisas aconteceu:
Tempo esquemático
Aqui está o esquema das conexões com o ATmega328PB:
Aqui estão todos os esquemas das coisas no projeto que têm uma conexão com o trilho de 12 V (o trilho VBAT +) e que controlam os caminhos de retorno atuais da GND:
E aqui está um esquema das tomadas barril e da tomada associada, detectando pinos (observe que eles se conectam diretamente a alguns pinos do ATmega328PB sem resistência em série):
O Plano de Curto-Circuito
O plano para lidar com curtos-circuitos no trilho de 12 V era simplesmente desligar o FET do canal N LOAD_FET devido a uma das duas condições lógicas sendo atendidas no firmware:
- A amostragem ADC a uma taxa de 1 Hz detectaria a condição de sobrecorrente e faria com que a chave FET_LOAD parasse de conduzir, cortando assim a corrente de curto-circuito
- A tensão que alimenta o ATmega entraria em condição de escurecimento e o MCU redefiniria e inicializaria o interruptor FET_LOAD para "off", cortando assim a corrente de curto-circuito
The Big Smoke
Aqui está uma sonda de osciloscópio do que acontece com o trilho Vbat + no CH1 (amarelo) e o trilho +5 no CH2 (azul) ao colocar o Vbat + no GND em curto através da aplicação de uma chave de fenda de joalheiro aos fios expostos de um cabo conectado ao circuito do conector do barril (não enfiei a chave de fenda no receptáculo ) enquanto ela está sendo alimentada por uma fonte de bancada definida para 12V a 5 Amps:
Depois que isso acontecia, o ATmega ficava muito quente sempre que eu ligava a placa e estava efetivamente atuando como um curto-circuito entre sua entrada de + 5V e o terra do sinal. Dessoldei o ATmega com ar quente e testei o FET do canal N FET_LOAD para ver se estava frito. De fato, ele falhou de tal maneira que não seria mais ligado ou desligado completamente quando uma tensão de portão fosse aplicada a +5 ou terra de sinal, mas em vez disso estivesse operando em algum lugar na zona do crepúsculo. Estava caindo cerca de 2,3 volts enquanto conduzia ~ 200 mA, estando "ligado" ou "desligado" quando uma carga foi conectada ao conector do barril.
Palpite
Houve um palpite de que, porque o FET foi danificado, o vetor de dano ao ATmega pode ter sido causado pela transmissão de alta tensão através do dreno do FET para o seu portão e para o MCU. Fiz alguns testes subsequentes com tensões mais baixas fornecendo o trilho de 12V. Observe que as três primeiras imagens são basicamente as mesmas, mas com correntes de pico diferentes. Quando o ATmega é desligado (devido à queda de tensão no trilho Vbat +), o sinal LOAD_GND_ENABLE fornecido pelo MCU (azul, abaixo) por sua vez fica baixo, cortando a chave FET_LOAD .
Lenda:
CH1 = Tensão através de Rshunt (0,005 ohm) CH2 = Tensão no sinal LOAD_GND_ENABLE (conectado ao ATmega)
Vbat + fornecido em 6V:
Vbat + fornecido em 7V:
Vbat + fornecido em 8V:
Vbat + fornecido em 9V:
Nesse último, a corrente nunca parou de aumentar e o sinal LOAD_GND_ENABLE deu uma dança descolada, mas, ao todo, parece que os limites máximos nunca foram violados no pino LOAD_GND_ENABLE (pelo menos eu acho que não ... Eu só tenho um escopo de 2 canais e teria que ter medido o trilho de + 5V para saber qual é a tensão em LOAD_GND_ENABLE wrt Vcc).
Próximos passos
Eu só tenho 1 placa restante que pode ser sacrificada, portanto meu plano é:
Use um ATmega328PB em branco para que todos os seus pinos sejam padronizados para alta impedância sem periféricos configurados / inicializados. Repita o teste de curto-circuito para ver se o ATmega328PB ainda fica com fumaça. Se não funcionar, o MCU deve ter falhado porque estava fornecendo / afundando muita corrente em um de seus pinos configurados como saída enquanto estava executando o firmware nos testes anteriores.
Teste com um ATmega328PB montado em uma placa de interrupção (infelizmente este chip não vem em pacotes DIP) conectado ao PCB via flywires. Seletivamente, comece a conectar um único fio de cada vez, executando o teste e ver qual fio acaba sendo o responsável por fritar o ATmega328PB.
Peça um novo PCB de amostra com layout alterado, de modo que todos os traços que se conectem ao ATmega328PB sejam conectados por pontes de solda que possam ser soldadas à mão enquanto eu testo. Dessa forma, o teste de curto-circuito (e qualquer outro teste) pode ser realizado com o ATmega conectado a um número limitado de sinais por vez e facilita a conexão de todos os outros circuitos externos a essas pontes de solda para controlá-los independentemente do ATmega .
Sim, é realmente uma pergunta (s)!
E a pergunta (s) é:
- alguém vê alguma coisa aqui que eu não. Isso é óbvio? Espero que não seja óbvio ...
- Qual seria o seu próximo passo?