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 ReportTranscript 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
…
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
…