Maskinorienterad Programmering 2011/2012. CPU12 Reference Guide Stencil: Assemblerprogrammering.pdf

Relevanta dokument
Programmering av inbyggda system 2013/2014

Returvärden via register. Parameteröverföring via register

Programmering av inbyggda system. Seriekommunikation. Viktor Kämpe

Adressrum, programmerarens bild

Programmering av inbyggda system

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Projektlaboration 4, synkronisering av klockan

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Förutsättningar för skrivaranslutningen. Första programexemplet. Synkronisera arbetstakterna

Undantagstyper. Maskinorienterad Programmering 2010/2011. MC68HC12, Stencil Assemblerprogrammering.pdf CPU12 Reference Guide

PNSPO! Adressering i Omrons PLC. 14 mars 2012 OMRON Corporation

Förutsättningar för skrivaranslutningen

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digitalt eller Analogt

Dataöverföring på Parallell- och serieform MOP 11/12 1

- Digitala ingångar och framförallt utgångar o elektrisk modell

Adressavkodning - busskommunikation

Förutsättningar för skrivaranslutningen. Första programexemplet. strängslut. Maskinorienterad Programmering 2011/2012 Synkronisering och undantag

GPIO - General Purpose Input Output

Förutsättningar för skrivaranslutningen. Första programexemplet. Inför specialtecken för strängslut

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Assemblerprogrammets struktur; exempel

Maskinorienterad Programmering 2010/11

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

%HQJW0DJQKDJHQ,QJHQM UVK JVNRODQL- QN SLQJ &RS\ULJKW%HQJW0DJQKDJHQ/L7+

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

EDI022. Digitala Projekt. Rapport. Björn Åkesson 5/20/2011

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)

GPIO - General Purpose Input Output

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Kanalprocessor Ref: 5179

Bruksanvisning Varmkanalstyrning KT300S

Föreläsningsanteckningar 3. Mikroprogrammering II

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

2 UPPBYGGNAD OCH FUNKTION

Freescale MC9S12DG256B

Att läsa en manual. Exempel Timern ECT_16B8C. Läs den allmänna beskrivningen (Overview) Vi ser att grundfunktionen är en räknare med prescaler

DESIGN AV SEKVENTIELL LOGIK

Microprocessor / Microcontroller

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Effektpedal för elgitarr

COMBI Kanalers Kombinations Modul

Seriekomunikation. CAN ett kommunikationsprotokoll för realtidssystem. Seriekomunikation -forts. Seriekomunikation -forts

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

Datorteknik. Tomas Nordström. Föreläsning 8 Timers. För utveckling av verksamhet, produkter och livskvalitet.

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

Kanalprocessor T-05 / DIGITAL 5870

Bruksanvisning DAB One

Extrauppgifter för CPU12

Föreläsningsanteckningar till Konstruktionsmetoder

Enchipsdatorns gränssnitt mot den analoga omvärlden

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Datakommunikation med IR-ljus.

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

microlf, , Alla rättigheter förbehålles

Bussar och I/O. samt. vad kan man göra med NEXYS3

Laboration i digitalteknik Datablad

Ett urval D/A- och A/D-omvandlare

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

LEU240 Mikrodatorsystem Laboration 2: Ett komplett avbrottsstyrt system med in- och utenheter

CanCom C721 RadioTransceiver V1.19

F7: I/O hantering. Asynkron och synkron busscykel Bussfördelning. Periferikretsar

Q64AD, Q68ADV/ADI, analoga ingångsmoduler KI00105E

Tentamen med lösningsförslag

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

Exempel 3 på Tentamen

Sekvensnät. William Sandqvist

Programmering av inbyggda system 2012/2013. Kodningskonventioner och programbibliotek. maskinnära programmering i C och assemblerspråk

Lösningsförslag tenta

Accelerometer. Rikard Ekström Mattias Kindborg. Informationsteknologi Lunds Universitet

Analog till Digitalomvandling

Assemblerprogrammering för HCS12

Digital- och datorteknik

Analog till Digitalomvandling

Assemblerprogrammets. struktur; exempel

Elektronik Elektronik 2017

