Moduł z mikrokontrolerem ATmega128 Halszka Konieczek

Transkrypt

Moduł z mikrokontrolerem ATmega128 Halszka Konieczek
Na prawach rękopisu
INSTYTUT INFORMATYKI, AUTOMATYKI I ROBOTYKI
POLITECHNIKI WROCŁAWSKIEJ
Moduł z mikrokontrolerem
ATmega128
Halszka Konieczek
Słowa kluczowe: mikrokontroler AVR, płytka drukowana, system uruchomieniowy,
oprogramowanie skrośne.
Wrocław 2005
Spis treści
1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2. Własności mikrokontrolera ATmega128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3. Schemat i montaż . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4. Złącza i sygnały . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
5. Dokumentacja i oprogramowanie pomocnicze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1. Wstęp
Opisywany moduł zawiera 8-bitowy mikroprocesor ATmega128 firmy ATMEL wraz
z minimalnym zestawem elementów towarzyszących takich jak: rezonator kwarcowy, złącze
JTAG, złącze do programowania, zworka do wyboru trybu pracy, kondensatory filtrujące
zakłócenia zasilania, a także filtr LC do zasilania części analogowej. Możliwe jest również
zamontowanie kwarcu zegarowego. Wszystkie sygnały z mikrokontrolera wyprowadzono na
złącza o rozstawie 0.1”, dzięki czemu możliwe jest podłączenie zewnętrznych urządzeń oraz
płytek uniwersalnych.
2. Własności mikrokontrolera ATmega128
Mikrokontroler ATmega128 firmy ATMEL należy do rodziny procesorów jednoukładowych
AVR. Do konstrukcji tych procesorów wykorzystano nową technologię pamięci FLASH.
Zastosowano również rozwiązania wspierające programowanie mikrokontrolerów w języku C.
Mikrokontroler ten oparty jest o strukturę typu RISC (procesor o zredukowanej liczbie
instrukcji) wykorzystującą wczesne pobranie rozkazu [ang. prefetch]. Dzięki temu procesor
nie wymaga wielofazowego sygnału zegarowego, a pojedyncza instrukcja jest wykonywana w
jednym okresie sygnału oscylatora. Został on wyposażony w 32 ośmiobitowe, równorzędne
rejestry zastępujące pojedynczy akumulator. Trzy pary tych rejestrów mogą być używane jako
16-bitowe wskazniki. Mikrokontroler ten posiada 16-bitowe słowo instrukcji, został wyposażony
w pamięć EEPROM, która może być zapisywana przez program, a jej zawartość nie kasuje się po
wyłączeniu zasilania. Mnożenie wykonywane jest w ciągu 2 cykli zegara. Program procesora jest
przechowywany w wewnętrznej pamięci typu FLASH, którą programuje się za pomocą interfejsu
szeregowego (SPI). Pamięć FLASH można tez zaprogramowac programatorem równoległym,
przez JTAG oraz używając dowolnego innego interfejsu po wgraniu BOOT-LOADERA.
Ponadto procesor ten posiada układy czasowo-licznikowe, interfejs UART i statyczną pamięć
RAM. Zastosowana wersja mikrokontrolera posiada następujące zasoby:
— 128KB pamięci typu FLASH,
— 4KB pamięci typu EEPROM,
— 4KB pamięci typu SRAM,
— 53 programowalne linie I/O,
— timery:
– 2 8-bitowe
– 2 16-bitowe
– timer czasu rzeczywistego
— PWM:
– 2 kanały 8-bitowe
– 6 kanałów programowalnych (2 - 16-bitowe)
— obsługiwane interfejsy:
– UART (port szeregowy)
– I 2 C - dwukierunkowy interfejs szeregowy
– SPI - synchroniczny interfejs szeregowy
— komparator analogowy,
— zegar czasu rzeczywistego,
— 10-bitowy przetwornik analogowo-cyfrowy,
2
— sprzętowy układ mnożący,
— Watch Dog - układ samoczynnego restartowania w przypadku zawieszenia programu,
— ICSP - programowanie procesora w docelowym układzie,
— JTAG - magistrala szeregowa do debugowania w układzie,
— obudowa MS-026.
Strukturę i zasoby mikrokontrolera ATmega128 przedstawiono na rys.1.
Rysunek 1. Struktura i zasoby.
3. Schemat i montaż
Schemat modułu przedstawiono na rys.2. Na rys.3 widnieje sposób montażu elementów na
płytce drukowanej. W tab.1 podano zestawienie użytych elementów.
Na płytce zamontowano: mikrokontroler ATmega128 w obudowie MS-026 (U1) , rezonator
kwarcowy 16MHz (Y2) z elementami towarzyszącymi (C7 i C8), kondensatory filtrujące
3
1
2
3
JP1
GND
RESET
TOSC2
PB6
PB4
PB2
PB0
PE6
PE4
PE2
PE0
AGND
PF0
PF2
PF4
PF6
A
JP2
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
GND
PA0
PA2
PA4
PA6
PG2
PC6
PC4
PC2
PC0
PG0
PD6
PD4
PD2
PD0
VCC
TOSC1
PB7
PB5
PB3
PB1
PE7
PE5
PE3
PE1
AVCC
AREF
PF1
PF3
PF5
PF7
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
1
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
LEWA
4
RESET
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
VCC
PA1
PA3
PA5
PA7
PC7
PC5
PC3
PC1
PG1
PD7
PD5
PD3
PD1
R1
VCC
Res2
10K
JP3
PB2
RESET
PB1
PB3
PF4
PF6
PF5
VCC
PF7
PRAWA
1
3
5
7
9
VCC
GND
GND
GND
GND
2
4
6
8
10
A
ISP_CONNECTOR
JP4
GND
1
2
VCC
3
4
RESET
5
6
7
8
GND
9 10
JTAG
U1
B
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PG3
PG4
10
11
12
13
14
15
16
17
18
19
PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7
25
26
27
28
29
30
31
32
PE0
PE1
PE2
PE3
PE4
PE5
PE6
PE7
2
3
4
5
6
7
8
9
PG0 33
PG1 34
PG2 43
RESET 20
PEN 1
C
23
24
1
Y2
PB0 (SS)
PB1 (SCK)
PB2 (MOSI)
PB3 (MISO)
PB4 (OC0)
PB5 (OC1A)
PB6 (OC1B)
PB7 (OC2/OC1C)
TOSC2/PG3
TOSC1/1PG4
PD0 (SCL/INT0)
PD1 (SDA/INT1)
PD2 (RXD1/INT2)
PD3 (TXD1/INT3)
PD4 (IC1)
PD5 (XCK1)
PD6 (T1)
PD7 (T2)
PF7 (ADC7/TDI)
PF6 (ADC6/TDO)
PF5 (ADC5/TMS)
PF4 (ADC4/TCK)
PF3 (ADC3)
PF2 (ADC2)
PF1 (ADC1)
PF0 (ADC0)
PE0 (RXD0/PDI)
PE1 (ALE)
PE2 (XCK0/AIN0)
PE3 (OC3A/AIN1)
PE4 (OC3B/INT4)
PE5 (OC3C/INT5)
PE6 (T3/INT6)
PE7 (IC3/INT7)
PG0 (WR)
PG1 (RD)
PG2 (ALE)
VCC
VCC
AVCC
AREF
RESET
PEN
GND
GND
GND
XTAL2
XTAL1
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
35
36
37
38
39
40
41
42
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
54
55
56
57
58
59
60
61
PF7
PF6
PF5
PF4
PF3
PF2
PF1
PF0
21
52
64
62
VCC
VCC
AVCC
AREF
22
53
63
GND
GND
C8
27pF
100uF
C
2
1
AGND
2
AREF
C1
C4
100nF
100uF
C2
C5
100nF
100uF
1
AVCC
JP6
2
1
C6
100nF
JP8
TOSC1
2
C3
pcb_jumper
JP7
JP5
Y1
10mH
ATmega128-16AC
1
1
L1
J1
2
TOSC2
B
1
2
C7
27pF
2
PC0 (A8)
PC1 (A9)
PC2 (A10)
PC3 (A11)
PC4 (A12)
PC5 (A13)
PC6 (A14)
PC7 (A15)
51
50
49
48
47
46
45
44
16MHz
J2
PG3
PA0 (AD0)
PA1 (AD1)
PA2 (AD2)
PA3 (AD3)
PA4 (AD4)
PA5 (AD5)
PA6 (AD6)
PA7 (AD7)
PG4
XTAL
D
D
Title
Size
Number
Revision
A4
Date:
File:
1
2
2005-06-13
H:\home\..\projekt_atmega.SchDoc
3
4
Rysunek 2. Schemat
układu.
Sheet of
Drawn By:
4
Rysunek 3. Sposób montażu elementów na płytce.
liczba
1
6
2
1
1
1
1
wartość
obudowa oznaczenie na schemacie
rezystory
10k
0805
R1
kondensatory
100u
0805
C1, C2, C3, C4, C5, C6
27p
0805
C7, C8
filtry
10m
axial-0.4 L1
rezonatory
HC49/S
Y1
16M
HC49/S
Y2
półprzewodniki
ATmega128 MS-026
U1
Tabela 1. Zestawienie elementów modułu.
5
zakłócenia zasilania, a także filtr LC do zasilania części analogowej, rezystor podciągający
sygnał restartu (RESET) do stanu wysokiego (R1). Zworkę do wyboru trybu pracy (J2)
zamontowano na wierzchniej stronie płytki. Zworka to służy do załączenia PEN do masy,
co powoduje wejscie w tryb programowania przez interfejs SPI w przypadku gdy nie można
zagwarantować odpowiednich impulsów na wyprowadzeniu RESET i SCK w momencie
załączania zasilania.
4. Złącza i sygnały
Wszystkie sygnały mikrokontrolera zostały wyprowadzone na dwa 32-pinowe dwurzędowe
złącza (JP1 i JP2) znajdujące się na spodniej stronie płytki. Rozwiązanie to pozwala na
podłączenie modułu do odpowiednich gniazd zamontowanych na innej płytce. Złącze JTAG
(JP4) oraz złącze do programowania (JP3) zamontowano na wierzchniej stronie płytki.
Rozmieszczenie sygnałów na złączach JP1 i JP2 podano w tab.2. Ich opis przedstawiono w tab.3.
PF6(ADC6/TD0)
PF4(ADC4/TCK)
PF2(ADC2)
PF0(ADC0)
AGND
PE0(RXD0/PDI)
PE2(XCK0/AIN0)
PE4(OC3B/INT4)
PE6(T3/INT6)
PB0(SS)
PB2(MOSI)
PB4(OC0)
PB6(OC1B)
PG3(TOSC2)
RESET
GND
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
PF7(ADC7/TDI)
PF5(ADC5/TMS)
PF3(ADC3)
PF1(ADC1)
AREF
AVCC
PE1(TXD0/PDO)
PE3(OC3A/AIN1)
PE5(OC3C/INT5)
PE7(IC3/INT7)
PB1(SCK)
PB3(MISO)
PB5(OC1A)
PB7(OC2/OC1C)
PG4(TOSC1)
VCC
VCC
PA1(AD1)
PA3(AD3)
PA5(AD5)
PA7(AD7)
PC7(A15)
PC5(A13)
PC3(A11)
PC1(A9)
PG1(RD)
PD7(T2)
PD5(XCK1)
PD3(TXD1/INT3)
PD1(SDA/INT1)
Tabela 2. Złącza płytki.
6
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
GND
PA0(AD0)
PA2(AD2)
PA4(AD4)
PA6(AD6)
PG2(ALE)
PC6(A14)
PC4(A12)
PC2(A10)
PC0(A8)
PG0(W R)
PD6(T1)
PD4(IC1)
PD2(RXD1/INT2)
PD0(SCL/INT0)
sygnał
port A
AD0-AD7
port B
SS
SCK
MOSI
MISO
OC0-OC2/OC1C
port C
A8-A15
port D
SCL/INT0
SDA/INT1
RXD1/INT2
wyprowadzenie
opis
JP2 pin 3-JP2 pin 10
linie adresów i danych
JP1
JP1
JP1
JP1
JP1
we/wy wyboru SPI Slave Select
zegar SPI
dane SPI Master Out Slave In
dane SPI Master In Slave Out
Output Compare i PWM dla licznika
TXD1/INT3
JP2 pin 26
IC1
XCK1
T1-T2
port E
PDI
JP2 pin 25
JP2 pin 24
JP2 pin 23-JP2 pin 22
TXD0/PDO
JP1 pin 13
XCK0/AIN0
JP1 pin 14
OC3A/AIN1
JP1 pin 15
OC3B/INT4
JP1 pin 16
OC3C/INT5
JP1 pin 17
T3/INT6
IC3/INT7
JP1 pin 18
JP1 pin 19
port F
ADC0-ADC3
ADC4/TCK-ADC7/TDI
port G
WR
RD
ALE
TOSC2-TOSC1
AREF
AGND
AVCC
RESET
VCC
GND
pin
pin
pin
pin
pin
20
21
22
23
24-JP1 pin 27
JP2 pin 19-JP2 pin 12
linie adresowe, port wyjściowy
JP2 pin 29
JP2 pin 28
JP2 pin 27
przewanie zewnętrzne/TWI Serial Clock
przewanie zewnętrzne/TWI Serial Data
przewanie
zewnętrzne/UART1
pin
odbiorczy
przewanie
zewnętrzne/UART1
pin
nadawczy
Timer/Counter Input Capture Trigger
we/wy zegara zewnętrznego
wejście Timer/Counter
JP1 pin 12
UART0 pin odbiorczy/programowane we
danych
UART0 pin nadawczy/programowane wy
danych
we/wy
zagara
zewnętrznego/Analog
Comparator Positive Input
Output Compare i wy A PWM/Analog
Comparator Negative Input
Output Compare i wy B PWM/przerwanie
zewnętrzne
Output Compare i wy C PWM/przerwanie
zewnętrzne
we zegara/przerwanie zewnętrzne
Timer/Counter
Input
Capture
Trigger/przerwanie zewnętrzne
JP1 pin 8-JP1 pin 5
JP1 pin 4-JP1 pin 1
we przetwornika ADC
we przetwornika ADC/JTAG
JP2 pin 21
JP2 pin 20
JP2 pin 11
sygnał zapisu do pamięci zewnętrznej W R
sygnał odczytu z pamięci zewnętrznej RD
załączenie
zatrzasku
do
pamięci
zewnętrznej
RTC Oscillator Timer/Counter
napięcie odniesienia (analogowe)
masa analogowa
zasilanie analogowe
restart
zasilanie
masa
JP1
JP1
JP1
JP1
JP1
JP1
JP1
pin
pin
pin
pin
pin
pin
pin
28-JP1 pin 29
9
10
11
30
31, JP2 pin 2
32, JP2 pin 1
Tabela 3. Sygnały płytki.
7
Rozmieszczenie sygnałów złącza JP3 podano w tab.4, a złącza JP4 w tab.5.
PB2
1
3
5
7
9
RESET
PB1
PB3
2
4
6
8
10
VCC
GND
GND
GND
GND
Tabela 4. Złącze ISP.
PF4
PF6
PF5
VCC
PF7
1
3
5
7
9
2
4
6
8
10
GND
VCC
RESET
GND
Tabela 5. Złącze JTAG.
5. Dokumentacja i oprogramowanie pomocnicze
Dokumentacja do mikrokontrolera dostępna jest na stronie producenta
http://www.atmel.com/products/AVR/
Firma Atmel dostarcza środowisko pod nazwą AVRStudio przeznaczone do tworzenia
i uruchamiania programów oraz kompilator GCC. Oprogramowanie to dostępne jest na stronie
http://www.avrfreaks.net/
oraz http://gcc.gnu.org/
Istnieje również oprogramowanie przeznaczone dla systemu operacyjnego Windows. Jest
to pakiet WinAVR zawierający w sobie GCC dla AVRów. Uzupełniony jest on o edytor
składniowy. WinAVR posiada ponadto interfejs pozwalający zintegrować go z innymi
narzędziami, uruchamianymi za pomocą skryptów. Pakiet ten dostępny jest na stronie
http://sourceforge.net/projects/winavr
Literatura
[1] Datasheet 8-bit Microcontroller with 128K Bytes In-System Programmable Flash, Rev.2467M-AVR-11/04.
[2] J. Doliński Mikrokontrolery AVR w praktyce., Wydawnictwo BTC, Warszawa 2003.
[3] A. Krysiak Programowanie mikrokontrolerów rodziny AVR. cz.1, Typoscript, Wrocław 2000.
8
Halszka Konieczek
Instytut Informatyki, Automatyki i Robotyki
Politechniki Wrocławskiej
ul. Janiszewskiego 11/17
50-372 Wrocław
Niniejszy raport otrzymują:
1. OINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 1 egz.
3. Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 3 egz.
Razem :
Raport wpłynął do redakcji I-6
w czerwcu 2005 roku.
9
4 egz.

Podobne dokumenty