Inhaltsverzeichnis:

AVR-Programmierer mit Hochspannung - Gunook
AVR-Programmierer mit Hochspannung - Gunook

Video: AVR-Programmierer mit Hochspannung - Gunook

Video: AVR-Programmierer mit Hochspannung - Gunook
Video: Stop Wasting Time, Use AVR Timer Interrupts | Baremetal AVR Programming Tutorial 2024, November
Anonim
AVR-Programmierer mit Hochspannung
AVR-Programmierer mit Hochspannung
AVR-Programmierer mit Hochspannung
AVR-Programmierer mit Hochspannung

Dies ist mein erstes Instructable. Das von mir entworfene Board ist ein AVR-Programmierer. Das Board vereint die Funktionen von 4 separaten Prototyp-Boards, die ich in den letzten Jahren gebaut habe:

- Ein Hochspannungs-AVR-Programmierer, der hauptsächlich auf ATtiny-Geräten verwendet wird, um Sicherungen einzustellen, wenn die Reset-Leitung für E/A verwendet wird.

- Arduino als ISP, 5V und 3v3 (zählt als zwei der Funktionen)

- NOR-Flash-EEPROM-Programmierer (kopiert schnell von einer SD-Karte auf NOR-Flash)

Das Board verwendet gängige AMS1117 LDO-Spannungsregler, um 5V und 3v3 zu erhalten. Die Hochspannungsfunktion benötigt 12V. Dafür habe ich einen MT3608 DC-DC Aufwärtswandler verwendet. Der Mikrocontroller läuft mit 16MHz, 5V. Die Pegelverschiebung für alles, was 3v3 erfordert, wird mit einem LVC125A erreicht. Der LVC125A ist das, was Sie auf vielen SD-Kartenmodulen finden. Der MCU ist ein ATmega328pb. Der ATMega328pb ist fast der gleiche wie der gebräuchlichere ATMega328p, außer dass er 4 weitere I/O-Pins in der gleichen Größe hat.

Dieses Board ist Version 1.5. Neue Funktionen in dieser neuesten Version:- eine serielle USB-Schnittstelle.- Rückstellbare Poly-Sicherungen.- LED-Funktionsanzeigen unter den Funktionsauswahltasten.- ein Schalter zur Steuerung des seriellen Resets durch Trennen des DTR vom seriellen USB-Chip. - ein MOSFET, um die Stromversorgung des DC-DC 12V vollständig zu trennen, wenn es nicht verwendet wird.

Das Board hat die Möglichkeit, ein serielles AT24Cxxx I2C EEPROM hinzuzufügen und es gibt einen 5-poligen I2C JST-XH-05-Anschluss (GND/5V/SCL/SDA/INT1) zum Anschluss von I2C-Geräten.

Einer der komplizierteren Aspekte dieses Projekts war das Laden aller Funktionen/Skizzen auf das Board. Die einfachste Methode wäre gewesen, einfach eine Skizze herunterzuladen, wenn ich Funktionen ändern musste. Eine andere Methode wäre gewesen, alle Skizzen zu kombinieren. Ich habe mich gegen beide Methoden entschieden. Die Kombinationsmethode hätte es schwierig gemacht, Änderungen an den ursprünglichen Quellskizzen zu integrieren. Die Kombinationsmethode hat auch das Problem, dass die verfügbare SRAM-Menge nicht ausreichte, ohne die verwendeten Bibliotheken und Skizzen neu zu schreiben und zu graben, was wiederum ein Wartungsproblem ist.

Die von mir gewählte Methode bestand darin, eine Anwendung namens AVRMultiSketch zu schreiben, die mit der Arduino-IDE zusammenarbeitet, um die Skizzen durch Verschieben ihrer Speicherorte in Flash zu laden. Die Skizzenquellen werden in keiner Weise geändert. Sie laufen auf dem Brett, als wären sie die einzige Skizze. Wie das funktioniert, ist in der Open Source GitHub Readme für AVRMultiSketch ausführlich beschrieben. Weitere Informationen finden Sie unter https://github.com/JonMackey/AVRMultiSketch. Dieses Repository enthält auch die von mir verwendeten/geschriebenen/modifizierten Skizzen, die einzeln verwendet werden können.

Um zwischen den Skizzen zu wechseln, verfügt das Board über vier Schaltflächen: Reset und Schaltflächen mit der Bezeichnung 0, 1, 2. Wenn Sie beim Einschalten oder Zurücksetzen nichts tun, wird die zuletzt ausgewählte Funktion ausgeführt. Wenn Sie eine der nummerierten Tasten gedrückt halten, wählen Sie eine Skizze/Funktion aus. Die Skizze wird zur ausgewählten Skizze. Weiße LEDs unter jeder der Funktionstasten leuchten, um die aktuelle Auswahl widerzuspiegeln.

