Sida 1 av 1

ICSP-problem PIC16F876A

Postat: 8 juni 2006, 20:49:38
av John
Hej!
Jag har en gjort ett kretskort med en PIC16F876A i SOIC28-kapsel och några andra kretsar.
Nu ska jag programmera PIC-kretsen men det vill sig inte.
Felbeskrivning:
Det fel som blir är att Multiprog v1.90, som jag använder för att programmera med, säger: Error programming PIC16F876A.
Ibland när jag kör Verify på kretsen så meddelar programmet OK men oftast inte. Och när jag provkör kortet så verkar det inte som PIC-kretsen går över huvud taget.
Det verkar dock som att kristallen svänger för jag har en snygg sinusvåg på ben 10.
Jag har provat med flera olika fuses. Det viktiga är väl att man väljer HS och inaktiverar LVP, WDT och Code Protection?

Beskivning av hårdvaran:
Jag använder Multiprogrammerare 3.5 seriell från AD-teknik tillsammans med programmeringsprogrammet Multiprog v1.90.
ICSP-delen till PIC-kretsen är kopplad enligt Mid-Range MCU Family Reference Manual från Microchip.
Bild

PortB 6 och 7 är inte anslutna till något annat än programmeraren.
Jag har inte kopplat in pull-up motståndet till Vdd. Men har provat att köra både från programmerarens Vdd och kortets egna Vdd.
RC-länken till MCLR-pinnen består av ett 10k-motstånd och en 100nF-kondensator.
Som diod skulle jag egentligen haft en BAT54 schottky-diod men dessa var tyvärr slut så nu kör jag med en 1n4148.
Jag har mätt spänningen efter dioden till 4.9 V, vilket borde vara ok.
Hur som helst så tycker jag att det borde gå att programmera kretsen utan någon pull-up på MCLR, har provat detta också men med samma resultat.
PICen är avkopplad med en 100nF kondensator ca 3-4mm från kretsen.
Kristallen är på 8MHz och är avkopplad med 22pF.
Har även provat att koppla PORTB.3 till ett 10k pull-down motstånd för att eliminera eventuella som kan orsakas av Low Voltage Programming.

Nu har jag mätt alla anslutningar så att inget är felkopplat. Tyvärr funkar det fortfarande inte och jag vet inte var jag ska fortsätta leta, vore mycket tacksam om någon kunde ge en liten hint om var felet kan vara.

/John

Postat: 8 juni 2006, 21:15:28
av thepirateboy
Du skulle kunna prova att stoppa någon krets i hållaren eller kort i läsaren så ser du att det är ok så långt, men det kanske du gjort. Hur är det med firmwaren i programmeraren, stöder den PIC16F876?

Postat: 8 juni 2006, 21:30:42
av John
Jag har provat programmera en 16f84 i sockeln och det funka fint.
Jag vet inte om programmerarens firmware stöder 16f876A men om den inte gör det så tycker jag den skulle säga det. Får försöka kolla upp det.

Postat: 8 juni 2006, 21:40:11
av thepirateboy
Min tanke var om du hade en väldigt gammal firmware men 16F876 verkar vara ett gammalt chip så det bör inte vara problemet. Jag har själv proggat 16C765 ICSP, dock med USB-varianten, och det gick bra. Vad jag minns använde jag inga yttre komponenter alls.

Postat: 8 juni 2006, 23:27:34
av sodjan
thepirateboy> men 16F876 verkar vara ett gammalt chip...

Stämmer, men den som faktiskt *används*, 16F876A, är inte
så där jätte gammal.

Däremot, och mer intressant, är att programmeringsalgoritmen skilljer
sig en hel del mellan modellerna. Inta alla programmerare som
stöder 16F876, stöder också 16F876A...

Viktigt att hålla reda på numren, speciellt som det skilljer så mycket
på dom (ur programmeringssynpunkt, alltså...).

