Delovanje procesorja AVR

Σχετικά έγγραφα
KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

Arduino grafični vmesnik

Tretja vaja iz matematike 1

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

UVOD V PROGRAMIRANJE MIKROKRMILNIKOV

PONOVITEV SNOVI ZA 4. TEST

Booleova algebra. Izjave in Booleove spremenljivke

A 1. DDRA = 0b ; k = PINB; DDRC = 0xf0; PORTC = 0x0f;

Delovna točka in napajalna vezja bipolarnih tranzistorjev

IZPIT IZ ANALIZE II Maribor,

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

Laboratorijske vaje pri Integralnih proizvodnih sistemih. Boštjan Murovec

ALE. Osnove računalniške arhitekture. Ukazi. Operandi. Zgodobina razvoja računalnikov. Glavni. pomnilnik. Vhodo/izhodni sistem

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

Arduino grafični vmesnik

Mikrokrmilnik ARM. Matjaž Vidmar, S53MV

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Poglavje 7. Poglavje 7. Poglavje 7. Regulacijski sistemi. Regulacijski sistemi. Slika 7. 1: Normirana blokovna shema regulacije EM

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

Arduino-FPGA vremenska postaja

Gimnazija Krˇsko. vektorji - naloge

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Μικροελεγκτές AVR. 1η ΕΝΟΤΗΤΑ: Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΜΙΚΡΟΕΛΕΓΚΤΩΝ AVR. Υπεύθυνος Μαθήματος: K. ΠΕΚΜΕΣΤΖΗ

Προαιρετική Εργασία στο μάθημα Σχεδίαση Γλωσσών και Μεταγλωττιστών

Ενσωµατωµένα Συστήµατα

Osnove programiranja PIC16FXXX družine mikrokontrolerjev

*M * Osnovna in višja raven MATEMATIKA NAVODILA ZA OCENJEVANJE. Sobota, 4. junij 2011 SPOMLADANSKI IZPITNI ROK. Državni izpitni center

4. Osnovne vhodno/izhodne enote

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σηµειώσεις στο µάθηµα ΜΙΚΡΟΕΛΕΓΚΤΕΣ

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

UPORABA UREJEVALNIKA IN PREVAJALNIKA MS FORTRAN POWER STATION

8. Diskretni LTI sistemi

Kotne in krožne funkcije

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

POROČILO. št.: P 1100/ Preskus jeklenih profilov za spuščen strop po točki 5.2 standarda SIST EN 13964:2004

Ένα απλό πρόγραμμα C

IZVODI ZADACI (I deo)

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 3 Έλεγχος Ροής Προγράμματος

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

13. Jacobijeva metoda za računanje singularnega razcepa

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

Priprava na ustni izpit ARS2

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Transformator. Delovanje transformatorja I. Delovanje transformatorja II

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

Numerično reševanje. diferencialnih enačb II

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε., ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ, ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΙΙ

Osnove elektrotehnike uvod

Πρόχειρες Σημειώσεις. Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ

Matrike. Poglavje II. Matrika je pravokotna tabela realnih števil. Na primer: , , , 0 1

CM707. GR Οδηγός χρήσης SLO Uporabniški priročnik CR Korisnički priručnik TR Kullanım Kılavuzu

diferencialne enačbe - nadaljevanje

Statistična analiza. doc. dr. Mitja Kos, mag. farm. Katedra za socialno farmacijo Univerza v Ljubljani- Fakulteta za farmacijo

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

Αρχιτεκτονική Υπολογιστών

12. Διακοπές Interrupts (IRQ)

1 Fibonaccijeva stevila

Παραδείγματα Προγραμματισμού σε Assembly του TRN

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Računarska grafika. Rasterizacija linije

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

NAVOR NA (TOKO)VODNIK V MAGNETNEM POLJU

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

74HC573 D7 D6 D5 D4 D3 D2 D1 D0 LE OE A0 A1 A2 A3 A4 A5 A6 A7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

1. Έντυπα αιτήσεων αποζημίωσης Αξίωση αποζημίωσης Έντυπο Πίνακας μεταφράσεων των όρων του εντύπου...

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ELEKTRONIKA PAHOR D.O.O.

Στοιχεία από Assembly Γιώργος Μανής

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

DISKRETNA FOURIERJEVA TRANSFORMACIJA

EPL475:Εργαστήριο 5, GDB

APROKSIMACIJA FUNKCIJA

ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΜΑΘΗΜΑΤΟΣ «ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ» ή ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΤΟΝ ΜΙΚΡΟΕΛΕΓΚΤΉ PIC16F877 ΤΗΣ MICROCHIP TECHNOLOGY INC

ELEKTRONIKA PAHOR D.O.O.

Termovizijski sistemi MS1TS

FAKULTETA ZA STROJNIŠTVO Matematika 4 Pisni izpit 22. junij Navodila

