Gudinna Wiki VisaÄndraBifogaVersionerUppdateratSökKarta

Tips för att bränna .hex filer med PICSTART Plus och MPLAB

Vad är en .hex fil?

Hex filer är kompilerad programkod för Microchips-PIC microprocessor serie. Läs mer hur man skapar .HEX filer på PIC-Programmering sidan.
Många associerar .HEX filer med @sattelit och tv-decoders detta beror på att det ofta sitter en Microchip-PIC krets i TV decodern ( till excempel en 16F84 ) vars mjukvara kan bytas ut om man lägger in ny programvara i PIC-chippet, .HEX filen innehåller själva programmet.

Tips för att bränna .hex filer med PICSTART Plus och MPLAB

Uploaded Image: 21151-1.gif + Uploaded Image: 21151-2.gif

Det ska fungera utmärkt att använda PICSTART Plus med MPLAB, det viktigaste är att man ställer in så att MPLAB vet vilken programmerare som ska användas. Microchip som tillverkar PICmcu kretsarna och PICSTART Plus har publicerat en hel del dokumentation och användarguider på sin hemsida. Hoppas att dessa guider kan hjälpa dig.
@Information om PICSTART Plus från Microchips hemsida. - Användarguider i .pdf format och annat trevligt

Frågan som svaret baserar sig på:

Jag har en programmerae av JDM-typ för 8-pinnars-PIC,
baserad på mönsterkort som medföljde @Datormagazin nummer 1 2005.
Den fungerade bra för PIC12F629. Brännarprogrammet hette Ic-prog eller icprog.exe.
Nu har jag köpt en "PICSTART Plus"-brännare, för att exempelvis
kunna bränna @PIC16F870. Jag kommer nog att reklamera en komponent
i produkten, nämligen elssladden, som verkade följa utländsk
standard).
Det kortsiktiga behovet är att kunna bränna den från en HEX-fil.
och att kunna titta på innehållet i kretsen.
Jag vet inte om "PICSTART Plus"-brännaren är kompatibel med
någon typ som icprog.exe stöder. Det är i alla fall inte
helt uppenbart att så är fallet. Jag vet inte heller om det
finns något enkelt sätt att få MPLAB (programvaran som medföljde
brännaren) att befatta sig med HEX-filen, som ju annars gick utmärkt
att ladda in i den PIC-simulator som jag hämtat hem, eller läsa in
i icprog.exe, som dock inte är konfigurerad för den aktuella brännaren.
Vilken väg bedöms vara enklast framkomlig för mig för att kunna
bränna hex-filer med PICSTART Plus och helst även läsa PIC-kretsar
och spara koden till hex-fil eller i dissasemblerat format ?
/Harley

Hej Harley!
Tänk på att JDM-brännaren/programmeraren som följer med datormagazin är fullt kapabel att programmera samtliga PICmcu kretsar som stödjer ICSP (In Cicruit Serial Programming) inklusive @PIC16F870!

För att programmera kretsen med JDM-brännaren är det bara att ansluta de fem ICSP benen till din PIC krets och programmera/bränn som du brukar.

Koppla såhär:
Ben på JDM programmerarenBen på PICmcu kretsenBeskrivning
VPPVppSamma ben som !MCLR, men verifiera med referensmanualen från microchip för just din krets
VCCVDD+3-5v (plus)
GNDVSS- (jord)
DATAPGDVerifiera med referensmanualen från microchip för just din krets, brukar vara RB7
CLKPGCVerifiera med referensmanualen från microchip för just din krets, brukar vara RB6

Se till att det bara är programmeraren som strömmatar kretsen medans du programmerar. Får du problem med programmeringen se till att det inte är något mer änn JDM-Programmeraren som är ansluten till PGD och PGC, efter programmeringen kan PGD och PGC benen användas som vanliga I/O ben (RB6, RB7). ICSP möjligör att man kan programmera en PICmcu krets som är fastmonterad på kretskort utan att behöva avlägsna kretsen från där den ska användas.

Vill du veta mer om ICSP så läs @microchips mycket ingående guide för hur man designar applikationer som kan programmeras med ICSP samt tips.

/Xerxes Rånby

Tack Xerxes, för tipset (import-kommandot i fil-menyn på MPLAB
för att läsa hex-filer) !

