HDD klok - persistentie van de visie (7 / 13 stap)

Stap 7: Bootloader - het wegwerken van PicKit


1. Waarom moeten we een bootloader?

Na een PicKit rond is noodzakelijk, niet echter met het liggend rond onze werkruimte met geen goede reden is. Aanvankelijk heb ik niet wilde mijn leven met bootloaders compliceren, maar later kwam ik tot het realiseren van de waarheid: dit project is beter zonder PicKit. Na één enkele kabel voor programmeren is leuk, vooral als het een zeer gemeenschappelijk USB mini kabel, die elke hobbyist een heleboel heeft. Gelukkig voor mij, fouten moest worden vastgesteld op beide PCB's dus er was een goede gelegenheid om de bootloader hardware en functionaliteit toevoegen. De vijf pin ICSP header werd weggelaten uit het ontwerp opzettelijk, en ik had om te solderen wrap draden naar flash de bootloader. Natuurlijk - dat bedrading er niet blijven, het zou gooien alles uit de tabel zodra de rotor draait - gelukkig de USB-sleuf is compact en kan blijven. Sluit tijdens het programmeren, stekker uit wanneer testen en spinnen.


2. USB-bootloader, eenvoudig en goed

Kijken naar de datasheet van de processor die heb ik besloten om een te gebruiken kunt zien dat er UART- en USB-beschikbaar is. Als ik kies UART, ik moet nog een USB-UART converter en een bos van draden - verslaat het doel. Zo is de beste, leukste en eenvoudigste keuze USB. Microchip biedt ook allerlei codevoorbeelden voor de foto's, bootloaders. Als u downloadt en "Microchip bibliotheken voor toepassingen installeert", zal er een hele map over allerlei USB toepassingen, bootloaders, hulpmiddelen en andere nuttige dingen. In de submap "Bootloaders" ik "USB HID Bootloader" geplukt en opende het in MPLAB X. Na het lezen door het een paar keer om te begrijpen van zijn logica, begon ik te implementeren van de wijzigingen perfect aanpassen aan de borden, die ik bedoeld om het voor te gebruiken.


3. een paar woorden over bootloaders

Een bootloader is een speciale sectie met code die is geschreven in microcontrollers eenmaal, en biedt een manier voor het uploaden van de firmware zonder de noodzaak van een speciale programmeur (hoogspanning), zoals de PicKit in ons geval. Helaas, er is geen manier om volledig te voorkomen dat het gebruik van de PicKit heeft de bootloader te krijgen in de PIC een of andere manier. Het goede deel: kunt u een PicKit, ICD2 of een flasher PIC van een vriend lenen, en geef het terug zodra de bootloader is geschreven in de microcontroller. Na die - kunt afhankelijk van wat voor soort bootloader flitste kreeg, u firmware uploaden naar programmageheugen via UART, USB, kan of wat dan ook.

Met behulp van bootloaders is eenvoudig, maar het komt met het nadeel van het verlies van kostbare programmageheugen. Enkele bootloaders eten minder ruimte in beslag, sommige opeten meer - dit die heb ik besloten om gebruik is ongeveer 1K. Bij het opstarten elke PIC op adres 0 inschakelt en begint wat code uit te voeren heeft de programmeur er geschreven. Als het de bootloader = de PIC loopt de bootloader. Als het is de gebruikerscode = de PIC loopt de gebruikerscode. Vrij eenvoudig!

Om ze beide gebruiken, moeten we een of andere manier schakelen tussen deze twee programma's. Deze omschakeling kan worden gedaan op basis van een voorwaarde, evenement of wat dan ook - het zal heel graag een grote "als"-instructie. Ik koos voor deze voorwaarde als het spanningsniveau op een invoer pin, IO Td3 van het PORTD-register. Deze pin was aangesloten op de 5 v-pin van de USB-aansluiting via een weerstand. Als de pin 5V bij het opstarten, wordt heeft de foto om uit te voeren van de tak van de bootloader van de grote "als", als het op 0V, de code van de toepassing van de gebruiker moest worden uitgevoerd. Ik plaatste de gebruikerscode direct na de bootloader code, op adres 1000h. De PIC18F4550 controleert de Td3 pin herhaaldelijk, zodat wanneer de USB-kabel wordt verwijderd en de 5V uit Td3 verdwijnt, de PIC naar de code geplaatst bij 1000h, de code van de toepassing van de gebruiker springt. In de code van de toepassing van de gebruiker controleren ik opnieuw het spanningsniveau op Td3, als het programma 5V op het ziet, de USB-kabel heeft opnieuw zijn aangesloten en de PIC heeft om naar de bootloader te springen. Ik maak deze sprong aan bootloader wijze met een "RESET" inline Montage-instructie.

