Programmering av 16F88

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Programmering av 16F88

Inlägg av Marta »

Programmeringsspecifikationen till PIC 16F88 är lite luddig och jag frågar därför här om någon vet vad som verkligen gäller.

Bild

Fråga 1: Hur långa skall programmerinstiderna vara? "minimum 1ms" är inte en spec jag känner mig tillfreds med. Lite mera exakt skulle vara bra.

Fråga 2: Skall man verkligen dra upp RA4 till Vpp?

Fråga 3:

Kod: Markera allt

Note: Upon entering Programming mode, a
“Load Data for Program Memory” or “Load
Data for Data Memory” command of 0x01
must be given before a Begin Erase or
Begin Programming command is initiated.
This will ensure that the programming
pointer is pointing to the correct location in
data or program memory.
En dummy load för att peka på rätt adressområde när man skall radera förstår jag, men vad menas med att man skall ladda 01 innan man man programmerar?


Usch, så luddigt. Nåväl, det kanske räcker att använda sunt förnuft och sedan är det "bare å åk"...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

1: Jag skulle tro att det kan vara ganska långsamt om du håller denna puls aktiv i timmer men det är OK för Microchip. Vad är luddigt? "Minst 1ms"?

2: Det står det ju ganska tydligt vill jag påstå! Och när du sedan kollar noga ser du att RA4 och MCLR och VPP är samma pinne.....

3: Det står faktisk att du ska utföra en “Load Data for Program Memory” eller “Load Data for Data Memory” kommando och ange adressen till 0x01.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

1: Det står att programmeringe är "externally timed", därför antar jag att flash nöts onödigt mycket om man drar ut på tiden, men samtidigt måste man vara säker på att det "tar" ordentligt.

2: MCLR/Vpp delar pinne med RA5, inte RA4, både i programspec och i ordinarie datablad.

3: Någon adress kan ju inte anges till dessa kommandon. De sätter adresseringsområdet, men enda sättet att adressera en viss positon är att inkrementera fram till denna efter att ha nollstält genom att cykla program mode.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

1: Då flashen har en inbyggd timing som ser till att programmera "lagom" är det en helt onödig tanke.

2: Då måste det vara en "typo" att det är RA4, den enda pinne som ska ha VPP är ju just VPP.

3: När jag lusläser verkar 0x01 vara själva kommandon som ska ges.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

1: frågan är om flashen har inbyggd timing. Den har det på många andra PIC's, men här står det uttryckligen "externally timed". Dessutom står det på "Chip erase" uttryckligen "internally timed" och där är det bara en minsta väntan för att kretsen skall hinna med. På den andra skall man skcika ett kommando för "End Of Program" när tiden är ute. Verkar konstigt om det finns inbyggd timer.

2: Utgår från att det är en typo.

3: Det finns inget kommando varken 01 eller 10, antar det bra är att prova och se vad som händer.


Den här specen är inte bra, dessutom ända från 2002. Deras andra datablad och programspecar har varit mycket tydliga och concisa. Nåväl, bara det ine säger tjoff och den magiska röken avgår så får jag väl treva mig fram där det är luddigt beskrivet.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

För att slippa hela detta tjafs så kör man naturligtsvis en programmerare
med programvara där *någon annan* som kan dessa saker redan har
gjort jobbet åt en. Jag har aldrig förstått varför man ska uppfinna
sina egna verktyg om de redan finns färdiga. Low-level programmeringen
är så pass komplex att det knappast är lönt tiden att pyssla med det
om man inte råkar vara designer av programeringsverktyg.

> dessutom ända från 2002.

Det är väl jättebra om den blev rätt redan då !? :-)

Hur som helst,

> Hur långa skall programmerinstiderna vara?

Enligt flödesschemana för i Programming spec så är det :
- "Begin Programming Only Command"
- "Wait <tprog1>"
- "End Progrmming Command"

Och tprog1 är specad som "min 1 ms".
Verkar ganska klart. Om du kör med 1 ms (eller mer) så ligger du "inom spec".

När dete gäller "Chip erase" så tror jag inte att den svarar på något
kommando alls innan hela raderingen n är klar.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Vad är då skillnaden mot en som är "internally timed" som t.ex. 16F628? Där är det bara att ladda data, starta programmering och vänta ut tiden. Sedan är det klart att inkrementera adressen och flasha nästa programord.

Du har kanske rätt att detär samma här, "End OF Programming" kanske inte terminerar flashningen, utan bara återställer programmeringslogiken för att ta emot nästa grupp om fyra instruktioner. I så fall tycker jag det är väldigt klumpigt uttryckt.

Anledninge till att jag sysslar med denna lågnivåprogrammering är att alla mina verktyg är hemmaskrivna. Det är trevligare så, då vetjag vad som händer och kan rätta problemen själv när det inte fungerar. Dessutom finns det ingen annan att skylla på när där kommer en bit på tvären var i kedjan från tanke till program den än har fastnat.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Vad är då skillnaden mot en som är "internally timed" som t.ex. 16F628?

Ja, det är väl just det.
628A/648A avslutar själva programmeringen, och "Tprog" är specad
som ett *max värde* (2.5 ms). Efter det ska det garanterat vara klart.

> "End OF Programming" kanske inte terminerar flashningen, utan bara
> återställer programmeringslogiken för att ta emot nästa grupp om
> fyra instruktioner.

Vad spelar det för roll ? Just follow the docs...

> I så fall tycker jag det är väldigt klumpigt uttryckt.

Det kanske är helt *korrekt* uttryckt...

Sen kan det väl finnas en charm i att bygga sina egna verktyg, men de
flesta vill nog fokusera på sina *applikationer* och använda färdiga
hammare och sågar från järnaffären... :-)
*OM* inte "applikationen" råkar vara just en programmerare...
Skriv svar