Inhoudsopgave:

ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)
ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)

Video: ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)

Video: ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)
Video: ARM PROCESSOR AND RTOS UNIT II - I 2024, November
Anonim
ICSP voor PIC-microcontrollers begrijpen
ICSP voor PIC-microcontrollers begrijpen

Het programmeren van microcontrollers is niet moeilijk. Het bouwen van een programmeur is een geweldig eerste elektronicaproject. Het doel van deze instructable is om de eenvoudige 'in circuit serial programming'-methode uit te leggen die wordt gebruikt met Microchip PIC's.

Stap 1: Waarom ICSP?

Waarom ICSP?
Waarom ICSP?

Het programmeren van een grote DIP-chip (through hole) is eenvoudig. Stop het in een socketed programmer, brand en keer terug naar het applicatiecircuit. Test en herhaal.

Het wordt moeilijker met kleinere (surface mount) chips. Er zijn geen standaard sockets voor QFN, SSOP, QFP of zelfs de grote SOIC.300-pakketten. Er zijn echt dure clips (€ 100) die aan deze chips kunnen worden bevestigd en geprogrammeerd. Voor elk chiptype en aantal pins dat u gebruikt, is een andere clip nodig. Er is een alternatief. Het heet ICSP. ICSP betekent 'in circuit serial programmer(ing?)'. Het is een manier om een PIC te programmeren terwijl deze nog aan het applicatiecircuit is bevestigd. Dat klopt, geen chip-swapping meer. Waarom ICSP? 1. Er zijn geen programmeersockets voor kleine pakketchips. Clipjes zijn duur. 2. Het is lastig om tijdens de ontwikkeling chips in en uit de programmer te verplaatsen. Onmogelijk voor onderdelen voor opbouwmontage.

Stap 2: Wat is ICSP?

Wat is ICSP?
Wat is ICSP?
Wat is ICSP?
Wat is ICSP?
Wat is ICSP?
Wat is ICSP?
Wat is ICSP?
Wat is ICSP?

Er zijn vijf verbindingen nodig om een PIC te programmeren terwijl deze is aangesloten op een applicatiecircuit. Ik voeg een 5-pins header toe aan mijn printplaten om deze verbinding snel en gemakkelijk te maken. De basis van PIC-programmering. Er zijn vijf verbindingen nodig om een PIC te programmeren. Stroom, aarde, een programmeerspanning, klok en data.+ (Vdd)/-(Vss) Dit zijn de stroom- en massaverbindingen (Vdd, Vss). Vrij standaard. Als u een programmeur gebruikt met 'echte' spanningsniveaus (NIET een JDM2!), kan uw applicatie na het programmeren op zijn eigen voeding werken, waardoor deze verbindingen worden geëlimineerd. Vpp Dit is de programmeerspanning. PIC's gaan naar de programmeermodus wanneer ~13 volt op de MCLR/Vpp-pin wordt geplaatst (meestal pin 1 op moderne PIC's, daarover hieronder meer). Clock/Data of PGC/PGD De klok- en datalijnen worden gebruikt om de PIC te schrijven en te lezen firmware. Dit zijn meestal dezelfde pinnen als PORTB6 & PORTB7. Oefening: Identificeer de ICSP-aansluitpunten op de PIC's in de onderstaande afbeeldingen. Als de PIC past, draag hem dan. Ik krijg veel vragen over mijn JDM2-ontwerp op instructables. De meest voorkomende is " Zal het PIC X programmeren?'"' - hier is hoe u het kunt zien: 1) Kijk naar het gegevensblad. Zoek het 'Pin-diagram' dat er ongeveer zo uitziet als de afbeelding hieronder.2) Identificeer de locatie van de pinnen die moeten worden aangesloten voor het programmeren (Vpp, Vdd, Vss, Data, & Clock).3) Kijk naar de socket-aansluiting op de programmeur. Kun je de vereiste pinnen matchen met een socket op de programmer?

Stap 3: Hoe ICSP?

Hoe ICSP?
Hoe ICSP?
Hoe ICSP?
Hoe ICSP?
Hoe ICSP?
Hoe ICSP?
Hoe ICSP?
Hoe ICSP?