Laboration i digitalteknik Datablad

D/A- och A/D-omvandlarmodul MOD687-31

PNSPO! Tips! Xpectia kommunikation till OMRON PLC via Seriellt. 14 mars 2012 OMRON Corporation

Digitala Projekt(EITF40) - Larm

Växtviskaren EITF11 Digitala projekt VT15, I12

Normer: EMC: EN , EN LVD: EN Matning:

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Laboration Datorteknik TSIU02/TSEA28 3. Digitalur

Analogt och Digital. Viktor Öwall. Elektronik

Bruksanvisning Multimeter Elma 805 / Elma 807

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

Nöjd Medarbetar Index 2012

Digital- och datorteknik

Transkript:

Maskinorienterad Programmering 211/212 CPU12 eference Guide Stencil: Assemblerprogrammering.pdf Ur innehållet: äknarkretsar ( TMES ) Pulsbreddsmodulering ( PM ) Analog-/Digital- omvandling ( AD ) Seriekommunikation ( SC ) 1 CG, Clock eset Generator HCS12 har programmerbar arbetstakt. Kontrolleras från CG-modul. BusClock (E) = PLLCLK/2 2

EXEMPEL: Bestäm busfrekvens Antag 8 MHz kristall. PLLCLK får aldrig vara mindre än OSCCLK eftersom detta äventyrar stabilitetsvillkoren i oscillatorn. PLLCLK/2 får aldrig vara större än nominella arbetsfrekvensen hos kretsen. För första generationens HCS12 innebär detta att PLLCLK/2 < 25 MHz. 5MHz ( SYN 1) 28MHz ( EFDV 1) Sätt: SYN = 5 och EFDV = 1 (5 1) 28MHz 283MHz 48MHz (1 1) 3 Basadress = $34 Algoritm: 1. Skriv nya värden till SYN, EFDV. 2. Vänta tills kretsen låser (LOCK=1) 3. Växla till PLL (sätt PPLSEL=1) $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Clock eset Generator (CG) Offset 7 6 5 4 3 2 1 Mnemonic Namn Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN SYN EFDV EFDV EFDV EFDV eference Divide EFDV 1 3 2 1 *)Test Flags CTFLG 2 TF POF LVF LOCK LOCK SCME SCMF SCM Flags CGFLG 3 F LOCK nterrupt Enable TE SCME CGNT 4 E PLLSEL PSTP SYSA Clock Select OAA PLLA CA TA COPA CLKSEL 5 PLL Control CME PLLON AUTO AOQ PE PCE SCME PLLCTL 6 T Control T6 T5 T4 T3 T2 T1 T TCTL 7 COP Control COP SBCK C2 C1 C COPCTL 8 *)Force and $ FOBYP Bypass Test 9 *)Test Control CTCTL A COP Arm/Timer AMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit eset 4

$34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Clock eset Generator (CG) Offset 7 6 5 4 3 2 1 Mnemonic Namn Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN SYN EFDV EFDV EFDV EFDV eference Divide EFDV 1 3 2 1 *)Test Flags CTFLG 2 TF POF LVF LOCK LOCK SCME SCMF SCM Flags CGFLG 3 F LOCK nterrupt Enable TE SCME CGNT 4 E PLLSEL PSTP SYSA Clock Select OAA PLLA CA TA COPA CLKSEL 5 PLL Control CME PLLON AUTO AOQ PE PCE SCME PLLCTL 6 T Control T6 T5 T4 T3 T2 T1 T TCTL 7 COP Control COP SBCK C2 C1 C COPCTL 8 *)Force and $ FOBYP Bypass Test 9 *)Test Control CTCTL A COP Arm/Timer AMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit eset 5..programmering.. mplementera i assembler och C... Vi löser på tavlan... 6

äknarkrets ( timer ), principiell funktion Pulser/ intervall äknar värde eload Q Q Q t Clk Prescaler Används för att dela ned klockfrekvensen Nedräknare Läsbart register = Q Enable Q Periodiska avbrott Kan användas för att skapa en EALTDSKLOCKA 7 ealtidsklocka i HCS12 Tre olika register används för realtidsklockan 8

