Inhaltsverzeichnis:

AVR-Assembler-Tutorial 8: 4 Schritte
AVR-Assembler-Tutorial 8: 4 Schritte

Video: AVR-Assembler-Tutorial 8: 4 Schritte

Video: AVR-Assembler-Tutorial 8: 4 Schritte
Video: AVR Assembly Tutorial: Part 1 (Basic Commands) 2024, Juli
Anonim
AVR-Assembler-Tutorial 8
AVR-Assembler-Tutorial 8

Willkommen bei Lernprogramm 8!

In diesem kurzen Tutorial werden wir eine kleine Ablenkung von der Einführung neuer Aspekte der Assemblerprogrammierung nehmen, um zu zeigen, wie unsere Prototyping-Komponenten auf eine separate "gedruckte" Leiterplatte verschoben werden. Der Grund dafür ist, dass unser Haupt-Prototyping-Breadboard derzeit mit so vielen Chips, Drähten, Knöpfen und LEDs vollgestopft ist, dass es schwierig wird, neue Dinge zu testen und da wir die Komponenten schließlich sowieso auf ihre eigenen Boards verschieben müssen, wir könnten genauso gut jetzt anfangen. Viele von Ihnen beherrschen die Dinge, die wir in diesem Tutorial behandeln werden, wahrscheinlich bereits und daher können Sie dieses Tutorial nur als entspannende Pause vom Programmieren betrachten.

Deshalb werden wir heute unseren Würfelroller ATmega328P und das dazugehörige Würfelpaar auf ein externes Board mit Anschlüssen an unser Mainboard verschieben, um es zu kommunizieren und mit Strom zu versorgen. Abgesehen davon ist die Verdrahtung und Funktion des Würfels in dieser Komponente in sich abgeschlossen.

Daraus können Sie wahrscheinlich absehen, dass unser letztendliches Ziel darin besteht, dies mit jeder der Komponenten zu tun, die wir auf dem Weg konstruieren, damit wir sie, wenn wir fertig sind, in einem gut aussehenden Paket verstecken können, das über Knopfdruck funktioniert, ohne alles zu sehen der Drähte und des Innenlebens.

Wir werden die meiste Zeit dieses Tutorials damit verbringen, physische Aufgaben wie das Entwerfen einer Schaltung, das Mapping einer Prototypenplatine und das Zusammenlöten von Dingen zu erledigen, aber am Ende müssen wir etwas programmieren, nachdem wir Dinge verschoben haben. Der Grund dafür ist, dass wir irgendwann die serielle 2-Draht-Schnittstelle verwenden werden, um zwischen unserem Haupt-"Master"-Controller und allen "Slave"-Controllern zu kommunizieren, die die Komponenten unseres Gesamtprojekts in dieser Reihe von Tutorials bilden, und Wie Sie sich erinnern, haben wir in Tutorial 6 eine Art Morsecode-Methode erfunden, um unsere Würfelwürfe vom Würfelwurf (Tutorial 4) an den Register Analyzer (Tutorial 5) zu übermitteln, der das Ergebnis des Würfelwurfs binär auf 8 LEDs anzeigte. Nun, das war nur eine "Roll Your Own"-Kommunikationsmethode, für die ich mich entschieden habe, weil es zu dieser Zeit noch zu früh war, um in die serielle 2-Draht-Kommunikation einzusteigen. Wir sind jetzt fast bereit, in das tiefe Ende der seriellen Kommunikation einzutauchen, und das werden wir in Tutorial 10 tun, aber vorerst müssen wir diese zukünftige Entwicklung antizipieren und unsere Würfelrollen-LEDs neu verdrahten, um die beiden freizugeben Pins, die wir für die serielle Kommunikation benötigen.

Dies sind die SCL- und SDA-Pins des ATmega328P. Sie können dem Pinbelegungsdiagramm entnehmen, dass sie bei Analog-Digital-Wandlungen auch als ADC5 und ADC4 bezeichnet werden, bei Verwendung als "Pin Change Interrupt"-Pins PCINT13 und PCINT12, und schließlich nennen wir sie allgemein PC5 und PC4 wenn sie einfach als Pins auf PortC betrachtet werden. Da wir diese beiden Pins aus verschiedenen Gründen als Teil unseres Würfelrollers verwendet haben (hauptsächlich, weil es die Codierung und die Verdrahtung mit den LEDs auf der Platine erleichtert hat), müssen wir jetzt unseren Code ändern und leicht neu verdrahten Geben Sie diese Pins für die zukünftige Kommunikation frei.

