De ATmega328P is een van de meest populaire DIY-vriendelijke microcontrollers ter wereld. Deze microcontroller met één chip is een goede keuze voor diegenen die zich wagen aan doe-het-zelf-elektronica en is te vinden op de nieuwste generatie Arduino Unos (samen met andere microcontrollerborden). Maar wat moet u weten over de ATmega328P voordat u uw Arduino kunt gaan gebruiken?
Wat is een ATmega328P-microcontroller?
De ATmega328P, gemaakt door Atmel, is een microcontroller met één chip op basis van een 8-bits RISC-processorkern. Deze kleine microcontroller heeft een laag stroomverbruik en is betaalbaar, waardoor hij een uitstekende keuze is voor verschillende toepassingen, waaronder de doe-het-zelfprojecten die u wilt maken.
De ATmega328P-chip is al jaren een prominent onderdeel van de Arduino. De Arduino Uno gebruikt deze microcontroller, samen met de Arduino Pro Mini- en Arduino Nano-kaarten. Dit maakt het extreem gebruikelijk in de doe-het-elektronica-ruimte, en het is de moeite waard om meer te weten te komen over de mogelijkheden ervan als je van plan bent om deze borden te gebruiken.
Arduino-borden met behulp van de ATmega328P-microcontroller
De ATmega328P is te vinden op de Arduino Uno en Arduino Nano microcontroller boards, twee van de meest populaire producten van Arduino. Je kunt deze chip ook als een op zichzelf staand product kopen als je hem wilt testen zonder een microcontroller-bord, hoewel dit een uitdagende manier is om aan de slag te gaan. U kunt onze handige gids gebruiken om meer te weten te komen over de verschillende soorten Arduino-microcontrollerkaarten.
ATmega328P Gegevensbladspecificaties
De ATmega328P heeft een verrassend compact gegevensblad voor zo'n kleine chip. Er zijn een aantal specificaties waar u op moet letten voordat u code gaat schrijven voor uw microcontroller. We hebben deze opgesplitst om het gemakkelijker te maken om de beperkingen en beperkingen van deze chip te begrijpen. Laten we beginnen met de basisspecificaties om u een idee te geven van hoe de ATmega328P vorm krijgt.
- PROCESSOR: 8-bit AVR met een maximale snelheid van 20MHz
- Flash-geheugen: 32 kB ingebouwde flitser
- SRAM: 2kB
- EEPROM: 1kB
- Aantal pinnen: 28 of 32 (afhankelijk van het pakkettype)
- Capacitieve aanraakkanalen: 16
- Maximale I/O-pinnen: 23
- Externe onderbrekingen: 2
Elk van deze verschillende specificaties speelt zijn eigen rol om de ATmega328P zo geschikt te maken voor gebruik met ontwikkelborden zoals een Arduino. Maar wat betekent het eigenlijk?
- PROCESSOR: De CPU op de ATmega328P-chip is een 8-bit AVR RISC-gebaseerde CPU. RISC staat voor "Reduced Instructions Set Computer" en is een type processor dat is ontworpen om de individuele taken die een computer uitvoert te vereenvoudigen. Daarentegen is de Intel- of AMD-CPU van uw pc waarschijnlijk een CISC-processor (complexe instructiesetcomputer).
- Flash-geheugen: Flash is een type niet-vluchtig geheugen dat wordt gebruikt voor permanente opslag. De ATmega328P is uitgerust met slechts 32 kB flashgeheugen, al is dit genoeg voor voldoende code. Je kunt leren over de verschillen tussen vluchtig en niet-vluchtig geheugen op de MUO-website.
- SRAM: SRAM staat voor "statisch willekeurig toegankelijk geheugen". Dit geheugen speelt dezelfde rol als het RAM-geheugen in uw pc en voorziet de ATmega328P-chip van tijdelijk geheugen om gegevens en variabelen op te slaan terwijl deze door de code loopt.
- EEPROM: Dit is een type byte-uitwisbaar geheugen dat wordt gebruikt om kleine hoeveelheden gegevens op te slaan. In tegenstelling tot SRAM is EEPROM niet-vluchtig en behoudt het zijn gegevens wanneer de ATmega328P-chip niet wordt gevoed.
ATMega328P pinout-diagram
Het ATmega328P pinout-diagram hierboven toont de verschillende pinnen op de ATmega328P DIP-chip en de pinnen op een Arduino Uno-bord. Dit zou je een goed idee moeten geven van hoe deze chip en het populaire microcontrollerbord samenwerken.
De ATmega328P is een veelzijdige chip met een verscheidenheid aan toepassingen. Daarom zijn er voor deze chip een aantal verschillende verpakkingen beschikbaar, allemaal in verschillende vormen en met verschillende soorten lood. TQFP (quad-flat pakket), MLF/VQFN (micro leadframe of quad-flat no-leads) en DIP (dual in-line pakket) zijn de meest voorkomende van deze pakketten.
Echte Arduino Uno-kaarten gebruiken de DIP-variant van de ATmega328P-chip (ook bekend als de ATmega328P-PU), en dit betekent dat de chip kan worden verwijderd en vervangen (in tegenstelling tot de ATmega328P-AU). Andere typen Arduino-boards gebruiken verschillende ATmega-chips van het quad-flat-pakkettype en deze kunnen niet worden verwijderd.
ATmega328P en Arduino Uno Beperkingen
Zoals met elke microcontroller-chip, heeft de ATmega328P bepaalde beperkingen waarmee u rekening moet houden voordat u besluit ermee te werken. Deze beperkingen gelden ook voor de Arduino-boards die deze chips gebruiken.
Laag SRAM-budget
De ATmega328P-chip wordt geleverd met 2 kB SRAM, en dit is voldoende voor de meeste projecten. Voor degenen die meerdere bibliotheken en code met veel variabelen willen gebruiken, kan het echter gemakkelijk zijn om geen SRAM meer te hebben, waardoor uw programma faalt.
Programmeurs die met Arduino-boards werken, hebben dankzij het gebruik van C++ veel controle over het geheugenbeheer. Tekst, afbeeldingen en andere kant-en-klare middelen kunnen in het flash-geheugen worden opgeslagen als een manier om extra geheugen vrij te maken voor de programma's die u uitvoert, waardoor uw SRAM-budget verbetert.
Beperkte verwerkingskracht
De 20 Hz CPU op de ATmega328P-chip is geweldig voor het uitvoeren van eenvoudige code, maar biedt beperkte verwerkingskracht voor complexe toepassingen. Dit betekent dat het niet geschikt is voor zaken als spraakherkenning, deep learning of andere veelvoorkomende microcontrollertaken.
Dit probleem oplossen is niet mogelijk met de ATmega328P. Als je meer vermogen nodig hebt, moet je op zoek naar een geschikter microcontrollerbord voor de taak die je doet zou willen presteren, maar er zijn genoeg opties op de markt om je toegang te geven tot wat je nodig hebt.
ATmega328P en Arduino Uno Voordelen
Naast de beperkingen van de ATmega328P zijn er ook voordelen verbonden aan het gebruik van een chip als deze. Deze zullen vaak opwegen tegen de beperkingen van de microcontroller voor eenvoudige projecten, vooral als u nieuw bent in het werken met microcontrollers.
- Betaalbaarheid: De ATmega328P-chip is betaalbaar en gemakkelijk te vinden, waardoor hij ideaal is voor goedkope doe-het-zelfprojecten. Dankzij de grote waarde van deze chip is de Arduino Uno ook nog eens een zeer betaalbaar bord.
- Makkelijk te gebruiken: De ATmega328P is gemaakt met het oog op de consument en is gemakkelijk te gebruiken in vergelijking met andere microcontroller-chips, waardoor hij ideaal is voor diegenen die aan de slag gaan met hun eigen doe-het-zelf-projecten.
- Zelfstandige chip: De ATmega328P-chip kan alleen worden gebruikt of met een microcontrollerbord zoals de Arduino Uno.
Leren over de ATmega328P en Arduino Uno
Er zijn tal van bronnen op internet die zijn ontworpen om u te helpen aan de slag te gaan met de Arduino Uno en de ATmega328P die hij gebruikt. Het is de moeite waard om tijd te besteden aan het leren over deze hardware voordat u aan uw volgende microcontrollerproject begint, zodat u een idee krijgt van de beperkingen en uitdagingen waarmee u onderweg te maken kunt krijgen.