Aangezien de PIC uitvoeren van adres 0 begint, is de eenvoudigste en meest voorkomende ding om te doen om de bootloader code er, en de gebruikerscode direct na de bootloader. De code van de bootloader kan worden aangepast om te controleren of er een geldige firmware geschreven in de PIC is. Dit wordt gedaan door het controleren van de geheugeninhoud op adres 1006 1007 hh. Na elke succesvolle programmering, krijgt de bootloader inserts "600D" (leet voor "goed") op deze locatie, wat betekent dat de code is geschreven in de PIC met succes - dit wat het is gecontroleerd op geldigheid. We moet opgeven in de gebruikersinstellingen voor het project van toepassing dat deze locatie niet moeten worden overschreven, zien de afbeeldingen om te zien hoe dit wordt gedaan (ROM bereiken zijn opgegeven naar deze locatie overslaan wanneer de gebruiker de toepassingscode wordt gecompileerd). Niet te doen zal resulteren in fouten echt zwaar voor speurder later. Het gedeelte waar de bootloader leugens ook beschermd moeten worden: dit wordt gedaan door middel van verrekening van de code van de toepassing van de hele gebruiker door 1000h (Code gecompenseerd parameter bij een linker opties). Bootloaders liggen meestal aan het begin of aan het einde van het programmageheugen - wees voorzichtig niet om het te overschrijven!

Mij wilden voor toevoegen sommige parametrisatie voor dit apparaat, dat is waarom het bereik 3000-3100 zo goed wordt beschermd. U hoeft niet dat slechts de andere een!

4. problemen ik raakte bij het werken met de bootloader

Compileren van het project zal resulteren in een hex bestand wordt gegenereerd - dit moet worden geflitst in de PIC met een PicKit of wat dan ook. Mijne niet wilde starten voor een tijdje, het hulpmiddel van de USB-bootloader kon niet speurder iets. Heb ik besloten om metingen op de pin van de VUSB van de PIC met mijn bereik, en het moment dat ik de pin met de sonde toepassingsgebied raakte de bekende USB sound gespeeld en het bestuur kreeg herkend! Ik dacht dat het probleem ging weg, maar zodra ik de sonde verwijderd, het ding verstopping werking weer. Ik realiseerde me dat alles werkt wanneer de werkingssfeer sonde ingeschakeld, zelfs schrijft, opnieuw is-het probleem moest iets die worden opgelost met de sonde. Toen ik dacht: wat hebben de werkingssfeer sondes? Parasitaire capaciteit. De condensator op VUSB pin was enorm in waarde, en niet kon hoge frequentie geluiden uitfilteren. Een condensator van 100nF parallel is toegevoegd, en de Raad van bestuur werd onmiddellijk erkend. Probleem opgelost!

Gerelateerde Artikelen

Persistentie van de visie

Persistentie van de visie

Persistentie van de visie is een optische illusie, het werkt op een eenvoudige fenomeen de werking van onze dag tot dag televisie. MIJN eerste pov was zes maanden vóór met arduino uno en met buitenboordmotor. Maar het is best om een klein en draagbaa
Persistentie van de visie weergeven (POV)

Persistentie van de visie weergeven (POV)

Hi guys! Dit is mijn eerste Instructable zo als een gewoon geen fouten maakt me vertellen. OK laten we aan de slag!WAT U NODIG ZULT HEBBEN-Arduino uno-vaste kern draad of lint kabel-9v batterij module-6v motor (ik heb de mijne uit een CD-speler)-rest
Persistentie van de visie Bauble. POV decoratie.

Persistentie van de visie Bauble. POV decoratie.

Persistentie van de visie Bauble. POV decoratieHet is de tijd van het jaar de boom opstaan en decoreren met alle prachtige verlichting, klatergoud en kerstballen. En dit project gaat over kerstballen, wanneer ik decoraties op een boom ik kan niet hel
(POV) Persistentie van de visie Globe

