HDD-Clock - Persistenz der Vision (7 / 13 schritt)

Schritt 7: Bootloader - das PicKit loswerden


1. Warum brauchen wir einen Bootloader?

Ein PicKit herum ist notwendig, aber es liegen rund um unseren Arbeitsbereich mit keinen guten Grund nicht zu haben ist. Zunächst nicht ich wollte mein Leben mit Bootloader zu erschweren, aber später kam ich an die Wahrheit zu erkennen: dieses Projekt ist besser ohne PicKit. Ein einziges Kabel zur Programmierung ist schön, vor allem, wenn es eine extrem häufige USB-Mini Kabel, die jeden Bastler eine Reihe von hat. Glück für mich, Fehler musste auf beiden Platinen befestigt werden so gab es eine gute Gelegenheit, Bootloader Hardware und Funktionen hinzuzufügen. Die fünf Stiftleiste ICSP wurde das Design absichtlich ausgelassen, und ich hatte zu wickeln Drähte um den Bootloader flash Löten. Natürlich - Verkabelung kann nicht dort bleiben, es würde alles vom Tisch zu werfen, wenn der Rotor sich dreht - zum Glück der USB-Steckplatz ist kompakt und kann bleiben. Bei der Programmierung einstecken, Stecker aus testen und Spinnen.


2. USB-Bootloader, einfach und gut

Blick auf das Datenblatt des Prozessors habe ich beschlossen, eine verwenden kann sehen, dass es UART und USB zur Verfügung. Wenn ich UART holen, ich brauche noch ein USB-UART Wandler und ein Bündel von Drähten - Niederlagen der Zweck. So ist die beste, einfachste und schönste Wahl USB. Microchip bietet alle Arten von Code-Beispiele für die Bilder, Bootloader auch. Wenn Sie herunterladen und "Mikrochip Bibliotheken für Anwendungen installieren", werden ein ganzen Ordner über alle Art von USB-Bootloader, Werkzeuge, Anwendungen und andere nützliche Dinge. Im Unterordner "Bootloader" Ich hob "USB-HID Bootloader" und in MPLAB X eröffnet. Nach der Lektüre durch ihn ein paar Mal, die Logik zu verstehen, begann ich zu implementieren die Änderungen die Bretter perfekt, denen ich es verwenden soll.


(3) ein paar Worte über Bootloader

Ein Bootloader ist ein besonderer Abschnitt des Codes, der einmal in Mikrocontrollern geschrieben, und bietet eine Möglichkeit zum Hochladen der Firmware ohne die Notwendigkeit eines besonderen (Hochspannung) Programmierer wie die PicKit in unserem Fall. Leider gibt es keine Möglichkeit, die PicKit komplett verzichten, der Bootloader hat irgendwie in das Bild zu bekommen. Das gute daran: können Sie ein PicKit, ICD2 oder alle PIC-Flasher von einem Freund ausleihen, und geben es wieder einmal den Bootloader in den Microcontroller geschrieben. Danach - können je nachdem, welche Art von Bootloader geflasht haben, Sie Firmware auf Programmspeicher über UART, USB, CAN oder was auch immer hochladen.

Mit Bootloader ist einfach, aber es kommt mit dem Nachteil des Verlustes kostbaren Programmspeicher. Einige Bootloader Essen weniger Platz, einige fressen mehr - dieses habe ich beschlossen, zu verwenden ist ca. 1 K. Beim Start jedes einzelne Bild Befugnisse bei Adresse 0 und beginnt mit der Ausführung jeder Code hat der Programmierer es geschrieben. Wenn es den Bootloader = PIC läuft den Bootloader. Wenn es den Benutzercode = PIC läuft den Benutzercode. Ziemlich einfach!

Um beide verwenden, müssen wir irgendwie zwischen diesen beiden Programmen wechseln. Diese Umstellung kann basierend auf einer Bedingung, Veranstaltung oder was auch immer getan werden - wird es sehr ähnlich wie eine riesige "If"-Anweisung sein. Ich entschied mich für diese Bedingung auf das Spannungsniveau auf ein input-Pin, IO RD3 des Registers PORTD werden. Dieser Pin wurde mit den 5V Pin des USB-Steckers durch einen Widerstand verbunden. Ist die Pin bei 5V beim Start, hat die PIC die Bootloader-Zweig der großen ausführen "Wenn", wenn es auf 0V ist, musste der Anwendung Benutzercode ausgeführt werden. Ich legte den Benutzercode direkt nach dem Bootloader-Code unter Adresse 1000h. Die PIC18F4550 überprüft die RD3-Pin wiederholt, also wenn das USB-Kabel entfernt wird und die 5V aus RD3 verschwindet, das Bild auf den Code an 1000 h, der Anwendungscode platziert springen wird. In der Anwendungscode überprüfe ich wieder den Spannungspegel am RD3, wenn das Programm 5V drauf sieht, das USB-Kabel wieder eingesteckt ist und das Bild hat, um den Bootloader zu springen. Ich mache diesen Sprung in den Bootloader Modus mit einer Inline-Montageanleitung "Zurücksetzen".