ealtidsklocka i HCS12, initiering Algoritm, initiering 2. Aktivera avbrott från kretsen 1. Skriv tidbas för avbrottsintervall till TCTL $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Clock eset Generator (CG) Offset 7 6 5 4 3 2 1 Mnemonic Namn Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN SYN EFDV EFDV EFDV EFDV eference Divide EFDV 1 3 2 1 *)Test Flags CTFLG 2 TF POF LVF LOCK LOCK SCME SCMF SCM Flags CGFLG 3 F LOCK nterrupt Enable TE SCME CGNT 4 E PLLSEL PSTP SYSA Clock Select OAA PLLA CA TA COPA CLKSEL 5 PLL Control CME PLLON AUTO AOQ PE PCE SCME PLLCTL 6 T Control T6 T5 T4 T3 T2 T1 T TCTL 7 COP Control COP SBCK C2 C1 C COPCTL 8 *)Force and $ FOBYP Bypass Test 9 *)Test Control CTCTL A COP Arm/Timer AMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit eset 9 Prescaler för räknarkretsen OSCCLK T Tfreq T T[6:4] [3:] 1 1 11 1 11 11 111 (OFF) OFF 2 1 2 11 2 12 2 13 2 14 2 15 2 16 1 OFF 2x2 1 2x2 11 2x2 12 2x2 13 2x2 14 2x2 15 2x2 16 1 OFF 3x2 1 3x2 11 3x2 12 3x2 13 3x2 14 3x2 15 3x2 16 11 OFF 4x2 1 4x2 11 4x2 12 4x2 13 4x2 14 4x2 15 4x2 16 1 OFF 5x2 1 5x2 11 5x2 12 5x2 13 5x2 14 5x2 15 5x2 16 11 OFF 6x2 1 6x2 11 6x2 12 6x2 13 6x2 14 6x2 15 6x2 16 11 OFF 7x2 1 7x2 11 7x2 12 7x2 13 7x2 14 7x2 15 7x2 16 111 OFF 8x2 1 8x2 11 8x2 12 8x2 13 8x2 14 8x2 15 8x2 16 1 OFF 9x2 1 9x2 11 9x2 12 9x2 13 9x2 14 9x2 15 9x2 16 11 OFF 1x2 1 1x2 11 1x2 12 1x2 13 1x2 14 1x2 15 1x2 16 11 OFF 11x2 1 11x2 11 11x2 12 11x2 13 11x2 14 11x2 15 11x2 16 111 OFF 12x2 1 12x2 11 12x2 12 12x2 13 12x2 14 12x2 15 12x2 16 11 OFF 13x2 1 13x2 11 13x2 12 13x2 13 13x2 14 13x2 15 13x2 16 111 OFF 14x2 1 14x2 11 14x2 12 14x2 13 14x2 14 14x2 15 14x2 16 111 OFF 15x2 1 15x2 11 15x2 12 15x2 13 15x2 14 15x2 15 15x2 16 1111 OFF 16x2 1 16x2 11 16x2 12 16x2 13 16x2 14 16x2 15 16x2 16 1

Beräkning av tidbas OSCCLK T Tfreq 81 T 6 1 1 2 T x2 y 81 4 (Se även exempel i Stencil 2 ) Den bästa approximationen har vi för T = 1 11 = $49, som medför: 1x2 13 = 8192 Eftersom detta värde är något större än det exakta, kommer vi att få en något längre periodtid, nämligen: avbrottsfrekvens = 8 1 6 / 8192 = 97.656 Hz vilket ger periodtiden:.124 s = 1,24 ms. Klockan kommer alltså att "gå för sakta" som en följd av detta systematiska fel. 11 ealtidsklocka i HCS12, vid avbrott Clock eset Generator (CG) Offset 7 6 5 4 3 2 1 Mnemonic Namn Synthesizer $34 SYN5 SYN4 SYN3 SYN2 SYN1 SYN SYN EFDV EFDV EFDV EFDV eference Divide $35 EFDV 1 3 2 1 *)Test Flags $36 CTFLG 2 TF POF LVF LOCK LOCK SCME SCMF SCM Flags $37 CGFLG 3 F LOCK $38 nterrupt Enable TE SCME CGNT 4 E $39 PLLSEL PSTP SYSA Clock Select OAA PLLA CA TA COPA CLKSEL 5 PLL Control Adress $3A CME PLLON AUTO AOQ PE PCE SCME PLLCTL 6 (hex) Funktion T Control FFF eal Time nterrupt $3B T6 T5 T4 T3 T2 T1 T TCTL 7 FFEE Enhanced Capture Timer channel $3C COP Control COP SBCK C2 C1 C COPCTL FFEC Enhanced Capture Timer channel 8 1 FFEA Enhanced Capture Timer channel 2 *)Force and $...... $3D FOBYP Bypass Test 9 FF8E Port P nterrupt FF8C PM Emergency $3E Shutdown *)Test Control CTCTL FF8A- eserverade A FF8 $3F COP Arm/Timer AMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit eset Algoritm, kvittera avbrott 1. TF = 1 12

