Mikrocontroller – Eine SPI-Schnittstelle vom Programmer zum Mikrocontroller erstellen, um die Übertragung komfortabler zu gestalten
Teilen
Microcontroller – Erstellung einer SPI-Schnittstelle vom Programmer zum Microcontroller zur bequemeren Übertragung
An diesem
Punkt sollten Sie mit dem Konzept des Mikrocontrollers (MCU) vertraut sein.
Sie sollten auch ein Verständnis für die allgemeinen Anwendungsbereiche des
Mikrocontrollers haben. Sie haben ein grundlegendes Verständnis der Pinbelegung
und der Ports. Und hoffentlich sind Sie begeistert von dem, was ein Mikrocontroller
leisten kann, wie das Erfassen und Steuern der Umgebung. Schließlich wissen Sie,
dass wir uns der Programmierseite widmen werden – angesichts des Titels dieser
Seite und der Tatsache, dass wir dies in der
Einleitung
angesprochen haben).
Nun müssen wir uns intensiver mit der Programmierung befassen. Bevor wir jedoch ein Programm auf den Chip laden können, benötigen wir eine gute Möglichkeit, den SPI-Anschluss (Serial Peripheral Interface) mit dem Chip zu verbinden. Wir könnten den Anschluss ja nicht einfach in die Pins des Mikrocontrollers stecken, oder? Und Drähte in das Ende des Steckers und in das Breadboard zu stecken, ist wackelig, unschön und möglicherweise schädlich für die MCU, wenn ein spannungsführender Draht versehentlich an den falschen Pin angelegt wird.
Um unsere Erfolgsaussichten zu maximieren und jeden Verbindungsversuch zu standardisieren, werden wir daher eine kleine Platine konstruieren, die einen Header (kleine hochstehende Metallstifte) enthält, den der SPI-Anschluss verwenden kann, sowie einen Header, der den entsprechenden Pins auf dem Mikrocontroller entspricht. Letzterer kann einfach eine einzelne Reihe von sechs Pins sein, da die Hersteller des Atmel AVR Atmega32 Mikrocontrollers diese Pins so durchdacht zusammengelegt haben. Dies ermöglicht uns, unsere MCU-Interface-Platine mit einer sehr schmalen Größe zu gestalten, was die auf dem Breadboard beanspruchte Fläche reduziert (wie im Video zu sehen). Oh ja, das Video enthält ein bisschen Löten, damit Sie das auch lernen können!
Ok, um es aus
dem letzten Tutorial zu wiederholen: Es wird ein Programmer zwischen dem Computer
und dem Mikrocontroller benötigt. Es sollte beachtet werden, dass es verschiedene
Programmer gibt, die verwendet werden können, und ein passendes Modell kann entweder
von
Adafruit Industries (USBTinyISP) oder
Sparkfun (Pocket AVR) bezogen werden. Einige dieser Programmer sehen
völlig anders aus als andere, aber alle tun im Grunde dasselbe – sie stellen eine
Schnittstelle zwischen dem Computer und dem AVR-Mikrocontroller bereit. Das ist
alles! Beachten Sie, dass Sie, wenn Sie nicht den AVR Atmega32 Mikrocontroller
verwenden, die Kompatibilität des von Ihnen gewählten Programmers überprüfen
müssen. Beachten Sie auch, dass viele dieser Programmer dieselben Treiber verwenden,
ein Problem, auf das wir im nächsten Tutorial eingehen werden.
Die Verbindung zwischen Computer und MCU ist wirklich recht einfach, sodass es keinen Grund geben sollte, Angst oder Scheu davor zu haben, diese Schritte auszuführen, um ein Programm in den Mikrocontroller zu laden. Also, los geht's! Denken Sie daran, dass der Zweck der Erstellung einer solchen Schnittstellenplatine darin besteht, eine ordnungsgemäße Verbindung jedes Mal sicherzustellen, wenn wir unser Programm in die MCU laden müssen. Wenn Sie also eine Platine bauen möchten, wie ich sie im Video gezeigt habe, dann holen Sie einfach Ihren Lötkolben heraus. Keine Angst, raus damit! Nun, Sie sollten vorsichtig sein, da er heiß wird. Aber lassen Sie sich davon nicht abhalten. Achten Sie einfach darauf, alle Anweisungen des Herstellers zum ordnungsgemäßen Betrieb des Lötkolbens zu lesen. Vergessen Sie auch nicht, eine Schutzbrille zu tragen; und atmen Sie die Lötdämpfe nicht ein. Manche Leute verwenden einen Absauglüfter, um die Dämpfe vom Arbeitsplatz wegzubuleiten.
Schauen Sie sich die obige Abbildung an. Ja, sie ist ein bisschen unordentlich, aber ich habe sie gezeichnet, als Koffein durch mein System floss! Die SPI-Pinbelegung befindet sich links. Es gibt Pfeile von diesem SPI-Interface-Block zu den entsprechenden Pins am AVR Atmega32 Mikrocontroller. Es wird keine ausgefallenen Komponenten geben, die diesen Prozess verkomplizieren, also keine Sorge – wir verbinden nur Drähte vom SPI-Gerät mit den Pins des Mikrocontrollers.
Gehen wir die Verbindungen zwischen dem SPI-Gerät und der MCU durch:
- Der obere linke SPI-Pin ist mit MISO (Master In Slave Out) verbunden.
- Der mittlere linke SPI-Pin ist mit SCK (dem Taktpin) verbunden.
- Der untere linke SPI-Pin ist mit Reset verbunden (Reset tut genau das, was es sagt, und Sie können sicher sein, dass wir später über diesen Pin sprechen werden!).
- Der untere rechte SPI-Pin ist mit GND (Masse oder null Volt) verbunden.
- Der mittlere rechte SPI-Pin ist mit MOSI (Master Out Slave In) verbunden.
- Der obere rechte SPI-Pin ist mit VCC (+5 Volt) verbunden (wenn Sie möchten, können Sie die Spannungsanforderungen in der Zusammenfassung oder dem RIESIGEN Handbuch nachlesen, und glauben Sie mir, das ist keine leichte Lektüre!).
Das war's!! Alles, was Sie jetzt noch tun müssen, ist, die Drähte zwischen den beiden Header-Sätzen zu verlöten (erinnern Sie sich an diesen Begriff? Das sind einfach Stifte, die herausragen und in eine Buchsenleiste eingeführt werden). Beachten Sie, dass das Bild oben auf dieser Seite zeigt, wie die Buchsenleiste in die Stiftleiste gesteckt wird. Sobald all diese Drähte verbunden und verlötet sind, sollte es ungefähr so aussehen wie auf diesen Bildern. Wenn Sie es jedoch verrückt anders machen möchten, dann tun Sie es bitte!! Ich ermutige zur Kreativität.
Wie auf den Bildern zu sehen ist, werden die Verbindungen von den Drähten zu den Headern mittels Lötbrücken hergestellt. Eine Lötbrücke ist einfach Lötmittel, das „zusammenklumpt“, um zwei Stellen zu verbinden. Diese Klumpen sehen ein bisschen aus wie kleine Achter oder Unendlichkeitszeichen. Und es ist nicht allzu schwer, diese Brücken zu erzeugen. Alles, was Sie tun müssen, ist, die beiden Draht-/Pinverbindungen wie gewohnt zu löten und dann etwas mehr Lötmittel hinzuzufügen, während Sie den Lötkolben über beiden Verbindungen halten. Dies liefert genügend Lötmittel, um die Brücke zu bilden. Es besteht jedoch die Möglichkeit, dass sie keine Brücke bilden. Ach, der Fluch der Existenz für die meisten Löter...! Die Brücke wird in den meisten Anwendungen im Allgemeinen nicht empfohlen; aber in diesem Fall ist es einfach der einfachste Weg, die Verbindungen zwischen den SPI- und MCU-Pins und den entsprechenden Verbindungsdrähten herzustellen. Sobald Sie genügend Lötmittel aufgetragen haben und der heiße Lötkolben über den beiden Verbindungen ist, ziehen Sie den Kolben gerade nach oben entlang des Pins, und die Brücke sollte erhalten bleiben. Andernfalls könnten Sie die Brücke zerstören, wenn der heiße Lötkolben erneut mit dem Hauptkörper der Brücke in Kontakt kommt. Keine Sorge – das Video zeigt dies sehr schön, und Sie sollten es ziemlich schnell beherrschen.
War das nicht einfach? Nun, im nächsten Tutorial werden wir uns dem Softwareteil widmen. Wir werden die Software im Internet finden, um: Erstens, den USBTinyISP-Programmer (oder, wenn Sie möchten, den Pocket AVR Programmer) zu erkennen und anzusteuern; und zweitens, die Entwicklungsumgebung zu installieren. Beachten Sie, dass ich mit „Treiber“ die Installation eines Treibers unter dem Windows OS meine, und die „Entwicklungsumgebung“ ist einfach die Anwendung, die Sie zum Schreiben der Programme verwenden werden, die später auf den Chip übertragen werden. Wenn Sie dieses Programm auf einem anderen Betriebssystem, wie Linux oder Mac, installieren, können Sie trotzdem mitmachen. Hier und da werde ich über diese anderen wunderbaren Betriebssysteme sprechen und wie man Dinge macht (oder die Ressourcen findet, die helfen). Die Programmierung ist dieselbe, aber die Entwicklungsumgebung wird wahrscheinlich etwas anders sein.