Derzeit beherbergt das Board nur 3 Skizzen, aber es könnten noch ein paar mehr gehostet werden. In diesem Fall, wenn nur 3 Bits / nummerierte Tasten angenommen werden, können bis zu 7 gehostet werden, wenn mehr als eine Taste gedrückt wird.

Der Schaltplan ist im nächsten Schritt beigefügt

Auf thingiverse ist eine minimale Stützhalterung erhältlich. Siehe

Das Board für Version 1.5 wird auf PCBWay geteilt. Siehe

Kontaktieren Sie mich, wenn Sie eine montierte und getestete Platine wünschen.

Schritt 1: Anleitung zum Zusammenbauen der Platine

Anleitung zum Zusammenbauen des Boards
Anleitung zum Zusammenbauen des Boards

Anweisungen zum Zusammenbauen des Boards (oder fast jedes kleinen Boards) folgen.

Wenn Sie bereits wissen, wie man eine SMD-Platine baut, fahren Sie mit Schritt 13 fort.

Schritt 2: Teile sammeln

Teile sammeln
Teile sammeln
Teile sammeln
Teile sammeln

Ich beginne damit, ein Stück Papier mit Etiketten für alle sehr kleinen Teile (Widerstände, Kondensatoren, LEDs) auf den Arbeitstisch zu kleben. Vermeiden Sie es, Kondensatoren und LEDs nebeneinander zu platzieren. Wenn sie sich vermischen, kann es schwierig sein, sie voneinander zu unterscheiden.

Mit diesen Teilen befülle ich dann das Papier. Am Rand füge ich die anderen, leicht zu identifizierenden Teile hinzu.

(Beachten Sie, dass ich dasselbe Blatt Papier für andere von mir entworfene Boards verwende, daher haben nur einige der Stellen auf dem Foto Teile neben / auf den Etiketten)

Schritt 3: Montieren Sie die Platine

Montieren Sie das Board
Montieren Sie das Board
Montieren Sie das Board
Montieren Sie das Board

Mit einem kleinen Stück Holz als Montageblock keile ich die Leiterplatte zwischen zwei Stück Schrott-Prototyp-Platine. Die Prototypenplatinen werden mit Doppelklebeband (kein Klebeband auf der Platine selbst) am Montageblock gehalten. Ich verwende gerne Holz für den Montageblock, da es von Natur aus nicht leitend/antistatisch ist. Es ist auch einfach, es beim Platzieren von Teilen nach Bedarf zu verschieben.

Schritt 4: Lotpaste auftragen

Lötpaste auftragen
Lötpaste auftragen
Lötpaste auftragen
Lötpaste auftragen

Tragen Sie Lötpaste auf die SMD-Pads auf und lassen Sie alle Durchgangsloch-Pads frei. Als Rechtshänder arbeite ich in der Regel von links oben nach rechts unten, um das Verschmieren der bereits aufgetragenen Lotpaste zu minimieren. Wenn Sie die Paste verschmieren, verwenden Sie ein fusselfreies Tuch, z. B. zum Entfernen von Make-up. Vermeiden Sie die Verwendung eines Kleenex/Taschentuchs. Die Kontrolle der Paste, die auf jedes Pad aufgetragen wird, ist etwas, das Sie durch Versuch und Irrtum herausfinden. Sie wollen nur einen kleinen Klecks auf jedem Pad. Die Größe des Tupfens hängt von der Größe und Form des Pads ab (ungefähr 50-80% Bedeckung). Verwenden Sie im Zweifelsfall weniger. Bei Pins, die eng beieinander liegen, wie das bereits erwähnte LVC125A TSSOP-Paket, tragen Sie einen sehr dünnen Streifen über alle Pads auf, anstatt zu versuchen, jedes dieser sehr schmalen Pads mit einem separaten Tupfer zu versehen. Wenn das Lot geschmolzen ist, führt die Lötstoppmaske dazu, dass das Lot zum Pad wandert, so wie Wasser nicht an einer öligen Oberfläche haftet. Das Lot wird perlen oder wandern in einen Bereich mit einem freiliegenden Pad.

Ich verwende eine Lötpaste mit niedrigem Schmelzpunkt (137C Schmelzpunkt) Das zweite Foto ist die v1.3-Platine und die Art der Lötpaste, die ich verwende.

