Documentation de mes modifications au transistorsteter AVR.
Un testeur de transistor est un appareil où vous pouvez insérer différents types de composants électroniques et les faire analyser. Il lit non seulement des transistors et vous indique s'il s'agit du NPN ou du PNP, mais il vous indique la résistance des résistances ou la capacité des condensateurs, et plus encore. Il existe de nombreux types différents, et ils sont généralement très bon marché.
J'ai le kit GM328 de Banggood ( plus disponible là-bas ), parfois identifié comme ay-at.
Matériel notable:
Pour améliorer la précision du testeur, vous pouvez effectuer des modifications simples.
(Image de https://github.com/upcycle-electronics/avr-transistor-teter)
Voir aussi cet article sur EEVBLOG.
De la lecture du K-Firmware:
" Les résistances R1 à R6 sont essentielles pour les mesures et ces résistances 680Ω et 470kΩ devraient être des résistances de type de mesure (tolérance de 0,1%) pour obtenir la pleine précision. "
" La référence de tension de précision de 2,5 V supplémentaire connectée à PIN PC4 (ADC4) peut être utilisée pour vérifier et calibrer la tension VCC, mais n'est pas requise. Vous pouvez utiliser un LM4040-AIZ2.5 (0,1%), un LT1004CZ-2.5 ( 0,8%) ou un LM336-Z2.5 (0,8%) comme référence de tension. Valeur de résistance plus élevée (47kΩ).
De la lecture du M-Firmware:
" La référence externe de tension de 2,5 V ne doit être activée que si elle est au moins 10 fois plus précise que le régulateur de tension. Sinon, cela aggraverait les résultats. Si vous utilisez un MCP1702 avec une tolérance typique de 0,4% comme régulateur de tension que vous Je n'ai vraiment pas besoin d'une référence de tension de 2,5 V. "
La partie sur R16 dans le Readme du K-Firmware est déroutant car elle n'est pas mentionnée dans la lecture du M-Firmware. Ce message confirme qu'il n'est nécessaire que pour le K-Firmware:
" Pour exécuter le m-Firmware, vous pouvez sauter l'étape # 3 ou supprimer R16 (pas besoin de le remplacer). Lorsque HW_REF25 est désactivé (paramètre par défaut), le firmware ignorera toute référence de tension externe. Le K-Firmware gère les références externes un peu Différent et vérifie toujours une référence de 2,5 V (pas de paramètre pour désactiver cela).
J'ai choisi de commander des résistances de 0,1% et juste le régulateur de tension MCP1702, en sautant la référence de tension. A également ajouté un cristal de 16 MHz pour une vitesse accrue:
Les changements concrètes, référencés aux schémas:
C'est à quoi cela ressemble avec ces changements en place:
Les résistances de 0,1% (noir) sont un peu plus épaisses que la valeur par défaut (bleu), donc elles chevauchent un peu.
Il existe 2 choix de firmware différents pour le testeur de transistor. L'original est le K-Firmware. Le testeur est livré avec la version 1.12k (assez ancien), et le plus récent est de 1,13k. Le développement du K-Firmware est actuellement en attente. Il a été fourchu dans le M-Firmware, qui est réécrit et avec des fonctionnalités supplémentaires, et toujours en développement actif.
La source K-Firmware est disponible ici, avec un micrologiciel précompilé pour le répertoire AY-AT dans le répertoire Mega328_Color_Kit. Il y a aussi un makefile là-bas avec les paramètres corrects. La source du M-Firmware est disponible ici, mais uniquement sous forme de tarball. Il n'y a pas de versions précompilées. Les deux wares firmes peuvent également être trouvés ici.
J'ai choisi d'utiliser le M-Firmware, car il est toujours activement développé. La dernière version au moment de la rédaction est de 1,42 m.
Il y a 3 fichiers de configuration dans le firmware qui doivent être ajustés. Voir le fichier "clones" (à partir du firmware TGZ) pour les modifications de base requises pour créer un micrologiciel compatible pour l'AY-AT. Les modifications supplémentaires que j'ai apportées sont documentées ici. Les fichiers sont également disponibles dans le répertoire du micrologiciel.
HW_REF25
désactivé car je n'utilise pas la référence de tension TL431A ou le remplacement LM4040 recommandé.SW_IR_RECEIVER
parce que le firmware était trop grand (105%) et ne s'adapterait pas à l'atmega328p. Le soutien à l'IR n'est pas important pour moi, il était donc OK de désactiver.UI_AUTOHOLD
car le mode de test continu était ennuyeux. Je préfère prendre le temps dont j'ai besoin pour lire le résultat.POWER_OFF_TIMEOUT
pour qu'il s'éteint lorsqu'il est inactif.SW_POWER_OFF
pour que je puisse le désactiver à partir du menu. LCD_LATE_ON
car l'écran est très brouillé lorsqu'il est initialisé et ce paramètre le rend bien. FREQ
à 16 en raison de mon changement de 8 à 16 MHz de cristal. Si vous souhaitez simplement construire un nouveau firmware et ne vous souciez d'aucune des modifications matérielles décrites ici, vous pouvez suivre les exemples de configuration à ces exceptions:
HW_REF25
FREQ
réglé sur 8Cela vous donnera un firmware qui fonctionne sur un "stock" GM328 AY-AT de Banggood.
En plus des outils de construction déjà installés, j'ai dû ajouter les packages suivants (en OpenSUSE):
avr-libc
cross-avr-gcc9
Puis make
pour construire.
Lorsque la construction est terminée, vous devez avoir ces fichiers, qui composent le firmware:
ComponentTester.eep
ComponentTester.hex
Et la sortie du compilateur devrait se terminer avec quelque chose comme ceci:
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)
Si l'un d'eux est à 100% plein, vous avez trop activé dans le micrologiciel et cela ne fonctionnera pas.
Pour flasher le firmware, nous avons besoin de 3 fichiers. Les 2 fichiers de firmware d'en haut, et composantterSter.cfg. Le dernier fichier contient la configuration des fusibles de l'ATMEGA328P. La configuration du fusible est extraite du makefile. Pour voir ce que les fusibles signifient, vous pouvez utiliser cette calculatrice en ligne.
L'AY-AT ne prend pas en charge le firmware qui clignote hors de la boîte. Il y a 2 façons de contourner cela.
La première option ne nécessite plus de modfications au testeur de transistor, mais vous devez retirer la puce de la prise et l'insérer dans le programmeur chaque fois que vous souhaitez mettre à jour le micrologiciel.
J'utilise un programmeur Universal TL866II Plus avec le logiciel Open Source MiniPro pour Linux. Voir https://github.com/blurpy/minipro pour en savoir plus sur la façon d'utiliser.
Avec la puce du programmeur, exécutez simplement ces commandes:
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
Ce devrait être ça.
L'autre option consiste à souder des broches à l'arrière de la carte de circuit imprimé pour ajouter l'en-tête ICSP manquant qui vous permet de flasher le firmware en circuit. Plus de travail à l'avance, mais très utile si vous mettez souvent à jour le firmware.
J'ai ajouté des épingles d'en-tête à angle droit comme ceci:
Ceci est le pinout (en miroir par rapport à ci-dessus):
Il existe de nombreux appareils différents qui peuvent être utilisés pour flasher avec un en-tête ICSP, comme cet exemple en utilisant un Arduino Uno comme programmeur, mais j'utiliserai le TL866II plus mentionné ci-dessus, car il prend également en charge le mode ICSP, avec le brochage suivant :
Avec des fils connectés entre le testeur de transistor (avec une puissance supprimée) et le programmeur, exécutez simplement ces commandes:
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
Ce devrait être ça.
Ceci est le résultat fini après avoir clignoté le nouveau firmware:
Vous pouvez trouver le firmware d'origine ici si vous souhaitez restaurer un firmware de travail connu.
Au départ, je n'ai pas prêté attention à la sortie après l'étape de compilation:
AVR Memory Usage
----------------
Device: atmega328
Program: 34784 bytes (106.2% Full)
Cela a bien fonctionné pour flasher le firmware, mais lorsque vous essayez de démarrer le testeur, il flasquera rapidement blanc sur l'écran, puis s'éteint. Je pensais que c'était un problème matériel au début, mais lors du test du firmware d'origine, cela fonctionnait. Après avoir désactivé suffisamment de fonctionnalités dans ce firmware pour obtenir en dessous de la mémoire 100%, cela a également fonctionné.
Lorsque j'ai oublié de configurer l'écran dans config_328.h
avant de compiler et de clignoter, le testeur s'allume et affiche un écran blanc jusqu'à ce que l'alimentation soit supprimée. Facilement corrigé en ajoutant la configuration correcte et en réessayant.
Après avoir clignoté un nouveau firmware, il est recommandé de suivre les étapes décrites dans le ReadMe pour exécuter un auto ajustement.
Résumé court des étapes:
Adjustment
Save
dans le menu et choisissez l'emplacement n ° 1Lorsqu'on lui a demandé de court-circuiter les sondes, j'ai utilisé un fil à pain court entre le point de test 1 et le point de test 2, et entre le point de test 2 et le point de test 3 dans la prise ZIF.