1 / 55

G S P V

G S P V. MIKROKRMILNIK Atmel AVR RISC. 8. december 2009. Iz v sebin e. Osnovno o mikrokrmilniku Osnovne arhitekturne lastnosti Najnujnejše o programiranj u Osnovno o razvojnih orodjih STK 200 starter kit ICE 200 Emulator AVR Studio AVR Assembler. A. B. C. D. AT90S.

stasia
Download Presentation

G S P V

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. G S P V MIKROKRMILNIK Atmel AVR RISC 8. december 2009

  2. Iz vsebine • Osnovno o mikrokrmilniku • Osnovne arhitekturne lastnosti • Najnujnejše o programiranju • Osnovno o razvojnih orodjih • STK200 starter kit • ICE 200 Emulator • AVR Studio • AVR Assembler

  3. A B C D AT90S Način označevanja Velikost pomnilnika SRAM Vrsta procesorja Velikost pomnilnika EEPROM Velikost pomnilnika FLASH Atmelova 8 bitna AVR družina

  4. Izvedbe

  5. Mikrokrmilnik AT90S8515 • Pomnilnik • podatkovni pomnilnik • 512 bajtov pomnilnika SRAM • 512 bajtov pomnilnika EEPROM • Omejeno število vpisov • programski pomnilnik • 8 KB programskega pomnilnika FLASH organiziranega v 4 K 16 bitnih besed • Omejeno število vpisov

  6. Mikrokrmilnik AT90S8515 • Periferija • časovnik / števec s predskalirnikom • 8 bitni časovnik (preplavitveni) • 16 bitni časovnik (preplavitveni, prestrezni, primerjalni) • časovni paznik • UART (asinhroni serijski vmesnik) • SPI (serijski vmesnik) • 4 V/I vrata (32 programljivih V/I sponk) • Analogni komparator

  7. Arhitektura

  8. Sponke oziroma signali SPI UART Prekinitvena vhoda

  9. Mikrokrmilnik AT90S8515 • RISC zasnova • Harvardska arhitektura • 118 ukazov • cevovodna obdelava ukazov • izvršitev večine ukazov v 1 periodi ure • 32 x 8 splošno namenskih registrov • do 8 MIPS pri 8 MHz

  10. Prevzem Prevzem Prevzem Prevzem Izvršitev Izvršitev Izvršitev Izvršitev 1 3 4 2 “Klasična” obdelava ukazov Tn Tn+1 Tn+2 Tn+3 Tn+4 Tn+5 Tn+6 Tn+7

  11. Prevzem Prevzem Prevzem Prevzem Izvršitev Izvršitev Izvršitev Izvršitev 3 4 2 1 Cevovodna obdelava ukazov Tn Tn+1 Tn+2 Tn+3 Tn+4

  12. R31 SPH R29 R27 R30 R28 SPL R26 Registri CPE $00 R0 SREG $3F ($5F) Statusni register R1 $01 R2 $02 Skladovni kazalec $3E ($5E) $3D ($5D) Splošno namenski registri CPE R26 X $1A R27 Splošno namenski registri kot naslovni registri $1B Y R28 $1C R29 $1D R30 Z $1E R31 $1F

  13. Statusni register $3F ($5F) I T H S V N Z C Pomnilniški naslov V/I naslov (ukazi IN ter OUT)

  14. Statusni register I - Globalna maska prekinitev I = 1, prekinitve omogočene T - “Bit load / bit store” shranjevanje enega bita registra Rn S - bit predznaka (“sign”) H, V, Z, N, C - kot običajno

  15. Pomnilniški prostor (Harvardski tip) Programski pomnilnik Podatkovni pomnilnik $0000 $001F 32 reg. CPE $000 $0020 $005F 64 reg. V/I 8 KB 4 K x 16 (FLASH) $0060 $025F 512 SRAM $FFF $0260 $FFFF Zunanji SRAM

  16. $00 $3D $0020 $005D R0 R29 $0000 $001D $01 $3E $001E $0021 $005E R30 $0001 R1 $005F $0002 $02 $3F $001F R2 R31 $0022 Registri V/I Registri V/I Registri CPE Registri CPE Notranji SRAM Organizacija podatkovnega pomnilnika $0060

  17. Prekinitveni vektorji Prekinitveni vektorji so v naslovnem področju programa

  18. Tipičen primer tabele vektorjev .def temp = R16 ;Definiranje registra ;***** Programski pomnilnik - tabela vektorjev rjmp RESET ;Reset rjmp EX_INT0 ;External interrupt INT0 reti ;External interrupt INT1 reti ;Timer/Counter1 Input capture reti ;Timer/Counter1 Compare A reti ;Timer/Counter1 Copmare B rjmp OVF1 ;Timer/Counter1 Overflow reti ;Timer/Counter0 Overflow reti ;SPI Transfer Complete reti ;UART RX Complete reti ;UART TX Empty reti ;UART TX Complete reti ;ANA Comparator ; ***** Začetni program RESET: cli ;onemogocimo prekinitve ldi temp,low(RAMEND) ;inicializacija sklada out SPL,temp ldi temp,high(RAMEND) out SPH, temp

  19. V/I registri External SRAM Enable / Wait state Sleep enable / Sleep mode Sense control / INT1, INT0

  20. Omogočita prekinitev na prekinitvenih vhodih INT1, INT0 V/I registri- prekinitve INT1, INT0 00 – nizek nivo 01 – rezervirano 10 – zadnji rob 11 – prednji rob Zastavici, brišemo z vpisom enice ali z izvršitvijo strežnika

  21. Omogoča prekinitve časovnikov 0 in 1 V/I registri- prekinitve Časovnik 0 (preplavitev) Zastavice, brišemo z vpisom enice ali z izvršitvijo strežnika Časovnik 1 (preplavitev, primerjava (A, B), prestrezanje)

  22. Časovnik 0 V/I registri - časovniki Časovnik 1 Časovni paznik

  23. Časovnik 0 V/I registri – časovnik 0 000 – časovnik 0 ustavljen 001 – CK 010 – CK/8 011 – CK/64 100 - CK/256 101 – CK/1024 110 – zunanji na T0, zadnji rob 111 – zunanji na T0, prednji rob 8 – bitni časovni števec 0, Se povečuje z izbranim taktom Možno ga je tudi vpisati Predskalirnik

  24. Primerjalna izhoda (A, B) 00 – odklop 01 – sprememba 10 – nizek 11 – visok Časovnik 1 Brisanje števca 1 ob ujemanju 000 – časovnik 1 ustavljen 001 – CK 010 – CK/8 011 – CK/64 100 - CK/256 101 – CK/1024 110 – zunanji na T1, zadnji rob 111 – zunanji na T1, prednji rob Predskalirnik Prestezni vhod ICES1: 0 – zadnji rob 1 - prednji rob ICNC1: Filter šuma 16 – bitni časovni števec 1, Se povečuje z izbranim taktom. Možno ga je tudi vpisati 16 – bitni prestrezni register 16 – bitna primerjalna registra (A, B)

  25. Časovnik / števec #1

  26. V/I registri - vrata Vrata A Vrata B Vrata C Vrata D

  27. Sponke V/I vrat - primer Smer 0 – vhod 1 - izhod DDBn PORTBn 00 – vhod, tristanjski 01 – vhod, zaključni upor 10 – izhod 0 11 – izhod 1 V/I sponka V/I register

  28. V/I registri - UART Sprejemni/oddajni register Statusni register – stanje odd./spr. UART Kontrolni register – način delovanja Izbira hitrosti odd./spr.

  29. Razvojna orodja • osebni računalnik z razvojnimi orodji • AVR Studio • prevajalnik (ASM, CC) • simulator, (ISP) • emulator (ICE - In Cuircit Emulator) • ICE 200 • preizkusni kompleti, razvojna vezja • STK 200 • logični analizator

  30. STK200

  31. ICE200 (Emulator)

  32. PC - ICE200 - STK200 ICE200 AVR STUDIO STK200

  33. ZbirnikPa začnimo

  34. Enostaven primer (1) ;***************************************************************************; PRIMER 0: Priziganje lucke ob pritisku tipke; ; Ime datoteke: Primer0.asm; Mikrokrmilnik: AT90S8515;; Program ob pritisku ene od tipk na vratih D prizge pripadajoco; lucko na vratih B. Ta lucka sveti, dokler se ob pritisku druge tipke; ne prizge druga lucka. Op.: nobenih prekinitev. ; ;***************************************************************************

  35. Enostaven primer (2) ;.device AT90S8515 ;tip mikrokrmilnika.nolist ;naj se pridruzena datoteka ne lista.include "8515def.inc".list;-------- Definicije imen registrov.def temp = r16.def Stanje = r17

  36. Enostaven primer (3) ; ------- Naslovno področje programa - tabela vektorjev rjmp RESET ;Reset “Handle”; ------- Neuporabljeni reti ;External INT0 vektor reti ;External INT1 vektor reti ;Timer/Counter1 Input capture reti ;Timer/Counter1 Compare A reti ;Timer/Counter1 Copmare B reti ;Timer/Counter1 Overflow reti ;Timer/Counter0 Overflow reti ;SPI Transfer Complete reti ;UART RX Complete reti ;UART TX Empty reti ;UART TX Complete reti ;ANA Comparator

  37. Enostaven primer (4) ;****************************************************************************;Začetni program RESET: ;zagon cli ;onemogočimo prekinitve ldi temp,low(RAMEND);inicializacija sklada out SPL,temp ldi temp,high(RAMEND) out SPH, temp ser temp ;postavimo reg. temp na $FF out DDRB,temp ;B sponke so izhodi in temp,PIND ;prvo branje vhodov vrat D out PORTB,temp ;in prvi prikaz

  38. Enostaven primer (5) ;****************************************************************************; Glavna zanka;Zanka: in temp,PIND ;beremo stanje tipk mov Stanje,temp ;prepisemo v Stanje com temp ;je pritisnjena tipka? breq Zanka ;ni ; Pritisk out PORTB,Stanje ;pristisnjena (vsaj) ena tipka, prepis na B rjmp Zanka

  39. .BYTE Rezervira bajt (ali več bajtov) za spremenljivko .DB Definira bajt (ali več bajtov) za konstanto .DW Definira besedo (ali več) za konstanto .ORG Postavi števec lokacij (naslovni števec) .DEF Definira simbolično ime registra .EQU Definira (nespremenljivo) vrednost simbola .SET Postavi (spremenljivo) vrednost simbola Zbirniški ukazi

  40. .DEVICE Definira tip mikrokrmilnika .MACRO Začne makro definicijo .ENDMACRO Zaključi makro definicijo .CSEG Začne kodni segment .DSEG Začne podatkovni (SRAM) segment .ESEG Začne EEPROM segment Zbirniški ukazi

  41. .INCLUDE Pridruži (zbirniško) datoteko .LIST Zahteva začetek listanja prevajanja .NOLIST Zahteva konec listanja prevajanja .LISTMAC Zahteva listanje makro razširitev .EXIT Konec prevajanja Zbirniški ukazi

  42. Pridružena datoteka ;***** Specify Device .device AT90S8515 ;***** I/O Register Definitions .equ SREG =$3f .equ SPH =$3e .equ SPL =$3d .equ GIMSK =$3b .equ GIFR =$3a .equ TIMSK =$39 .equ TIFR =$38 .equ MCUCR =$35 I.T.D, I.T.D.,………..

  43. Toliko o zbirniških ukazih

  44. Osnovni načini naslavljanja Takojšnje Direktno Indirektno (indeksno) ……………

  45. Takojšnje LDI R16,0xff ; (R16  0xff) SUBI R16,0x0f ANDI R16,0x01

  46. Registrsko direktno Registri OP Rd INC R16 CLR R17 COM R0

  47. Dvojno registrsko direktno Registri OP Rd,Rr d  Rd OP Rr MOV R15,R16 ADD R15,R16

  48. V/I direktno V/I naslovi OP n,P IN R16,PIND OUT PORTC,R16

  49. Pomnilniško direktno Pomnilnik STS 0x0100,R16 LDS R16,0x0101 STS -- store to static (ram)

More Related