PIC16F877A ICSP inkoppling

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

PIC16F877A ICSP inkoppling

Inlägg av Seven11 »

Jag har en Velleman K8048 (Kjell & CO addr). Nu hade jag tänkt koppla in min PIC16F877A till ICSP porten och programmera den, men är det någon som har ett schema som illustrerar hur PIC:en ska vara kopplad (motstånd till MCLR, kondensatorer till klockan osv) samtidigt som den är kopplad till ICSP...
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

ICSP-kopplingen står på sista sidan i manualen. Exemplet är för PIC16F627... Men jämför du med pinkonfigurationen (i databladet) till din PIC16F877A så kan du kolla hur det är med just din processor.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

aha den såg jag inte... men kopplar jag bara in de komponenter jag behöver till min egen applikation på detta sedan? sen står det att "min 1k" på 2 resistorer, vad är rekommenderat att man sätter där, och varför?
Sen är det en del komponenter som man behöver om man PIC:en är igång medans man programmerar, betyder detta att, när PIC:en kör mitt program så kan jag koppla in ICSP:n och programmera om den så startar PIC:en om eller hur funderar det?

PIC16F877A är pinkompitabel med PIC16F627 har jag för mig att det står någonstans i PIC16F877A databladet (men jag kan ha fel).

Men sen finns det ju en hel del komponenter som det är rekommenderat att man sätter in, typ kondensatorer på klockingångarna osv är det någon som har ett schema som beskriver detta för PIC16F877A?

EDIT: la till en fråga...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> betyder detta att, när PIC:en kör mitt program så kan jag koppla in ICSP:n och programmera om den så startar PIC:en om eller hur funderar det?

Jag har inte kollat specifickt för din programmerare, men *normalt* så
skall en ICSP-proframmerare ha kontroll över MCLR pinnen. D.v.s i "run"
läge se till att den är hög så att din appikation kan köra, Övriga pinnar
skall vara bortkopplade (alltså inte fysiskt, utan i high-Z mode).

Du ska aldrig behöva fysiskt koppla bort programmeraren, om det är en
"riktig" ICSP-programmerare.

När du sedan (via PC'ns program) begär en om-programmering
av din PIC, så kommer programmeraren att först sätta MCLR låg
så att processorn stannar, sedan snabbt lägga på 13V (Vpp) på
MCLR så att den går in i "programing mode" (utan att hinna "starta).
Sedan programmeras den nya versionen av applikationen via
PGC/PGD pinnarna. Till sist, när verifieringen har gått OK, skall
programmeraren först sätta tillbaka PGC/PGD i high-Z, sedan
sänka MCLR till reset-läge för att till slut sätta MCLR hög så
att den nya applikationen startar normalt.

Om programmeraren *inte* klarar detta utan att kopplad den
*fysiskt* i och ur, så är den "crappy"...

Du får ta hänsyn i din krets att en extern källa (programmeren)
kommer att driva PGC/PGD linjerna.

> PIC16F877A är pinkompitabel med PIC16F627

Långt ifrån !!
Kolla igen...

> typ kondensatorer på klockingångarna

Vilka "klockingångar" ??? Jag är överygad om att de använder ett riktigt
namn på dom, gör det du också så blir allt mycket enklare.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

sodjan: menade CLKIN och CLKOUT

hur som helst får jag det inte att fungera... har testat att bara koppla in ICSP:n till labbplattsen och PIC:en (inga mostånd eller kondensatorer någonstans alltså) och det funkar fortfarande inte. Några tips?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> CLKIN och CLKOUT

Använder du en extern klocka ?
Eller kristall (då heter pinnarna OSC1 och OSC2 och skall ha 22 pF till jord).
Dock behövs ingen oscillator för att *programmera* en PIC.

> har testat att bara koppla in ICSP:n till labbplattsen och PIC:en

Om det finns ett kapitel i K8048 manualen om ICSP, så är det väll bara att följa det som står där.

[Laddar ner manualen över modemet...............]

Observera att schemat i manualen enbart redovisar de anslutningar som är
rellevanta för ICSP kopplingen. Sedan måste naturligtsvis PIC'en förses
med övriga normala kopplingar, som avkopplingskondingar, 5V och jord
på rätt pinnar (2 vardera på 877A), kristall (t.ex) om du även vill kunna
köra applikationen o.s.v.

> det funkar fortfarande inte. Några tips?

Knappast, inte med en så dålig beskrivning av vad som händer !
"Funkar inte", duger inte alls som felbeskrivning...
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

aha, det var 22pF svaret jag var ute efter (har sett flera olika kondensator värden på nätet nämligen)

Jo men jag håller på att testar enbart med ICSP kopplingen just för tillfället (alltså inga kringkomponenter som manualen visar), men +5V och GND ska väl inte kopplas in då? för dom signalerna kommer ju från ICSP kontakten?

Det som händer när jag programmerar är att programmeraren ibland kan läsa device ID och ibland inte (får dev id till E27h för PIC16F877A). Men den lyckas aldrig programmera kresten. Det bara kommer upp ett felmeddelande att den försökte skriva in 0183h (från min .HEX fil alltså) med läste FFFFh.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Observervera att en fungerande oscillator (kristall eller intern) inte behövs för att *programmera* en PIC.
Bara för att *köra* koden efteråt.

5V måste vara anslutet, antingen separat eller från programmeraren.
Om K8048 förser "the target PIC" med 5V så är det bara att köra med den.

Vad har du för avkoppling runt "the target PIC" ?
T.ex en elyt (en eller ett par 100 uF) för att ta variationer i strömförbrukning
och en 100nF ker för att ta "spikar".
Strömförbrukningen varierar ganska nycket när den interna "charge pump" sätt på och av under programmeringen, och sporadiska fel kan ofta avhjälpas med några kondingar...
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

aha alright, nej jag har bara dragit pinne 1 från ICSP kontakten (VPP) till /MCLR, pinne 2 (VDD) till PIC:ens två VCC ingångar, pinne 3 (GND) till PIC:ens två GND ingångar, pinne 4 (PGD) till PIC:ens PGD och pinne 5 (PGC) till PIC:ens PGC.. som manualen visar (alla kringkomponenter trodde jag bara behövdes om man skulle ha en i en applikation, men nu vill jag ju bara testa att programmera den).

Men hur menar du att man ska koppla in kondensatorerna da... en 100 uF i med + till VDD och - till GND (?) och en 100 nF kopplad till VDD och GND... är det så du menar? är det allt?

Tack för hjälpen!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

(T.ex) en 100uF (elyt) och en 100 nF (ker eller pollyester) mellan
matningspänning en jord så nära "target PIC" (va f-n säger man på svenska ?,
"mål PIC'en" låter lite konstigt...) som möjligt.

Jag säger inte att det *säkert* är problem med störningar på
matningen, inte ens *sannolikt*, men det är skönt att ha det
ur världen i allla fall...
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

det verkar inte hjälpa...

men en annan sak jag tänkte på: är den ICSP inkoppling som finns i manualen allmän, alltså fungerar den med alla ICSP programmerare?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> är den ICSP inkoppling som finns i manualen allmän, alltså fungerar den med alla ICSP programmerare?

Hur kopplingen skall se ut, är inget som programmeraren styr.
Det är programmerings spcen till varje PIC som är styrande, och
den som konstruerar en ICSP programerare får snällt följa det.

Det finns även ett kort kapitel om ICSP i databladet till
varje PIC.

Det finns flera "Application Notes" från Microchip som i detalj
beskriver ICSP. Normalt är det dock inget problem, bara att
ansluta MCLR, PGD, PGC (och enentuellt Vdd/Vss) till rellevanta
pinnar på processorn (framgår av databladet så klart) och köra.

När det gäller just din koppling, så är det nästan omöjligt att
säja någonting utanm att *se* den. Det räcker inte med att
någon säger att "jag har kopplat si och så", när man inte har
möjliget att verifiera att det stämmer.

Sporadiska fel, som du verkar ha, är ofta kopplat till svajig
matningsspänning, dålig avkoppling vid procesormn av matnings-
spänningen, för långa PGD/PGC kablar, överhörning
mellan PGD/PGC kablarna (t.ex genom att de ligger tillsammans
i samma hölje) eller liknande.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

men du menar att man ska ha en 100 uF och en 100nF i serie mellan VSS och VDD, lämpligvis för att komma så nära pinnarna som möjligt så kan man ju har kondensatorerna under PIC:en fast på andra sidan kretskortet. Förstår du hur jag menar?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Nja...de ska rent faktisk vara i paralell. Grejen är att de avkopplar olika störningstyper och därmed behövs båda. Alltså BÅDA ska kopplas mellan GND och VCC.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Avkopplingskondensatorer har man vid *alla* digitala kretsar, helt
oavsett om det råkar vara en processor som skall anslutas via ICSP.
Blanda inte ihop det. Att kondingarna saknas på ett ICSP schema, betyder
inte att det inte behövs, den som ritade schemat antog nog bara att
det förstår man själv, hans fokus var på själva ICSP kopplingen...

Och så skall de ligga "bredvid varandra", så klart, som Icecap noterade.
Skriv svar