Jag provade det ungefär samma dag jag fick detta tips och jag har
även använt export-kommandot (för att enkelt kunna ta upp en hexadecimal vy av programminnet i mitt favoritverktyg, som också
enkelt låter mig ändra bytes eller dissasemblera hela programmet
för att klippa ut och klippa in i exempelvis notepad).

Jag tycks alltså framgångsrikt kunna flytta hex-filer mellan icprog.exe-verktyget och MPLAB. Visserligen formatteras hex-filerna
lite olika av de båda verktygen, men ännu har jag i alla fall inte
hunnit uppleva några interoperabilitetsproblem med detta hex-fils-
utbyte.

Det är inte alls omöjligt att jag i framtiden kommer att använda
MPLAB i större utsträckning (exempelvis för assemblering och kanske
simulering), men jag vill uppmuntra till att tipsen och min feedback
(tänker närmast på att det även, kanske inte helt oväntat, verkar
finnas ett fungerande export-kommando) sammanställs in i FAQn !

Mvh !
/Harley

Hej Harley, har lagt din fråga i FAQn nu. Vill du själv hjälpa till att bygga ut pic programmerings sidorna på Gudinna Wiki så går det bra genom att använda "ändra" knappen längst upp på alla Gudinna Wiki sidor.
/Xerxes

Tack Xerxes för ditt snabba svar !
Jag är dock inte säker på att det ledde framåt i mitt fall.

Jag har redan tidigare försökt använda JDM-brännaren enligt
den koppling du anger för att bränna PIC16F870-kretsen, jag
tror dock att VPP under programmeringsfasen låg på ca 10V,
jag är osäker på om detta är tillräckligt.
Å andra sidan så skall kretsen stödja low voltage programming,
men då skall man väl välja detta genom att höja Vss och Vpp i
rätt ordning (och timing).
Resultatet var i alla fall att all läsning från kretsen gav 3FFF-
värden tillbaka och verifieringen felade därför vanligtvis redan
på första ordet i programminet.
Det kan vara serieporten som inte orkar. Det kan även vara jag
som har lött fel.

När det gäller MPLAB så är ju detta en s.k. IDE, med både dess
fördelar och nackdelar.
Jag skall medge att jag köpte brännaren igår för att bland annat
fira att jag lyckats hitta lödkolven och för att snabbare och
enklare kunna komma igång och programmera olika typer av PICar,
Men mitt första intryck var att MPLAB inte hade någon fildialog som
var beredd att befatta sig med HEX-filer, så antagligen måste
man skapa något MPLAB-projekt som på något sätt kapslar in eller
refererar den befintliga HEX-filen, vilket i så fall kan kännas
som att gå över ån efter vatten. Man kanske kan dissasemblera
i icprog.exe och klippa in assemblerkoden i MPLAB eller något.
Det enklaste vore dock om man kunde identifiera en kompatibel
brännare som redan stöds av icprog.exe eller flasha om
"PICSTART Plus" med sådan programvara att den blir kompatibel
med en sådan brännare.

HEX-filen har förresten skapats av "cc5x.exe demo.c" och är en
monitor som inkluderas från demo.c och har konfigurerat för
PIC16F870.

Med vänlig hälsning !
/Harley

Hej Harley!
Föf att öppna .hex filer i MPLAB så måste man välja Import från File menyn (File -> Import...). Dilogen som öppnas är då avsädd för att ladda .hex filer, det går även att ladda debug filer via import dialogen. Hoppas allt ordnar sig!

Det är mycket möjligt att JDM programmeraren ger lite för klen spänning då PICmcu chippen egentligen vill ha runt 14v för att aktivera programmeringsläget. Jag har haft samma problem att programmera vissa typer av 16F87X PICmcu kretsar med el-cheapo vartefter jag köppte ISP-PRO programmeraren vilken jag använder mig av just nu.

Mycket möjligt att dom som har JDM programmeraren kan ordna problemet genom att installera en större kondensator i JDM kopplingen eftersom mig veteligen behöver bara PICmcu kretsarna en puls på 14v vid början av programmeringsfasen, under överföringen av data så behöver inte VPP benet ligga på 14v och kan sjunka betydligt utan problem.

mvh
/Xerxes

Referens till aktuell sida