Da das Bild beginnt mit der Ausführung von Adresse 0, ist die einfachste und häufigste, was zu tun, die Bootloader-Code und der Code direkt nach dem Bootloader zu platzieren. Der Bootloader-Code kann geändert werden, um zu überprüfen, ob oder nicht es eine gültige Firmware in das Bild geschrieben ist. Dies geschieht durch die Überprüfung des Speicherinhalts auf Adresse 1006-1007 Uhr. Nach jeder erfolgreichen Programmierung wird die Bootloader-Einsätze "600D" (Leet für "gut") an dieser Stelle, was bedeutet, dass der Code erfolgreich in den PIC geschrieben wurde-das ist, was es auf Gültigkeit überprüft. Wir müssen in den Benutzer-Anwendung-Projekt-Einstellungen angeben, dass dieser Lage sollte nicht überschrieben werden, sehen Sie die Bilder zu sehen, wie dies geschehen ist (Röm Bereiche sind, diesen Standort zu überspringen, wenn der Benutzercode Anwendung kompiliert wird angegeben). Nichtbeachtung führt zu Fehlern, die wirklich hart, um später zu erkennen. Der Abschnitt der Bootloader liegt so gut geschützt werden müssen: Dies erfolgt durch Verrechnung des ganzen Anwendungscodes von 1000h (Code offset Parameter auf Linker-Optionen). Bootloader befinden sich in der Regel am Anfang oder am Ende der Programmspeicher - muss darauf geachtet werden, nicht um es zu überschreiben!

Ich wollte einige Parametrisierung für dieses Gerät hinzufügen, das ist, warum die 3000-3100-Palette ist auch geschützt. Sie brauchen nicht, dass nur die eine andere!

4. Probleme habe ich bei der Arbeit mit dem bootloader

Kompilieren des Projekts führt in ein hex-File erzeugt werden - dies hat in der PIC mit einem PicKit oder was auch immer geflasht werden. Mir nicht wollte beginnen, für eine ganze Weile, konnte nicht das USB-Bootloader Tool nichts erkennen. Habe ich beschlossen, Messungen auf dem VUSB-Pin des PIC mit meinem Rahmen und den Moment, den ich habe die Pin mit der Rahmen-Sonde berührt, der bekannteste USB-Sound wiedergegeben und das Board bekam anerkannt! Ich dachte das Problem ging weg, aber sobald ich die Sonde entfernt, die Sache funktionierte wieder. Ich erkannte, dass alles funktioniert, wenn die Umfang Sonde auf, selbst schreibt, setzt ist-das Problem musste etwas sein, das die Sonde fixiert. Dann ich dachte: Was haben Umfang Sonden? Parasitäre Kapazität. Der Kondensator am VUSB-Pin war riesig an Wert und konnte nicht hochfrequente Geräusche herausfiltern. Ein 100nF Kondensator parallel hinzugefügt wurde, und der Vorstand wurde sofort erkannt. Problem gelöst!

In Verbindung stehende Artikel

Persistenz der Vision

Persistenz der Vision

die ursprüngliche Idee für dieses Projekt kam aus dem genialen Geist von David Bjanes, der viele Projekte in seinem Projektwarteschlange hat. Die Inspiration kam, als David auf Youtube.com ein Video von einem ähnlichen POV-Display sah. Wir näherten u
Arduino Persistenz der Vision anzeigen

Arduino Persistenz der Vision anzeigen

eine Persistenz der Vision (PoV) Display befindet sich eine Reihe von LED's, die Spalten einer Nachricht zu blinken.  Wenn das Array von LEDs verschoben wird, wie wenn auf ein Fahrrad-Rad montiert, kann die Nachricht gelesen werden, als wären es viel
Persistenz der Vision Display (POV)

Persistenz der Vision Display (POV)

Hi Jungs!!! Dies ist meine erste Instructable also sag mir wenn nur keine Fehler machen. OK, lasst uns loslegen!WAS SIE BENÖTIGEN-Arduino uno-festen Kern Draht oder Band Kabel-9v Batterie Snap-6v Motor (Ich habe mir von einem CD-Spieler)-Altholz-Schr
Globus der Persistenz der Vision

