Úvod do AVR

Úvod do AVR

převzato z http://extremeelectronics.co.in/avr-tutorials/part-i-introduction/

Proč použít mikrokontroler ?

Proto, že postavit nějaké zařízení s přesně definovanými vlastnostmi z normálních diskrétních součástek by bylo přiliš náročné a možná i drahé. Takto koupíte pár součástek a sestavíte základní sestavu a tu naprogramujete tak aby vykonávala přeně definované požadované funkce. Změnu funkce provedete jen nahráním upraveného programu.

Jen to, co je mikrokontrolér?

Chcete-li pochopit rychle se dá definovat mikrokontrolér jako jednočipový počítač. Ano, je to plnohodnotný počítač.

To má CPU, RAM, určité množství paměti EEPROM (pro sekundární úložiště, tj. trvalé úložiště bez napájení), mnoho on-chip periferie (Timer, sériová komunikace, analogové na digitální převodníky apod.). Pokud nerozumíte, žádný problém,  budem se tím zabývat  podrobně v následujících cvičení.

Ale ve srovnání s PC (RAM, rychlost, atd.), jsou AVR menší, mají nižší spotřebua tím pádem i lacinější.

Na PC může běžet plno dalších programů a jsou vhodné pro rozsáhlejší projekty.

Ale v případě mikrokontrolérů (taky MCU) se tyto používájí pro konkrétní účel, jako je řízení Mikrovlnné trouby, regulace topení, řízení malých strojů, přijímačů i různých přehravačů.

Typické řešení založené na MCU.

Blokové schéma

Tento případ zahrnuje kontrolu několika LED diod, 2 nebo 3 sedmi segmentových displejů, několika přepínačů a relé v ovládání trouby. Na to nepotřebujete monstrum s 3,2 GHz procesorem Intel Core 2 Quad extrémní procesor s 2GB dual channel DDR3 RAM, 320 GB HDD a vyhrazeném NVIDIA GeForce grafikou. Co je hlavním problémem je cena a velikost. Co bude spuštěn pro uvedení do života života je jednoduchý program, který je sotva větší než 4 KB ve velikosti, které vyžadují méně než 128 bajtů RAM pro ukládání několik proměnných a případně pár bajtů pro uložení trvale teplotu a čas nastavený v posledním použitím a že umí číst ty na startu.

Další příklady, kde se používají MCU …

  • Myš (čte a interpretuje senzory a poslat konečný výsledek do PC), Klávesnice
  • Tiskárny: někdy otevřel tiskárnu pro instalaci inkoustové kazety? Pak musíte vidět tištěnou hlavou. K dispozici jsou motory pro kontrolu tiskové hlavy a pohybu papíru. Váš počítač není připojen přímo k nim, ale jejich je postaven v MCU uvnitř ovládacího panelu tiskárny všech těchto. Váš počítač právě odesílá data (pixelů) přes komunikační linku (USB nebo paralelní). Ale MCU zde použit je poměrně rychlá a má spoustu paměti RAM.
  • Auta.
  • Kalkulačky, elektronické Svatební kytice a stroje, elektronické váhy, telefony (digitální s LCD a telefonního seznamu)
  • Pen disky (pro řízení komunikace mezi PC a flash paměti a také malé LED!)
  • Pevné disky (opět za stejným účelem)
  • Mobilní telefony.
  • Roboti.
  • Každá věc, která je malá, ale má skvělé funkce a je levný!

MCU jsou všude!

Jednoduchý systém založený na MCU.

Nejjednodušší MCU systém může vypadat viz níže

Program lze realizovat v jazyce C. MCU obsahuje flash paměť, kam se ukládá program (je to jako pevný disk v PC). Flash paměti lze snadno vymazat a nový program může ihned nahrán. To z MCU dělá velmi flexibilní zařízení.

MCU lze naprogramovat i několik tisíckrát, než zemřou.

Jednoduchý MCU Based System

Ukázkový program

void main() { SetPortDirection(); while(1) { PORTA=0b00000001; Delay(0.5); PORTA=0b00000000; Delay(0.5); } }

Mikrokontrolér – porty

MCU má několik portů. Porty jsou piny na MCU, které lze zapnout a vypnout programem. Tím mám na mysli na zapnout na 5V nebo vypnutna 0V nebo GND.Toto chování je pro výstupí režim.

Mohou být také přepnuty do vstupního režimu. Pak mohou přečíst jaká úroveň signálu na konrétním pinu.

To je, jak MCU ovládání všechno.

Většina pinů MCU jsou PORTy.  Jsou pojmenovány : PORTA, PORTB, PORTC, PORTD atd. Mají bytovou délku, což znamená 8 bitů. Všechny bity z nich jsou spojena s externí piny a jsou k dispozici mimo čip. U menších čipů jsou k dispozici pouze některé z osmi bitů.

Například obrázek ukazuje PORTB a kousla číslování. Nastavení PORTB = 0b00000001 nastaví PORTB je nultého trochu vysoká, že je 5V, zatímco zbývající PIN bude nízká (GND). [Poznámka: Chcete-li napsat binární číslo c předponu s 0b ex 0b00001000. Je desetinná 8 ne 1000!]

Program výše není kompletní program, je to jen pseudo-kódu. Takže to nebudeme kompilovat. Také se můžete zeptat, kde bude program vložen, sestaven a jak to sakra bude tlačil do tohoto čipu? Jsou předmětem dalších konzultací a budu se zde zabývat je v detailu.

Co program dělá

KROK 1 SetPortDirection (); Tato funkce dělá PORTB jako výstup. Jeho realizace detail není zobrazena.

KROK 2 PORTB = 0b00000001; je 0. trochu vysoká, vypnutí LED, protože druhý konec je připojen k LED VCC (tj. Napájecí napětí 5V)

KROK 3 Delay (0,5); Zastaví MCU za 0.5 sec.

KROK 4 PORTB = 0b00000000; Zapíná LED

Krok 5 Delay (0,5);

KROK 2 – 5 jsou v nekonečné smyčce-while, takže to potrvá pokud je MCU napájen. Program je sestaven a vypálen do čipu a je zapnuto napájení a heleme se, LED dioda bliká jednou za sekundu. Právě jste pochopili  „Hello World“  program pro MCU. I když  daný program nedělá nic velmi důležitého a lze to provést i bez MCU a levným způsobem,  jde o seznámení vás s programováním mikrokontroléru.

Přesto dělat to pomocí MCU má některé výhody.

Můžete změnit způsob, jakým LED bliká pouhým napsáním nového programu, aniž se dotknete hardwarové části. Můžete také připojit 8 LED na všechny 8-pin na PORTB. Napišete pěkný program na světlo v různých barvách a časech a máte luxusních dekoračních světelo! Což nemůžete udělat tak snadno jako s MCU.

Takže jste viděli, že hlavní funkcí projektu MCU jsou výroba  softwarové a hardwarové části a je velmi jednoduchá a malá. Nyní jste se naučili základy MCU a jejich použití.

You must be logged in to post a comment.