Afhankelijk van uw ontwerp kunt u nu alle benodigde verbindingen maken en uw PIC programmeren. Er zijn een paar vangsten die u moet weten. Ontwerp voor ICSP is belangrijk. Microchip biedt een mooie PDF-toepassingsnotitie over ontwerpen voor ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744Hier zijn enkele tips en voorbeelden van ICSP-ontwerpen uit mijn vorige instructables. Tip #1, Bedreigingsniveau: Belangrijk Sluit niets anders aan op de CLOCK en DATA-pinnen (meestal RB6 & RB7, PGC & PGD). Doe het gewoon niet. Er zijn situaties waarin heel slimme ingenieurs ermee wegkomen, maar het niet doen. De componenten die aan de pinnen zijn bevestigd, zullen de klok- en datasignalen scheeftrekken, wat resulteert in onvoorspelbare programmering. Bovendien, als u ooit een in-circuit seriële debugger wilt gebruiken, kunt u dat niet. Doe het gewoon niet. Tip #2 Bedreigingsniveau: ExplosiefGebruik altijd een diode tussen de programmeerspanning en de systeemspanning. Als u MCLR (master clear) op een PIC gebruikt, moet u spanning op de MCLR-pin leveren via een weerstand van 10Kish. Dit is ook de pin waarop u ~13 volt toepast om de programmeermodus te openen. Ik heb een 1n4148 (equivalent) diode tussen de weerstand en de MCLR / Vpp-pin geplaatst (zoals weergegeven in het schema en de onderstaande weergave). Dit houdt de programmeerspanning op de Vpp-pin en voorkomt vernietiging van andere componenten op je board. Tip #3 Bedreigingsniveau: (re)moeLaagspanningsprogrammering houdt je tegen, man. Ik ben nog nooit succesvol geweest met LVP. Ik heb het nog nooit (consequent) zien werken met mijn eigen ogen. Gewoon doorbijten en $ 2,50 uitgeven om een JDM2-programmeur te bouwen.

Stap 4: ICSP-programmeurs

ICSP-programmeurs
ICSP-programmeurs
ICSP-programmeurs
ICSP-programmeurs

ICSP vereist geen ander programmeerprotocol. Een socket-gebaseerde programmeur produceert al de vereiste signalering, maar stuurt deze naar de socket in plaats van via draden. De meeste socket-programmeurs kunnen worden gebruikt als een ICSP door draden van de socket naar het applicatiecircuit te riggen. De originele JDM2-programmer (hier: https://www.jdm.homepage.dk/newpic.htm) kan bijvoorbeeld worden gebruikt om voer ICSP-programmering uit door de 5 vereiste signalen naar een header te brengen. Dit is te zien in de programmer hier: https://www.belza.cz/digital/jdm.htm. Om dingen bij de hand te houden, heb ik dit ontwerp opnieuw gemaakt in Eagle Cad en aan dit instructable toegevoegd. Let op de richting van de transistor, een van de voetafdrukken kan onjuist zijn (ik heb dit meer dan een jaar geleden gemaakt, ik herinner het me niet meer). Op dezelfde manier kan mijn bijgewerkte JDM2-programmeur (hier: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) worden gebruikt voor ICSP door draden in de DIP-sockets te steken en ze aan te sluiten op de doel-PIC. *****JDM2's gebruiken funky spanningen… sluit ze aan op het circuit ZONDER externe voeding (of zelfs aarde) aangesloten op het applicatiecircuit. Verwijder de ICSP-aansluitingen voordat u de stroom inschakelt. Als u dit niet doet, is dit niet destructief, maar resulteert dit in een mislukte programmering.***** Een andere optie is een (semi-)goede ICD-programmeur. Met ICD kunt u de firmware-uitvoering op uw PIC regelen door breekpunten in de code in te stellen of geheugen- en poortwaarden uit te lezen. Een ICD kan ook de uitvoering van code animeren, het applicatiecircuit van stroom voorzien en de PIC programmeren. Het doet dit allemaal via dezelfde 5-pins ICSP-verbinding die we hebben besproken. Verschillende ICSP-klonen die u zelf kunt maken, kunt u hier bekijken: https://www.icd2clone.com/wiki/Main_Page. Ik heb de PiCS (rev B) een paar maanden geleden gebouwd en ben er dol op.

Aanbevolen: