hoe werkt een PIC-programmer precies, hier volgt een stukje hex-code:
:100000000A28FF30A100FF30A000A00B0528A10B9B
:100010000328003407309F008316D73081008B01FE
:10002000C0308600FF3085008312860101308600D3
:1000300001200230860001200430860001200830B3
:10004000860001201030860001202030860001202B
:02005000162870
:02400E00613F10
:00000001FF
wat wordt er nu precies doorgestuurd naar de PIC?
bij welk adres starten ze?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
De eerste 2 nibbles geven het aantal bytes aan (0x10 = 16).
De volgende 4 nibbles geven het adres aan van de eerste byte. 0x0000 op de eerste regel; 0x0010 op de tweede, enz...
En uiteraard worden de data-bytes, die volgen na de eerste, op een volgend adres geplaatst.
Hoe dat met PIC's zit, weet ik niet. Maar een AVR werkt met word-adressen. De programmer moet bijgevolg het byte-adres delen door 2, en dan telkens eerst de low-byte gevolgd door de high-byte doorgeven.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 26 juli 2007 22:10:45 schreef Electro:
wanneer er meerdere bytes op een regels staan, gaat het adres dan gewoon met 1 omhoog?
Voor 12 en 14 bit core PICS (10F, 12F, 16F) code worden twee bytes uit de hex file 1 woord in de PIC. Het woord adres in de PIC is het (byte) adres in de hex file gedeeld door twee.
Hoe het precies naar de PIC wordt gestuurd (mocht je dat interesseren) staat in de "programming specifications" van de betreffende PIC.