Dokumentation meiner Modifikationen zum AVR -Transistelester.
Ein Transistor -Tester ist ein Gerät, bei dem Sie verschiedene Arten von elektronischen Komponenten einfügen und diese analysieren lassen können. Es liest nicht nur Transistoren und sagt Ihnen, ob es sich um NPN oder PNP handelt, sondern auch den Widerstand von Widerständen oder Kapazität von Kondensatoren und vielem mehr. Es gibt viele verschiedene Arten und sie sind normalerweise sehr billig.
Ich habe das GM328-Kit von Banggood ( dort nicht mehr verfügbar ), manchmal als AY-AT identifiziert.
Bemerkenswerte Hardware:
Um die Genauigkeit des Tester zu verbessern, können Sie einige einfache Änderungen vornehmen.
(Bild von https://github.com/upcycle-electronics/avr-transistor-tester)
Siehe auch diesen Beitrag über Eevblog.
Aus dem Readme der K-Firmware:
" Die Widerstände R1 bis R6 sind für Messungen von entscheidender Bedeutung, und diese Widerstände von 680 Ω und 470 ken sollten Resistenten des Messtyps (Toleranz von 0,1%) sein, um die volle Genauigkeit zu erhalten. "
" Die zusätzliche 2,5-V-Präzisionsspannungsreferenz, die am Pin PC4 (ADC4) angeschlossen ist, kann zum Überprüfen und Kalibrieren der VCC-Spannung verwendet werden, ist jedoch nicht erforderlich. Sie können einen LM4040-Aiz2.5 (0,1%), A LT1004CZ-2,5 (verwenden 0,8%) oder LM336-Z2,5 (0,8%) als Spannungsreferenz. Höherer Widerstandswert (47KΩ).
Aus dem Readme der M-Firmware:
" Die externe 2,5 -V -Spannungsreferenz sollte nur aktiviert sein, wenn es mindestens 10 -mal präziser ist als der Spannungsregler. Andernfalls würde es die Ergebnisse verschlimmern. Wenn Sie einen MCP1702 mit einer typischen Toleranz von 0,4% als Spannungsregler verwenden Ich brauche wirklich keine 2,5 -V -Spannungsreferenz. "
Der Teil über R16 im Readme der K-Firmware ist verwirrend, da sie im Readme der M-Firmware nicht erwähnt wird. Dieser Beitrag bestätigt, dass dies nur für die K-Firmware erforderlich ist:
" Zum Ausführen der M-Firmware können Sie Schritt 3 überspringen oder R16 entfernen (NICHT ersetzen Sie sie). Wenn HW_REF25 deaktiviert ist (Standardeinstellung), ignoriert die Firmware eine externe Spannungsreferenz. Die K-Firmware behandelt externe Referenzen ein wenig Verschiedene und immer überprüft eine 2,5-V-Referenz (keine Einstellung, um dies zu deaktivieren).
Ich habe mich entschieden, 0,1% Widerstände und nur den MCP1702 -Spannungsregler zu bestellen und die Spannungsreferenz zu überspringen. Außerdem fügte ein 16 -MHz -Kristall für eine erhöhte Geschwindigkeit hinzu:
Die konkreten Änderungen, die auf die Schaltpläne verwiesen werden:
So sieht es mit diesen Änderungen aus:
Die 0,1% igen Widerstände (schwarz) sind etwas dicker als der Standard (blau), sodass sie sich ein wenig überlappen.
Es gibt 2 verschiedene Firmware -Auswahlmöglichkeiten für den Transistor -Tester. Das Original ist die K-Firmware. Der Tester wird mit Version 1.12k (ziemlich alt) geliefert, und der neueste ist 1.13K. Die Entwicklung der K-Firmware erfolgt derzeit. Es wurde in die M-Firmware eingeteilt, die umgeschrieben wird und zusätzliche Funktionen und immer noch unter aktiver Entwicklung.
Die K-Firmware-Quelle ist hier mit vorkompilierten Firmware für das AY-AT im Verzeichnis mega328_color_kit verfügbar. Dort gibt es auch eine Makefile mit den richtigen Parametern. Die Quelle der M-Firmware ist hier erhältlich, jedoch nur als Tarballs. Es gibt keine vorkompilierten Versionen. Beide Firmawares finden Sie auch hier.
Ich entschied mich für die Verwendung der M-Firmware, da sie immer noch aktiv entwickelt wurde. Die neueste Version zum Zeitpunkt des Schreibens ist 1,42 m.
In der Firmware gibt es 3 Konfigurationsdateien, die angepasst werden müssen. In der Datei "Klone" (aus der Firmware-TGZ) finden Sie die grundlegenden Änderungen, die zum Erstellen einer kompatiblen Firmware für das AY-AT erforderlich sind. Die zusätzlichen Änderungen, die ich vorgenommen habe, werden hier dokumentiert. Die Dateien sind auch im Firmware -Verzeichnis verfügbar.
HW_REF25
Da ich die TL431A -Spannungsreferenz oder den empfohlenen LM4040 -Ersatz nicht verwende.SW_IR_RECEIVER
Da die Firmware zu groß war (105%) und nicht in den ATMega328p passen würde. Die Unterstützung für IR ist mir nicht wichtig, daher war es in Ordnung, zu deaktivieren.UI_AUTOHOLD
, weil der kontinuierliche Testmodus ärgerlich war. Ich würde lieber die Zeit nehmen, die ich brauche, um das Ergebnis zu lesen.POWER_OFF_TIMEOUT
, so dass es im Leerlauf ausgeschaltet wird.SW_POWER_OFF
, damit ich es aus dem Menü ausschalten kann. LCD_LATE_ON
, da der Bildschirm bei der Initialisierung sehr verstümmelt ist und diese Einstellung es gut aussieht. FREQ
auf 16 verändert, weil meine Veränderung von 8 auf 16 MHz Kristall. Wenn Sie nur eine neue Firmware erstellen möchten und sich nicht für die hier beschriebenen Hardware -Modifikationen kümmern möchten, können Sie die Konfigurationsbeispiele mit diesen Ausnahmen befolgen:
HW_REF25
FREQ
auf 8 einstellenAuf diese Weise erhalten Sie eine Firmware, die auf einem "Aktien" -GM328 AY-AT von Banggood ausgeführt wird.
Zusätzlich zu den bereits installierten Build -Tools musste ich die folgenden Pakete hinzufügen (in OpenSuse):
avr-libc
cross-avr-gcc9
Dann make
, um zu bauen.
Wenn das Erstellen fertig ist, sollten Sie diese Dateien haben, die die Firmware ausmachen:
ComponentTester.eep
ComponentTester.hex
Und der Compiler -Ausgang sollte mit so etwas enden:
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)
Wenn eine davon zu mehr als 100% voll ist, haben Sie in der Firmware zu viel aktiviert und es funktioniert nicht.
Um die Firmware zu blinken, benötigen wir 3 Dateien. Die 2 Firmware-Files von oben und componenttester.cfg. Die letzte Datei enthält die Konfiguration der Sicherungen des ATMega328p. Die Sicherungskonfiguration wird aus dem Makefile extrahiert. Um zu sehen, was die Sicherungen bedeuten, können Sie diesen Online -Taschenrechner verwenden.
Das AY-AT unterstützt keine Firmware, die aus der Box flasert. Es gibt 2 Wege.
Die erste Option erfordert keinen weiteren Modifikationen für den Transistor -Tester. Sie müssen den Chip jedoch jedes Mal, wenn Sie die Firmware aktualisieren möchten, aus dem Socket entfernen und in den Programmierer einfügen.
Ich verwende einen TL866II -Plus -Universalprogrammierer zusammen mit der Minipro Open Source -Software für Linux. Weitere Informationen zur Verwendung finden Sie unter https://github.com/blurpy/minipro.
Führen Sie mit dem Chip im Programmierer diese Befehle aus:
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
Das sollte es sein.
Die andere Möglichkeit besteht darin, Pins auf der Rückseite der Leiterplatte zu löten, um den fehlenden ICSP -Header hinzuzufügen, mit dem Sie die Firmware in Schaltkreis flashen können. Weitere Arbeit im Voraus, aber sehr nützlich, wenn Sie die Firmware häufig aktualisieren.
Ich habe den rechten Winkel -Header -Stiften wie folgt hinzugefügt:
Dies ist die Pinout (im Vergleich zu oben):
Es gibt viele verschiedene Geräte, die verwendet werden können, um mit einem ICSP -Header wie diesem Beispiel mit einem Arduino uno als Programmierer zu blinken. Ich werde jedoch den oben erwähnten TL866II -Plus verwenden, da es auch den ICSP -Modus mit der folgenden Pinout unterstützt :
Mit Drähten, die zwischen dem Transistor -Tester (mit entferntem Strom) und dem Programmierer angeschlossen sind, führen Sie einfach diese Befehle aus:
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
Das sollte es sein.
Dies ist das fertige Ergebnis nach dem Flashen der neuen Firmware:
Sie finden die ursprüngliche Firmware hier, wenn Sie eine bekannte Firmware für funktionierende Firmware wiederherstellen möchten.
Ich habe nach dem Kompilierschritt zunächst keine Aufmerksamkeit auf die Ausgabe gelenkt:
AVR Memory Usage
----------------
Device: atmega328
Program: 34784 bytes (106.2% Full)
Es hat gut funktioniert, um die Firmware zu blinken. Beim Versuch, den Tester zu starten, blitzte es schnell weiß auf dem Bildschirm und schaltete sich dann aus. Ich dachte, es wäre zunächst ein Hardwareproblem, aber beim Testen der ursprünglichen Firmware funktionierte es. Nachdem genügend Funktionen in dieser Firmware deaktiviert wurden, um einen 100% igen Speicher zu erreichen, funktionierte es auch gut.
Als ich vergessen habe, den Bildschirm in config_328.h
vor dem Kompilieren und Blinken zu konfigurieren, schaltete sich der Tester ein und zeigte einen weißen Bildschirm an, bis die Stromversorgung entfernt wurde. Einfach durch Hinzufügen der richtigen Konfiguration und erneut versuchen, erneut zu versuchen.
Nach einem neuen Firmware wird empfohlen, die im Readme beschriebenen Schritte auszuführen, um eine Selbstanpassung auszuführen.
Kurze Zusammenfassung der Schritte:
Adjustment
Save
und wählen Sie Slot #1Bei der Aufforderung, die Sonden zu verkürzen, verwendete ich einen kurzen Breadboard -Draht zwischen den Testpunkt 1 und dem Testpunkt 2 und zwischen dem Testpunkt 2 und dem Testpunkt 3 in der ZIF -Sockel.