Title: Architektury poc
1Architektury pocítacu a paralelných systému
- Atmega 32
- Zpracoval Doc. Ing. Lacezar Licev, CSc.
2Vlastnosti mikrokontroleru ATmega32
- 8-bitový RISC mikrokontroler.
- Výkon - 16 MIPS/16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci. - Plne statická funkce. Interní kalibrovaný RC
oscilátor. - Dvou-cyklová násobicka na cipu.
- 131 výkonných instrukcí, vetšinou
jedno-cyklových. - 32 osmibitových registru pro obecné použití.
- 32kB programová FLASH pamet, programovatelná
prímo v aplikaci s možností uzamknutí, 10.000
zápisových/mazacích, cyklu s volitelnou velikostí
bootloader sekce.
3Vlastnosti mikrokontroleru ATmega32
- 1kB EEPROM pamet, 100.000 zápisových/mazacích
cyklu. - 2kB interní SRAM pamet.
- JTAG rozhraní s možností programování a ladení.
- 8-kanálový 10-bitový A/D prevodník, analogový
komparátor. - Bytove orientované sériové rozhraní (TWI).
- Dve programovatelné USART komunikacní rozhraní.
- Master/slave SPI sériové rozhraní.
- Dva 8-bitové a jeden 16-bitové cítace, s
vlastní pred-delickou.
4Vlastnosti mikrokontroleru ATmega32
- Dva 8-bitové PWM kanály.
- 4 PWM kanálu s programovatelným rozlišením 2-16
bitu. - Programovatelný Watch-dog casovac s oscilátorem
na cipu. - Cítac reálného casu RTC s oddeleným
oscilátorem. - 6 režimu snížené spotreby.
- 32 programovatelných I/O vývodu.
- Napájecí napetí 4.5-5.5V.
5ATmega32
6Zapojení AVR-KITu
7Podpora
- Pro vývoj aplikací lze použít vývojová prostredí
ruzných výrobcu a také systém AVR Studio volné
dostupné na stránkách firmy Atmel. - Programování lze provádet volne dostupný
softwarem.
8Po rozbalení archívu avr-kit.zip vznikne
adresár s obsahem
- ./avrkit.exe gt Program pro programování
AVR Kitu - ./avr-kit gt Skupina projektu pro AVR
Studio5 - ./avrkit gt Adresár s knihovnou avrkit
- ./leds gt Adresár s projektem pro LED diody
- ./i2c gt Adresár s projektem pro sbernici i2c
- ./demo gt Adresár s demo projekty
9Obsah adresáre - avrkit
- ./avrkit.c gt Zdrojový kód knihovny avrkit
- ./avrkit.h gt Hlavickový soubor knihovny avrkit
10Obsah adresáre - leds
- ./leds.avrgccproj gt Projekt AVR Studia
- ./leds.c gt Zdrojový kód programu leds
- ./Debug gt Adresár pro výstupní soubory
- ./Release gt Adresár pro výstupní soubory
11Obsah adresáre - i2c
- ./i2c.avrgccproj gt Projekt AVR Studia
- ./i2c.c gt Zdrojový kód programu i2c
- ./Debug gt Adresár pro výstupní soubory
- ./Release gt Adresár pro výstupní soubory
12Obsah adresáre - demo
- ./demoleds.hex gt Demo program pro LEDky
- ./demo8x8.hex gt Demo program pro led displej
- ./demoi2c.hex gt Demo program pro sbìrnici i2c
13ATmega32 - 4 V/V porty (PA, PB, PC a PD)
- Konfigurace portu (A, B, C a D) pomoci registru
- DDRx - zápisem log. 1 na konkrétní bit tohoto
registru urcíme, že daný pin bude výstupní a prí
log. 0 bude vstupní. - PORTx - když je pin definovaný jako vstupní a v
reg. PORTx je definována log.1 je tento pin
udržován v klidovém stavu na hodnotu 1. Pri
log. 0 zapsané do reg. PORTx a když je pin
definován jako výstupní urcuje reg. PORTx log.
hodnotu na konkrétním pinu. - PINx - Zapsáním log. 1 na pin tohoto registru
nastaví log. 1 na konkrétním pinu nezávisle na
registru DDRx. Pokud je port nastaven jako
vstupní lze pomocí registru PINx zjistit aktuální
stav na portu.
14Postup pri programování mikropocítace AVR-KITu
- Aktivace BOOTLoader - stlacením tlacítka PIND4,
pak - stlacením a uvolnení tlacítka RESET - procesor se
uvede do módu programování pameti FLASH - Sviti
LED dioda pripojenou na PIND2. - Restart procesoru - stlacení a uvolnení tlacítka
RESET. - Po ukoncení programování program avrkit.exe
zustává aktivní a je pripraven vypisovat data,
které bude mikropocítac zapisovat na sériový port
pomocí funkce printf. Nechcete-li tuto funkci
programu avrkit.exe využívat je ji možné vypnou
parametrem -n.
15Programování AVR-KITuprogram avrkit.exe (archív
avrkit.zip).
- avrkit.exe -h
- -h show this help
- -d serial port device (def 'COM1')
- -e erase AVR flash only
- -l list available COM ports
- -n no terminal mode after programming
- -s show AVR flash only
- -t terminal mode only
- -v verify AVR flash memory only
- -x show HEX file only
- avrkit.exe -d COM3 demoleds.hex
16Architektury pocítacu a paralelných systému
- Cvicení na
- Atmel EVMS-mega128
- Zpracoval Doc. Ing. Lacezar Licev, CSc.
17Vlastnosti vývojové desky
- Obsahuje RISC MCU Atmel ATmega128-16AI TQFP64
- Pro vytvárení programového kódu - Atmel AVR
Studio - Napájení
- Power konektor (napr. z wall adapteru)
- USB (chráneno SMD tavnou vymenitelnou
pojistkou) - Možnosti programování mikrokontroleru
- ISP ci JTAG programovací rozhraní (JTAG ladení
kódu) - USB komunikacní rozhraní (bootloader-u MCU)
18Vlastnosti vývojové desky
- Uživatelská rozhraní
- 4 LED diody
- 8 tlacítek
- Multiplexovaný sedmisegmentový LED display (4
digity) - LCD display (2x 16 znaku, podsvetlený,
odnímatelný) - Komunikacní rozhraní
- RS-232 (canon 9 konektor)
- USB (konektor typu B)
- SPI (pinová lišta)
- I2C (pinová lišta)
19Vlastnosti vývojové desky
- Ostatní rozhraní
- 7 univerzálních vstupu/výstupu (pinová lišta)
- 2 ADC vstupy/výstupu ref. napetí (pinová lišta)
- Rozhraní pro pripojení externí pameti
- Piny umožnující napájení pripojených modulu
napetím 5V
20Vlastnosti vývojové desky
- Deska dále obsahuje
- 5V napetový regulátor
- Nastavitelnou napetovou referenci pro interní
AD - Krystal 14.74567MHz v patici - hlavní zdroj
hod. signálu - Krystal 32.768kHz pro RTC
- Piezomenic bez vlastního budice (beeper)
- Trimr pro nastavení kontrastu LCD displeje
- Resetovací tlacítko
- Rozmery desky(v x š x d) 25.0mm x 146.4mm x
68.0mm
21Vlastnosti mikrokontroleru ATmega128-16AI TQFP64
- 8-bitový RISC mikrokontroler.
- Výkon - 16 MIPS/16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci. - Plne statická funkce. Interní kalibrovaný RC
oscilátor. - Dvou-cyklová násobicka na cipu.
- 133 výkonných instrukcí, vetšinou
jedno-cyklových. - 32 osmibitových registru pro obecné použití.
- 128kB programová FLASH pamet, programovatelná
prímo v aplikaci s možností uzamknutí, 10.000
zápisových/mazacích, cyklu s volitelnou velikostí
bootloader sekce.
22Vlastnosti mikrokontroleru ATmega128-16AI TQFP64
- 4kB EEPROM pamet, 100.000 zápisových/mazacích
cyklu. - 4kB interní SRAM pamet.
- JTAG rozhraní s možností programování a ladení.
- 8-kanálový 10-bitový A/D prevodník, analogový
komparátor. - Bytove orientované sériové rozhraní (TWI).
- Dve programovatelné USART komunikacní rozhraní.
- Master/slave SPI sériové rozhraní.
- Dva 8-bitové a dva 16-bitové cítace, s vlastní
pred-delickou.
23Vlastnosti mikrokontroleru ATmega128-16AI TQFP64
- Dva 8-bitové PWM kanály.
- 6 PWM kanálu s programovatelným rozlišením 2-16
bitu. - Programovatelný Watch-dog casovac s oscilátorem
na cipu. - Cítac reálného casu RTC s oddeleným
oscilátorem. - 6 režimu snížené spotreby.
- 53 programovatelných I/O vývodu.
- Napájecí napetí 4.5-5.5V.
24Podpora
- Pro vývoj aplikací lze použít vývojová prostredí
ruzných výrobcu a také systém AVR Studio volné
dostupné na stránkách firmy Atmel. - Programování lze provádet volne dostupný
softwarem.
25Strucný popis
- Vývojový modul obsahuje RISC mikrokontroler
vývojové rady AVR firmy Atmel s oznacením Atmel
EVMS-mega128. - Maximálním výkon.
26Atmel EVMS-mega128
27Atmel EVMS-mega128
28Atmel EVMS-mega128
29Atmel EVMS-mega128
30Blokové schéma
31Napájení
32Jumper JP PWR
33Sériové rozhraní RS-232JP UART 1
34Význam vývodu konektoru RS 232 (UART)
35Logická vazba mezí tlacítky a MCU
36LED - display
37Rídící signály a pozicí LED display
38LCD display a vývody MCU
39Vývody ISP a JTAG
40Nahrávání programu do MCU
Vlastnosti vývojové desky
41 42Hlavicka - 1
-
- Program counter 0
- Version v1.0
- Hardware atmega128-16ai TQFP64
- Xtall 14.7456 MHz
- Author
-
43Hlavicka 2.1Evms-mega128 v 1.0 board
congiguration
- Jumpers
- Power depends on power supply used (REG or USB
- VREF Dont care (for example 2.5v)
- LEE Dont care
- UART1 Dont care
-
- Connectors
-
44Hlavicka 2.2Evms-mega128 v 1.0 board
congiguration
- Connectors
- LCD display Dont care
- Ext. memory Dont care
- ADC Dont care
- SPI Dont care
- I2C Dont care
- Misc Dont care
-
45Sekce include
- Includes
- .NOLIST
- .include m128def.inc
- .LIST
46Sekce konstant
- Constants
- .EQU BaudConst 7 Baudova rychlost
- .EQU BuffLen 8 Velikost bufferu
47Sekce pojmenování registru
- Register definitions
- .def ZeroReg r1
- .def FFReg r2
- .def PDelReg r16
- .
- .
48Sekce pametí SRAM
- Data Segment
- .DSEG
- .Var .BYTE 1 1 bytova prom. na adr. Var1
- .Buffer .BYTE 8 8 bytova prom. na adr. Buffer
49Sekce EEPROM
- EEPROM segment
- .ESEG
- ConstArr .DB 0x00, 0x00 definuje tabulku
constant 0x00, 0x00 na adrese ConstArr
50Sekce MAKER
- MACROs
- .MACRO INC_Z16
- add ZL, _at_0
- adc ZH, _at_1
- .ENDM
51Programová sekce
- Program segment
- .CSEG
- .org 0x0000 urcení adresy
- .ldi TmpReg, 0 instrukce
- CharTab .db 0x10, 0x02 definuje tab.konstant
52Assembler
- ARITHMETIC AND LOGIC INSTRUCTIONS
- ADD Rd, Rr Add Two Registers Rd ? Rd Rr
Z,C,N,V,H 1 - ADC Rd, Rr Add with Carry Two Registers Rd ?
Rd Rr C Z,C,N,V,H 1 - SUB Rd, Rr Subtract Two Registers Rd ? Rd -
Rr Z,C,N,V,H 1 - SUBI Rd, K Subtract Constant from Register
Rd ? Rd - K Z,C,N,V,H 1 -
- BRANCH INSTRUCTIONS
- RJMP k Relative Jump PC ? PC k 1
- RCALL k Relative Subroutine Call PC ? PC k 1
- RET Subroutine Return PC ? STACK
53Assembler
- DATA TRANSFER INSTRUCTIONS
- LD Rd, Z Load Register Indirect Rd ? (Z)
- ST Z, Rr Store Register Indirect (Z) ?
Rr - MOV Rd, Rr Move between Registers Rd ? Rr
-
- BIT AND BIT-TEST INSTRUCTIONS
- SBI P, b Set Bit in I/O Register I/O(P,b)
? 1 - CBI P, b Clear Bit in I/O Register I/O(P,b)
? 0 - LSL Rd Logical Shift Left Rd(n1) ?
Rd(n), Rd(0) ? 0 Z,C,N,V 1 - LSR Rd Logical Shift Right Rd(n) ?
Rd(n1), Rd(7) ? 0 Z,C,N,V 1
54Výuková deska EVMS-mega128 v1.0 Výukové
príklady
- 1.0 - LEDs rotating light 0
- 1.1 - LEDs rotating light 1
- 2.0 - Buttons 0
- 3.0 - Beeper 0
- 3.1 - Beeper 1
- 4.0 - LED display 0
- 5.0 - LCD display 0
- 5.1 - LCD display 1
- 6.0 - UARTs 0
55Architektury pocítacu
- Cvicení na
- EVM ATmega8535 v 1.0
- Zpracoval Doc. Ing. Lacezar Licev, CSc.
56Vlastnosti vývojového modulu
- Obsahuje RISC-ový mikrokontroler Atmel
ATmega8535-16JC(JI). - Programování je možné provádet volne dostupným
vývojovým softwarem. - Mikrokontroler se programuje prímo na základové
desce progr. kabelem. - Modul obsahuje 4 sedmi-segmentové LED displeje, 8
LED diod a 8 tlacítek. - Modul dále obsahuje odpojitelné sériové rozhraní
RS-232.
57Vlastnosti vývojového modulu
- Vetšina I/O vývodu MCU je prístupná, je možné
pripojit rozširující hardware. - Zdrojem hodinového signálu je krystal 14.7456 MHz
umístený v patici. - Pro vnitrní RTC obvod mikrokontroleru je na desce
umistený odpojitelný krystal 32.768 kHz. - Mikrokontroler je možné resetovat tlacítkem
RESET. - Rozmery (v x š x d) 27mm x 114mm x 74mm
58Vlastnosti mikrokontroleru ATmega8535-16JI
- 8-bitový RISC mikrokontroler.
- Výkon - 16 MIPS / 16 MHz - 12x rychlejší než
standardní x51 na stejné taktovací frekvenci. - Plne statická funkce.
- Dvou-cyklová násobicka na cipu.
- 130 výkonných instrukcí, vetšinou jedno-cyklových.
59Vlastnosti mikrokontroleru ATmega8535-16JI
- 32 osmibitových registru pro obecne použití.
- 8kB programová FLASH pamet, programovatelná prímo
v aplikaci s možností uzamknutí, 10.000
zápisových/mazacích cyklu. - 512B EEPROM pamet, 100.000 zápisových/mazacích
cyklu. - 512B interní SRAM pamet.
- 8-kanálový 10-bitový A/D prevodník, analogový
komparátor. - 4 PWM výstupy.
60Vlastnosti mikrokontroleru ATmega8535-16JI
- Programovatelný USART.
- Master/slave SPI sériové rozhraní.
- Dva 8-bitové cítace, jeden 16-bitový.
- Programovatelní Watch-dog casovac.
- Cítac reálného casu RTC.
- Tri režimy snížení spotreby active, idle a
power-down. - 32 programovatelných I/O vývodu.
- Napájecí napetí 4.5-5.5V
61Použití základové desky
- Výuka mikroprocesorové techniky.
- Vestavené rídící systémy (merení, rízení a
regulace). - Komunikace.
- Rízení motoru.
62Podpora
- Pro vývoj aplikací lze použít vývojová prostredí
ruzných výrobcu a také systém AVR Studio volné
dostupné na stránkách firmy Atmel. - Programování lze provádet volne dostupný
softwarem.
63Strucný popis
- Vývojový modul obsahuje RISC mikrokontroler
vývojové rady AVR firmy Atmel s oznacením
ATmega8535. - Maximálním výkon 16MIPS.
64Blokové schéma
65Rozmístení konektoru a propojek
66Napájení
67Vývody rozširujících konektoru
68Význam vývodu konektoru
69Rozširující konektory CONx
70Programovací rozhraní ISP
71Používání LED-display
72RS-232
73Další použití
- Používání 8 LED diod.
- Používání tlacítek.
- Používání 4 sedmi-segmentových LED displeju.
- Používání sériového rozhraní RS-232.
74 75Hlavicka
-
- Program Counter 0
- Version v1.0
- Hardware EVM-ATmega8535 v1.0
- (Xtall 14.7456MHz)
- Author
76Short description
-
- Short description
- -----------------
- Program shows on LED diodes actual state of all
buttons (button down lighting LED).
77Výpis používaných souboru - Includes
- Includes
- .NOLIST
- .include "m8535def.inc"
- .LIST
78Constants
79Register definitions
- Register definitions
- .DEF ZeroReg r1
- .DEF TmpReg r16
- .DEF DispPos r2
- .DEF PDelReg r21
80Data segment
81EEPROM segment
82MACRO segment
83PROGRAM segment
84Interrupt vectors
- Interrupt vectors
- .ORG 0x0000
- rjmp RESET Reset Handler
- rjmp EXT_INT0 External Interrupt
- rjmp EXT_INT1 External Interrupt
- .
- .
85Reset
- Reset
- .ORG 0x0015
- Reset clr ZeroReg
- ldi TmpReg, low(RAMEND) Initialize
- out SPL, TmpReg
- .
- .
86Unused interrupt vectors
- Unused interrupt vectors
- EXT_INT0
- EXT_INT1
- TIM2_COM
- TIM2_OVF
- TIM1_CAP
- TIM1_COMA
- .
- .
- SPM_RDY reti
87M A I N
- M A I N
- Main rcall TestButtons Call subroutine
TestButtons - com Buttons Buttons lt not(Buttons)
- out PortC, Buttons PortC lt Buttons
- rjmp Main Jmp to Main
88Podprogram - Delay
- Delay (PDelRegms)
- Delay1m mov PDelReg2, PDelReg
- PDelReg2ltPDelReg
- Repeat
- Delay1m2 dec PDelReg0 Dec(PDelReg0)
- brne Delay1m2 Until PDelReg0 0
- dec PDelReg1 Dec(PDelReg1)
- brne Delay1m0 Until PDelReg2 0
- ret
89Assembler
- ARITHMETIC AND LOGIC INSTRUCTIONS
- ADD Rd, Rr Add Two Registers Rd ? Rd Rr
Z,C,N,V,H 1 - ADC Rd, Rr Add with Carry Two Registers Rd ?
Rd Rr C Z,C,N,V,H 1 - SUB Rd, Rr Subtract Two Registers Rd ? Rd -
Rr Z,C,N,V,H 1 - SUBI Rd, K Subtract Constant from Register
Rd ? Rd - K Z,C,N,V,H 1 -
- BRANCH INSTRUCTIONS
- RJMP k Relative Jump PC ? PC k 1
- RCALL k Relative Subroutine Call PC ? PC k 1
- RET Subroutine Return PC ? STACK
90Assembler
- DATA TRANSFER INSTRUCTIONS
- LD Rd, Z Load Register Indirect Rd ? (Z)
- ST Z, Rr Store Register Indirect (Z) ?
Rr - MOV Rd, Rr Move between Registers Rd ? Rr
-
- BIT AND BIT-TEST INSTRUCTIONS
- SBI P, b Set Bit in I/O Register I/O(P,b)
? 1 - CBI P, b Clear Bit in I/O Register I/O(P,b)
? 0 - LSL Rd Logical Shift Left Rd(n1) ?
Rd(n), Rd(0) ? 0 Z,C,N,V 1 - LSR Rd Logical Shift Right Rd(n) ?
Rd(n1), Rd(7) ? 0 Z,C,N,V 1