900 likes | 1.02k Views
Architektury počítačů a paralelných systémů. Atmega 32 Zpracoval: Doc. Ing. Lačezar Ličev, CSc. Vlastnosti mikrokontroleru ATmega32. • 8-bitový RISC mikrokontroler . • Výkon - 16 MIPS/16 MHz - 12x rychlejší než standardní x51 na stejné taktovací frekvenci.
E N D
Architektury počítačů a paralelných systémů Atmega 32 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.
Vlastnosti mikrokontroleru ATmega32 • 8-bitový RISC mikrokontroler. • Výkon - 16 MIPS/16 MHz - 12x rychlejší než standardní x51 na stejné taktovací frekvenci. • Plně statická funkce. Interní kalibrovaný RC oscilátor. • Dvou-cyklová násobička na čipu. • 131 výkonných instrukcí, většinou jedno-cyklových. • 32 osmibitových registrů pro obecné použití. • 32kB programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10.000 zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.
Vlastnosti mikrokontroleru ATmega32 • 1kB EEPROM paměť, 100.000 zápisových/mazacích cyklů. • 2kB interní SRAM paměť. • JTAG rozhraní s možností programování a ladění. • 8-kanálový 10-bitový A/D převodník, analogový komparátor. • Bytově orientované sériové rozhraní (TWI). • Dvě programovatelné USART komunikační rozhraní. • Master/slave SPI sériové rozhraní. • Dva 8-bitové a jeden 16-bitové čítače, s vlastní před-děličkou.
Vlastnosti mikrokontroleru ATmega32 • Dva 8-bitové PWM kanály. • 4 PWM kanálů s programovatelným rozlišením 2-16 bitů. • Programovatelný Watch-dog časovač s oscilátorem na čipu. • Čítač reálného času RTC s odděleným oscilátorem. • 6 režimů snížené spotřeby. • 32 programovatelných I/O vývodů. • Napájecí napětí 4.5-5.5V.
Podpora • Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také systém AVR Studio – volné dostupné na stránkách firmy Atmel. • Programování lze provádět volně dostupný softwarem.
Po rozbalení archívu „avr-kit.zip“ vznikne adresář s obsahem ./avrkit.exe > Program pro programování AVR Kitu ./avr-kit > Skupina projektů pro AVR Studio5 ./avrkit > Adresář s knihovnou avrkit ./leds > Adresář s projektem pro LED diody ./i2c > Adresář s projektem pro sběrnici i2c ./demo > Adresář s demo projekty
Obsah adresáře - avrkit ./avrkit.c > Zdrojový kód knihovny avrkit ./avrkit.h > Hlavičkový soubor knihovny avrkit
Obsah adresáře - leds ./leds.avrgccproj > Projekt AVR Studia ./leds.c > Zdrojový kód programu leds ./Debug > Adresář pro výstupní soubory ./Release > Adresář pro výstupní soubory
Obsah adresáře - i2c ./i2c.avrgccproj > Projekt AVR Studia ./i2c.c > Zdrojový kód programu i2c ./Debug > Adresář pro výstupní soubory ./Release > Adresář pro výstupní soubory
Obsah adresáře - demo ./demoleds.hex > Demo program pro LEDky ./demo8x8.hex > Demo program pro led displej ./demoi2c.hex > Demo program pro sbìrnici i2c
ATmega32 - 4 V/V porty (PA, PB, PC a PD) Konfigurace portů (A, B, C a D) pomoci registrů: DDRx- zápisem log. 1 na konkrétní bit tohoto registru určíme, že daný pin bude výstupní a pří log. 0 bude vstupní. PORTx- když je pin definovaný jako vstupní a v reg. PORTx je definována log.1 je tento pin udržován v klidovém stavu na hodnotu 1. Při log. 0 zapsané do reg. PORTx a když je pin definován jako výstupní určuje reg. PORTx log. hodnotu na konkrétním pinu. PINx - Zapsáním log. 1 na pin tohoto registru nastaví log. 1 na konkrétním pinu nezávisle na registru DDRx. Pokud je port nastaven jako vstupní lze pomocí registru PINx zjistit aktuální stav na portu.
Postup při programování mikropočítače AVR-KITu • Aktivace BOOTLoader - stlačením tlačítka PIND4, pak stlačením a uvolnění tlačítka RESET - procesor se uvede do módu programování paměti FLASH - Sviti LED dioda připojenou na PIND2. • Restart procesoru - stlačení a uvolnění tlačítka RESET. • Po ukončení programování program avrkit.exe zůstává aktivní a je připraven vypisovat data, které bude mikropočítač zapisovat na sériový port pomocí funkce printf. Nechcete-li tuto funkci programu avrkit.exe využívat je ji možné vypnou parametrem -n.
Programování AVR-KITuprogram avrkit.exe (archív avrkit.zip). • avrkit.exe -h • -h show thishelp • -d serial port device (def: 'COM1') • -e erase AVR flash only • -l list available COM ports • -n no terminal mode after programming • -s show AVR flash only • -t terminal mode only • -v verify AVR flash memory only • -x show HEX file only • avrkit.exe -d COM3 demoleds.hex
Architektury počítačů a paralelných systémů Cvičení na: Atmel EVMS-mega128 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.
Vlastnosti vývojové desky • Obsahuje RISC MCU Atmel ATmega128-16AI TQFP64 • Pro vytváření programového kódu - Atmel AVR Studio • Napájení: • Power konektor (např. z wall adapteru) • USB (chráněno SMD tavnou vyměnitelnou pojistkou) • Možnosti programování mikrokontroleru: • ISP či JTAG programovací rozhraní (JTAG ladění kódu) • USB komunikační rozhraní (bootloader-u MCU)
Vlastnosti vývojové desky Uživatelská rozhraní: • 4 LED diody • 8 tlačítek • Multiplexovanýsedmisegmentový LED display (4 digity) • LCD display (2x 16 znaků, podsvětlený, odnímatelný) • Komunikační rozhraní: • RS-232 (canon 9 konektor) • USB (konektor typu B) • SPI (pinová lišta) • I2C (pinová lišta)
Vlastnosti vývojové desky Ostatní rozhraní: • 7 univerzálních vstupů/výstupů (pinová lišta) • 2 ADC vstupy/výstupu ref. napětí (pinová lišta) • Rozhraní pro připojení externí paměti • Piny umožňující napájení připojených modulů napětím +5V
Vlastnosti vývojové desky Deska dále obsahuje: • 5V napěťový regulátor • Nastavitelnou napěťovou referenci pro interní AD • Krystal 14.74567MHz v patici - hlavní zdroj hod. signálu • Krystal 32.768kHz pro RTC • Piezoměnič bez vlastního budiče (beeper) • Trimr pro nastavení kontrastu LCD displeje • Resetovací tlačítko • Rozměry desky(v x š x d): 25.0mm x 146.4mm x 68.0mm
Vlastnosti mikrokontroleru ATmega128-16AI TQFP64 • 8-bitový RISC mikrokontroler. • Výkon - 16 MIPS/16 MHz - 12x rychlejší než standardní x51 na stejné taktovací frekvenci. • Plně statická funkce. Interní kalibrovaný RC oscilátor. • Dvou-cyklová násobička na čipu. • 133 výkonných instrukcí, většinou jedno-cyklových. • 32 osmibitových registrů pro obecné použití. • 128kB programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10.000 zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.
Vlastnosti mikrokontroleru ATmega128-16AI TQFP64 • 4kB EEPROM paměť, 100.000 zápisových/mazacích cyklů. • 4kB interní SRAM paměť. • JTAG rozhraní s možností programování a ladění. • 8-kanálový 10-bitový A/D převodník, analogový komparátor. • Bytově orientované sériové rozhraní (TWI). • Dvě programovatelné USART komunikační rozhraní. • Master/slave SPI sériové rozhraní. • Dva 8-bitové a dva 16-bitové čítače, s vlastní před-děličkou.
Vlastnosti mikrokontroleru ATmega128-16AI TQFP64 • Dva 8-bitové PWM kanály. • 6 PWM kanálů s programovatelným rozlišením 2-16 bitů. • Programovatelný Watch-dog časovač s oscilátorem na čipu. • Čítač reálného času RTC s odděleným oscilátorem. • 6 režimů snížené spotřeby. • 53 programovatelných I/O vývodů. • Napájecí napětí 4.5-5.5V.
Podpora • Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také systém AVR Studio – volné dostupné na stránkách firmy Atmel. • Programování lze provádět volně dostupný softwarem.
Stručný popis • Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR firmy Atmel s označením Atmel EVMS-mega128. • Maximálním výkon.
Nahrávání programu do MCU Vlastnosti vývojové desky
Hlavička- 1 ;******************************************** ; Program : counter 0 ; Version : v1.0 ; Hardware : atmega128-16ai TQFP64 ; Xtall : 14.7456 MHz ; Author : ;********************************************
Hlavička– 2.1Evms-mega128 v 1.0 boardcongiguration ;****************************************************************** ;Jumpers: ;Power ;depends on power supply used (REG or USB ;VREF ;Don`t care (for example 2.5v) ;LEE ; Don`t care ;UART1 ; Don`t care ; ;Connectors: ; ;
Hlavička– 2.2Evms-mega128 v 1.0 boardcongiguration ;****************************************************************** ;Connectors: ;LCD display ;Don`t care ;Ext. memory ;Don`t care ;ADC ;Don`t care ;SPI ;Don`t care ;I2C ;Don`t care ;Misc ;Don`t care ; ;
Sekce include ;============Includes========== .NOLIST .include “m128def.inc” .LIST
Sekcekonstant ;===========Constants========== .EQU BaudConst = 7 ; Baudovarychlost .EQU BuffLen = 8 ; Velikostbufferu
Sekcepojmenováníregistrů ;=======Registerdefinitions========= .defZeroReg = r1 .defFFReg = r2 .defPDelReg = r16 . .
Sekcepamětí SRAM ;========= Data Segment ========== .DSEG .Var .BYTE 1 ;1 bytova prom. naadr. Var1 .Buffer .BYTE 8;8 bytova prom. naadr. Buffer
Sekce EEPROM ;======== EEPROM segment ======= .ESEG ConstArr .DB 0x00, 0x00 ;definujetabulku constant 0x00, 0x00 naadreseConstArr
Sekce MAKER ;=========== MACROs ========== .MACRO INC_Z16 add ZL, @0 adc ZH, @1 .ENDM