!"!# ""$ %%"" %$" &" %" "!'! " #$!

1. Trikotniki hitrosti

UPORABA MIKROPROCESORSKIH NAPRAV

Transcript:

Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Delovanje procesorja AVR Zbirnik, primer programa 1

Procesor Atmel AVR ATmega328 Procesorsko jedro AVR 8 bitno, frekvenca do 20 MHz pri 5V / 10 MHz pri 3.3V 131 strojnih ukazov, RISC zmogljivost 1 ukaz/cikel (20 MIPS pri 20MHz) (razen skočnih ukazov) periferne enote: časovniki, vzporedni in zaporedni vmesniki, večkanalni A/D pretvorniki in modulatorji PWM Pomnilni elementi 32KB Flash (program) 1KB EEPROM in 2KB SRAM (podatki) 32 registrov 8 bitni registri R0-R31 3 registrski pari za16 bitne vrednosti (X, Y, Z) 2

Delovanje AVR procesorskega jedra programski števec vsebuje naslov naslednjega ukaza IR vsebuje naslednji ukaz ID vsebuje trenutni ukaz Registri: R0-R31 ALE glej označeno interno podatkovno pot Flash programski pomnilnik 16 oz. 32 bitni ukazi RAM vsebuje delovne podatke EEPROM trajni podatki 3 počasen dostop, omejeno število vpisov v pomnilnik Flash (program) ukazni reg. IR ukazni dek. ID 8-bitno podatkovno vodilo prog. števec status registri ALE RAM (podatki) EEPROM

Nabor strojnih ukazov procesorja AVR mikrooperacije aritmet. / logične podatkovni prenos operacije z biti a+b a-b a&b a b a++ a-- ADD SUB AND OR INC DEC -a NEG a=0 CLR reg1=reg2 reg=17 reg=mem reg=*mem mem=reg *mem=reg periferni periferni sklad sklad MOV LDI LDS LD STS ST IN OUT PUSH POP a<<1 a>>1 Ø C (ni v C) statusni biti ni operacije LSL LSR, ROL, ROR SEI, CLI, CLZ... NOP 4

Primer ukazov in njihove strojne kode Naloži neposredno konstanto (Rd <= K) LDI Rd, K strojna koda: 1110 bbbb rrrr bbbb omejitve: registri R16-R31; konstanta K < 255 LDI R16, $2C koda: 1110 0010 0000 1100 ali $E20C Seštej in shrani v Rd (Rd <= Rd + Rr) ADD Rd, Rr strojna koda: 0000 11rd dddd rrrr Rd in Rr sta katerakoli registra R0-R31 ADD R16, R17 ddddd je 10000, rrrrr je 10001, koda ukaza: $0F01 5

Strojni program Naloži program v pomnilnik na naslov 0 shranimo $E20C na naslov 1 shranimo $E01F na naslov 2 shranimo $0F01 Izvršimo zaporedje treh ukazov 0000: $E20C LDI R16, $2C 0001: $E01F LDI R17, $0F 0002: $0F01 ADD R16, R17 nastavi prog. števec na 0 in izvedi 3 ukazne cikle (prenos/izvrši) Pregled rezultata: R16 = R16 + R17 = $2C + $0F = $3B Kaj se bo izvršilo po teh treh ukazih? ne vemo, odvisno kaj je zapisano v pomnilniku Flash 6

Sintaksa ukazov v zbirniku (Assembler) 3 možne oblike, [] pomenijo opcijo [oznaka:] direktiva operandi [;komentar] [oznaka:] ukaz operandi [;komentar] [oznaka:] [;komentar] Vsaka vrstica je direktiva ali ukaz ali oznaka ali pa prazna vrstica komentar začnemo s podpičjem, zaključi se na koncu vrstice direktiva ukaz in operand komentar oznaka 7

Skočni ukazi in primeri v jeziku C JMP, RJMP: brezpogojni skok npr. neskončna zanka: M_LOOP: ukazi jmp M_LOOP while (1) { }...ukazi... CALL, RET: klic podprograma in vrnitev (return) npr. podprogram: M_LOOP: CALL FV FV: ukazi RET void fv() { ukazi return; } void main () { fv(); } 8

Pogojni stavek Skoči na L1, če je a==b, sicer skoči na L2 naredimo s kombinacijo pogojnih in brezpogojnih skokov M_LOOP: ; primerjaj, CPSE a, b ; preskoči, če a=b JMP L2 L1: ; a == b JMP M_LOOP L2: ; a!= b JMP M_LOOP while (1) { if (a==b) { (L1) } else { (L2) } } CPSE (compare, skip if equal) preskoči naslednji ukaz (JMP L2) če sta operanda enaka, tako da se izvršijo ukazi za oznako L1. Hitro nastane zmešnjava NARIŠI DIAGRAM POTEKA! 9

Pogojni skočni ukazi Skok, ki se izvede glede na rezultat prejšnjega ukaza Aritmetični in logični ukazi shranijo rezultat in zastavice Primerjava (CP) naredi odštevanje, vendar ne shrani rezultat ampak samo postavi zastavice Z=1, če je rezultat 0, N=1,če je rezultat negativen, C=1, če je prišlo do prenosa Npr. BRNE: skok, kadar je rezultat različen od 0 (Z=0) BREQ, skok, kadar je rezultat enak 0 (Z=1) 10

Zanke s 16-bitnim števcem For zanka, ki se ponovi 20000-krat ($4E20) LDI temp0, 0x20 ; spodnji bajt LDI temp1, 0x4E ; zgornji bajt LOOP:... DEC temp0 ; odštej 1 BRNE LOOP ; skok če!=0 DEC temp1 BRNE LOOP for (i=20000; i!=0; i--) {... }; Najprej se DEC temp0 ponovi32-krat (0x20), dokler ni 0 Potem se izvršita vgnezdeni zanki 11 temp0 se ponovi 256-krat, temp1 pa 78-krat ($4E), kar je skupaj 19968-krat (če dodamo 32 dobimo 20000)

Dostop do perifernih enot vzporedna vrata (I/O port) nastavi 4 vh. in 4 izh. bite LDI R19, $F0 OUT DDRD, R19 smer DDRx beri vhode IN R20, PORTC izhodna vred. / pullup PORTx LDI R21, $50 vhodna vred. PINx izhodi OUT PORTD, R21 12

Seštevanje 16-bitnih nepredznačenih števil Vsak izmed operandov je shranjen v dveh bajtih Najprej seštejemo spodnja bajta, nato pa še zgornja bajta z upoštevanjem prenosa od spodnjih Npr. prvi operand je v (R1, R0) drugi operand je v (R3, R2) + R1 R3 R0 R2 R1 R0 ADD R0, R2 ADC R1, R3 unsigned short a, b; a = a + b; seštej s prenosom 13

Množenje in deljenje Nekateri procesorji AVR imajo 8-bitni strojni množilnik Rezultat se izračuna v dveh urnih ciklih in shrani v R1 R0 Npr. R16 vsebuje vrednost 100, R17 vsebuje vrednost 200 MUL R16, R17 produkt je 16-bitna vrednost, rezultat: R1 <= $4E, R2 <= $20 Množenje ali deljenje z 2 s pomikanjem bitov Pomakni bite v bajtu na levo (LSL) ali desno (LSR) 14 Npr. LDI R16, 0b11011100; (220 10 ) LSL R16; rezultat 0b10111000 (184 10 ) in zastavica C=1 LSR R16; rezultat 0b01101110 (110 10 ), C=0 prazna mesta se zapolnijo z ničlami bit, ki pri prenosu izpade, se shrani v zastavico C

Primer: filtriranje podatkovnega toka Zaporedje digitalnih vzorcev pošljemo skozi sito obdelava zvoka, slike Filtriranje izvedemo z matematično konvolucijo, kjer zaporedne vzorce množimo s konstantami in seštejemo Npr. Gaussovo nizko sito s koeficienti 1/8, 6/8, 1/8 vzorec1 vzorec2 vzorec3 vzorec4 X 1/8 X 6/8 X 1/8 Σ rezultat1 rezultat2 15

Izvedba konvolucije s procesorjem 8-bitne vzorce preberemo iz PINB naredimo množenje s 6 in seštejemo 16-bitne vrednosti naredimo deljenje z 8 s pomikom in rotacijo PINB loop: MOV r22, r21 ;premakni MOV r21, r20 ;premakni IN r20, PINB ;beri MUL r21, Konst6 ; x6 ADD r0, r20 ;vsota ADC r1, Konst0 ;prenos ADD r0, r22 ;vsota ADC r1, Konst0 ;prenos R22 R21 R20 X 6 + R1 R0 Konst0 R20 R1 R0 16

Izvedba konvolucije s procesorjem 2 naredimo deljenje z 8 s pomikom in rotacijo pošljemo rezultat na PORTD R1 R0 C LSR r1 ROR r0 LSR r1 ROR r0 LSR r1 ROR r0 ; 3x pomik ; in rotacija OUT PORTD, r0 JMP loop ; izhod 17

Delovanje procesorja Za izračun enega rezultata potrebujemo 20 urnih ciklov Kako vemo, kdaj je na voljo podatek (rezultat)? 1. Naredimo usklajevalni protokol z uporabo ostalih priključkov potrebnih je še več ciklov 2. Napišemo zanko v prekinitveni rutini procesor ob zuanjem prekinitvenem signalu skoči na rutino in napravi en računski cikel komunikacijske enote izvedejo prekinitev, ko dobijo nov podatek 18