ATmega328P er en av de mest populære DIY-vennlige mikrokontrollerne i verden. Denne enkeltbrikke mikrokontrolleren er et godt valg for de som begir seg ut i gjør-det-selv-elektronikk og finnes på den nyeste generasjonen av Arduino Unos (sammen med andre mikrokontroller-kort). Men hva trenger du å vite om ATmega328P før du kan begynne å bruke din Arduino?
Hva er en ATmega328P mikrokontroller?
Laget av Atmel, ATmega328P er en enkeltbrikke mikrokontroller basert på en 8-bits RISC-prosessorkjerne. Denne lille mikrokontrolleren har lite strøm og er rimelig, noe som gjør den til et utmerket valg for ulike applikasjoner, inkludert DIY-prosjektene du ønsker å lage.
ATmega328P-brikken har vært omtalt som en fremtredende del av Arduino i mange år. Arduino Uno bruker denne mikrokontrolleren, sammen med Arduino Pro Mini- og Arduino Nano-brettene. Dette gjør det ekstremt vanlig i DIY-elektronikkområdet, og det er verdt å lære om dets evner hvis du planlegger å bruke disse brettene.
Arduino-kort som bruker ATmega328P-mikrokontrolleren
ATmega328P finnes på Arduino Uno og Arduino Nano mikrokontrollerbrett, to av de mest populære produktene fra Arduino. Du kan også kjøpe denne brikken som et frittstående produkt hvis du vil teste den ut uten et mikrokontrollerkort, selv om dette vil være en utfordrende måte å komme i gang på. Du kan bruke vår praktiske guide for å lære om forskjellige typer Arduino mikrokontrollerkort.
ATmega328P databladspesifikasjoner
ATmega328P har et overraskende tett dataark for en så liten brikke. Det er en rekke spesifikasjoner du må være klar over før du begynner å skrive kode for mikrokontrolleren din. Vi har brutt disse ned for å gjøre det lettere å forstå begrensningene og begrensningene til denne brikken. La oss starte med de grunnleggende spesifikasjonene for å gi deg en ide om hvordan ATmega328P former seg.
- PROSESSOR: 8-bits AVR med en maksimal hastighet på 20MHz
- Flashminne: 32kB innebygd blits
- SRAM: 2 kB
- EEPROM: 1 kB
- Antall pinne: 28 eller 32 (avhengig av pakketype)
- Kapasitive berøringskanaler: 16
- Maksimal I/O-pinner: 23
- Eksterne avbrudd: 2
Hver av disse forskjellige spesifikasjonene spiller sin egen rolle i å gjøre ATmega328P så godt egnet til bruk med utviklingskort som en Arduino. Men hva betyr egentlig noe av det?
- PROSESSOR: CPU-en på ATmega328P-brikken er en 8-bits AVR RISC-basert CPU. RISC står for "reduced instruction set computer" og er en type prosessor designet for å forenkle de individuelle oppgavene en datamaskin utfører. Derimot er PCens Intel- eller AMD-prosessor sannsynligvis en CISC-prosessor (complex instruction set computer).
- Flashminne: Flash er en type ikke-flyktig minne som brukes til permanent lagring. ATmega328P er utstyrt med bare 32 kB flash-minne, selv om dette er nok til mye kode. Du kan lære om forskjellene mellom flyktig og ikke-flyktig minne på MUOs nettsider.
- SRAM: SRAM står for "static random access memory". Dette minnet spiller samme rolle som RAM-en i PC-en din, og gir ATmega328P-brikken midlertidig minne for å lagre data og variabler mens den går gjennom kode.
- EEPROM: Dette er en type byte-slettbart minne som brukes til å lagre små mengder data. I motsetning til SRAM, er EEPROM ikke-flyktig og vil beholde dataene når ATmega328P-brikken ikke får strøm.
ATmega328P Pinout-diagram
ATmega328P pinout-diagrammet ovenfor viser de forskjellige pinnene på ATmega328P DIP-brikken og pinnene på et Arduino Uno-kort. Dette bør gi deg en god idé om hvordan denne brikken og det populære mikrokontrollerkortet fungerer sammen.
ATmega328P er en allsidig brikke med en rekke bruksområder. Som sådan er det en rekke forskjellige pakker tilgjengelig for denne brikken, alle i forskjellige former og med forskjellige typer bly. TQFP (quad-flat-pakke), MLF/VQFN (micro leadframe eller quad-flat no-leads), og DIP (dual in-line-pakke) er de vanligste av disse pakkene.
Ekte Arduino Uno-kort bruker DIP-varianten av ATmega328P-brikken (aka ATmega328P-PU), og dette betyr at brikken kan fjernes og erstattes (i motsetning til ATmega328P-AU). Andre typer Arduino-kort bruker forskjellige ATmega-brikker av typen quad-flat-pakke, og disse kan ikke fjernes.
ATmega328P og Arduino Uno begrensninger
Som med enhver mikrokontrollerbrikke, kommer ATmega328P med visse begrensninger som må vurderes før du bestemmer deg for å jobbe med den. Disse begrensningene gjelder også for Arduino-brettene som bruker disse brikkene.
Lavt SRAM-budsjett
ATmega328P-brikken kommer med 2kB SRAM, og dette er nok for de fleste prosjekter. For de som ønsker å bruke flere biblioteker og kode med mange variabler, kan det imidlertid være lett å gå tom for SRAM, noe som får programmet til å mislykkes.
Programmerere som jobber med Arduino-kort har mye kontroll over minneadministrasjon takket være bruken av C++. Tekst, bilder og andre ferdiglagde ressurser kan lagres i flash-minne som en måte å frigjøre ekstra minne for programmene du kjører, og forbedre SRAM-budsjettet ditt.
Begrenset prosessorkraft
20Hz CPU-en som finnes på ATmega328P-brikken er flott for å kjøre enkel kode, men den tilbyr begrenset prosessorkraft for komplekse applikasjoner. Dette betyr at den ikke er egnet for ting som talegjenkjenning, dyp læring eller andre vanlige mikrokontrolleroppgaver.
Å løse dette problemet er ikke mulig med ATmega328P. Hvis du trenger mer strøm, må du se etter et mer passende mikrokontrollerkort for oppgaven du har ønsker å prestere, men det er mange alternativer på markedet for å gi deg tilgang til det du trenger.
ATmega328P og Arduino Uno fordeler
Ved siden av begrensningene til ATmega328P, er det også fordeler som følger med å bruke en brikke som denne. Disse vil ofte oppveie begrensningene til mikrokontrolleren for enkle prosjekter, spesielt hvis du er ny på å jobbe med mikrokontrollere.
- Rimelig pris: ATmega328P-brikken er rimelig og lett å finne, noe som gjør den ideell for rimelige DIY-prosjekter. Takket være den store verdien av denne brikken er Arduino Uno også et svært rimelig brett.
- Brukervennlighet: Laget med forbrukere i tankene, er ATmega328P enkel å bruke sammenlignet med andre mikrokontrollerbrikker, noe som gjør den ideell for de som kommer i gang med sine egne DIY-prosjekter.
- Frittstående brikke: ATmega328P-brikken kan brukes alene eller med et mikrokontrollerkort som Arduino Uno.
Lær om ATmega328P og Arduino Uno
Det er mange ressurser rundt på nettet som er utviklet for å hjelpe deg med å komme i gang med Arduino Uno og ATmega328P den bruker. Det er vel verdt å bruke tid på å lære om denne maskinvaren før du starter ditt neste mikrokontrollerprosjekt, og gi deg selv en idé om begrensningene og utfordringene du kan møte underveis.