(POV) Persistentie van de visie Globe

! Update! Ik heb een excel-programma dat maakt het veel gemakkelijker om te tekenen en code van nieuwe beelden toegevoegd!Een eenvoudige persistentie van de visie globe. VIDEO afspelenDit is een project dat ik heb in gedachten had voor heel wat tijd
Bol van de persistentie van de visie

Bol van de persistentie van de visie

Hallo iedereen,Deze tutorial toont je hoe te bouwen uw eigen bol van de persistentie van de visie.Ten eerste, wat is een bol van de persistentie van de visie? Het idee is om het draaien van een kolom met LEDs snel genoeg voor de indruk van een hele w
Hard Drive persistentie van de visie (HDPOV)

Hard Drive persistentie van de visie (HDPOV)

de schaal van een harde schijf draaiingen ruim zestig keer per seconde. Als een smalle sleuf werd gesneden in de schotel om LEDs te schitteren door, kunnen we bereiken flikkeren fusion en Truc van het oog in het zien van een stabiel beeld. Dit fenome
POV (persistentie van de visie) Display met IRled

POV (persistentie van de visie) Display met IRled

Vandaag zal ik introduceren POV (Persistence of Vision) Display met WIZwiki-W7500ECO board.Heb je ooit gehoord over POV voordat?U kunt in detail van POV hier controleren.(Zie stap 1)Het is echt grappig project.Ik zal u laten weten hoe het te maken. V
Persistentie van de visie toverstaf voor Arduino

Persistentie van de visie toverstaf voor Arduino

In dit instructable, ik zal u tonen hoe maak je een toverstaf (van soorten) kunt u schrijven in de lucht, zoals in de afbeelding hierboven laat zien.Stap 1: De Hardware u nodig:-Soldeerbout-Soldeer-5 3v groene LEDs-gespeld jumper kabelsOpmerking: In
Persistentie van de visie met behulp van de Arduino UNO(New Prototype)

Persistentie van de visie met behulp van de Arduino UNO(New Prototype)

Hallo Guyz.Ik had gemaakt A Project op POV met behulp van Arduino UNO. Ik had vele modellen van vele verschillende gebruikers weergegeven op deze site. Dus kwam ik met een nieuw prototype van POV. Ik was niet zeker in het begin dat het zal werken of
Persistentie van de visie LED-Display

Persistentie van de visie LED-Display

Wilde maken van een draaiende LED gelijkend op dit, maar het verzenden van meldingen gebaseerd op tweets, e-mails of andere meldingen hebben.Stap 1:We besloten om het project in meerdere onderdelen opgesplitst.Stap 2: Motor Controller/Interenet Inter
MAKE Controller persistentie van visie Effect met LEDs

MAKE Controller persistentie van visie Effect met LEDs

Hallo, dit is mijn eerste instructable en ik hoop dat het u bevalt. Het is een eenvoudig project, met behulp van MAKE Controller (een handig controller van www.makezine.com), dat een persistentie-van-visie-effect maakt met behulp van LEDs. Wanneer u
Arduino persistentie van visie weergeven

Arduino persistentie van visie weergeven

een persistentie van vision (PoV) display is een rij van LED's die flash kolommen van een bericht.  Als de matrix van LED's wordt verplaatst, net als wanneer gemonteerd op een fietswiel, kan het bericht worden gelezen alsof het veel LED's wide, in pl
Miss La Sen bedrijf de decoratie van de vis op nieuwe maanjaar

Miss La Sen bedrijf de decoratie van de vis op nieuwe maanjaar

In nieuwe maanjaar, vele Aziatische gezinnen hang de vis, symbool voor de deur, muur... Vis vertegenwoordigen goed begin en een goed einde voor het komende jaar. Vis symboliseren ook "Rijkdom".In de Chinese versie van word, vis "yu" wo
Maak een haak van de vis in een lip ring (of vise vers)

Maak een haak van de vis in een lip ring (of vise vers)

ik heb mijn lip doorboord enige tijd geleden en besloten het zou gaaf zijn om een vis haak hebben als een lip ring voor deze visreis ik deze zomer gaande was. Ik keek voor verschillende vis haak zoals lip ringen op het internet en niet echt iets moei