Pa ovako: pre svakog bloka podataka : tip 00, ide adresa (tip 04)
Dakle ajde da vidimo red recimo (xx je checksum, da ga ne racunam sada :) ):
02 0000 04 0020 xx
04 1234 00 aabbccdd xx
Prvi red kaze da je "bazna adresa" 0x0020 0000 (zadnje 4 hexa nule smo dopisali).
Sledeci red red kaze da imamo 4 podatka sa ofsetom 0x1234 i to:
na adresi 0x0020 0000 + 0x1234 + 0 je podatak 0xaa
na adresi 0x0020 0000 + 0x1234 + 1 je podatak 0xbb
na adresi 0x0020 0000 + 0x1234 + 2 je podatak 0xcc
na adresi 0x0020 0000 + 0x1234 + 3 je podatak 0xdd
To jest na kraju svega ovoga vazi:
S(0x00201234) = 0xaa
S(0x00201235) = 0xbb
S(0x00201236) = 0xcc
S(0x00201237) = 0xdd
Dalje je lako, znaci po ucitavanju hex fajla ti si napunio neku memoriju (adresni opseg od 4G). Sve sto nije napunjeno racunaj kao recimo 0xff ili 0x00.
Vec si video koje memorijske lokacije su zaduzene za flash, configuration, id, epprom.
Dakle u hex fajlu se nalazi sadrzaj memorije. E sada kako se bas konkretno programira pic:
to nemam jos detaljno objasnjeno, ali se sve svodi na to da imas na dva pina clock i data.
Dakle na clock saljes impulse a na data saljes redom bitove u nekom formatu, bilo bi logicno da saljes recimo prvo adresu pa onda podataka, a onda neki stop bit ili tako nesto i tako redom.
Mogu da ti kazem kako radi easypic programator (njega imam i njegovu semu sam video). On ima u sebi jos jedan pic iz serije 16F koji prima sa usb-a podatke, dekodira i salje odgovarajuce podatke na clock i data naseg pica koji zelimo da programiramo.
Naravno pre toga se na VPP dovede 12.8 V.
Dakle ako zelis da programiras sam pic, mozes jednostavno da iskoristis pararelni port, dovedes 12 V na VPP, jedan pin je clock, jedan data i udriiiiiiiiii (tako i rade svi oni jeftiniji programatori).
Dakle jos jednom postupak je sledeci:
punilac ucita hex u memoriju
punilac dekodira hex i napravi spisak memorijskih lokacija i vrednosti
punilac ide redom po memorijskim lokacijama i koristeci clock i data salje te podatke pic-u.
Ako to radis preko serijskog ili pararelnog mozes direktno, ako zelis preko usb-a trebace ti nesto izmedju (sta je bolje od drugog pic-a). Negde sigurno ima pdf koji objasnjava tacan protokol programiranja, onda moze da se napravi recimo pic koji programira (ili jendostavno kupis easypic).
P.S. ne radim za mikroelektroniku.
CHUPCKO