Hur som helst, det finns ingen större anledning att fortsätta
labba innan man har verifierat med leverantören eller dokumentationen
att den processor man använder faktiskt *förväntas* fungera.

> Jag har provat programmera en 16f84 i sockeln och det funka fint.

Naturligtsvis helt ointressant.
Det säger inte ett smack om hurvida en 16F876A också fungerar.
Stoppa en 16F876A (DIP) i sockeln så blir det mer intressant... :-)

Slutligt, ett föredömligt förstainlägg ! Jag ser inte direkt något som saknas.
Möjligen då att programmeraren *ska* (enligt leverantör eller dokumentation)
fungera med denna processor. Det är väl den mest uppenbara
orsaken just nu till problemen...

Postat: 9 juni 2006, 12:02:21
av John
Fick svar från AD-teknik idag, det var tydligen programmeraren som var felet. Det går inte heller att uppdatera firmwaren eftersom minnet i programmeraren inte räcker till.
Jag vill helst undvika att köpa eller bygga en ny programmerare, funderar istället på att använda en bootloader. Om jag kan lägger in en i PICen kan jag sedan uppdatera mitt program m.h.a. Com-porten och hyperterminalen?
Har aldrig testat detta förut, är det svårt/mycket jobb?

Postat: 9 juni 2006, 12:05:45
av Icecap
Ganska mycket moment 22 i detta.

1: du kan inte lägga in ett program i kretsen då programmeringsenheten inte klarar det.
2: En bootloader är en programsnudd som måste läggas in till en börja, se punkt 1.

Det är alltså stekt för dig hur du än vändar dig :-/

Jag rekommenderar WISP628 från sodjan och nej, jag får inget för att göra det, jag har byggd en själv och den fungerar bra och sodjan är totalstabil att handla med.

Postat: 9 juni 2006, 12:35:08
av John
Jag är med på att bootloadern är ett program som måste läggas in i kretsen innan det kan användas. Men om det räcker med att programmera kretsen en gång med programmerare så kan jag låna en och sen använda bootloadern när jag ska göra mitt program. Frågan kvarstår dock, fungerar bootloader bra och hur svårt är det att komma igång?
Om det blir för krångligt köper jag antagligen en WISP, har bara läst bra saker om dem.

Postat: 9 juni 2006, 13:46:00
av bearing
Jag använder bootloader och det är väldigt smidigt tycker jag. Kör med den som finns på CC5X-webplatsen.

Det du bör tänka på är att ha ett felsäkert sätta att ta dig in i bootloader-programmet. Alltså, om ditt main-program skulle hänga sig bör du kunna ta dig in i bootloadern. Jag använder extern interrupt för det + att jag brukar ha något ben på processorn som läses precis i början av main och sätter igång bootloadern om det ligger högt/lågt.

Postat: 9 juni 2006, 14:16:55
av sodjan
Jag tror att det är svårt att *enbart* klara sig med en bootloader
utan att även ha tillgång till en "riktig" pogrammerare.

Bootloaders är kraftigt överreklamerade. IMHO...

Postat: 9 juni 2006, 15:38:46
av John
Det blev ett riktigt fulhack så länge. http://stolz.de.be/
Men det är som vanligt man får vad man betalar för, den här lösningen tar drygt 2 min på sig för att programmera en PIC.
Bootloader verkade lite för knepigt, nästa gång jag ska göra ett projekt med PIC köper jag en riktig programmerare.
Tack för hjälpen allihop!
/John

Postat: 9 juni 2006, 19:21:34
av Tranzorb
Fulhack? Du menar "LVP Cable"? Huvudsaken är väl att den klarar av jobbet. Sen finns det naturligtvis bättre programmerare än denna, t.ex den andra som finns på http://stolz.de.be ICD2 klonen, eller den Sodjan säljer.

Postat: 9 juni 2006, 21:14:22
av sodjan
Definitivt ett ful-hack, eftersom man låter protection dioderna leda...