Inhoudsopgave:
Video: ICSP voor PIC-microcontrollers begrijpen: 4 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
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?
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?
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?
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 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:
Hoe de Android-applicatie te verbinden met AWS IOT en de API voor spraakherkenning te begrijpen: 3 stappen
Hoe de Android-applicatie te verbinden met AWS IOT en de spraakherkenning-API te begrijpen: deze tutorial leert de gebruiker hoe de Android-applicatie te verbinden met de AWS IOT-server en de spraakherkenning-API te begrijpen die een koffiemachine bestuurt. De applicatie bestuurt de koffiemachine via de Alexa Spraakservice, de ka
Basisprincipes van de motor - Concept Super eenvoudig te begrijpen met een experiment: 7 stappen (met afbeeldingen)
Basisprincipes van de motor | Concept Super gemakkelijk te begrijpen met een experiment: in deze instructable ga ik je leren over het onderliggende fundamentele principe van motoren. Alle motoren om ons heen werken volgens dit principe. Zelfs generatoren werken op een wederzijdse verklaring van deze regel. Ik heb het over de Vlaming's Left-Hand Ru
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Kanaalmixen begrijpen: 4 stappen (met afbeeldingen)
Channel Mixing begrijpen: Als je ooit een afstandsbedieningschassis hebt bestuurd, is de kans groot dat je mixen hebt gebruikt, zelfs als je het niet wist. Met name als u een enkele joystick of gimble hebt gebruikt om een voertuig te besturen dat gebruikmaakt van slipbesturing of
Elektronische sensoren begrijpen: 8 stappen
Elektronische sensoren begrijpen: bedoeld om de werking van gangbare industriële en huishoudelijke sensoren uit te leggen, deze "Instructable" leert je hoe je in de handel verkrijgbare sensoren kunt gebruiken in een echte wereld met behulp van praktische oefeningen en experimenten. Deze les zal br