..programmering.. mplementera i assembler och C... Vi löser på tavlan... 13 ealtidsklocka med hög upplösning Enhanced Capture Timer (ECT) En maskincykels noggrannhet EXEMPEL: Arbetstakt= 24 MHz PEOD = 24 ntervall = 1 ms Noggrannhet = 1/24 sek. 41,7 1-9 sec. 14

Programexempel TOS EQU $4 TCNT EQU $44 TE EQU $4C TFLG1 EQU $4E TOC_ EQU $5 PEOD EQU 24 nit: MOVB #1,TOS ; ch är OC MOVB #1,TE ; tillåt Q LDD TCNT ; aktuell cykel ADDD #PEOD ; addera period STD TOC_ ; nästa avbrott TS OG FDB $FFEE TOCirq TOCirq : MOVB #1,TFLG1 ; kvittera LDD TCNT ; ny period ADDD #PEOD STD TOC_ T Adress (hex) Funktion FFF eal Time nterrupt FFEE Enhanced Capture Timer channel FFEC Enhanced Capture Timer channel 1 FFEA Enhanced Capture Timer channel 2...... FF8E Port P nterrupt FF8C PM Emergency Shutdown FF8A- eserverade FF8 15 Pulsbreddsmodulering (PM) U 1 U out 2 U U out dutycycle U period U period dutycycle 3 U out 4 U Period och dutycycle är programmerbart U 1 U out 4 U 16

PM-styrning Control bus Data bus period dutycycle Högtalare, glödlampa element, etc... PM Continous signal out Power Amplifier 17 8 * 8 bitars eller 4 * 16 bitars räknare period duty cycle 18

Programexempel ; PM initiering PME EQU $A PPOL EQU $A1 PMPCLK EQU $A3 PMPE EQU $B4 PMDTY EQU $BC ; låg nivå startar period CL PMPOL ; c:a 4 ms periodtid MOVB #$77,PMPCLK ; pwm kanal MOVB #$FF,PMPE ; börja med 8% duty cycle.. MOVB #$D,PMDTY ; aktivera kanal MOVB #1,PME 19 Analog-/Digital- omvandling 2

Multiplex 8 kanaler. 21 Programexempel ; AD initiering ; Högerjustera resultat, unipolärt ; kontinuerlig mode (scan), AD kanal 6 MOVB ; upplösning MOVB #$A6,ATDCTL5 #$E5,ATDCTL4 ; en konverteringssekvens MOVB #$4,ATDCTL3 ; normal mode MOVB #$C,ATDCTL2 ; Vänta tills omvandling klar wad: BCL ATDSTAT,#$8,wAD ; När resultat färdigt, läs LDAB ATDDL... 22

Seriekommunikation, SC Central Processing Unit Serial to parallel conversion eceive Data: xd Parallel to serial conversion Transmit Data: TxD Central Processing Unit Serial to parallel conversion Transceiver eceive Transmit Transceiver eceive Transmit Parallel to serial conversion Serial transmission 23 Sändare Data buss Mottagare Data buss Control CS OE Data Control OE Data E Clock Shift Serial data out TxD Serial data in xd Clock Shift Sändare och mottagares klockor går i samma takt 24

