Documentação de minhas modificações no AVR TransistorTester.
Um testador de transistor é um dispositivo em que você pode inserir diferentes tipos de componentes eletrônicos e analisá -los. Ele não apenas lê transistores e diz se é NPN ou PNP, mas também informa a resistência de resistores ou capacitância de capacitores e muito mais. Existem muitos tipos diferentes e geralmente são muito baratos.
Eu tenho o kit GM328 da Banggood ( que não está mais disponível lá ), às vezes identificado como AY-AT.
Hardware notável:
Para melhorar a precisão do testador, existem algumas modificações simples que você pode fazer.
(Imagem de https://github.com/upcycle-electronics/avr-transistor-tester)
Veja também este post no Eevblog.
Do Readme do K-Firmware:
" Os resistores R1 a R6 são críticos para medições e esses resistores de 680Ω e 470kΩ devem ser resistores do tipo de medição (tolerância de 0,1%) para obter a precisão total".
" A referência adicional de tensão de precisão de 2,5V conectada no Pin PC4 (ADC4) pode ser usada para verificar e calibrar a tensão VCC, mas não é necessária. Você pode usar um LM4040-AIZ2.5 (0,1%), um LT1004CZ-2.5 ( 0,8%) ou um LM336-Z2.5 (0,8%) como referência de tensão. Valor de resistência mais alto (47kΩ).
Do ReadMe do M-Firmware:
" A referência externa de tensão de 2,5V deve ser ativada apenas se for pelo menos 10 vezes mais precisa que o regulador de tensão. Caso contrário, isso pioraria os resultados. Se você estiver usando um MCP1702 com uma tolerância típica de 0,4% como regulador de tensão você Realmente não precisa de uma referência de tensão de 2.5V.
A parte de R16 no ReadMe do K-Firmware é confusa, pois não é mencionada no ReadMe do M-Firmware. Esta postagem confirma que é necessário apenas para o K-Firmware:
" Para executar o M-Firmware, você pode pular a etapa 3 ou remover R16 (não é necessário substituí-lo). Diferente e sempre verifica uma referência 2.5V (sem configuração para desativar isso).
Eu escolhi pedir resistores de 0,1% e apenas o regulador de tensão MCP1702, pulando a referência de tensão. Também adicionou um cristal de 16MHz para aumentar a velocidade:
As mudanças concretas, referenciadas aos esquemas:
É assim que fica com essas mudanças no lugar:
Os resistores de 0,1% (pretos) são um pouco mais espessos que o padrão (azul), então eles se sobrepõem um pouco.
Existem 2 opções de firmware diferentes para o testador do transistor. O original é o K-Firmware. O testador vem com a versão 1.12k (bastante antigo) e o mais novo é 1.13k. O desenvolvimento do K-Firmware está atualmente em espera. Ele foi bifurcado no M-Firmware, que é reescrito e com recursos adicionais, e ainda sob desenvolvimento ativo.
A fonte K-Firmware está disponível aqui, com firmware pré-compilado para o AY-AT no diretório MEGA328_COLOR_KIT. Há também um Makefile lá com os parâmetros corretos. A fonte do M-Firmware está disponível aqui, mas apenas como tarballs. Não há versões pré -compiladas. Ambos os firmes também podem ser encontrados aqui.
Eu escolhi usar o M-Firmware, devido a ele ainda ser desenvolvido ativamente. A versão mais recente no momento da redação é de 1,42m.
Existem 3 arquivos de configuração no firmware que precisam ser ajustados. Consulte o arquivo "Clones" (do firmware TGZ) para as alterações básicas necessárias para criar um firmware compatível para o AY-AT. As mudanças adicionais que fiz estão documentadas aqui. Os arquivos também estão disponíveis no diretório de firmware.
HW_REF25
desativado porque não uso a referência de tensão TL431A ou a substituição recomendada do LM4040.SW_IR_RECEIVER
DESABILIDADES porque o firmware era muito grande (105%) e não se encaixaria no atmga328p. O apoio à RI não é importante para mim, então não foi bom desativar.UI_AUTOHOLD
porque o modo de teste contínuo era irritante. Prefiro dedicar o tempo que preciso ler o resultado.POWER_OFF_TIMEOUT
para que ele desligue quando inativo.SW_POWER_OFF
para que eu possa desligá -lo do menu. LCD_LATE_ON
porque a tela é muito distorcida quando inicializada e essa configuração faz com que pareça bem. FREQ
para 16 devido à minha mudança de 8 a 16MHz cristal. Se você deseja apenas criar um novo firmware e não se importa com nenhuma das modificações de hardware descritas aqui, você pode seguir os exemplos de configuração com essas exceções:
HW_REF25
FREQ
definido como 8Isso fornecerá um firmware que é executado em um GM328 AY-AT de Banggood.
Além das ferramentas de construção que já estavam instaladas, tive que adicionar os pacotes a seguir (no OpenSUSE):
avr-libc
cross-avr-gcc9
Então make
para construir.
Quando a construção termina, você deve ter esses arquivos, que compõem o firmware:
ComponentTester.eep
ComponentTester.hex
E a saída do compilador deve terminar com algo assim:
AVR Memory Usage
----------------
Device: atmega328
Program: 32234 bytes (98.4% Full)
(.text + .data + .bootloader)
Data: 248 bytes (12.1% Full)
(.data + .bss + .noinit)
EEPROM: 738 bytes (72.1% Full)
(.eeprom)
Se alguma delas estiver mais de 100% cheia, você terá muita coisa ativada no firmware e não funcionará.
Para piscar o firmware, precisamos de 3 arquivos. Os 2 arquivos de firmware de cima e ComponentTester.cfg. O último arquivo contém a configuração dos fusíveis do ATMEGA328P. A configuração do fusível é extraída do makefile. Para ver o que os fusíveis significam que você pode usar esta calculadora on -line.
O AY-AT não suporta o firmware pisando para fora da caixa. Existem 2 maneiras de contornar isso.
A primeira opção não requer mais modificações para o testador do transistor, mas você deve remover o chip do soquete e inseri -lo no programador toda vez que deseja atualizar o firmware.
Eu uso um programador universal TL866II Plus, juntamente com o software de código aberto Minipro para o Linux. Consulte https://github.com/blurpy/minipro para obter mais informações sobre como usar.
Com o chip no programador, basta executar esses comandos:
minipro -p "ATMEGA328P@DIP28" -E
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e
Deve ser isso.
A outra opção é soldar os pinos na parte traseira da placa de circuito para adicionar o cabeçalho de ICSP ausente que permite exibir o firmware no circuito. Mais trabalhe com antecedência, mas muito útil se você atualizar o firmware com frequência.
Eu adicionei pinos de cabeçalho do ângulo reto assim:
Este é o pinout (espelhado em comparação com acima):
Existem muitos dispositivos diferentes que podem ser usados para piscar com um cabeçalho de ICSP, como este exemplo usando um Arduino UNO como programador, mas usarei o TL866II Plus mencionado acima, pois também suporta o modo ICSP, com o seguinte pinheiro :
Com os fios conectados entre o testador do transistor (com a energia removida) e o programador, basta executar esses comandos:
minipro -p "ATMEGA328P@DIP28" -E -i
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e -i
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e -i
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e -i
Deve ser isso.
Este é o resultado final depois de exibir o novo firmware:
Você pode encontrar o firmware original aqui se quiser restaurar um firmware de trabalho conhecido.
Inicialmente, não prestei atenção à saída após a etapa de compilação:
AVR Memory Usage
----------------
Device: atmega328
Program: 34784 bytes (106.2% Full)
Funcionou bem para exibir o firmware, no entanto, ao tentar iniciar o testador, ele rapidamente piscaria branco na tela e depois desligava. Eu pensei que era um problema de hardware no começo, mas ao testar o firmware original, funcionou. Depois de desativar recursos suficientes neste firmware para obter abaixo de 100% de memória, ele também funcionou bem.
Quando esqueci de configurar a tela em config_328.h
antes de compilar e piscar, o testador ligava e exibia uma tela branca até que a energia fosse removida. Facilmente corrigido adicionando a configuração correta e tentando novamente.
Depois de piscar um novo firmware, é recomendável seguir as etapas descritas no ReadMe para executar um auto -ajuste.
Resumo curto das etapas:
Adjustment
Save
no menu e escolha o slot #1Quando solicitado a diminuir as sondas, usei o fio curto da placa de pão entre o ponto de teste 1 e o ponto de teste 2 e entre o ponto de teste 2 e o ponto de teste 3 no soquete ZIF.