Globus der Persistenz der Vision

Hallo an alle,Dieses Tutorial zeigt Ihnen wie Sie Ihre eigene Welt der Persistenz der Vision zu bauen.Was ist eine Welt der Persistenz der Vision? Die Idee ist, eine Spalte mit LEDs schnell genug für den Eindruck von einer ganzen Welt der Pixel (in d
Persistenz der Vision Christbaumkugel. POV-Dekoration.

Persistenz der Vision Christbaumkugel. POV-Dekoration.

Persistenz der Vision Christbaumkugel. POV-DekorationEs ist die Zeit des Jahres, den Baum aufzustehen und schmücken ihn mit all den wunderbaren Lichter, Lametta und Kugeln. Und es geht um Kugeln, wann immer ich Dekorationen auf einen Baum gesetzt, ic
MACHEN Controller Persistenz der Vision Wirkung mit LEDs

MACHEN Controller Persistenz der Vision Wirkung mit LEDs

Hallo, dies ist mein erster instructable und ich hoffe es gefällt euch. Es ist ein einfaches Projekt mit machen-Controller (ein sehr nützliches Controller von www.makezine.com), das einen Persistenz-des-Vision-Effekt macht mit LEDs. Wenn Sie das Boar
Hard Drive Persistenz der Vision (HDPOV)

Hard Drive Persistenz der Vision (HDPOV)

die Platte einer Festplatte weit über 60 Mal pro Sekunde dreht. Wenn die Platte zu LEDs durchscheinen lassen ein schmaler Schlitz geschnitten wurde, können wir erreichen, Flackern Fusion und dazu das Auge zu sehen, ein stabiles Bild. Dieses Phänomen
Ultra low-cost solar-Akkus Persistenz der Vision Display

Ultra low-cost solar-Akkus Persistenz der Vision Display

dieses Gerät erzeugt ein helles und Blickfang zeigt Text und kleine Bilder durch die Luft zu schreiben. Es nutzt unter 2 £ (ca. 3,20 US $ zum Zeitpunkt des Schreibens) Teile und ist ein schönes kleines Wochenendprojekt, Ihre Familie und Freunde zu be
Persistenz der Vision Zauberstab für Arduino

Persistenz der Vision Zauberstab für Arduino

In diesem instructable, ich zeige Ihnen wie erstelle ich einen Zauberstab (Art), damit Sie in die Luft schreiben können wie auf dem Bild oben zeigt.Schritt 1: Die Hardware Benötigen Sie:-Lötkolben-Löten-5 3v LEDs grün-Jumper-Kabel fixiertHinweis: Ans
Eine Persistenz der Vision Namensschild LED

Eine Persistenz der Vision Namensschild LED

diese Instructable zeigt ein Namensschild, dass ich für meine Tochter gebaut habe.Ich habe die Defcon Abzeichen gesehen und dachte, sie waren cool. Warum kann meine Kinder haben auch - aber speziell für sie gebaut?Also bitteschön - eine einfache Plak
Persistence Of Vision

Persistence Of Vision

Persistenz der Vision ist eine optische Täuschung, es funktioniert auf ein einfaches Phänomen wie unsere täglichen Fernsehen funktioniert. MEINE erste Pov war sechs Monate vor mit Arduino Uno und Motor. Aber es empfiehlt sich, eine kleine, tragbare G
Wood digital clock

Wood digital clock

Hallo, zeige ich euch ein wenig, dass Projekt, das halte ich für Arduino sehr interessant sein kann.Es stützt sich im Wesentlichen auf eine Uhr aus Millis ()-Funktion Atmega 328 p Pu, die steuert auch die Beleuchtung des Streifens der 4-stellige 7-Se
(POV) Persistence Of Vision Globe

(POV) Persistence Of Vision Globe

! Update! Ich habe eine Excel-Programm, die macht es viel einfacher zu zeichnen und code-neue Bilder hinzugefügt!Eine einfache Persistenz der Vision Globe. VIDEO abspielenDies ist ein Projekt, das ich seit geraumer Zeit im Auge gehabt haben und der W
Persistence of Vision (POV)-2 Wege zu spielen -

Persistence of Vision (POV)-2 Wege zu spielen -

nach der Suche POV-Tutorial, das nicht klar, müde und kompliziert, schließlich fand ich die beste. In diesem wird instructable ich einen POV (Persistenz der Vision) Zauberstab inspiriert vom Amandaghassaei des ursprünglichen Design neu zu sein.  Als