Innehållsförteckning:

Förstå ICSP för PIC -mikrokontroller: 4 steg (med bilder)
Förstå ICSP för PIC -mikrokontroller: 4 steg (med bilder)

Video: Förstå ICSP för PIC -mikrokontroller: 4 steg (med bilder)

Video: Förstå ICSP för PIC -mikrokontroller: 4 steg (med bilder)
Video: Mitt jobb är att observera skogen och här händer något konstigt. 2024, Juli
Anonim
Förstå ICSP för PIC -mikrokontroller
Förstå ICSP för PIC -mikrokontroller

Att programmera mikrokontroller är inte svårt. Att bygga en programmerare är ett bra första elektronikprojekt. Målet med denna instruerbara är att förklara den enkla "in circuit serial programmering" -metoden som används med Microchip PIC.

Steg 1: Varför ICSP?

Varför ICSP?
Varför ICSP?

Att programmera ett stort DIP -chip (genomgående hål) är enkelt. Hoppa in den i en ansluten programmerare, bränn och återgå till applikationskretsen. Testa och upprepa.

Saker och ting blir svårare med mindre (ytmonterade) marker. Det finns inga standarduttag för QFN, SSOP, QFP eller ens de stora SOIC.300 -paketen. Det finns riktigt dyra ($ 100s) klipp som kan kopplas till och programmera dessa marker. Ett annat klipp behövs för varje chiptyp och antal stift du använder. Det finns ett alternativ. Den heter ICSP. ICSP betyder 'i krets seriell programmerare (ing?)'. Det är ett sätt att programmera en PIC medan den fortfarande är ansluten till applikationskretsen. Det stämmer, inte mer chipbyte. Varför ICSP? 1. Det finns inga programmeringsuttag för små paketchips. Klipp är dyra. 2. Det är en smärta att flytta in chips och ut ur programmeraren under utvecklingen. Omöjligt för ytmonterade delar.

Steg 2: Vad är ICSP?

Vad är ICSP?
Vad är ICSP?
Vad är ICSP?
Vad är ICSP?
Vad är ICSP?
Vad är ICSP?
Vad är ICSP?
Vad är ICSP?

Fem anslutningar behövs för att programmera en PIC medan den är ansluten till en applikationskrets. Jag lägger till en 5 -stifts rubrik till mina kretskort för att göra denna anslutning snabb och enkel. Grunderna i PIC -programmering. Fem anslutningar krävs för att programmera en PIC. Effekt, jord, programmeringsspänning, klocka och data.+ (Vdd)/-(Vss) Dessa är ström- och jordanslutningarna (Vdd, Vss). Ganska standard. Om du använder en programmerare med "riktiga" spänningsnivåer (INTE en JDM2!), Kan din applikation köra från sin egen strömförsörjning när den är programmerad, vilket eliminerar dessa anslutningar. Vpp Detta är programmeringsspänningen. PIC går in i programmeringsläge när ~ 13 volt är placerade på MCLR/Vpp -stiftet (vanligtvis stift 1 på moderna PIC, mer om det nedan). Klocka/data eller PGC/PGD Klockan och datalinjerna används för att skriva och läsa PIC firmware. Dessa är vanligtvis samma stift som PORTB6 & PORTB7. Övning: Identifiera ICSP -anslutningspunkterna på PIC -bilderna i bilderna nedan. Om PIC passar, bär den. Jag får många frågor om min JDM2 -design på instruktioner. Det vanligaste är "Kommer det att programmera PIC X?" " - här kan du se: 1) Titta på databladet. Hitta 'Pin Diagram' som ser ut ungefär som på bilden nedan. 2) Identifiera platsen för stiften som måste anslutas för programmering (Vpp, Vdd, Vss, Data, & Clock). 3) Titta på uttagets anslutning på programmerare. Kan du matcha de nödvändiga stiften med ett uttag på programmeraren?

Steg 3: Hur ICSP?