Schritt 5: Platzieren Sie die SMD-Teile

Platzieren Sie die SMD-Teile
Platzieren Sie die SMD-Teile

Platzieren Sie die SMD-Teile. Ich mache das von links oben nach rechts unten, obwohl es keinen großen Unterschied macht, außer dass Sie weniger wahrscheinlich einen Teil verpassen. Die Teile werden mit einer Elektronikpinzette platziert. Ich bevorzuge die Pinzette mit einem gebogenen Ende. Nehmen Sie ein Teil auf, drehen Sie bei Bedarf den Montageblock und platzieren Sie das Teil. Tippen Sie leicht auf jedes Teil, um sicherzustellen, dass es flach auf dem Board sitzt. Beim Platzieren eines Teils verwende ich zwei Hände, um die genaue Platzierung zu unterstützen. Wenn Sie einen quadratischen MCU platzieren, nehmen Sie ihn diagonal von gegenüberliegenden Ecken auf.

Überprüfen Sie die Platine, um sicherzustellen, dass sich alle polarisierten Kondensatoren in der richtigen Position befinden und alle Chips richtig ausgerichtet sind.

Schritt 6: Zeit für die Heißluftpistole

Zeit für die Heißluftpistole
Zeit für die Heißluftpistole

Ich verwende eine Niedertemperatur-Lötpaste. Für meine Modellpistole habe ich die Temperatur auf 275 ° C und den Luftstrom auf 7 eingestellt. Halten Sie die Pistole senkrecht zur Platine etwa 4 cm über der Platine. Das Lot um die ersten Teile braucht eine Weile, um zu schmelzen. Seien Sie nicht versucht, die Dinge zu beschleunigen, indem Sie die Waffe nahe an das Brett heranführen. Dies führt im Allgemeinen dazu, dass die Teile herumgeblasen werden. Sobald das Lot schmilzt, fahren Sie mit dem nächsten überlappenden Abschnitt der Platine fort. Arbeiten Sie sich rund um das Board vor.

Ich benutze eine YAOGONG 858D SMD Heißluftpistole. (Bei Amazon für weniger als 40 US-Dollar.) Das Paket enthält 3 Düsen. Ich verwende die größte (8mm) Düse. Dieses Modell/dieser Stil wird von mehreren Anbietern hergestellt oder verkauft. Ich habe überall Bewertungen gesehen. Bei mir hat diese Waffe einwandfrei funktioniert.

Schritt 7: Bei Bedarf verstärken

Bei Bedarf verstärken
Bei Bedarf verstärken
Bei Bedarf verstärken
Bei Bedarf verstärken

Wenn die Platine über einen oberflächenmontierten SD-Kartenanschluss oder eine oberflächenmontierte Audiobuchse usw. verfügt, tragen Sie zusätzliches Lötdraht auf die Pads auf, mit denen das Gehäuse an der Platine befestigt wird. Ich habe festgestellt, dass Lötpaste allein im Allgemeinen nicht stark genug ist, um diese Teile zuverlässig zu sichern.

Schritt 8: Reinigen/Entfernen des SMD-Flusses

Reinigen/Entfernen des SMD-Flusses
Reinigen/Entfernen des SMD-Flusses
Reinigen/Entfernen des SMD-Flusses
Reinigen/Entfernen des SMD-Flusses

Die von mir verwendete Lotpaste wird als „no clean“beworben. Sie müssen die Platine reinigen, sie sieht viel besser aus und entfernt alle kleinen Lotperlen auf der Platine. Gießen Sie mit Latex-, Nitril- oder Gummihandschuhen in einem gut belüfteten Raum eine kleine Menge Flussmittelentferner in eine kleine Keramik- oder Edelstahlschale. Verschließen Sie die Flasche mit dem Flussmittelentferner wieder. Tupfe die Bürste mit einer harten Bürste in den Flussmittelentferner und schrubbe einen Bereich der Platte. Wiederholen Sie dies, bis Sie die Brettoberfläche vollständig geschrubbt haben. Dazu verwende ich eine Waffenreinigungsbürste. Die Borsten sind steifer als bei den meisten Zahnbürsten.

Schritt 9: Platzieren und löten Sie alle Troglochteile

Platzieren und löten Sie alle Teile der Muldenöffnung
Platzieren und löten Sie alle Teile der Muldenöffnung
Platzieren und löten Sie alle Teile der Muldenöffnung
Platzieren und löten Sie alle Teile der Muldenöffnung

Nachdem der Flussmittelentferner von der Platine verdunstet ist, platzieren und löten Sie alle Teile des Durchgangslochs, vom kürzesten zum höchsten, nacheinander.

Schritt 10: Bündig geschnittene Lochstifte

Bündig geschnittene Durchgangslochstifte
Bündig geschnittene Durchgangslochstifte

Schneiden Sie mit einer Bündigschneiderzange die Durchgangslochstifte an der Unterseite der Platine ab. Dies erleichtert das Entfernen der Flussmittelrückstände.

Schritt 11: Erhitzen Sie die Durchgangslochstifte nach dem Abschneiden wieder

Erhitzen von Durchgangslochstiften nach dem Abschneiden
Erhitzen von Durchgangslochstiften nach dem Abschneiden

Für ein schönes Aussehen erhitzen Sie das Lot auf den Durchgangslochstiften nach dem Clippen erneut. Dadurch werden die vom Bündigschneider hinterlassenen Scherspuren entfernt.

Schritt 12: Entfernen Sie das Durchgangsloch-Flussmittel

Entfernen Sie das Durchgangsloch-Flussmittel
Entfernen Sie das Durchgangsloch-Flussmittel

Reinigen Sie die Rückseite der Platine mit der gleichen Reinigungsmethode wie zuvor.

Schritt 13: Anlegen der Stromversorgung an die Platine

Anwenden von Macht auf den Vorstand
Anwenden von Macht auf den Vorstand

Versorgen Sie die Platine mit Spannung (6 bis 12 V). Wenn nichts brät, messen Sie 5V, 3v3 und 12V. 5V und 3v3 können an der großen Lasche auf den beiden Reglerchips gemessen werden. 12V können von R3 gemessen werden, dem Ende des Widerstands, das der Platine unten links am nächsten liegt (die Strombuchse ist oben links).

Schritt 14: Laden Sie den Bootloader

Laden Sie den Bootloader
Laden Sie den Bootloader

Wählen Sie im Arduino IDE Tools-Menü das Board und andere Optionen für den Ziel-MCU aus.

Auf meinen Board-Designs habe ich fast immer einen ICSP-Anschluss. Wenn Sie keinen Arduino als ISP oder einen anderen ICSP-Programmierer haben, können Sie einen auf einem Steckbrett bauen, um den Bootloader auf die Programmierplatine herunterzuladen. Wählen Sie Arduino als ISP aus dem Programmiermenüpunkt und wählen Sie dann Bootloader brennen. Dadurch werden neben dem Download des Bootloaders auch die Sicherungen korrekt gesetzt. Auf dem Foto ist die Tafel links das Ziel. Die rechte Tafel ist der ISP.

Schritt 15: Laden Sie die Multi-Skizze

Laden Sie die Multi-Skizze
Laden Sie die Multi-Skizze
Laden Sie die Multi-Skizze
Laden Sie die Multi-Skizze
Laden Sie die Multi-Skizze
Laden Sie die Multi-Skizze

Folgen Sie den Anweisungen in meinem GitHub-Repository für AVRMultiSketch, um den Multi-Sketch über den seriellen Port auf dem Board in Flash zu laden. Das GitHub AVRMultiSketch-Repository enthält alle auf dem Foto gezeigten Skizzen. Auch wenn Sie nicht vorhaben, das Board zu bauen, können Sie den NOR Flash Hex Copier und die AVR High Voltage Skizzen nützlich finden.

Schritt 16: Fertig

Fertig
Fertig
Fertig
Fertig
Fertig
Fertig
Fertig
Fertig

Ich habe auch einige Adapterplatinen entworfen, wenn ich unmontierte Chips verwende, z. B. beim Breadboarding.

- ATtiny85 ICSP-Adapter. Wird verwendet, um einen ATtiny85 Standalone zu programmieren.

- ATtiny84 bis ATtiny85. Dies wird sowohl für die Hochspannungsprogrammierung verwendet als auch an den ATtiny85 ICSP-Adapter angeschlossen.

- NOR-Blitzadapter.

Um einige meiner anderen Designs zu sehen, besuchen Sie

Schritt 17: Vorherige Version 1.3

Vorherige Version 1.3
Vorherige Version 1.3
Vorherige Version 1.3
Vorherige Version 1.3

Oben sind Fotos der Version 1.3. Version 1.3 verfügt nicht über USB Serial, rückstellbare Sicherungen und Funktionsanzeige-LEDs. Eine Variante der Version 1.3 verwendet einen ATmega644pa (oder 1284P)

Wenn Sie daran interessiert sind, Version 1.3 zu erstellen, senden Sie mir eine Nachricht (anstatt einen Kommentar hinzuzufügen).

Empfohlen: