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 -

Download Report

Transcript 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 -

Slide 1

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 2

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 3

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 4

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 5

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 6

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 7

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 8

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 9

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 10

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 11

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 12

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 13

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 14

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 15

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 16

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 17

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 18

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 19

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 20

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 21

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 22

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 23

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 24

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 25

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 26

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 27

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 28

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 29

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 30

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 31

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 32

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 33

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 34

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 35

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 36

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 37

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 38

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 39

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 40

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 41

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 42

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 43

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 44

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 45

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 46

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 47

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 48

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 49

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 50

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 51

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 52

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 53

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 54

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 55

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 56

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 57

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 58

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 59

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 60

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 61

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 62

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 63

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 64

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 65

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 66

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 67

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 68

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 69

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 70

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 71

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 72

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 73

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 74

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 75

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 76

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 77

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 78

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 79

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 80

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 81

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 82

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 83

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 84

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 85

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 86

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 87

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 88

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 89

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1



Slide 90

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ředdě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.

ATmega32

Zapojení AVR-KITu

Podpora
1.

2.

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
./avr-kit
./avrkit
./leds
./i2c
./demo

> Program pro programování
AVR Kitu
> Skupina projektů pro AVR
Studio5
> Adresář s knihovnou avrkit
> Adresář s projektem pro LED diody
> Adresář s projektem pro sběrnici i2c
> 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
./i2c.c
./Debug
./Release

> Projekt AVR Studia
> Zdrojový kód programu i2c
> Adresář pro výstupní soubory
> 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-KITu
program avrkit.exe (archív avrkit.zip).


avrkit.exe -h














-h show this help
-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ředdě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
1.

2.

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
1.

2.

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

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Atmel EVMS-mega128

Blokové schéma

Napájení

Jumper JP PWR

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

Význam vývodů konektoru
RS 232 (UART)

Logická vazba mezí tlačítky a
MCU

LED - display

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

LCD display a vývody MCU

Vývody ISP a JTAG

Nahrávání programu do MCU

Vlastnosti vývojové desky

Programování MCU

Hlavička - 1
;********************************************
; Program : counter 0
; Version : v1.0
; Hardware : atmega128-16ai TQFP64
; Xtall
: 14.7456 MHz
; Author
:
;********************************************

Hlavička – 2.1
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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.2
Evms-mega128 v 1.0 board congiguration
;******************************************************************
;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

Sekce konstant
;=========== Constants ==========
.EQU BaudConst = 7
; Baudova rychlost
.EQU BuffLen = 8
; Velikost bufferu

Sekce pojmenování registrů
;======= Register definitions =========
.def ZeroReg = r1
.def FFReg
= r2
.def PDelReg = r16
.
.

Sekce pamětí SRAM
;========= Data Segment ==========
.DSEG
.Var
.Buffer

.BYTE 1
.BYTE 8

;1 bytova prom. na adr. Var1
;8 bytova prom. na adr. Buffer

Sekce EEPROM
;======== EEPROM segment =======
.ESEG
ConstArr .DB 0x00, 0x00 ;definuje tabulku
constant 0x00, 0x00 na adrese ConstArr

Sekce MAKER
;=========== MACROs ==========
.MACRO INC_Z16
add ZL, @0
adc ZH, @1
.ENDM

Programová sekce
;========= Program segment ======
.CSEG
.org 0x0000
;určení adresy
.ldi TmpReg, 0
;instrukce
CharTab .db 0x10, 0x02 ;definuje tab.konstant

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1


Výuková deska EVMS-mega128 v1.0 –
Výukové příklady
1.0 - LEDs rotating light 0
1.1 - LEDs rotating light 1
2.0 - Buttons 0
3.0 - Beeper 0
3.1 - Beeper 1
4.0 - LED display 0
5.0 - LCD display 0
5.1 - LCD display 1
6.0 - UARTs 0

Architektury počítačů
Cvičení na:

EVM – ATmega8535 v 1.0
Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu
1.
2.
3.
4.
5.

Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI).
Programování je možné provádět volně
dostupným vývojovým softwarem.
Mikrokontroler se programuje přímo na
základové desce progr. kabelem.
Modul obsahuje 4 sedmi-segmentové LED
displeje, 8 LED diod a 8 tlačítek.
Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.

Vlastnosti vývojového modulu
6.
7.
8.
9.
10.

Většina I/O vývodů MCU je přístupná, je
možné připojit rozšiřující hardware.
Zdrojem hodinového signálu je krystal 14.7456
MHz umístěný v patici.
Pro vnitřní RTC obvod mikrokontroleru je na
desce umistěný odpojitelný krystal 32.768 kHz.
Mikrokontroler je možné resetovat tlačítkem
RESET.
Rozměry (v x š x d): 27mm x 114mm x 74mm

Vlastnosti mikrokontroleru
ATmega8535-16JI
1.

2.
3.
4.
5.

8-bitový RISC mikrokontroler.
Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci.
Plně statická funkce.
Dvou-cyklová násobička na čipu.
130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru
ATmega8535-16JI
6.

7.

8.
9.
10.
11.

32 osmibitových registrů pro obecně použití.
8kB programová FLASH paměť,
programovatelná přímo v aplikaci s možností
uzamknutí, 10.000 zápisových/mazacích cyklů.
512B EEPROM paměť, 100.000
zápisových/mazacích cyklů.
512B interní SRAM paměť.
8-kanálový 10-bitový A/D převodník, analogový
komparátor.
4 PWM výstupy.

Vlastnosti mikrokontroleru
ATmega8535-16JI
12.
13.
14.
15.
16.
17.

18.
19.

Programovatelný USART.
Master/slave SPI sériové rozhraní.
Dva 8-bitové čítače, jeden 16-bitový.
Programovatelní Watch-dog časovač.
Čítač reálného času RTC.
Tři režimy snížení spotřeby: active, idle a
power-down.
32 programovatelných I/O vývodů.
Napájecí napětí 4.5-5.5V

Použití základové desky
1.
2.

3.
4.

Výuka mikroprocesorové techniky.
Vestavěné řídící systémy (měření, řízení a
regulace).
Komunikace.
Řízení motorů.

Podpora
1.

2.

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
1.

2.

Vývojový modul obsahuje RISC mikrokontroler
vývojové řady AVR firmy Atmel s označením
ATmega8535.
Maximálním výkon 16MIPS.

Blokové schéma

Rozmístění konektorů a propojek

Napájení

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

Význam vývodů konektorů

Rozšiřující konektory CONx

Programovací rozhraní ISP

Používání LED-display

RS-232

Další použití
1.

2.
3.

4.

Používání 8 LED diod.
Používání tlačítek.
Používání 4 sedmi-segmentových LED
displejů.
Používání sériového rozhraní RS-232.

Programování MCU

Hlavička
;********************************************
; Program : Counter 0
; Version : v1.0
; Hardware : EVM-ATmega8535 v1.0
;
(Xtall 14.7456MHz)
; Author :
;********************************************

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

Výpis používaných souborů Includes
;========== Includes ===========
.NOLIST
.include "m8535def.inc"
.LIST

Constants

Register definitions
;======== Register definitions =========
.DEFZeroReg
= r1
.DEFTmpReg
= r16
.DEFDispPos
= r2
.DEFPDelReg
= r21

Data segment
;=========DATA segment =========
.DSEG

EEPROM segment
;========== EEPROM segment =======
.ESEG

MACRO segment
;=========== MACROs ===========

PROGRAM segment
;========= PROGRAM segment =======
.CSEG

Interrupt vectors
;**************** Interrupt vectors *************
.ORG 0x0000
rjmp RESET
; Reset Handler
rjmp EXT_INT0 ; External Interrupt …
rjmp EXT_INT1 ; External Interrupt …
.
.

Reset
;******************** Reset *******************
.ORG 0x0015
Reset: clr ZeroReg
ldi TmpReg, low(RAMEND) ;Initialize …
out SPL, TmpReg
.
.

Unused interrupt vectors
;************* Unused interrupt vectors **************
EXT_INT0:
EXT_INT1:
TIM2_COM:
TIM2_OVF:
TIM1_CAP:
TIM1_COMA:
.
.

SPM_RDY:

reti

MAIN
;********************* M A I N **********************
Main: rcall TestButtons ;Call subroutine TestButtons
com Buttons
; Buttons <= not(Buttons)
out PortC, Buttons ; PortC <= Buttons
rjmp Main
; Jmp to Main

Podprogram - Delay
;************ Delay (PDelReg[ms]) ****************
Delay1m: mov PDelReg2, PDelReg
; PDelReg2<=PDelReg
; Repeat
Delay1m2: dec PDelReg0 ; Dec(PDelReg0)
brne Delay1m2 ; Until PDelReg0 = 0
dec PDelReg1 ; Dec(PDelReg1)
brne Delay1m0 ; Until PDelReg2 = 0
ret

Assembler














ARITHMETIC AND LOGIC INSTRUCTIONS:
ADD Rd, Rr Add Two Registers Rd  Rd + Rr
Z,C,N,V,H 1
ADC Rd, Rr Add with Carry Two Registers Rd  Rd + Rr + C
Z,C,N,V,H 1
SUB Rd, Rr
Subtract Two Registers Rd  Rd - Rr Z,C,N,V,H 1
SUBI Rd, K
Subtract Constant from Register Rd  Rd - K
Z,C,N,V,H 1


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

Assembler














DATA TRANSFER INSTRUCTIONS:
LD Rd, Z
Load Register Indirect Rd  (Z)
ST Z, Rr
Store Register Indirect (Z)  Rr
MOV Rd, Rr Move between Registers Rd  Rr

BIT AND BIT-TEST INSTRUCTIONS:
SBI P, b
Set Bit in I/O Register I/O(P,b)  1
CBI P, b
Clear Bit in I/O Register I/O(P,b)  0
LSL Rd
Logical Shift Left Rd(n+1)  Rd(n), Rd(0)  0
Z,C,N,V 1
LSR Rd
Logical Shift Right Rd(n)  Rd(n+1), Rd(7)  0
Z,C,N,V 1