Documente Academic
Documente Profesional
Documente Cultură
APLICAII CU MICROCONTROLERE AVR Microcontrolerele din seria AVR pot nlocui cu succes microcontrolerele cu arhitectur MCS 51, n majoritatea aplicaiilor existente. Utilizarea microcontrolerelor AVR crete viteza de calcul. n plus, se simplific schemele i li se aduc mbuntiri prin utilizarea memoriei interne de tip EEPROM (pentru memorarea setrilor i parametrilor aplicaiei). n paragrafele urmtoare sunt prezentate cteva aplicaii cu microcontrolere AVR RISC din seria AT90. Pentru fiecare aplicaie sunt expuse subrutine scrise n limbaj de asamblare, ce pot fi utilizate n programele de aplicaie. Subrutinele descrise sunt n format text i sunt preluate din programe funcionale. Toate aceste subrutine au fost testate n programe de aplicaie iar pentru generarea fiierului HEX ce s-a nscris n microcontroler s-a folosit programul asamblor AVRASM.EXE. nelegerea acestor exemple este condiionat de existena unor cunotine presupuse a fi cunoscute privind programarea n limbaj de asamblare. Pentru a facilita parcurgerea acestor exemple, n cele ce urmeaz sunt prezentate cteva informaii cu privire la programul asamblor AVRASM.EXE, utilizat la testarea acestora. Acest program recunoate ca surs pentru generarea codului de aplicaie unul sau mai multe fiiere text. Programul genereaz la ieire un fiier cu extensia HEX, cu codul ce se nscrie n memoria program a microcontrolerului Mai genereaz un fiier cu extensia LST, cu alocarea adreselor pentru fiecare instruciune i a codurilor de eroare. De asemenea, poate genera i fiiere (cu extensia EEP) pentru memoria EEPROM. n cele ce urmeaz subliniem cteva informaii ce privesc programarea n limbaj de asamblare pentru microcontrolerele AVR. Directivele programului asamblor ncep ntotdeauna cu punct (.), etichetele se termin cu dou puncte (:) iar comentariile sunt precedate de punct i virgul (;). Semnificaiile unora dintre directivele de asamblare sunt urmtoarele: BYTE rezervare octet n memoria RAM; CSEG segment de cod; DB definire constante tip octet; DEF definire nume pentru regitrii generali; DEVICE definire tip de microcontroler utilizat la asamblare; DSEG segment de date; DW definire constante tip cuvnt; EQU seteaz valoarea unui simbol cu valoarea unei expresii; ESEG segment de date pentru memoria EEPROM; INCLUDE citete surse de program din alte fiiere; ORG seteaz adresa de cod program; SET seteaz valoarea unei constante cu valoarea unei expresii, valoarea poate fi modificat pe parcursul asamblrii. Ca operanzi numerici asamblorul recunoate constante zecimale (10, 255, ), constante hexazecimale (0x0a, 0x0ff, $0a, $ff, ), constante binare (0b00001010, 0b11111111, ) i constante octale (010, 077, ). Trebuie precizat c modul de lucru cu programul asamblor AVRASM este identic cu cel al majoritii asambloarelor pentru microprocesoare i microcontrolere. 4.1. Sistem de control cu afiarea pe 4 digii Sistemul permite controlul unei instalaii tehnologice cu 6 (7) semnale de intrare-ieire i are la baz microcontrolerul AT90S2313. Schema sistemului ce permite afiarea datelor pe 4 digii este cea din fig. 4.1.
U A A N N O O D 31 1 D 42 A 1 A N N O O D D E 0 E 1
T D
6 4
A B C D E F G P
A B C D E F G P
A B C D E F G P
11 10 8 6 5 12 7 9
6 5
8 7
11 10 8 6 5 12 7 9
6 5
1 1 3 2 1 1 1 4
D D D D V C
A B C D C
7 1 2 6 4 5 3
3 A B C D E F G
1 2 4 8 B I/ R B R B I L T 7 4 4 6
1 1 1 1 9 1 1
3 2 1 0 5 4
R R R R
1 3 5 7 D U 5 Q Q Q Q Q Q Q Q Q Q C D 4 0 D 1 2 3 4 4 1 4 0 1 2 3 4 5 6 7 8 9 2 P
R R R R
2 4 6 8 V Q A V Q A V Q A V Q A 4 8 X B C 4 N 1 O 7 D 3 4 C N C 2 N C 3 O C D 3 O C D 2 1 N C O C D 1 C C
4 x 7 5
D 0D 1D 1 D A B C D 1 1 1 1 0 3 A 2 B 1 C D
C 3 Y
1 D 3 p 1 H
P 1
2 3 6 7 8 9 5 4 1
U P P P P P 1 P P X X R D D D D D D D
4 0 1 2 3 4 5 6 / / / / / / / R T IN IN T T IC L 1 L 2 E T T 9 XP XP T TP O 1P PP P
4 x 7 5
3 1 2 1 1 6 7 4 9 5 8 4 5
T A T A E S A
1 2 DB 0 / A 1 I N 3 DB 1 / A 1 I N 4 O P B 21 5 1B 3 / O 1 C 6 P B 41 7 B 5 / M 1O 8 B 6 / M 1I S 9 B 7 / S C
S I O K
4 M C 2 3 3 p
3 1
R 1 0 0
9 K
D D D 4 X
Fig. 4.1. Sistem de control cu afiare pe 4 digii 4.2. Numrtor de evenimente Schema numrtorului este prezentat n fig. 4.2.
U A A N N O 1 D3 1 O 1 D4 A2 A N N O O D D E 0 E 1 1 L T D 6 4 1 0 G A A U N N O O 1 33 D 1 44 A D A N N O O D D E 0 E 1 2 L T D 6 4 1 0 G
A B C D E F G P
A B C D E F G P
A B C D E F G P
11 10 8 6 5 12 7 9
6 5
8 7
11 10 8 6 5 12 7 9
6 5
1 1 3 2 1 1 1 4
V Q A N Q A N Q A 1 O
D V 2 O 3 N D
1 C C
2 V C C 1 0
R U P P P P P P P X X R D D D D D D D 3 0 1 2 3 4 5 6 / / / / / / / R T IN IN T T IC L 1 L 2 E T XP XP T TP O 1P PP P DB 0 DB 1 O P 1B 3 P B 5 B 6 B 7 R 1 2 / A 1 I N3 / A 1 I N4 B 21 5 / O 1C6 B 41 7 / M 1O 8 / M 1I S 9 / S C 0 1 1 S I O K
1 2 R R R R R R 3 4 5 6 7 8
0 K 2 3 6 7 8 T 1 9 1 1 5 4 1 z p
O VD Q 4
C 2
X A
B N
C O
1 7 3 D 4 D D D D 4 X 1 2 3 4 4 1 4 8
IN
T R
Y C 3 3 1 4
1 M H C 2
T A T A E S A
1 1 3 2 1 1 1 4
T 9 0
2 3
8 7
A B C D E F G P
. .
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 3 2 1 1 1 4
. .
8 7
A B C D E F G P
. .
0 G A N A N
U O O 1 33 D 1 44 A D A N N O O D D E 0 E 1
T D
6 4
0 G
. .
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
x 7
p 3
4.4. Sistem de supraveghere a 64 intrri digitale Pentru preluarea celor 64 de semnale de intrare se folosete microcontrolerul AT90S2313. Prezena microcontrolerului AT90S2313 n multe dintre aplicaiile prezentate n acest capitol se explic prin faptul c este pin la pin compatibil cu microcontrolerele AT89C1051/2051/4051. Fiecare aplicaie poate fi implementat i cu acest tip de microcontroler. Schema sistemului este prezentat n figura 4.4.
RS232
RX TX 14 7 13 8 1 C1 2 3 2 C2 22 U1 T1OUT T1IN T2OUT T2IN R1IN R1OUT R2IN R2OUT C+ C1C2+ C211 10 12 9 4 5 6 C4 22 C3 22 RXD TXD 2 3 6 7 8 9 11 5 4 1 U2 PD0/RXD PD1/TXD PD2/INTO PD3/INT1 PD4/TO PD5/T1 PD6/ICP PB0/AIN0 PB1/AIN1 PB2 PB3/OC1 PB4 PB5/MOSI PB6/MISO PB7/SCK 12 13 14 15 16 17 18 19 AI0 AI1 AI2 AI3 AI4 AI5 AI6 DATA IN
V+ VMAX232
I1.0 I1.1 I1.2 I1.3 I1.4 I1.5 I1.6 I1.7 AI0 AI1 AI2 CS0
4 3 2 1 15 14 13 12 11 10 9 7
U3 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y
I2.0 I2.1 I2.2 I2.3 I2.4 I2.5 I2.6 I2.7 AI0 AI1 AI2 CS1
4 3 2 1 15 14 13 12 11 10 9 7
I3.0 I3.1 I3.2 I3.3 I3.4 I3.5 I3.6 I3.7 AI0 AI1 AI2 CS2
4 3 2 1 15 14 13 12 11 10 9 7
U5 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y
74ACT251 I4.0 I4.1 I4.2 I4.3 I4.4 I4.5 I4.6 I4.7 AI0 AI1 AI2 CS3 4 3 2 1 15 14 13 12 11 10 9 7 U6 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y 5 I5.0 I5.1 I5.2 I5.3 I5.4 I5.5 I5.6 I5.7 AI0 AI1 AI2 CS4 4 3 2 1 15 14 13 12 11 10 9 7
74ACT251 U7 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y 5 I6.0 I6.1 I6.2 I6.3 I6.4 I6.5 I6.6 I6.7 AI0 AI1 AI2 CS5
74ACT251 U8 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y
4 3 2 1 15 14 13 12 11 10 9 7
74ACT251 I7.0 I7.1 I7.2 I7.3 I7.4 I7.5 I7.6 I7.7 AI0 AI1 AI2 CS6 4 3 2 1 15 14 13 12 11 10 9 7 U9 D0 D1 D2 D3 D4 D5 D6 D7 A B C G Y 5 I8.0 I8.1 I8.2 I8.3 I8.4 I8.5 I8.6 I8.7 AI0 AI1 AI2 CS7 4 3 2 1 15 14 13 12 11 10 9 7
74ACT251 U11 A B C Y0 Y1 Y2 Y3 Y4 G1 Y5 G2A Y6 G2B Y7 74ACT138 15 14 13 12 11 10 9 7 CS0 CS1 CS2 CS3 CS4 CS5 CS6 CS7
74ACT251
74ACT251
4.5. Sistem de supraveghere a 32 intrri digitale n aceast aplicaie este prezentat o schem de preluare a 32 de semnale de intrare digitale, cu citire simultan. Sistemul este realizat cu microcontrolerul AT90S2313, a crui schem este prezentat n fig. 4.5.
2 3 6 7 8 9 11 5 4 1 14 7 13 8 1 C3 22 3 2 C4 22 U1 T1OUT T1IN T2OUT T2IN R1IN R1OUT R2IN R2OUT C+ C1C2+ C211 10 12 9 4 5 6 C6 22 C5 22 RXD TXD ASEL0 ASEL1 ASEL2 ASEL3 U2 PD0/RXD PD1/TXD PD2/INTO PD3/INT1 PD4/TO PD5/T1 PD6/ICP PB0/AIN0 PB1/AIN1 PB2 PB3/OC1 PB4 PB5/MOSI PB6/MISO PB7/SCK 12 13 14 15 16 17 18 19 D0 D1 D2 D3 D4 D5 D6 D7
RS232
RX TX
V+ VMAX232
15 14 13 12 11 10 9 7
I1.0 I1.1 I1.2 I1.3 I1.4 I1.5 I1.6 I1.7 STROB\ CS0
2 3 4 5 6 7 8 9 11 1
U4 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
D0 D1 D2 D3 D4 D5 D6 D7
I2.0 I2.1 I2.2 I2.3 I2.4 I2.5 I2.6 I2.7 STROB\ CS1
2 3 4 5 6 7 8 9 11 1
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
D0 D1 D2 D3 D4 D5 D6 D7
74HCT573 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 I4.0 I4.1 I4.2 I4.3 I4.4 I4.5 I4.6 I4.7 STROB\ CS3 2 3 4 5 6 7 8 9 11 1 U7 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7
I3.0 I3.1 I3.2 I3.3 I3.4 I3.5 I3.6 I3.7 STROB\ CS2
2 3 4 5 6 7 8 9 11 1
U6 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
4.6. Sistem de comand pentru 16 ieiri digitale Sistemul genereaz 16 comenzi dintre care, la un moment dat, numai una este activ. Comenzile sunt active n zero. Prin intercalarea unui optocuplor pe fiecare ieire se poate realiza izolarea galvanic a comenzilor. Numrul de ieiri se poate extinde la 32, 64 sau 128. Schema sistemului este prezentat n figura 4.6.
RS232
RX TX 14 7 13 8 1 C1 22 3 2 C2 22 U1 T1OUT T1IN T2OUT T2IN R1IN R1OUT R2IN R2OUT C+ C1C2+ C211 10 12 9 4 5 6 RXD TXD 2 3 6 7 8 9 11 5 4 1 U2 PD0/RXD PD1/TXD PD2/INTO PD3/INT1 PD4/TO PD5/T1 PD6/ICP PB0/AIN0 PB1/AIN1 PB2 PB3/OC1 PB4 PB5/MOSI PB6/MISO PB7/SCK 12 13 14 15 16 17 18 19
C3 22 C4 22
V+ VMAX232
VCC
U3 AO0 AO1 AO2 R1 100K AO3 AO4 1 2 3 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 G1 Y5 G2A Y6 G2B Y7 74ACT138 15 14 13 12 11 10 9 7 O1.0 O1.1 O1.2 O1.3 O1.4 O1.5 O1.6 O1.7 AO0 AO1 AO2 AO3 AO4 1 2 3 6 4 5
U4 A B C Y0 Y1 Y2 Y3 Y4 G1 Y5 G2A Y6 G2B Y7 74ACT138 15 14 13 12 11 10 9 7 O2.0 O2.1 O2.2 O2.3 O2.4 O2.5 O2.6 O2.7
Fig. 4.6. Sistem cu 16 ieiri digitale 4.7. Sistem de comand pentru 32 ieiri digitale Sistemul genereaz 32 de comenzi digitale. Prin intercalarea unui optocuplor pe fiecare ieire se poate realiza izolarea galvanic a sistemului fa de circuitele de for comandate. Schema sistemului este prezentat n fig. 4.7.
RS232
RX TX 14 7 13 8 1 C1 22 3 2 C2 22 U1 T1OUT T1IN T2OUT T2IN R1IN R1OUT R2IN R2OUT C+ C1C2+ C211 10 12 9 4 5 6 C4 22 C3 22 RXD TXD SEL0 SEL1 SEL2 SEL3 C5 33p Y1 4MHz C6 33p 2 3 6 7 8 9 11 5 4 1 U2 PD0/RXD PD1/TXD PD2/INTO PD3/INT1 PD4/TO PD5/T1 PD6/ICP PB0/AIN0 PB1/AIN1 PB2 PB3/OC1 PB4 PB5/MOSI PB6/MISO PB7/SCK 12 13 14 15 16 17 18 19 D0 D1 D2 D3 D4 D5 D6 D7
V+ VMAX232
D0 D1 D2 D3 D4 D5 D6 D7 SEL0
2 3 4 5 6 7 8 9 11 1
U3 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
D0 D1 D2 D3 D4 D5 D6 D7 SEL1
2 3 4 5 6 7 8 9 11 1
U4 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
D0 D1 D2 D3 D4 D5 D6 D7 SEL2
2 3 4 5 6 7 8 9 11 1
U5 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
D0 D1 D2 D3 D4 D5 D6 D7 SEL3
2 3 4 5 6 7 8 9 11 1
U6 D1 D2 D3 D4 D5 D6 D7 D8 C OC 74HCT573 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
19 18 17 16 15 14 13 12
4.11. Sistem de achiziie de date analogice pe 6 canale Pentru realizarea sistemului de achiziie de date pe 10 bii cu 6 canale de intrare s-a utilizat microcontrolerul AT90S/LS4433. Schema sistemului este prezentat n fig. 4.9. Sistemul are implementat interfaa serie RS232 pentru comunicarea cu exteriorul.
RS232
RX TX 14 7 13 8 1 C1 22 3 2 C2 22 U1 T1OUT T1IN T2OUT T2IN R1IN R1OUT R2IN R2OUT C+ C1C2+ C211 10 12 9 4 5 6 C4 22 C3 22 RXD TXD 2 3 4 5 6 11 12 13 9 10 U2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/T0 PD5/T1 PD6/AIN0 PD7/AIN1 XTAL1 XTAL2 PC0/ADC0 PC1/ADC1 PC2/ADC2 PC3/ADC3 PC4/ADC4 PC5/ADC5 PB0/ICP PB1/OC1 PB2/SS PB3/MOSI PB4/MISO PB5/SCK AVCC AREF AGND 23 24 25 26 27 28 14 15 16 17 18 19 20 21 22 AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 VCC L1 10H C7 100nF
V+ VMAX232
RESET
AT90S/LS4433
4.12. Modul cu 2 canale de ieiri analogice n figura 4.10 este prezentat schema unui modul cu 2 ieiri analogice realizat cu convertorul numeric-analogic AD7303. Circuitul are ncorporate 2 convertoare numericanalogice de 8 bii. Referina pentru cele 2 convertoare este comun i poate fi egal cu VDD/2 sau se poate aplica o referin extern. Controlul convertorului este realizat cu microcontrolerul ATtiny2313 (pinii PB2, PB3 i PB4). Transferul datelor n ce 2 registre ale convertorului se face pe interfaa serie SPI. Semnalul de selecie SYNC are valoarea 0 logic pe durata transferului. Pentru fiecare dat transferat (8 bii) spre circuit se transfer 16 bii. Primii 8 bii stabilesc modul de transfer al datelor iar urmtorii 8 reprezint datele ce vor fi convertite spre una din cele 2 ieiri analogice. n cele ce urmeaz este prezentat semnificaia celor 8 bii de comand.
INT/EXT x LDAC PDB PDA A/B CR1 CR0
INT/EXT (External SRAM Enable) X (indiferent) LDAC (External SRAM Wait State) PDB (Sleep Enable) PDA ( Sleep Mode) A/B ( Sleep Mode) CR1 i SR0: Idle Mode (SM0=0, SM1=0), Reserved (SM0=1, SM1=0), Power Down Mode (SM0=0, SM1=1) i Power Save Mode (SM0=1, SM1=1).
V U 2 3 6 7 8 9 5 4 3 3 3 3 p p 4 M H z 2 1 P P P P P 1 P P 1 D D D D D D D 0 1 2 3 4 5 6 L L S C E / / / / / / / R T I I T T I 1 2 T P X BD X DB P N T N P TB 0 P1 B CP PB P B 1 0 / A 1 1 / A 1 0P B 21 1 3 / O1 P B 41 5 / M 1 6 / M 1 7 / S VD D I I 2 3N 0 4N 1 5 C6 1 7 O8 S I I 9S O C K U 5 6 7 A S D S D 5 C I N G N D Y 7 N 3 C 2 O O U U T A T B C C
O O R
U U E
1 T A 8 T B 4 F 0 n
X T A X T A 0 R V A E C
0 3
1 0
T 9 0
3 1
Fig. 4.9. Sistem de achiziie de date cu 6 canale 4.12. Comanda unui motor de curent continuu
2 4 V M D B P B Y 1 W O T O R +C C c c
A
2 9 E - -2 0 0 C D Z 1 2 1 2 Q IR 1
1 / O R 1
F 6 4 0
2 4 k D
4.14. Comanda unui motor pas cu pas n foarte multe aplicaii trebuie comandate motoare pas cu pas. Exist o mare varietate de motoare de acest tip. Cele mai uzuale sunt motoarele pas cu pas unipolare i bipolare. n figurile 4.11.a i 4.11.b sunt prezentate schemele de principiu pentru comanda celor dou tipuri de motoare.
U 2 3 4 5 6 P P P P P P P P R X X V G 1 D D D D D D D D 0 1 2 3 4 5 6 7 / / / / / / / / R T IN IN T T A A E T L 2 L 1 C D X D P C X P DC TP O C TP 1C OP C 1 P c IN 0 IN 1 0 / ( A 1 ( A 2 ( A 3 ( A 4 ( A 5 ( A A A A G R V D D D D D D 2 2C C 2 C 2 C 2 C 2 C 3 40 51 62 73 84 5 ) V ) ) ) ) ) C C - M O T O R M 1 2 3 1 5 8 D B A 3 1 5 8 B 4 5 6 D A 4 1 5 8 M O G 1 T O R S T E P P E R
C 1 3 3 p Y 4 M C 1 H z C
1 1 1 2 1 3 1 9 1 0 7 8
D B A
1 1 5 8 B
D A
E S T A T A C N A
2 2 N D2 1 E F2 0 C C
2V C 3 3 p
1 4 P B 0 / I C 1P 5 P B 1 / O C 1 16 P B 2 / S 1S 7 P B 3 / M O 1 S8 I P B 4 / M I S 1 O9 P B 5 / S C K 4 4 3 3 IR
1 IR
2 IR
3 IR
T 9 0 S
F 7 3 0
F 7 3 0
F 7 3 0
F 7 3 0
C 1 3 3 p Y 4 M C 1 H z C
1 1 1 2 1 3 1 1 0 7 8 9
E S T A T A C N A
2 2 N D2 1 E F2 0 C C 2 7
3 U 1 2 3 4 2 A A A A 1 2 3 4 Y Y Y Y 1 0 1 5 1 9 3 6 1 1 1 4 1 , 2 E N 3 , 4 E N L 2 9 3 D 2 3 4 5 6 U P P P P P P P P X X 2 D D D D D D D D 0 1 2 3 4 5 6 7 / / / / / / / / R T IN IN T T A A X X T T 0 1 IN IN D D 0 1 0 1 P P P P P P C C C C C C 0 1 2 3 4 5 / / / / / /
2V C 3 3 p
1 4 P B 0 / I C 1P 5 P B 1 / O C 1 16 P B 2 / S 1S 7 P B 3 / M O 1 S8 I P B 4 / M I S 1 O9 P B 5 / S C K 4 4 3 3
T 9 0 S
Fig. 4.11.b. Comanda unui motor pas cu pas bipolar 4.19. Comunicaia pe interfaa serie RS232 Transferul de date ntre dou sisteme cu microcontroler sau ntre un sistem i un calculator se face de cele mai multe ori pe interfaa serie. n majoritatea cazurilor transferul se face conform standardului RS232C. Transferul de date se face full-duplex. Distana de transfer ntre cele 2 puncte de transfer pentru interfaa serie RS232 este mic (maxim 25m). Pentru creterea distanei de transmisie, la comunicaia serie se folosete transmisia diferenial conform standardului RS422 sau RS485. n acest caz distana de transfer crete semnificativ pn la 1200 m. Un exemplu de conectare a microcontrolerului AT90S4433 pentru transferul de date pe interfaa RS485 este prezentat n fig. 4.13.1.
V C R R R S S 4 8 5 - A 4 8 5 - B C 1 U 6 7 1 A B R 1 D D R E E 4 3 2 C 1 3 3 p Y 4 M 1 H z A A A A A A D D D D D D 2 C 2 C 2 C 2 C 2 C 2 C 3 0 4 1 5 2 6 3 7 4 8 5
4 7 0
1 1 1 2 1 3 9 1 0
4 1 4 P 5 1 1 16 1S 7 1S 8 I 1 O9 K V R G S 4 2 0 C C2 1 E F2 2 N D 4 3 3
T A T A
L 1 L 2
4 7 0
7 5 1 7 6
P B 0 / IC P B 1 / O C P B 2 / S P B 3 / M O P B 4 / M IS P B 5 / S C A A A /L
C 2 3 3 p
E S A
E T T 9 0 S
Fig. 4.13.1. Comunicaie pe interfaa RS485 BIBLIOGRAFIE (de iniiere i aprofundare) ATMEL, 1999, AVR RISC Microcontroller. Data Book, San Jose CA. 1. ATMEL, 1997, 8051 FLASH Microcontroller. Data Book, San Jose CA. 2. BLAN, R., 2002, Microprocesoare structur i aplicaii. Cluj-Napoca, Editura Todesco. 3. BORZA, A., GHERIGAN, Carmen, OGRUAN, P., TOACE, Ghe., 2000, Microcontrolere Aplicaii. Bucureti, Editura Tehnic. 4. BURILEANU, C-tin, i colab., 1999, Microprocesoare x86. O abordare Software. ClujNapoca, Editura Albasrt Microinformatica. 5. CIASCAI, I., 1998, Sisteme de achiziie de date pentru calculatoare personale. ClujNapoca, Editura Albastr Microinformatica. 6. CIASCAI, I., 2002, Sisteme electronice dedicate cu microcontrolere AVR RISC. ClujNapoca, Editura Casa Crii de tiin. 7. CIASCAI, I., 2002, Microcontrolerul AT90S2313 n 12 lucrri practice. Cluj-Napoca, Editura Casa Crii de tiin. 8. CIASCAI, I., 2003, Microcontrolerul AT90S4433. Structur i aplicaii. Cluj-Napoca, Editura Casa Crii de tiin. 9. LUNGU, V., 2000, Microprocesoare Intel. Programare n limbaj de asamblare. Bucureti, Editura Teora. 10. LUPU, C., EPELEA, V., PURICE, E., 1982, Microprocesoare, aplicaii. Bucureti, Editura Militar. 11. LUPU, C., STNCESCU, ., 1986, Microprocesoare. Circuite. Proiectare. Bucureti, Editura Militar. LUPU, E., 2000, Microprocesoare-ndrumtor de lucrri de laborator. Cluj-Napoca, Editura Risoprint. 12. LUPU, E,. SUCIU, A., 2002, Procesoare digitale de semnal. U.T. Pres. MHS, 1993, 8 bit Microcontrollers. MATRA MHS. 13. MUSC, Ghe., 1997, Programarea n limbaj de asamblare. Bucureti, Editura Teora. NEDEVSCHI, S., 1994, Microprocesoare. Cluj-Napoca, UTCN, U.T. Pres. 14. PHILIPS, 1992, 8051 based 8-bit Microcontrollers. Data Handbook, IC20. 15. STOJANOV I. (coord.), 1987, De la poarta TTL la microprocesor (Vol. II). Bucureti, Editura Tehnic. 16. TEXAX INSTRUMENTS, 1994, MSP430 Family-Assembly Language. SLAUE12. 17. TEXAX INSTRUMENTS, 1997, Metering Aplication Report. SLAE10B. 18. TEXAX INSTRUMENTS, 1998, Digital Desing Seminar. SDYDE01B. 19. TODEREAN, G., DOBROT, V., GIURGIU, M., LUPU, E., 1993. Microprocesoare. ndrumtor de laborator. Cluj-Napoca, UTCN.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SREG SP GIMSK GIFR TIMSK TIFR MCUCR MCUSR TCCR0 TCNT0 TCCR1A TCCR1B TCNT1H TCNT1L OCR1H OCR1L ICR1H ICR1L WDTCR EEAR EEDR EECR PORTB DDRB PINB PORTC DDRC PINC PORTD DDRD PIND SPDR SPSR SPCR UDR UCSRA UCSRB UBRR ACSR ADMUX ADCSR ADCH ADCL UBRRHI
$3F $3D $3B $3A $39 $38 $35 $34 $33 $32 $2F $2E $2D $2C $2B $2A $27 $26 $21 $1E $1D $1C $18 $17 $16 $15 $14 $13 $12 $11 $10 $0F $0E $0D $0C $0B $0A $09 $08 $07 $06 $05 $04 $03
H S V N SP5 SP4 SP3 SP2 INTF1 INTF0 TOIE1 OCIE1 TICIE1 TOV1 OCF1 ICF1 ICS11 ICS10 SE SM WDRF BORF CS02 Registru numarator 0 (8 bii) COM11 COM10 ICNC1 ICES1 CTC1 CS12 Registru numarator 1 octetul superior (8 bii) Registru numarator 1 octetul inferior (8 bii) Registru pentru comparare - octetul superior (8 bii) Registru pentru comparare - octetul inferior (8 bii) Registru de captur - octetul superior (8 bii) Registru de captur - octetul inferior (8 bii) WDTOE WDE WDP2
EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2
I SP7 INT1
T SP6 INT0
Z SP1 TOIE0
TOV0
ICS01
EXTRF
C SP0 ICS00
CS01
PWM11
PORF CS00
PWM10
CS11
CS10
WDP1
EEAR1 EEWE
PORTB1
WDP0
EEAR0
Registru de date pentru memoria EEPROM ( 8 bii) EEMWE EERIE PORTB5 PORTB4 PORTB3 PORTB2 DDB5 DDB4 DDB3 DDB2 PINB5 PINB4 PINB3 PINB2 PORTC5 PORTC4 PORTC3 PORTC2 DDC5 DDC4 DDC3 DDC2 PINC5 PINC4 PINC3 PINC2 PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2
EERE
PORTB0
DDB1
PINB1
PORTC1
DDB0
PINB0
PORTC0
DDC1
PINC1
PORTD1
DDC0
PINC0
PORTD0
DDD7
PIND7 SPIF SPIE
DDD6
PIND6 WCOL SPE
DDD5
PIND5 DORD
DDD4
PIND4 MSTR
DDD3
PIND3 CPOL
DDD2
PIND2 CPHA
DDD1
PIND1 SPR1
DDD0
PIND0 SPR0
Registru de date pentru interfata UART (8 bii) RXC TXC UDRE FE OR RXEN TXEN CHR9 RXB8 TXB8 RXCIE TXCIE UDRIE Registru setare vitez de transmisieUART Baud Rate Register (8 bii) ACD AINBG ACO ACI ACIE ACIC ACIS1 ACIS0 MUX2 MUX1 MUX0 ADCBG ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 Baud Rate Register High (4 bii)
10
Anexa 2. CODUL INSTRUCIUNILOR PENTRU SERIA AVR AT90 Registrul general de stare: SREG - $3F ($5F)
Bit 7 I 6 T 5 H 4 S 3 V 2 N 1 Z 0 C
Notaii: Rd registru destinaie Rr registru surs k constant pe 6, 8 sau 16 bii inclus n codul instruciunii A constant pe 5 sau 6 bii, inclus n codul instruciunii, adres n spiu I/O q constant pe 6 bii pentru adresare indirect cu deplasament b,s constante pe 3 bii pentru adresare pe bit
ADD ADC ADIW SUB SBC SUBI SBCI SBIW AND ANDI OR ORI EOR SBR CBR TST CLR SER COM NEG INC DEC * **
Rd,Rr Rd,Rr Rdl,k Rd,Rr Rd,Rr Rd,k Rd,k Rd,k Rd,Rr Rd,k Rd,Rr Rd,k Rd,Rr Rd,k Rd,k Rd Rd Rd Rd Rd Rd Rd
Operaie RdRd + Rr RdRd + Rr Rd + 1: RdRd + 1:Rd + k RdRd - Rr RdRd Rr - C RdRd Rr RdRd Rr - C Rd + 1: RdRd + 1: Rd - k RdRd Rr RdRd k RdRd Rr RdRd k RdRd Rr RdRd k RdRd ($FF k) RdRd Rd RdRd Rd Rd$FF Rd$FF - Rd Rd$00 - Rd RdRd + 1 RdRd - 1
Cicli
0000 0001 1001 0001 0000 0101 0100 1001 0010 0111 0010 0110 0010 0110 0111 0010 0010 1110 1001 1001 1001 1001
11rd 11rd 0110 10rd 10rd kkkk kkkk 0111 00rd kkkk 10rd kkkk 01rd kkkk uuuu 00dd 01dd 1111 010d 010d 010d 010d
dddd dddd kkdd dddd dddd dddd dddd kkdd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd
rrrr rrrr kkkk rrrr rrrr kkkk kkkk kkkk rrrr kkkk rrrr kkkk rrrr kkkk uuuu dddd dddd 1111 0000 0001 0011 1010
1 1 2** 1 1 1* 1* 2** 1 1* 1 1* 1 1* 1* 1 1 1* 1 1 1 1
11
Instruciuni de transfer
Instruciune Operaie Codul instruciunii pe 16 bii Cicli
MOV Rd,Rr LDI Rd,k LD Rd,X LD Rd,X+ LD Rd,-X LD Rd,Y LD Rd,Y+ LD Rd,-Y LDD Rd,Y+q LD Rd,Z LD Rd,Z+ LD Rd,-Z LDD Rd,Z+q LDS Rd,k ST X, Rd ST X+,Rr ST X, Rr ST Y,Rr ST Y+,Rr ST Y,Rr STD Y+q,Rr ST Z,Rr ST Z+,Rr ST Z,Rr STD Z+q,Rr STS k,Rr LPM IN Rd,A OUT A,Rr PUSH Rr POP Rd *
RdRr Rdk Rd(X) Rd(X), XX + 1 XX - 1, Rd(X) Rd(Y) Rd(Y), YY + 1 YY - 1, Rd(Y) Rd(Y + q) Rd(Z) Rd(Z), ZZ + 1 ZZ - 1, Rd(Z) Rd(Z + q) Rd(k) (X)Rr (X)Rr, XX + 1 XX - 1, (X)Rr (Y)Rr (Y)Rr, YY + 1 YY - 1, (Y)Rr (Y + q) )Rr (Z)Rr (Z)Rr, ZZ + 1 ZZ - 1, (Z)Rr (Z +q)Rr (k)Rr R0 (Z) RdA ARr
STACKRr, SPSP - 1 RdSTACK, SPSP +1
0010 1110 1001 1001 1001 1000 1001 1001 10q0 1000 1001 1001 10q0 1001 kkkk 1001 1001 1001 1000 1001 1001 10q0 1000 1001 1001 10q0 1001 kkkk 1001 1011 1011 1001 1001
11rd kkkk 000d 000d 000d 000d 000d 000d qq0d 000d 000d 000d qq0d 000d kkkk 001r 001r 001r 001r 001r 001r qq1r 001r 001r 001r qq1r 001r kkkk 0101 0AAd 1AAr 001r 000d
dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd dddd kkkk rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr kkkk 1100 dddd rrrr rrrr dddd
rrrr kkkk 1100 1101 1110 1000 1001 1010 1qqq 0000 0001 0010 0qqq 0000 kkkk 1100 1101 1110 1000 1001 1010 1qqq 0000 0001 0010 0qqq 0000 kkkk 1000 AAAA AAAA 1111 1111
1 1* 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 1 1 2 2
16 d 31, 0 k 255 0 A 63 pentru instruciunile IN i OUT 0 q 63 pentru instruciunile LDD i STD 0 k 65535 pentru instruciunile LDS i STS
12
Instruciuni de salt
Instruciune Operaie Codul instruciunii pe 16 bii Cicli
RJMP k IJMP RCALL k ICALL RET RETI CP Rd,Rr CPC Rd,Rr CPI Rd,k CPSE Rd,Rr SBRC Rr,b SBRS Rr,b SBIC A,b SBIS A,b BRBC s,k BRBS s,k BRCC k BRSH k BRCS k BRLO k BRNE k BREQ k BRPL k BRMI k BRVC k BRVS k BRGE k BRLT k BRHC k BRHS k BRTC k BRTS k BRID k BRIE k *
C C C C Z Z N N V V S S H H T T I I
= = = = = = = = = = = = = = = = = =
0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+ PCPC+
k k k k k k k k k k k k k k k k k k
1100 1001 1101 1001 1001 1001 0001 0000 0011 0001 1111 1111 1001 1001 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
kkkk 0100 kkkk 0101 0101 0101 01rd 01rd kkkk 00rd 110r 111r 1001 1011 01kk 00kk 01kk 01kk 00kk 00kk 01kk 00kk 01kk 00kk 01kk 00kk 01kk 00kk 01kk 00kk 01kk 00kk 01kk 00kk
kkkk 0000 kkkk 0000 0000 0001 dddd dddd dddd dddd rrrr rrrr AAAA AAAA kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk
kkkk 1001 kkkk 1001 1000 1000 rrrr rrrr kkkk rrrr 0bbb 0bbb Abbb Abbb ksss ksss k000 k000 k000 k000 k001 k001 k010 k010 k011 k011 k100 k100 k101 k101 k110 k110 k111 k111
2 2 3 3 4 4 1 1 1* 1/2/3 1/2/3 1/2/3 1/2/3 1/2/3 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2 1/2
16 d 31, 0 k 255
-2K k < 2K pentru instruciunile RJMP i RCALL -64 k +63 pentru instruciunile de salt relativ 0 A 31, 0 b 7, 0 s 7
13
LSL LSR ROL ROR ASR SWAP BST BLD CBI SBI BCLR BSET CLC SEC CLZ SEZ CLN SEN CLV SEV CLS SES CLH SEH CLT SET CLI SEI NOP SLEEP WDR
0000 1001 0001 1001 1001 1001 1111 1111 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 0000 1001 1001
11dd 010d 11dd 010d 010d 010d 101r 100d 1000 1010 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0000 0101 0101
dddd dddd dddd dddd dddd dddd rrrr dddd AAAA AAAA 1sss 0sss 1000 0000 1001 0001 1010 0010 1011 0011 1100 0100 1101 0101 1110 0110 1111 0111 0000 1000 1010
dddd 0110 dddd 0111 0101 0010 0bbb 0bbb Abbb Abbb 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 0000 1000 1000
1
1
T 1 Rr(b) Rd(b) T I/O(A,b) 0 I/O(A,b) 1 SREG(s) 0 SREG(s) 1 C0 C1 Z0 Z1 N0 N1 V0 V1 S0 S1 H0 H1 T0 T1 I0 I1 Mod cu consum redus Resetare watchdog
1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1
0 A 31, 0 b 7, 0 s 7
14
0 ) D 3 ) P D 5 N D
D 4 0 T
( A ( A
( A I N ( A I N ( I C P
1 2 0 0
2 3 1 3
X X
R G
T T
A A N
L L D
E T 1 21 32 4 A T 9 0 S
8 7 6 5
V P P P / L S
C B B B
C 2 1 0
( S ( M ( M
\ R E S E1 T / T ( 0C ) K ) B 2 3 I S O / I N P T B 0 4) 3 G N D 4 O S I ) K A T
8 7 6 5 9 0 S
V P P P
C B B B
C 2 1 0
( S ( M ( M
C K / T 0 ) I S O / I N T O S I )
0 )
2 3 2 3
/ L 2 3 4 3
( T 0 ) P B1 0 ( T 1 ) P 2B 1 ( A I N 0 ) P3 B 2 ( A I N 1 ) P4 B 3 ( \ S S ) P 5 B 4 ( M O S I ) 6 B 5 P ( M I S O ) 7 B 6 P ( S C K ) P8 B 7 \ R E S E9 T V C C 1 0 G N D 1 1 X T A L 12 2 X T A L 11 3 ( R X D ) P 1 D4 0 ( T X D ) P 1 D5 1 ( I N T 0 ) P 1 D6 2 ( I N T 1 ) P 1 D7 3 ( O C 1 B ) 1P 8 D 4 ( O C 1 A ) 1P 9 D 5 ( I C P ) P 2D 0 6 A A T T 9 0 S 9 0 S
4 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2
0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 / L S / L S
P P P P P P P P A A A P P P P P P P P P
A A A A A A A A R G V C C C C C C C C D
0 ( A 1 ( A 2 ( A 3 ( A 4 ( A 5 ( A 6 ( A 7 ( A E F N D C C 7 ( T 6 ( T 5 4 3 2 1 0 7 ( O
D D D D D D D D
C ( T0 0) ) P 1 B 0 C ( 1T ) 1 ) P 2 B 1 ( CA 2I N ) 0 ) 3P B 2 ( CA 3I N ) 1 ) 4P B 3 (C \ 4S ) S ) P5 B 4 ( M 5O ) S I ) 6 P B 5 C ( M 6I S ) O ) 7 P B 6 C ( C S 7 C ) K ) 8P B 7 \ R E S 9E T ( R X D ) 1P 0 D 0 ( T X D ) P 1D 1 1 O ( S N C T 2 0 ) ) 1P 2 D 2 I O ( S N C T 1 1 ) ) 1P 3 D 3 I P D 41 4 ( O C 1 A ) 1 P5 D 5 ( \ W R ) 1P 6 D 6 ( \ R D ) P 7D 7 1 X T A L1 28 X T A L1 19 C 2 ) G N D2 0 A T 9 0 S
4 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2
0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
V P P P P P P P P I C A O P P P P P P P P
C A A A A A A A A
C 0 1 2 3 4 5 6 7
( ( ( ( ( ( ( (
A A A A A A A A
D D D D D D D D
0 1 2 3 4 5 6 7
) ) ) ) ) ) ) )
P L E C 1 B C 7 ( A C 6 ( A C 5 ( A C 4 ( A C 3 ( A C 2 ( A C 1 ( A C 0 ( A / 8 5 1 5
1 1 1 1 1 1 9 8
5 4 3 2 1 0 ) )
) ) ) ) ) )
4 4 3 4 8 5 3 5
4 4 1 4
( ( ( (
\ R T I N I N (
( ( A ( A ( I
R E S E1 T X D ) P2 D 0 X D ) P3 D 1 T 0 ) P4 D 2 T 1 ) P5 D 3 T 0 ) P 6D 4 V C C 7 G N D 8 X T A L 92 X T A L 11 0 T 1 ) P D1 15 I N 0 ) P 1 D2 6 I N 1 ) P 1 D3 7 C P ) P 1B 4 0 A A T T 9 0 S 9 0 S
2 2 2 2 2 2 2 2 2 1 1 1 1 1
8 7 6 5 4 3 2 1 0 9 8 7 6 5 / L S / L S
P P P P P P A A A P P P P P
C C C C C C G R V B B B B B
5 4 3 2 1 0 N E C 5 4 3 2 1
( ( ( ( ( ( D F C ( ( ( ( (
A D C 5 ) A A D D C I N4 1 )0 A D N C C 3 2) A D N C C 2 3) A D N C C 1 4) A D N C C 0 5) N C 6 N C 7 N C 8 S C N K C) 9 M I N O 1 0 S C ) M A O G S N I 1D 1 ) \ S NS C) 1 2 O C 1 )
9 0 C
15
ADIN1 ADIN2 ADIN3 ADIN4 ADIN5 AVCC NC RESET NC VCC XTAL2 XTAL1
2 3 3 3 4 4 3 3
13 14 15 16 17 18 19 20 21 22 23 24
3 3 3 3 3 3 8 5 33 2 2 2 2 2
6 5 4 3 2 1 40 9 8 7 6 5
N I N I N P N G N N N N N N
48 47 46 45 44 43 42 41 40 39 38 37
C T T 0 1 A 6 A N D C C C C C C