Wir beginnen also mit dem Entwerfen, Schneiden, Verdrahten und Löten. Dann werden wir den Würfelroller so umschreiben, dass er mit unserem neuen Setup funktioniert und ihn schließlich testen, um sicherzustellen, dass er noch funktioniert.

Um dieses Tutorial abzuschließen, benötigen Sie die folgenden Elemente:

  1. Das Standardmaterial, das Sie immer brauchen, werde ich nicht ständig wiederholen: Ihr Prototyping-Board, Ihre Kopie des Datenblatts und des Befehlssatzes und Ihr Gehirn.
  2. Eine Leiterplatte für das Prototyping von drahtlosen Schaltkreisen wie diese: https://www.ebay.com/itm/191416297627 Ich werde die Measure Explorer 103RAWD-Version dieser Platine verwenden: https://www.ebay.com/itm/103RAT -circuit-proto-proto… da ich eine Menge davon zur Hand habe, aber die 103RAW-0-Version, auf die ich oben verlinke, wird auch gut funktionieren.
  3. Clipper, Drähte, Lötzinn, Lötkolben, "Helfende Hände" oder was auch immer, um Sachen zu halten usw. usw. usw. wieder, von hier an werde ich auch aufhören, diese Sachen aufzulisten. Wenn Sie in diesen Tutorials tatsächlich so weit gekommen sind, dann haben Sie das alles wahrscheinlich schon.

Hier ist ein Link zur vollständigen Sammlung meiner AVR-Assembler-Tutorials:

Schritt 1: Entwerfen Sie einen Schaltplan

Entwerfen Sie einen Schaltplan
Entwerfen Sie einen Schaltplan
Entwerfen Sie einen Schaltplan
Entwerfen Sie einen Schaltplan
Entwerfen Sie einen Schaltplan
Entwerfen Sie einen Schaltplan

Das Coole an den Measure Explorer-Boards ist, dass man sich am Ende jede Menge Verkabelung sparen kann, wenn man sich am Anfang etwas Zeit nimmt und die Dinge kartografiert. Wir werden uns also zunächst etwas Zeit nehmen, um unser Layout zu entwerfen, bevor wir mit dem Löten beginnen. Bei dieser Art von Board müssen Sie eine Reihe von Verbindungsdrähten durchtrennen, was nicht ganz einfach ist, aber das Ergebnis ist ein sehr schönes kompaktes Board mit einem Minimum an Kabelsalat. Das erste, was wir tun müssen, ist unsere Schaltung, damit es auf die Platine passt. Eine gute Möglichkeit, dies zu tun, besteht darin, die Karte des Boards herunterzuladen und sie dann zu verwenden, um mit verschiedenen Designs herumzuspielen, bis Sie eines finden, das funktioniert. Hier ist das Layout für das ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Schritt 2: Schneiden Sie die Schaltung auf der Platine aus

Schneiden Sie die Schaltung auf der Platine aus
Schneiden Sie die Schaltung auf der Platine aus
Schneiden Sie die Schaltung auf der Platine aus
Schneiden Sie die Schaltung auf der Platine aus
Schneiden Sie die Schaltung auf der Platine aus
Schneiden Sie die Schaltung auf der Platine aus

Nehmen Sie zuerst ein Sharpie und zeichnen Sie mit Ihrem Layout, das Sie im vorherigen Schritt gezeichnet haben, Ihre Schaltung auf die Platine. D.h. Zeichnen Sie Linien, um die Drähte darzustellen. Zeichnen Sie nichts in Bezug auf Komponenten, sondern nur die Anschlussdrähte, wie im ersten Bild gezeigt. Beachten Sie, dass Sie, wenn Sie es vermasseln (und wenn Sie etwas wie ich sind, in diesen Schritten viele Male vermasseln werden), einen Radiergummi verwenden und die Linie löschen können. Tun Sie dies für beide Seiten des Boards.

Als nächstes müssen Sie die Verbindungen um die Linien schneiden. Wenn Sie sich das Brett genau ansehen, werden Sie feststellen, dass jedes Stiftloch mit den 4 benachbarten auf beiden Seiten des Bretts verbunden ist, sodass alle Löcher auf dem Brett miteinander verbunden sind, wenn Sie beginnen. Sie müssen also an beiden Seiten jedes Ihrer Drähte schneiden, um sie zu isolieren. Am häufigsten wird dieses Schneiden mit einem Exacto-Messer durchgeführt. Aber ich lutsche an Exacto-Messern und würde mich wahrscheinlich schneiden. Also verwende ich einen Dremel mit einem dünnen Schneidwerkzeugaufsatz. Ich wünschte, ich hätte eine Art Schleifaufsatz, der zu einer scharfen Spitze kam, da das am besten funktionieren würde - aber ich habe keinen solchen, also habe ich den Schneidsägeaufsatz verwendet. (Hinweis hinzugefügt: Nach Abschluss dieses Projekts stellte ich fest, dass die kleineren "Hochleistungs-Schneidrad" -Köpfe für Dremels am besten funktionieren, sie sehen aus wie kleine Schleifpapierkreise und funktionieren wie das hier gezeigte Schneidwerkzeug, außer dass sie einen kleineren Durchmesser haben und so es ist viel einfacher zu sehen und zu kontrollieren, wo Sie schneiden)

