Atmel AVR

Atmel AVR on aihe, joka on kiinnittänyt monien ihmisten huomion vuosien varrella. Sen merkitys ja relevanssi heijastuu aiheesta tehtyjen mielipiteiden ja tutkimusten määrässä. Alkuperäistään nykypäivään Atmel AVR on ollut keskustelun ja analyysin aiheena, mikä on avannut oven loputtomille pohdiskeluille ja löydöksille. Tässä artikkelissa tutkimme Atmel AVR:n eri puolia ja näkökulmia, tarkastelemme sen vaikutusta eri yhteyksissä ja sen kehitystä ajan myötä. Alkuperäistään nykypäivään Atmel AVR on ollut keskustelun ja analyysin aiheena, mikä on avannut oven loputtomille pohdiskeluille ja löydöksille. Tässä artikkelissa tutkimme Atmel AVR:n eri puolia ja näkökulmia, tarkastelemme sen vaikutusta eri yhteyksissä ja sen kehitystä ajan myötä.

ATmega32 mikro-ohjain

AVR on Atmelin mikro-ohjainperhe, joka sisältää laajan valikoiman 8-bittisiä mikro-ohjaimia. Sen kehittivät Norges Tekniske Høgskolen opiskelijat Alf-Egil Bogen ja Vegard Wollan. Harrastajien keskuudessa laitteisto on saanut suosiota Arduino-laitteissa.

Ryhmittely

AVR-mikro-ohjaimet jaetaan kolmeen ryhmään niiden sisältämien ominaisuuksien sekä muistin määrän mukaan.

  • ATmega
  • AT90x
  • ATtiny

ATtiny:

  • 1–8 kB ohjelmamuistia
  • 8–20-pin kotelo

ATmega:

  • 4–256 kB ohjelmamuistia
  • 28–100-pin kotelo
  • Laajennettu käskykanta

Tehtäväkohtaiset AVR-mikro-ohjaimet:

  • ATmega-sarjan piireissä voi olla erikoisominaisuuksia, joita muissa AVR-piireissä ei ole,

kuten LCD-ohjain, USB-ohjain, CAN-ohjain, monimuotoisempi PWM jne.

Teknisesti

Kaikki AVR-mikro-ohjaimet sisältävät RISC-ytimen, FLASH-ohjelmamuistia, SRAM-käyttömuistia, sekä useita I/O-väyliä. Jotkin ohjaimet sisältävät myös pysyvää EEPROM-käyttömuistia. Muita ominaisuuksia ovat esimerkiksi sisäinen kello-oskillaattori, ajastimet, keskeytysohjaimet, sarjaliikennepiiri (UART), SPI, IO-porttien ylösvetovastukset, pulssinleveysmodulaattori (PWM), A/D-muunnin (ADC), analoginen vertailija ja vahtikoira-ajastin.

Ominaisuuksia

AVR-sarja tarjoaa paljon erilaisia ominaisuuksia:

  • Kaksisuuntaiset portit, vapaasti konfiguroitavissa
  • Sisäänrakennetut ylösvetovastukset
  • Sisäinen oskillaattori
  • Sisäistä FLASH-ohjelmamuistia jopa 256 kB
  • ISP (In-system programming) käyttämällä esimerkiksi ISP:tä tai JTAG:ia
  • OCD (On-chip debugging) käyttäen esimerkiksi JTAG:ia
  • Sisäistä EEPROM-muistia jopa 8 kB
  • Sisäistä SRAM-muistia jopa 8 kB
  • 8- ja 16-bittiset ajastimet
  • PWM-lähtö
  • Analogiavertailijoita
  • 10-bittinen A/D-muunnin
  • Erilaisia sarjaväylämahdollisuuksia esimerkiksi:
    • UART/USART (RS-232, RS-485...)
    • SPI
    • USI
  • Vahtikoira (Watchdog timer)
  • Erilaisia lepo- ja virransäästötiloja
  • CAN-ohjaimen tuki
  • USB-ohjaimen tuki
  • Ethernet-ohjaimen tuki
  • LCD-ohjaimen tuki.

Ohjelmointi

Yleisin AVR-ohjelmointiin käytettävä kieli on C-kieli. Muita kielivaihtoehtoja ohjelmointiin ovat BASIC, Pascal ja Assembly. Useimmiten päädytään kuitenkin käyttämään proseduraalista C-kieltä, sillä sen kirjoittaminen on nopeaa, eikä se ole Assemblyn tapaan vaikeasti hallittavaa ja muistettavaa symbolista konekieltä. AVR-mikro-ohjaimien suorittimen käskykanta on myös kehitetty vastaamaan erityisesti C-kielen tarpeisiin. Atmel tarjoaa myös ilmaisen AVR Studio -ohjelman debuggaukseen ja ohjelmien kirjoittamiseen. Sillä voi myös simuloida ohjelman toimintaa.[1] Ohjelman siirtäminen mikro-ohjaimeen voidaan tehdä käyttäen mm. JTAG-emulaattoria.

AVR32

AVR-perheen rinnalle on ajan myötä tullut myös muita aliperheitä. Uusin tulokas on AVR32-suoritinperhe, joka sisältää valikoiman 32-bittisiä mikro-ohjaimia.

Lähteet

Aiheesta muualla

Sisältää myös kaikkien AVR(32) mikro-ohjaimien datalehdet