S232 överföring av tecknet z tecknet z representeras av bitmönstret 111 11 (ASC-tecken). + 1 volt volt - 1 volt S T A T B T idle 1 1 1 1 1 1 idle P A T Y B T S T O P B T z minst signifikanta bit först 25 nitiering, busy-wait Basadress = $C8 Algoritm: 1. nitiera BAUDATE 2. Aktivera Transmitter eceiver Serial Communication nterface (SC) Offset 7 6 5 4 3 2 1 Mnemonic Namn $ Baud ate SB12 SB11 SB1 SB9 SB8 SCBDH High $1 Baud ate SB7 SB6 SB5 SB4 SB3 SB2 SB1 SB SCBDL Low $2 LOOPS SCSA SC M AKE LT PE PT SCC1 Control 1 $3 TE TCE E LE TE E U SBK SCC2 Control 2 $4 TDE TC DF DLE O NF FE PF SCS1 Status 1 $5 AF BK13 TXD SCS2 Status 2 $6 8 Data T8 SCDH High $7 7 6 5 4 3 2 1 T7 T6 T5 T4 T3 T2 T1 T SCDL Data Low SCBD: EQU $C8 ; SC baudrate-register (16 bit). SCC2: EQU $CB ; SC styr-register 2. ; Bitdefinitioner, styrregister TE: EQU $8 ; Transmitter enable. E: EQU $4 ; eceiver enable. 26

Skriv tecken via SC Algoritm: TDE = (Transmit Data Empty) 1. Om TDE=1 SCDL=tecken Serial Communication nterface (SC) Offset 7 6 5 4 3 2 1 Mnemonic Namn $ Baud ate SB12 SB11 SB1 SB9 SB8 SCBDH High $1 Baud ate SB7 SB6 SB5 SB4 SB3 SB2 SB1 SB SCBDL Low $2 LOOPS SCSA SC M AKE LT PE PT SCC1 Control 1 $3 TE TCE E LE TE E U SBK SCC2 Control 2 $4 TDE TC DF DLE O NF FE PF SCS1 Status 1 $5 AF BK13 TXD SCS2 Status 2 $6 8 Data T8 SCDH High $7 7 6 5 4 3 2 1 T7 T6 T5 T4 T3 T2 T1 T SCDL Data Low SCS1: EQU $CC ; SC status-register 1. SCDL: EQU $CF ; SC data-register låg byte. ; Bitdefinitioner, statusregister TDE: EQU $8 ; Transmit data register empty status bit. 27 Läs tecken från SC Algoritm: DF = (eceive Data Full) 1. Om DF =1 tecken=scdl Serial Communication nterface (SC) Offset 7 6 5 4 3 2 1 Mnemonic Namn $ Baud ate SB12 SB11 SB1 SB9 SB8 SCBDH High $1 Baud ate SB7 SB6 SB5 SB4 SB3 SB2 SB1 SB SCBDL Low $2 LOOPS SCSA SC M AKE LT PE PT SCC1 Control 1 $3 TE TCE E LE TE E U SBK SCC2 Control 2 $4 TDE TC DF DLE O NF FE PF SCS1 Status 1 $5 AF BK13 TXD SCS2 Status 2 $6 8 Data T8 SCDH High $7 7 6 5 4 3 2 1 T7 T6 T5 T4 T3 T2 T1 T SCDL Data Low SCS1: EQU $CC ; SC status-register 1. SCDL: EQU $CF ; SC data-register låg byte. ; Bitdefinitioner, statusregister DF: EQU $2 ; eceive data register full status bit. 28

Bestämma Baudrate-värde exempel: 96 baud PLLCLK=48 MHz -> E-klocka = 24 MHz B PLLCLK / 2 16 baudrate baudrate PLLCLK / 2 16 B 9 6 6 241 156,25 16 96 6 241 16156 9615, 6 241 16157 9585 Eclock: EQU 24 ; 24 MHz ; Baudate register värden, baseras på PLL-klocka Baud96: EQU (Eclock/(16*96)) 29..programmering.. mplementera i assembler och C... Vi löser på tavlan... 3