Unterwegs ist es sinnvoll, die Platine gegen das Licht zu halten und darauf zu achten, dass die Drähte tatsächlich durchgeschnitten sind. Sie werden sich vielleicht ärgern, dass auf beiden Seiten des Bretts Verbindungen vorhanden sind, sodass Sie den Schneidvorgang mit der anderen Seite wiederholen müssen, aber ich denke, Sie werden den Sinn dafür erkennen, wenn Sie fertig sind. Ich habe viele Fehler beim Schneiden von Drähten gemacht, die nicht hätten geschnitten werden sollen und die andere Seite noch angeschlossen zu haben, stellt sich als schön heraus.

Es wird einige Zeit und Geduld brauchen, um die Schaltung in die Platine zu schneiden, aber es macht Spaß, wenn Sie erst einmal gut darin sind.

Schritt 3: Löten Sie die Komponenten und testen Sie

Löten Sie die Komponenten und testen Sie
Löten Sie die Komponenten und testen Sie
Löten Sie die Komponenten und testen Sie
Löten Sie die Komponenten und testen Sie
Löten Sie die Komponenten und testen Sie
Löten Sie die Komponenten und testen Sie

Nachdem Sie alle Drähte in Ihrer Platine isoliert haben, können Sie mit dem Löten der einzelnen Komponenten beginnen.

Ich habe zuerst die LEDs für einen der Würfel angelötet, dann habe ich positive und negative Leitungen von meinem Steckbrett genommen und die Anschlüsse für jede LED getestet, um sicherzustellen, dass sie voneinander isoliert sind und funktionieren.

Ähnlich mit dem anderen Würfel.

Dann verdrahten Sie den Widerstand mit jedem Chip und den 10K-Widerstand auf der Rückseite der Platine.

Bringen Sie dann den Quarzoszillator, die 22pf-Kappen, die Drucktasten und den ATmega328P an. Vielleicht möchten Sie einen Chipsockel löten und dann Ihren ATmega328P darin einbauen, damit Sie ihn bei Bedarf entfernen und in etwas anderem wiederverwenden können. Ich habe gerade meinen Chip an die Platine gelötet, da ich weiß, was wir schließlich mit all diesen Tutorials bauen, und ich weiß, dass es mir so gut gefallen wird, dass ich den Chip nicht herausnehmen möchte.

Beachten Sie, indem Sie auf die Rückseite des Boards schauen, wie wir die Header angebracht haben. Ich habe lange Stiftleisten verwendet und sie horizontal gebogen, damit sie nicht aus der Platine herausragen. Dies ist, damit ich die Platine schließlich bis auf die Ebene der Taster und LEDs mit einem Behälter abdecken kann und keine Header im Weg sind. Wir haben einen Header für Tx, Rx, damit wir den Chip programmieren können, wir haben einen Header für SDA, SCL, damit wir später die 2-Draht-Kommunikation verwenden können. und wir haben einen 3-poligen Header für AVCC, AREF, GND auf der anderen Seite der Platine. Ich habe alle Massepins und VCC-Pins auf dem Chip miteinander verdrahtet, so dass wir nur einen Stromeingang benötigen.

Sobald alles verdrahtet ist, verdrahten wir die 1 mit die2 wie auf dem Steckbrett, so dass wir beide Würfel mit nur 9 Pins steuern können.

Jetzt müssen wir unseren Code ändern, damit er dieses neue Setup steuert.

Schritt 4: Montagecode und Video

Ich habe den Montagecode und das Video des Würfelrollers in Betrieb angehängt. Alles, was ich getan habe, war den Code für unseren Würfelroller aus Tutorial 6 zu nehmen, die Pins an das neue Layout anzupassen und die Kommunikationsunterroutine zu entfernen, da wir schreiben werden ein neues in Tutorial 10. Beim nächsten Mal werden wir wieder unsere Tastatur ausbrechen und lernen, wie man 7-Segment-Anzeigen steuert. Bis dann!

Empfohlen: