- Architectuur en toepassingen van PIC-microcontroller:
- Selectie van PIC-microcontroller voor onze tutorials:
- Selectie van software voor onze tutorials:
- Voorbereidingen treffen met hardware:
In 1980 ontwikkelde Intel de eerste microcontroller (8051) met Harvard Architecture 8051 en sindsdien brachten microcontrollers een revolutie teweeg in de elektronica- en embedded industrie. En met de technologische vooruitgang in de loop van de tijd, hebben we nu veel efficiëntere en zuinigere microcontrollers zoals AVR, PIC, ARM. Deze microcontrollers zijn beter in staat en gemakkelijker te gebruiken, met de nieuwste communicatieprotocollen zoals USB, I2C, SPI, CAN enz. Zelfs Arduino en Raspberry Pi hebben het perspectief op microcontrollers volledig veranderd, en Raspberry Pi is niet alleen een microcontroller, maar computer binnen.
Dit zal het eerste deel zijn van een reeks tutorials die nog moeten komen, die je zullen helpen bij het leren van PIC Microcontrollers. Als je een elektronica-achtergrond hebt en je hebt altijd al willen beginnen met het leren van een aantal microcontrollers en jezelf in de wereld van coderen en bouwen willen verdiepen, dan is deze reeks tutorials je eerste stap om mee te beginnen.
PIC-microcontroller is een zeer handige keuze om aan de slag te gaan met een microcontroller-project, omdat het uitstekende ondersteuningsforums heeft en zal fungeren als een sterke basis om voort te bouwen op al uw geavanceerde microcontrollers die u nog moet leren.
Deze tutorials zijn gemaakt voor absolute of halfgevorderde leerlingen; we zijn van plan om te beginnen met de meest elementaire projecten tot de meest geavanceerde. We verwachten geen vereisten van de cursisten, aangezien we hier zijn om u vanaf elk niveau te helpen. Elke tutorial heeft een theoretische uitleg en simulatie, gevolgd door een praktische tutorial. Deze tutorials zullen geen ontwikkelingsborden bevatten, we zullen onze eigen circuits maken met behulp van een perf-bord. Dus maak je klaar en maak elke week wat tijd om je te verbeteren met Microcontrollers.
Laten we nu aan de slag gaan met een eenvoudige introductie over PIC-microcontrollers en enkele software-instellingen om ons op weg te helpen met onze volgende tutorial. Bekijk de video aan het einde voor het installeren en instellen van de MPLABX, XC8, Proteus en een snelle unboxing van PICkit 3-programmeur.
Architectuur en toepassingen van PIC-microcontroller:
De PIC-microcontroller werd geïntroduceerd door Microchip Technologies in 1993. Oorspronkelijk werden deze PIC ontwikkeld als onderdeel van PDP- computers (Programmed Data Processor) en elk randapparaat van de computer werd met deze PIC-microcontroller verbonden. Vandaar dat de PIC zijn naam krijgt als voor Peripheral Interface Controller. Later heeft Microchip een groot aantal IC's uit de PIC-serie ontwikkeld die voor elke kleine toepassing kunnen worden gebruikt, zoals een verlichtingstoepassing tot de geavanceerde.
Elke microcontroller moet rond een bepaalde architectuur worden gebouwd, het meest bekende type architectuur is de architectuur van Harvard, onze PIC is gebaseerd op deze architectuur omdat het tot de klassieke 8051-familie behoort. Laten we een kleine intro beginnen over de Harvard-architectuur van de PIC.
De PIC16F877A Microcontroller bestaat uit een ingebouwde CPU, I / O-poorten, geheugenorganisatie, A / D-omzetter, timers / tellers, interrupts, seriële communicatie, oscillator en CCP-module die de IC een krachtige microcontroller maakt voor beginners om mee te beginnen. Het algemene blokschema van de PIC-architectuur wordt hieronder weergegeven
CPU (centrale verwerkingseenheid):
De microcontroller heeft een CPU om rekenkundige bewerkingen, logische beslissingen en geheugengerelateerde bewerkingen uit te voeren. De CPU moet coördineren tussen het RAM en de andere randapparatuur van de microcontroller.
Het bestaat uit een ALU (Arithmetic Logic Unit), waarmee het de rekenkundige bewerkingen en logische beslissingen uitvoert. Er is ook een MU (geheugeneenheid) aanwezig om de instructies op te slaan nadat ze zijn uitgevoerd. Deze MU bepaalt de programmagrootte van onze MC. Het bestaat ook uit een CU (Control Unit) die fungeert als een communicatiebus tussen de CPU en andere randapparatuur van de microcontroller. Dit helpt bij het ophalen van de gegevens nadat deze in de opgegeven registers zijn verwerkt.
Random Access Memory (RAM):
Een Random Access-geheugen is het geheugen dat de snelheid van onze microcontroller bepaalt. Het RAM-geheugen bestaat uit registerbanken die elk een specifieke taak krijgen toegewezen. Over het algemeen kunnen ze in twee typen worden ingedeeld:
- Algemeen doelregister (GPR)
- Speciaal functieregister (SFR)
Zoals de naam suggereert, wordt de GPR gebruikt voor algemene registerfuncties zoals optellen, aftrekken enz. Deze bewerkingen zijn beperkt tot 8-bit. Alle registers onder de GPR zijn door de gebruiker beschrijfbaar en leesbaar. Ze hebben op zichzelf geen functies, tenzij het software is gespecificeerd.
Terwijl de SFR wordt gebruikt om gecompliceerde speciale functies uit te voeren, waarbij ook enige 16-bits verwerking betrokken is, kunnen hun registers alleen worden gelezen (R) en kunnen we er niets naar schrijven (W). Deze registers hebben dus een vooraf gedefinieerde functie om uit te voeren, die zijn ingesteld op het moment van fabricage en ze geven ons alleen het resultaat weer, waarmee we enkele gerelateerde bewerkingen kunnen uitvoeren.
Read Only Memory (ROM):
Alleen-lezen geheugen is de plaats waar ons programma wordt opgeslagen. Dit bepaalt de maximale omvang van ons programma; daarom wordt het ook wel programmageheugen genoemd. Wanneer de MCU in werking is, wordt het programma dat is opgeslagen in de ROM uitgevoerd volgens elke instructiecyclus. Deze geheugeneenheid kan alleen worden gebruikt tijdens het programmeren van de PIC, tijdens de uitvoering wordt het een alleen-lezen geheugen.
Elektrisch wisbaar programmeerbaar alleen-lezen geheugen (EEPROM):
EEPROM is een ander type geheugeneenheid. In deze geheugeneenheid kunnen waarden worden opgeslagen tijdens programma-uitvoering. De waarden die hier zijn opgeslagen, zijn alleen elektrisch uitwisbaar, dat wil zeggen dat deze waarden in de PIC worden bewaard, zelfs als de IC is uitgeschakeld. Ze kunnen worden gebruikt als kleine geheugenruimte om de uitgevoerde waarden op te slaan; de geheugenruimte zal echter per KB veel kleiner zijn.
Flash-geheugen :
Flash-geheugen is ook Programmable Read Only Memory (PROM) waarin we het programma duizenden keren kunnen lezen, schrijven en wissen. Over het algemeen gebruikt de PIC-microcontroller dit type ROM.
I / O-poorten
- Onze PIC16F877A bestaat uit vijf poorten namelijk poort A, poort B, poort C, poort D en poort E.
- Van alle vijf POORTEN is alleen poort A 16-bits en POORT E is 3-bits. De rest van de PORTS zijn 8-bit.
- De pinnen op deze PORTS kunnen worden gebruikt als invoer of uitvoer, op basis van de TRIS Register-configuratie.
- Naast het uitvoeren van I / O-bewerkingen kunnen de pinnen ook worden gebruikt voor speciale functies zoals SPI, Interrupt, PWM enz.
Bus:
De term bus is slechts een stel draden die het invoer- of uitvoerapparaat met CPU en RAM verbindt.
De databus wordt gebruikt om de gegevens over te dragen of te ontvangen.
De adresbus wordt gebruikt om het geheugenadres van de randapparatuur naar de CPU te verzenden. I / O-pinnen worden gebruikt om de externe randapparatuur te koppelen; UART en USART beide seriële communicatieprotocollen worden gebruikt voor het koppelen van seriële apparaten zoals GSM, GPS, Bluetooth, IR, enz.
Selectie van PIC-microcontroller voor onze tutorials:
PIC Microcontrollers van Microchip Company zijn onderverdeeld in 4 grote families. Elke familie heeft een verscheidenheid aan componenten die ingebouwde speciale functies bieden:
- De eerste familie, PIC10 (10FXXX) - heet Low End.
- De tweede familie, PIC12 (PIC12FXXX) - heet Mid-Range.
- De derde familie is PIC16 (16FXXX).
- De vierde familie is PIC 17/18 (18FXXX)
Laten we, aangezien we beginnen te leren over PIC, een IC selecteren die universeel wordt gebruikt en beschikbaar is. Deze IC behoort tot de 16F-familie, het onderdeelnummer van de IC is PIC16F877A. Vanaf de eerste tutorial tot het einde zullen we dezelfde IC gebruiken omdat deze IC is uitgerust met alle geavanceerde functies zoals SPI, I2C en UART enz. Maar als je nu geen van deze dingen krijgt, is het helemaal goed, we zullen doorloop elke tutorial en gebruik uiteindelijk alle bovengenoemde functies.
Zodra de IC is geselecteerd, is het erg belangrijk om de datasheet van de IC te lezen. Dit zou de eerste stap moeten zijn in welk concept we ook gaan proberen. Nu we deze PIC16F877A hebben geselecteerd, laten we de specificatie van dit IC in het gegevensblad lezen.
De perifere functie vermeldt dat het 3 timers heeft, waarvan twee 8-bits en één 16-bits voorschaler. Deze timers worden gebruikt om timingfuncties in ons programma te creëren. Ze kunnen ook als loket worden gebruikt. Het laat ook zien dat het CCP- opties (Capture Compare en PWM) heeft, wat ons helpt om PWM-signalen te genereren en de inkomende frequentiesignalen te lezen. Voor communicatie met een extern apparaat heeft het SPI, I2C, PSP en USART. Om veiligheidsredenen is het uitgerust met Brown-out Reset (BOR), wat helpt bij het resetten van het while-programma.
De analoge functies, geeft aan dat het IC een 10-bit 8-kanaals ADC heeft. Dit betekent dat onze IC analoge waarden naar digitaal kan converteren met een resolutie van 10-bit, en 8 analoge pinnen heeft om ze te lezen. We hebben ook twee interne comparatoren die kunnen worden gebruikt om de inkomende spanning rechtstreeks te vergelijken zonder ze daadwerkelijk via de software te lezen.
De speciale functies van de microcontroller geven aan dat het een wis- / schrijfcyclus heeft van 100.000, wat betekent dat u het ongeveer 100.000 keer kunt programmeren. In-Circuit Serial Programming ™ (ICSP ™), helpt ons om de IC rechtstreeks te programmeren met PICKIT3. Debuggen is mogelijk via In-Circuit Debug (ICD). Een andere veiligheidsfunctie is de Watchdog Timer (WDT), een zelfbetrouwbare timer die indien nodig het hele programma reset.
De onderstaande afbeelding vertegenwoordigt de pinouts van onze PIC16F877A IC. Deze afbeelding vertegenwoordigt elke pin tegen zijn naam en zijn andere kenmerken. Dit is ook terug te vinden in de datasheet. Houd deze afbeelding bij de hand, want deze zal ons helpen tijdens onze hardwarewerkzaamheden.
Selectie van software voor onze tutorials:
PIC microcontroller kan worden geprogrammeerd met verschillende software die op de markt verkrijgbaar is. Er zijn mensen die nog steeds Assembly-taal gebruiken om PIC MCU's te programmeren. Voor onze tutorials hebben we de meest geavanceerde software en compiler geselecteerd die door Microchip zelf is ontwikkeld.
Om de PIC microcontroller te programmeren hebben we een IDE (Integrated Development Environment) nodig, waar de programmering plaatsvindt. Een compiler, waar ons programma wordt geconverteerd naar een MCU-leesbare vorm, genaamd HEX-bestanden. Een IPE (Integrated Programming Environment), die wordt gebruikt om ons hex-bestand in onze PIC MCU's te dumpen.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Samensteller : XC8
Microchip heeft al deze drie software gratis verstrekt. Ze kunnen rechtstreeks worden gedownload vanaf hun officiële pagina. Ik heb de link ook voor uw gemak verstrekt. Installeer ze na het downloaden op uw computer. Als u hier problemen mee heeft, kunt u de video aan het einde bekijken.
Voor simulatiedoeleinden hebben we software gebruikt genaamd PROTEUS 8, geleverd door Labcenter. Deze software kan worden gebruikt om onze code te simuleren die is gegenereerd met behulp van de MPLABX. Er is gratis demonstratiesoftware die via de link kan worden gedownload vanaf hun officiële pagina.
Voorbereidingen treffen met hardware:
Al onze tutorials eindigen met hardware. Om PIC op de best mogelijke manier te leren, is het altijd aan te raden om onze codes en schakelingen over hardware te testen, omdat de betrouwbaarheid van de simulatie veel minder is. Codes die op simulatiesoftware werken, werken mogelijk niet zoals u verwacht op uw hardware. Daarom zullen we onze eigen circuits bouwen op een Perf-bord om onze codes te dumpen.
Om onze code in PIC te dumpen of te uploaden, hebben we PICkit 3 nodig . De PICkit 3 programmeur / debugger is een eenvoudige, goedkope in-circuit debugger die wordt bestuurd door een pc waarop MPLAB IDE (v8.20 of hoger) een Windows-platform. De PICkit 3 programmeur / debugger is een integraal onderdeel van de toolsuite van de ontwikkelaar. Daarnaast hebben we ook andere hardware nodig, zoals een Perf-bord, een soldeerstation, PIC IC's, kristaloscillatoren, condensatoren enz. Maar we zullen ze aan onze lijst toevoegen naarmate we verder komen met onze tutorials.
Ik heb mijn PICkit 3 van Amazon meegenomen, de unboxing-video van hetzelfde is te vinden in de onderstaande video. De link voor PICKIT3 is ook voorzien; de prijs is misschien wat hoog, maar geloof me, het is de moeite waard om te investeren.