Hur ICSP?
Hur ICSP?
Hur ICSP?
Hur ICSP?
Hur ICSP?
Hur ICSP?
Hur ICSP?
Hur ICSP?

Beroende på din design kan du nu göra alla nödvändiga anslutningar och programmera din PIC. Det finns några fångster som du bör veta om. Design för ICSP är viktigt. Microchip ger en trevlig PDF -ansökan om design för ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744 Här är några tips och exempel på ICSP -mönster från mina tidigare instruktioner. Tips #1, hotnivå: Viktigt Anslut inget annat till CLOCK och DATA -stift (vanligtvis RB6 & RB7, PGC & PGD). Gör det bara inte. Det finns situationer där mycket smarta tekniska typer slipper det, men inte gör det. Komponenterna som är fästa på stiften kommer att skeva klockan och datasignalerna, vilket resulterar i oförutsägbar programmering. Dessutom, om du någonsin vill använda en seriell debugger i kretsen kan du inte. Tips #2 Hotnivå: Explosiv Använd alltid en diod mellan programmeringsspänningen och systemspänningen. Om du använder MCLR (master clear) på en PIC måste du ge lite spänning på MCLR -stiftet genom ett 10Kish -motstånd. Detta är också stiftet som du kommer att använda ~ 13 volt för att gå in i programmeringsläget. Jag satte en 1n4148 (ekvivalent) diod mellan motståndet och MCLR/Vpp -stiftet (som visas i schemat och återgivningen nedan). Detta håller programmeringsspänningen på Vpp -stiftet och förhindrar förstörelse av andra komponenter på ditt kort. Tips #3 Hotnivå: (re) trött Lågspänningsprogrammering håller dig tillbaka, man. Jag har aldrig varit framgångsrik med LVP. Jag har aldrig sett det fungera (konsekvent) med mina egna ögon. Bara bita i spetsen och spendera $ 2,50 för att bygga en JDM2 -programmerare.

Steg 4: ICSP -programmerare

ICSP -programmerare
ICSP -programmerare
ICSP -programmerare
ICSP -programmerare

ICSP kräver inte ett annat programmeringsprotokoll. En sockelbaserad programmerare producerar redan nödvändig signalering, men skickar den till uttaget snarare än genom ledningar. De flesta uttagsprogrammerare kan användas som ICSP genom att rigga ledningar från uttaget till applikationskretsen. Till exempel kan den ursprungliga JDM2 -programmeraren (här: https://www.jdm.homepage.dk/newpic.htm) användas för att gör ICSP -programmering genom att föra de 5 nödvändiga signalerna till en rubrik. Detta kan ses i programmeraren här: https://www.belza.cz/digital/jdm.htm. För att hålla saker till hands gjorde jag om denna design i Eagle Cad och fäst den på denna instruerbara. Se transistorriktningen, ett av fotavtrycken kan vara felaktigt (jag gjorde det här för mer än ett år sedan, jag kommer inte ihåg längre). På samma sätt kan min uppdaterade JDM2 -programmerare (här: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) användas för ICSP genom att fästa trådar i DIP -uttagen och ansluta dem till mål -PIC. ***** JDM2 använder funky spänningar … anslut den till kretsen UTAN extern ström (eller till och med jord) ansluten till applikationskretsen. Ta bort ICSP -anslutningarna innan du sätter på ström. Underlåtenhet att göra detta är inte destruktivt, men kommer att resultera i misslyckad programmering ******* Ett annat alternativ är en (halv) korrekt ICD-programmerare. ICD låter dig styra firmware -körningen på din PIC genom att ställa in brytpunkter i koden eller läsa ut minne och portvärden. En ICD kan också animera körningen av kod, driva applikationskretsen och programmera PIC. Det gör allt detta genom samma 5 -stifts ICSP -anslutning som vi har diskuterat. Flera ICSP -kloner som du kan göra själv kan ses här: https://www.icd2clone.com/wiki/Main_Page. Jag byggde PiCS (rev B) för några månader sedan och älskar det.

Rekommenderad: