+ All Categories
Home > Documents > Architektury počítačů a paralelných systémů

Architektury počítačů a paralelných systémů

Date post: 30-Dec-2015
Category:
Upload: meredith-horne
View: 34 times
Download: 1 times
Share this document with a friend
Description:
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. - PowerPoint PPT Presentation
90
Architektury Architektury počítačů a počítačů a paralelných paralelných systémů systémů Atmega 32 Atmega 32 Zpracoval: Doc. Ing. Lačezar Zpracoval: Doc. Ing. Lačezar Ličev, CSc. Ličev, CSc.
Transcript

Architektury Architektury počítačů a počítačů a

paralelných paralelných systémůsystémůAtmega 32Atmega 32

Zpracoval: Doc. Ing. Lačezar Ličev, Zpracoval: Doc. Ing. Lačezar Ličev, CSc. CSc.

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru

ATmega32ATmega32• • 8-bitový RISC mikrokontroler.8-bitový RISC mikrokontroler.

• • Výkon - 16 MIPS/16 MHz - 12x rychlejší než Výkon - 16 MIPS/16 MHz - 12x rychlejší než standardní x51 na stejné taktovací frekvenci.standardní x51 na stejné taktovací frekvenci.

• • Plně statická funkce. Interní kalibrovaný RC oscilátor.Plně statická funkce. Interní kalibrovaný RC oscilátor.

• • Dvou-cyklová násobička na čipu.Dvou-cyklová násobička na čipu.

• • 131 výkonných instrukcí, většinou jedno-cyklových.131 výkonných instrukcí, většinou jedno-cyklových.

• • 32 osmibitových registrů pro obecné použití.32 osmibitových registrů pro obecné použití.

• • 32kB programová FLASH paměť, programovatelná 32kB programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10.000 přímo v aplikaci s možností uzamknutí, 10.000 zápisových/mazacích, cyklů s volitelnou velikostí zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.bootloader sekce.

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru

ATmega32ATmega32• • 1kB EEPROM paměť, 100.000 zápisových/mazacích 1kB EEPROM paměť, 100.000 zápisových/mazacích

cyklů.cyklů.

• • 2kB interní SRAM paměť.2kB interní SRAM paměť.

• • JTAG rozhraní s možností programování a ladění.JTAG rozhraní s možností programování a ladění.

• • 8-kanálový 10-bitový A/D převodník, analogový 8-kanálový 10-bitový A/D převodník, analogový komparátor.komparátor.

• • Bytově orientované sériové rozhraní (TWI).Bytově orientované sériové rozhraní (TWI).

• • Dvě programovatelné USART komunikační rozhraní.Dvě programovatelné USART komunikační rozhraní.

• • Master/slave SPI sériové rozhraní.Master/slave SPI sériové rozhraní.

• • Dva 8-bitové a jeden 16-bitové čítače, s vlastní před-Dva 8-bitové a jeden 16-bitové čítače, s vlastní před-děličkou.děličkou.

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru

ATmega32ATmega32• • Dva 8-bitové PWM kanály.Dva 8-bitové PWM kanály.

• • 4 PWM kanálů s programovatelným rozlišením 2-16 4 PWM kanálů s programovatelným rozlišením 2-16 bitů.bitů.

• • Programovatelný Watch-dog časovač s oscilátorem Programovatelný Watch-dog časovač s oscilátorem na čipu.na čipu.

• • Čítač reálného času RTC s odděleným oscilátorem.Čítač reálného času RTC s odděleným oscilátorem.

• • 6 režimů snížené spotřeby.6 režimů snížené spotřeby.

• • 32 programovatelných I/O vývodů.32 programovatelných I/O vývodů.

• • Napájecí napětí 4.5-5.5V.Napájecí napětí 4.5-5.5V.

ATmega32ATmega32

Zapojení AVR-KITuZapojení AVR-KITu

PodporaPodpora

1.1. Pro vývoj aplikací lze použít vývojová Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také prostředí různých výrobců a také systém AVR Studio – volné dostupné systém AVR Studio – volné dostupné na stránkách firmy Atmel.na stránkách firmy Atmel.

2.2. Programování lze provádět volně Programování lze provádět volně dostupný softwarem.dostupný softwarem.

Po rozbalení archívu Po rozbalení archívu „avr-kit.zip“ vznikne „avr-kit.zip“ vznikne adresář s obsahemadresář s obsahem./avrkit.exe ./avrkit.exe > Program pro programování > Program pro programování

AVR Kitu AVR Kitu

./avr-kit./avr-kit > Skupina projektů pro AVR > Skupina projektů pro AVR Studio5 Studio5

./avrkit ./avrkit > Adresář s knihovnou avrkit> Adresář s knihovnou avrkit

./leds ./leds > Adresář s projektem pro LED > Adresář s projektem pro LED diodydiody

./i2c ./i2c > Adresář s projektem pro > Adresář s projektem pro sběrnici i2csběrnici i2c

./demo ./demo > Adresář s demo projekty> Adresář s demo projekty

Obsah adresáře - avrkitObsah adresáře - avrkit

./avrkit.c ./avrkit.c > Zdrojový kód knihovny > Zdrojový kód knihovny avrkitavrkit

./avrkit.h ./avrkit.h > Hlavičkový soubor > Hlavičkový soubor knihovny avrkitknihovny avrkit

Obsah adresáře - ledsObsah adresáře - leds

./leds.avrgccproj > Projekt AVR Studia./leds.avrgccproj > Projekt AVR Studia

./leds.c ./leds.c > Zdrojový kód > Zdrojový kód programu ledsprogramu leds

./Debug ./Debug > Adresář pro výstupní > Adresář pro výstupní souborysoubory

./Release ./Release > Adresář pro výstupní > Adresář pro výstupní souborysoubory

Obsah adresáře - i2cObsah adresáře - i2c

./i2c.avrgccproj ./i2c.avrgccproj > Projekt AVR Studia> Projekt AVR Studia

./i2c.c ./i2c.c > Zdrojový kód programu > Zdrojový kód programu i2ci2c

./Debug ./Debug > Adresář pro výstupní > Adresář pro výstupní souborysoubory

./Release ./Release > Adresář pro > Adresář pro výstupní souboryvýstupní soubory

Obsah adresáře - demoObsah adresáře - demo

./demoleds.hex > Demo program pro ./demoleds.hex > Demo program pro LEDkyLEDky

./demo8x8.hex > Demo program pro ./demo8x8.hex > Demo program pro led displejled displej

./demoi2c.hex ./demoi2c.hex > Demo program pro > Demo program pro sbìrnici i2csbìrnici i2c

ATmega32 - 4 V/V porty ATmega32 - 4 V/V porty (PA, PB, PC a PD)(PA, PB, PC a PD)

Konfigurace portů (A, B, C a D) pomoci Konfigurace portů (A, B, C a D) pomoci registrů:registrů:DDRxDDRx - zápisem log. 1 na konkrétní bit tohoto - zápisem log. 1 na konkrétní bit tohoto registru určíme, že daný pin bude výstupní a pří log. 0 registru určíme, že daný pin bude výstupní a pří log. 0 bude vstupní.bude vstupní.PORTxPORTx - když je pin definovaný jako vstupní a v reg. - když je pin definovaný jako vstupní a v reg. PORTx je definována log.1 je tento pin udržován v 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 klidovém stavu na hodnotu 1. Při log. 0 zapsané do reg. PORTx a když je pin definován jako výstupní reg. PORTx a když je pin definován jako výstupní určuje reg. PORTx log. hodnotu na konkrétním pinu.určuje reg. PORTx log. hodnotu na konkrétním pinu.PINx PINx - - Zapsáním log. 1 na pin tohoto registru nastaví Zapsáním log. 1 na pin tohoto registru nastaví log. 1 na konkrlog. 1 na konkrétním pinu nezávisle na registru DDRx. étním pinu nezávisle na registru DDRx. Pokud je port nastaven jako vstupní lze pomocí Pokud je port nastaven jako vstupní lze pomocí registru PINx zjistit aktuální stav na portu.registru PINx zjistit aktuální stav na portu.

Postup při programování Postup při programování mikropočítače AVR-KITumikropočítače AVR-KITu

• Aktivace Aktivace BOOTLoaderBOOTLoader - stlačením tlačítka - stlačením tlačítka PIND4, pakPIND4, pak

stlačením a uvolnění tlačítka RESET - procesor stlačením a uvolnění tlačítka RESET - procesor se uvede do módu programování paměti FLASH - se uvede do módu programování paměti FLASH - Sviti LED dioda připojenou na PIND2Sviti LED dioda připojenou na PIND2..

• RestartRestart procesoru - stlačení a uvolnění tlačítka procesoru - stlačení a uvolnění tlačítka RESET. RESET.

• Po ukončení programování program Po ukončení programování program avrkit.exeavrkit.exe zůstává aktivní a je připraven vypisovat data, zůstává aktivní a je připraven vypisovat data, které bude mikropočítač zapisovat na sériový které bude mikropočítač zapisovat na sériový port pomocí funkce port pomocí funkce printfprintf. Nechcete-li tuto funkci . Nechcete-li tuto funkci programu programu avrkit.exeavrkit.exe využívat je ji možné vypnou využívat je ji možné vypnou parametremparametrem -n. -n.

Programování AVR-KITuProgramování AVR-KITuprogram avrkit.exe (archív program avrkit.exe (archív

avrkit.zip).avrkit.zip). avrkit.exe -havrkit.exe -h• -h show this help-h show this help• -d serial port device (def: 'COM1')-d serial port device (def: 'COM1')• -e erase AVR flash only-e erase AVR flash only• -l list available COM ports-l list available COM ports• -n no terminal mode after programming-n no terminal mode after programming• -s show AVR flash only-s show AVR flash only• -t terminal mode only-t terminal mode only• -v verify AVR flash memory only-v verify AVR flash memory only• -x show HEX file only-x show HEX file only

avrkit.exe -d COM3 demoleds.hexavrkit.exe -d COM3 demoleds.hex

Architektury Architektury počítačů a počítačů a

paralelných paralelných systémůsystémůCvičení na:Cvičení na:

Atmel EVMS-mega128Atmel EVMS-mega128

Zpracoval: Doc. Ing. Lačezar Ličev, Zpracoval: Doc. Ing. Lačezar Ličev, CSc. CSc.

Vlastnosti vývojové desky Vlastnosti vývojové desky

• • Obsahuje RISC MCU Atmel ATmega128-16AI TQFP64Obsahuje RISC MCU Atmel ATmega128-16AI TQFP64

• • Pro vytváření programového kódu - Atmel AVR StudioPro vytváření programového kódu - Atmel AVR Studio

• • Napájení:Napájení:

• • Power konektor (např. z wall adapteru)Power konektor (např. z wall adapteru)

• • USB (chráněno SMD tavnou vyměnitelnou pojistkou)USB (chráněno SMD tavnou vyměnitelnou pojistkou)

• • Možnosti programování mikrokontroleru:Možnosti programování mikrokontroleru:

• • ISP či JTAG programovací rozhraní (JTAG ladění ISP či JTAG programovací rozhraní (JTAG ladění kódu)kódu)

• • USB komunikační USB komunikační rozhraní (bootloader-u MCU)rozhraní (bootloader-u MCU)

Vlastnosti vývojové desky Vlastnosti vývojové desky

Uživatelská rozhraní:Uživatelská rozhraní:• • 4 LED diody4 LED diody

• • 8 tlačítek8 tlačítek

• • Multiplexovaný sedmisegmentový LED display (4 digity)Multiplexovaný sedmisegmentový LED display (4 digity)

• • LCD display (2x 16 znaků, podsvětlený, odnímatelný)LCD display (2x 16 znaků, podsvětlený, odnímatelný)

• • Komunikační rozhraní:Komunikační rozhraní:

• • RS-232 (canon 9 konektor)RS-232 (canon 9 konektor)

• • USB (konektor typu B)USB (konektor typu B)

• • SPI (pinová lišta)SPI (pinová lišta)

• • I2C (pinová lišta)I2C (pinová lišta)

Vlastnosti vývojové desky Vlastnosti vývojové desky

Ostatní rozhraní:Ostatní rozhraní:

• • 7 univerzálních vstupů/výstupů (pinová lišta)7 univerzálních vstupů/výstupů (pinová lišta)

• • 2 ADC vstupy/výstupu ref. napětí (pinová lišta)2 ADC vstupy/výstupu ref. napětí (pinová lišta)

• • Rozhraní pro připojení externí pamětiRozhraní pro připojení externí paměti

• • Piny umožňující napájení připojených modulů Piny umožňující napájení připojených modulů napětím +5Vnapětím +5V

Vlastnosti vývojové desky Vlastnosti vývojové desky

Deska dále obsahuje:Deska dále obsahuje:

• • 5V napěťový regulátor5V napěťový regulátor

• • Nastavitelnou napěťovou referenci pro interní AD Nastavitelnou napěťovou referenci pro interní AD

• • Krystal 14.74567MHz v patici - hlavní zdroj hod. signáluKrystal 14.74567MHz v patici - hlavní zdroj hod. signálu

• • Krystal 32.768kHz pro RTCKrystal 32.768kHz pro RTC

• • Piezoměnič bez vlastního budiče (beeper)Piezoměnič bez vlastního budiče (beeper)

• • Trimr pro nastavení kontrastu LCD displejeTrimr pro nastavení kontrastu LCD displeje

• • Resetovací tlačítkoResetovací tlačítko

• • Rozměry desky(v x š x d): 25.0mm x 146.4mm x Rozměry desky(v x š x d): 25.0mm x 146.4mm x 68.0mm68.0mm

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru ATmega128-16AI ATmega128-16AI

TQFP64TQFP64• • 8-bitový RISC mikrokontroler.8-bitový RISC mikrokontroler.

• • Výkon - 16 MIPS/16 MHz - 12x rychlejší než Výkon - 16 MIPS/16 MHz - 12x rychlejší než standardní x51 na stejné taktovací frekvenci.standardní x51 na stejné taktovací frekvenci.

• • Plně statická funkce. Interní kalibrovaný RC oscilátor.Plně statická funkce. Interní kalibrovaný RC oscilátor.

• • Dvou-cyklová násobička na čipu.Dvou-cyklová násobička na čipu.

• • 133 výkonných instrukcí, většinou jedno-cyklových.133 výkonných instrukcí, většinou jedno-cyklových.

• • 32 osmibitových registrů pro obecné použití.32 osmibitových registrů pro obecné použití.

• • 128kB programová FLASH paměť, programovatelná 128kB programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10.000 přímo v aplikaci s možností uzamknutí, 10.000 zápisových/mazacích, cyklů s volitelnou velikostí zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.bootloader sekce.

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru ATmega128-16AI ATmega128-16AI

TQFP64TQFP64• • 4kB EEPROM paměť, 100.000 zápisových/mazacích 4kB EEPROM paměť, 100.000 zápisových/mazacích cyklů.cyklů.

• • 4kB interní SRAM paměť.4kB interní SRAM paměť.

• • JTAG rozhraní s možností programování a ladění.JTAG rozhraní s možností programování a ladění.

• • 8-kanálový 10-bitový A/D převodník, analogový 8-kanálový 10-bitový A/D převodník, analogový komparátor.komparátor.

• • Bytově orientované sériové rozhraní (TWI).Bytově orientované sériové rozhraní (TWI).

• • Dvě programovatelné USART komunikační rozhraní.Dvě programovatelné USART komunikační rozhraní.

• • Master/slave SPI sériové rozhraní.Master/slave SPI sériové rozhraní.

• • Dva 8-bitové a dva 16-bitové čítače, s vlastní před-Dva 8-bitové a dva 16-bitové čítače, s vlastní před-děličkou.děličkou.

Vlastnosti Vlastnosti mikrokontroleru mikrokontroleru ATmega128-16AI ATmega128-16AI

TQFP64TQFP64• • Dva 8-bitové PWM kanály.Dva 8-bitové PWM kanály.

• • 6 PWM kanálů s programovatelným rozlišením 2-16 6 PWM kanálů s programovatelným rozlišením 2-16 bitů.bitů.

• • Programovatelný Watch-dog časovač s oscilátorem Programovatelný Watch-dog časovač s oscilátorem na čipu.na čipu.

• • Čítač reálného času RTC s odděleným oscilátorem.Čítač reálného času RTC s odděleným oscilátorem.

• • 6 režimů snížené spotřeby.6 režimů snížené spotřeby.

• • 53 programovatelných I/O vývodů.53 programovatelných I/O vývodů.

• • Napájecí napětí 4.5-5.5V.Napájecí napětí 4.5-5.5V.

Podpora Podpora

1.1. Pro vývoj aplikací lze použít vývojová Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také prostředí různých výrobců a také systém AVR Studio – volné dostupné systém AVR Studio – volné dostupné na stránkách firmy Atmel.na stránkách firmy Atmel.

2.2. Programování lze provádět volně Programování lze provádět volně dostupný softwarem.dostupný softwarem.

Stručný popis Stručný popis

1.1. Vývojový modul obsahuje RISC Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR mikrokontroler vývojové řady AVR firmy Atmel s označením Atmel firmy Atmel s označením Atmel EVMS-mega128. EVMS-mega128.

2.2. Maximálním výkon. Maximálním výkon.

Atmel EVMS-mega128Atmel EVMS-mega128

Atmel EVMS-mega128Atmel EVMS-mega128

Atmel EVMS-mega128Atmel EVMS-mega128

Atmel EVMS-mega128Atmel EVMS-mega128

Blokové schémaBlokové schéma

NapájeníNapájení

Jumper JP PWRJumper JP PWR

Sériové rozhraní RS-232Sériové rozhraní RS-232JP UART – 1JP UART – 1

Význam vývodů Význam vývodů konektoru konektoru

RS 232 (UART)RS 232 (UART)

Logická vazba mezí Logická vazba mezí tlačítky a MCUtlačítky a MCU

LED - displayLED - display

Řídící signály a pozicí Řídící signály a pozicí LED displayLED display

LCD display a vývody LCD display a vývody MCUMCU

Vývody ISP a JTAGVývody ISP a JTAG

Nahrávání programu do Nahrávání programu do MCUMCU

Vlastnosti vývojové desky

Programování MCUProgramování MCU

HlavičkaHlavička - 1- 1

;********************************************

; Program : counter 0

; Version : v1.0

; Hardware : atmega128-16ai TQFP64

; Xtall : 14.7456 MHz

; Author :

;********************************************

HlavičkaHlavička – 2.1– 2.1Evms-mega128 v 1.0 board Evms-mega128 v 1.0 board

congigurationcongiguration;******************************************************************

;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čkaHlavička – 2.2– 2.2Evms-mega128 v 1.0 board Evms-mega128 v 1.0 board

congigurationcongiguration;******************************************************************

;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 includeSekce include

;============;============ Includes Includes ====================

.NOLIST.NOLIST

.include “m128def.inc”.include “m128def.inc”

.LIST.LIST

Sekce konstantSekce konstant

;===========;=========== Constants Constants ====================

.EQU BaudConst = 7 .EQU BaudConst = 7 ; Baudova ; Baudova rychlostrychlost

.EQU BuffLen = 8 .EQU BuffLen = 8 ; Velikost ; Velikost bufferubufferu

Sekce pojmenovSekce pojmenováánníí registrregistrůů

;=======;======= Register definitions Register definitions ==================

..defdef ZeroRegZeroReg = r1= r1

.def.def FFRegFFReg = r2= r2

.def.def PDelRegPDelReg = r16= r16

..

..

Sekce Sekce pamětí pamětí SSRAMRAM

;=========;========= Data Segment Data Segment ====================

..DSEGDSEG

.Var.Var .BYTE 1.BYTE 1 ;1 bytova prom. na adr. ;1 bytova prom. na adr. Var1Var1

.Buffer.Buffer .BYTE .BYTE 88 ;8 bytova prom. na adr. ;8 bytova prom. na adr. BufferBuffer

Sekce EEPROMSekce EEPROM

;======== EEPROM segment ;======== EEPROM segment ==============

.ESEG.ESEG

ConstArrConstArr .DB.DB 0x00, 0x00 0x00, 0x00 ;definuje ;definuje tabulku tabulku constant 0x00, 0x00 constant 0x00, 0x00 na adrese ConstArr na adrese ConstArr

Sekce MASekce MAKKERER

;=========== MACROs ;=========== MACROs ====================

.MACRO INC_Z16.MACRO INC_Z16

add ZL, @0add ZL, @0

adc ZH, @1adc ZH, @1

.ENDM.ENDM

ProgramovProgramováá sekce sekce

;========= ;========= Program segment Program segment ============

.CSEG.CSEG

.org.org 0x00000x0000 ;ur;určení adresyčení adresy

.ldi.ldi TmpReg, 0TmpReg, 0 ;;instrukceinstrukce

CharTabCharTab .db 0x10, 0x02.db 0x10, 0x02 ;;definuje definuje tab.konstanttab.konstant

AAssembler ssembler ARITHMETIC AND LOGIC INSTRUCTIONS:ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers Rd ADD Rd, Rr Add Two Registers Rd Rd + Rr Z,C,N,V,H 1 Rd + Rr Z,C,N,V,H 1 ADC Rd, Rr Add with Carry Two Registers Rd ADC Rd, Rr Add with Carry Two Registers Rd Rd + Rr + C Rd + Rr + C

Z,C,N,V,H 1Z,C,N,V,H 1 SUB Rd, Rr Subtract Two Registers Rd SUB Rd, Rr Subtract Two Registers Rd Rd - Rr Z,C,N,V,H 1 Rd - Rr Z,C,N,V,H 1 SUBI Rd, K Subtract Constant from Register Rd SUBI Rd, K Subtract Constant from Register Rd Rd - K Rd - K

Z,C,N,V,H 1Z,C,N,V,H 1

…… BRANCH INSTRUCTIONS :BRANCH INSTRUCTIONS : RJMP k Relative Jump PC RJMP k Relative Jump PC PC + k + 1 PC + k + 1 RCALL k Relative Subroutine Call PC RCALL k Relative Subroutine Call PC PC + k + 1 PC + k + 1 RET Subroutine Return PC RET Subroutine Return PC STACK STACK ……

AAssembler ssembler DATA TRANSFER INSTRUCTIONS:DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd LD Rd, Z Load Register Indirect Rd (Z) (Z) ST Z, Rr Store Register Indirect (Z) ST Z, Rr Store Register Indirect (Z) Rr Rr MOV Rd, Rr Move between Registers Rd MOV Rd, Rr Move between Registers Rd Rr Rr …… BIT AND BIT-TEST INSTRUCTIONS:BIT AND BIT-TEST INSTRUCTIONS: SBI P, b Set Bit in I/O Register I/O(P,b) SBI P, b Set Bit in I/O Register I/O(P,b) 1 1 CBI P, b Clear Bit in I/O Register I/O(P,b)CBI P, b Clear Bit in I/O Register I/O(P,b) 0 0 LSL Rd Logical Shift Left Rd(n+1) LSL Rd Logical Shift Left Rd(n+1) Rd(n), Rd(0) Rd(n), Rd(0) 0 0

Z,C,N,V 1Z,C,N,V 1 LSR Rd Logical Shift Right Rd(n) LSR Rd Logical Shift Right Rd(n) Rd(n+1), Rd(7) Rd(n+1), Rd(7) 0 0

Z,C,N,V 1Z,C,N,V 1 ……

Výuková deska EVMS-mega128 Výuková deska EVMS-mega128 v1.0 – Výukové příkladyv1.0 – Výukové příklady

1.0 - LEDs rotating light 01.0 - LEDs rotating light 0

1.1 - LEDs rotating light 11.1 - LEDs rotating light 1

2.0 - Buttons 02.0 - Buttons 0

3.0 - Beeper 03.0 - Beeper 0

3.1 - Beeper 13.1 - Beeper 1

4.0 - LED display 04.0 - LED display 0

5.0 - LCD display 05.0 - LCD display 0

5.1 - LCD display 15.1 - LCD display 1

6.0 - UARTs 06.0 - UARTs 0

Architektury Architektury počítačůpočítačů

Cvičení na:Cvičení na:

EVM – ATmega8535 v 1.0EVM – ATmega8535 v 1.0

Zpracoval: Doc. Ing. Lačezar Ličev, CSc. Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového Vlastnosti vývojového modulu modulu

1.1. Obsahuje RISC-ový mikrokontroler Obsahuje RISC-ový mikrokontroler Atmel ATmega8535-16JC(JI).Atmel ATmega8535-16JC(JI).

2.2. Programování je možné provádět Programování je možné provádět volně dostupným vývojovým volně dostupným vývojovým softwarem.softwarem.

3.3. Mikrokontroler se programuje přímo Mikrokontroler se programuje přímo na základové desce progr. kabelem.na základové desce progr. kabelem.

4.4. Modul obsahuje 4 sedmi-segmentové Modul obsahuje 4 sedmi-segmentové LED displeje, 8 LED diod a 8 tlačítek.LED displeje, 8 LED diod a 8 tlačítek.

5.5. Modul dále obsahuje odpojitelné Modul dále obsahuje odpojitelné sériové rozhraní RS-232sériové rozhraní RS-232..

Vlastnosti vývojového Vlastnosti vývojového modulumodulu

6.6. Většina I/O vývodů MCU je přístupná, je Většina I/O vývodů MCU je přístupná, je možné připojit rozšiřující hardware.možné připojit rozšiřující hardware.

7.7. Zdrojem hodinového signálu je krystal Zdrojem hodinového signálu je krystal 14.7456 MHz umístěný v patici.14.7456 MHz umístěný v patici.

8.8. Pro vnitřní RTC obvod mikrokontroleru je Pro vnitřní RTC obvod mikrokontroleru je na desce umistěný odpojitelný krystal na desce umistěný odpojitelný krystal 32.768 kHz.32.768 kHz.

9.9. Mikrokontroler je možné resetovat Mikrokontroler je možné resetovat tlačítkem RESET.tlačítkem RESET.

10.10. Rozměry (v x š x d): 27mm x 114mm x Rozměry (v x š x d): 27mm x 114mm x 74mm74mm

Vlastnosti mikrokontroleru Vlastnosti mikrokontroleru ATmega8535-16JI ATmega8535-16JI

1.1. 8-bitový RISC mikrokontroler.8-bitový RISC mikrokontroler.2.2. Výkon - 16 MIPS / 16 MHz - 12x Výkon - 16 MIPS / 16 MHz - 12x

rychlejší než standardní x51 na stejné rychlejší než standardní x51 na stejné taktovací frekvenci.taktovací frekvenci.

3.3. Plně statická funkce.Plně statická funkce.4.4. Dvou-cyklová násobička na čipu.Dvou-cyklová násobička na čipu.5.5. 130 výkonných instrukcí, většinou 130 výkonných instrukcí, většinou

jedno-cyklových.jedno-cyklových.

Vlastnosti mikrokontroleru Vlastnosti mikrokontroleru ATmega8535-16JIATmega8535-16JI

6.6. 32 osmibitových registrů pro obecně 32 osmibitových registrů pro obecně použití.použití.

7.7. 8kB programová FLASH paměť, 8kB programová FLASH paměť, programovatelná přímo v aplikaci s programovatelná přímo v aplikaci s možností uzamknutí, 10.000 možností uzamknutí, 10.000 zápisových/mazacích cyklů.zápisových/mazacích cyklů.

8.8. 512B EEPROM paměť, 100.000 512B EEPROM paměť, 100.000 zápisových/mazacích cyklů.zápisových/mazacích cyklů.

9.9. 512B interní SRAM paměť.512B interní SRAM paměť.10.10. 8-kanálový 10-bitový A/D převodník, 8-kanálový 10-bitový A/D převodník,

analogový komparátor.analogový komparátor.11.11. 4 PWM výstupy.4 PWM výstupy.

Vlastnosti mikrokontroleru Vlastnosti mikrokontroleru ATmega8535-16JIATmega8535-16JI

12.12. Programovatelný USART.Programovatelný USART.13.13. Master/slave SPI sériové rozhraní.Master/slave SPI sériové rozhraní.14.14. Dva 8-bitové čítače, jeden 16-bitový.Dva 8-bitové čítače, jeden 16-bitový.15.15. Programovatelní Watch-dog časovač.Programovatelní Watch-dog časovač.16.16. Čítač reálného času RTC.Čítač reálného času RTC.17.17. Tři režimy snížení spotřeby: active, Tři režimy snížení spotřeby: active,

idle a power-down.idle a power-down.18.18. 32 programovatelných I/O vývodů.32 programovatelných I/O vývodů.19.19. Napájecí napětí 4.5-5.5VNapájecí napětí 4.5-5.5V

Použití základové deskyPoužití základové desky

1.1. Výuka mikroprocesorové techniky.Výuka mikroprocesorové techniky.

2.2. Vestavěné řídící systémy (měření, Vestavěné řídící systémy (měření, řízení a regulace).řízení a regulace).

3.3. Komunikace.Komunikace.

4.4. Řízení motorů.Řízení motorů.

Podpora Podpora

1.1. Pro vývoj aplikací lze použít vývojová Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také prostředí různých výrobců a také systém AVR Studio – volné dostupné systém AVR Studio – volné dostupné na stránkách firmy Atmel.na stránkách firmy Atmel.

2.2. Programování lze provádět volně Programování lze provádět volně dostupný softwarem.dostupný softwarem.

Stručný popis Stručný popis

1.1. Vývojový modul obsahuje RISC Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR mikrokontroler vývojové řady AVR firmy Atmel s označením firmy Atmel s označením ATmega8535. ATmega8535.

2.2. Maximálním výkon 16MIPS. Maximálním výkon 16MIPS.

Blokové schémaBlokové schéma

Rozmístění konektorů a Rozmístění konektorů a propojekpropojek

NapájeníNapájení

Vývody rozšiřujících Vývody rozšiřujících konektorůkonektorů

Význam vývodů Význam vývodů konektorůkonektorů

Rozšiřující konektory Rozšiřující konektory CONxCONx

Programovací rozhraní Programovací rozhraní ISPISP

Používání LED-displayPoužívání LED-display

RS-232RS-232

Další použití Další použití

1.1. Používání Používání 8 8 LED diod.LED diod.

2.2. Používání tlačítek.Používání tlačítek.

3.3. Používání 4 sedmi-segmentových Používání 4 sedmi-segmentových LED displejů.LED displejů.

4.4. Používání sériového rozhraní RS-Používání sériového rozhraní RS-232.232.

Programování MCUProgramování MCU

HlavičkaHlavička

;********************************************;********************************************

; Program; Program : Counter 0: Counter 0

; Version : v1.0; Version : v1.0

; Hardware; Hardware : EVM-ATmega8535 v1.0: EVM-ATmega8535 v1.0

;; (Xtall(Xtall 14.7456MHz)14.7456MHz)

; Author; Author : :

;********************************************;********************************************

Short descriptionShort description

;**************************************;****************************************************

; Short description; Short description

; -----------------; -----------------

; Program shows on LED diodes actual ; Program shows on LED diodes actual state of all buttons (button down = state of all buttons (button down = lighting LED).lighting LED).

Výpis používaných souborůVýpis používaných souborů - - IncludesIncludes

;========== Includes ;========== Includes ======================

.NOLIST.NOLIST

.include.include "m8535def.inc""m8535def.inc"

.LIST.LIST

Constants Constants

Register definitions Register definitions

;======== Register definitions ;======== Register definitions ==================

.DEF.DEF ZeroRegZeroReg = r1= r1

.DEF.DEF TmpRegTmpReg = r16= r16

.DEF.DEF DispPosDispPos = r2= r2

.DEF.DEF PDelRegPDelReg = r21= r21

Data segmentData segment

;=========;=========DDATA segmentATA segment ==================

.DSEG.DSEG

EEPROM segmentEEPROM segment

;========== EEPROM segment;========== EEPROM segment ==============

.ESEG.ESEG

MACROMACRO ssegmentegment

;=========== MACROs;=========== MACROs =========== ===========

PROGRAM segmentPROGRAM segment

;========= PROGRAM segment;========= PROGRAM segment ==============

.CSEG.CSEG

Interrupt vectorsInterrupt vectors

;**************** Interrupt vectors;**************** Interrupt vectors **************************

.ORG.ORG 0x00000x0000

rjmprjmp RESETRESET ; Reset Handler; Reset Handler

rjmprjmp EXT_INT0EXT_INT0 ; External Interrupt ; External Interrupt … …

rjmprjmp EXT_INT1EXT_INT1 ; External Interrupt ; External Interrupt ……

..

..

ResetReset

;******************** Reset ;******************** Reset **************************************

.ORG.ORG 0x00150x0015

Reset: clrReset: clr ZeroRegZeroReg

ldildiTmpReg, TmpReg, low(RAMEND) ;Initialize …low(RAMEND) ;Initialize …

outout SPL, TmpRegSPL, TmpReg

..

..

Unused interrupt vectorsUnused interrupt vectors

;************* Unused interrupt vectors ;************* Unused interrupt vectors ****************************

EXT_INT0:EXT_INT0:

EXT_INT1:EXT_INT1:

TIM2_COM:TIM2_COM:

TIM2_OVF:TIM2_OVF:

TIM1_CAP:TIM1_CAP:

TIM1_COMA:TIM1_COMA:

..

..

SPM_RDY:SPM_RDY: reti reti

M A I NM A I N

;*********************;********************* M A I NM A I N ********************************************

Main:Main: rcallrcall TestButtonsTestButtons ; ;Call Call subroutine TestButtonssubroutine TestButtons

comcom ButtonsButtons ; Buttons <= ; Buttons <= not(Buttons)not(Buttons)

outout PortC, ButtonsPortC, Buttons ; PortC <= ; PortC <= ButtonsButtons

rjmprjmp MainMain ; Jmp to Main; Jmp to Main

Podprogram - Podprogram - DelayDelay ;************ Delay (PDelReg[ms]);************ Delay (PDelReg[ms])

******************************** Delay1m:Delay1m: movmov PDelReg2, PDelRegPDelReg2, PDelReg

; PDelReg2<=PDelReg; PDelReg2<=PDelReg ; Repeat; Repeat

Delay1m2:Delay1m2: decdec PDelReg0PDelReg0 ; Dec(PDelReg0); Dec(PDelReg0) brnebrne Delay1m2Delay1m2 ; Until ; Until

PDelReg0 = 0PDelReg0 = 0 decdec PDelReg1PDelReg1 ; Dec(PDelReg1); Dec(PDelReg1) brnebrne Delay1m0Delay1m0 ; Until ; Until

PDelReg2 = 0PDelReg2 = 0 retret

AAssembler ssembler ARITHMETIC AND LOGIC INSTRUCTIONS:ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers Rd ADD Rd, Rr Add Two Registers Rd Rd + Rr Z,C,N,V,H 1 Rd + Rr Z,C,N,V,H 1 ADC Rd, Rr Add with Carry Two Registers Rd ADC Rd, Rr Add with Carry Two Registers Rd Rd + Rr + C Rd + Rr + C

Z,C,N,V,H 1Z,C,N,V,H 1 SUB Rd, Rr Subtract Two Registers Rd SUB Rd, Rr Subtract Two Registers Rd Rd - Rr Z,C,N,V,H 1 Rd - Rr Z,C,N,V,H 1 SUBI Rd, K Subtract Constant from Register Rd SUBI Rd, K Subtract Constant from Register Rd Rd - K Rd - K

Z,C,N,V,H 1Z,C,N,V,H 1

…… BRANCH INSTRUCTIONS :BRANCH INSTRUCTIONS : RJMP k Relative Jump PC RJMP k Relative Jump PC PC + k + 1 PC + k + 1 RCALL k Relative Subroutine Call PC RCALL k Relative Subroutine Call PC PC + k + 1 PC + k + 1 RET Subroutine Return PC RET Subroutine Return PC STACK STACK ……

AAssembler ssembler DATA TRANSFER INSTRUCTIONS:DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd LD Rd, Z Load Register Indirect Rd (Z) (Z) ST Z, Rr Store Register Indirect (Z) ST Z, Rr Store Register Indirect (Z) Rr Rr MOV Rd, Rr Move between Registers Rd MOV Rd, Rr Move between Registers Rd Rr Rr …… BIT AND BIT-TEST INSTRUCTIONS:BIT AND BIT-TEST INSTRUCTIONS: SBI P, b Set Bit in I/O Register I/O(P,b) SBI P, b Set Bit in I/O Register I/O(P,b) 1 1 CBI P, b Clear Bit in I/O Register I/O(P,b)CBI P, b Clear Bit in I/O Register I/O(P,b) 0 0 LSL Rd Logical Shift Left Rd(n+1) LSL Rd Logical Shift Left Rd(n+1) Rd(n), Rd(0) Rd(n), Rd(0) 0 0

Z,C,N,V 1Z,C,N,V 1 LSR Rd Logical Shift Right Rd(n) LSR Rd Logical Shift Right Rd(n) Rd(n+1), Rd(7) Rd(n+1), Rd(7) 0 0

Z,C,N,V 1Z,C,N,V 1 ……


Recommended