Programmering av inbyggda system 2013/2014

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

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

Programmering av inbyggda system. Seriekommunikation. Viktor Kämpe

Programmering av inbyggda system

Adressrum, programmerarens bild

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

Maskinnära programmering - exempelsamling

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

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

Förutsättningar för skrivaranslutningen

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

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

Projektlaboration 4, synkronisering av klockan

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

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

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

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

Tentamen med lösningsförslag

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

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

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

LEU240 Mikrodatorsystem Att placera program i FLASHrespektive

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

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

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

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

Freescale MC9S12DG256B

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

Digitalt eller Analogt

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

Föreläsningsanteckningar 3. Mikroprogrammering II

Adressavkodning - busskommunikation

GPIO - General Purpose Input Output

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

GPIO - General Purpose Input Output

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

Microprocessor / Microcontroller

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

Bruksanvisning Varmkanalstyrning KT300S

Tentamen med lösningsförslag

Enchipsdatorns gränssnitt mot den analoga omvärlden

Effektpedal för elgitarr

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

Maskinnära programmering. - exempelsamling

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

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

Maskinorienterad Programmering 2010/2011. Maskinorienterad Programmering 2010/2011. Skrivarporten, p Arbetsbok MC12, avsnitt 2

Datakommunikation med IR-ljus.

Avbrott - En enhet. I DAG fo 6 Mera avbrott. Avbrott - Fler enheter. Olika typer av avbrott DMA. Avbrott - Fler enheter -Avbrottshanterare

Digital- och datorteknik

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

Digital- och datorteknik

DESIGN AV SEKVENTIELL LOGIK

Tentamen med lösningsförslag

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

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

A-del motsvarande KS1

X9017. Kommunikationskort, EIB. Kommunikationskort för EIB- och KNX-nätverk, för intern montering i EXOflex etc.

Maskinnära programmering - exempelsamling

Sekvensnät. William Sandqvist

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

COMBI Kanalers Kombinations Modul

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Extrauppgifter för CPU12

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

Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6

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

Enchipsdatorns gränssnitt mot den analoga omvärlden

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

Föreläsningsanteckningar till Konstruktionsmetoder

Digitala Projekt(EITF40) - Larm

Miniräknare. Laborationsrapport Laborationsrapport i mikrodatorkonstruktion. En rapport skriven av teknologstuderande: Martin Bergström Gert Johnsen

HW-proj ver 3, ett kortsystem

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

Assemblerprogrammets struktur; exempel

CE_O3. Nios II. Inför lab nios2time

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

Maskinorienterad Programmering 2010/11

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

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Lösningsförslag tenta

Programmera och ladda ny mjukvara till DT-serien. Information och nerladdning av SatEdit V3 från: Ladda hem.

Programmera och ladda ny mjukvara till DT-serien. SatEdit V3 laddas ner från Ladda hem.

3. Mikroprogrammering II

Maskinorienterad programmering

Cluster VMCLUSTERcpuTotalmhzAverage CPU Mhz

MC11. Enkortsdator. MC11 - Hårdvarubeskrivning. MC68HC11 är Motorola INC MS-DOS är Microsoft Corporation MC11, MC68 och MD68k är microlf

Bruksanvisning DAB One

2 UPPBYGGNAD OCH FUNKTION

TMT-918 Fjärrkontroll med timer. Säkerhet. Tekniska data

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

Tentamen. Datorteknik Y, TSEA28

F8: Undantagshantering

DIGITALA PROJEKT Väderstation

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

Avbrottshantering. Övningsuppgifter

Digital- och datorteknik

Periferikretsar. ADC/DAC Räknare Realtidsklocka Timer Interrupthanterare UART (Universal Asynchronous Reciever and Transmitter) Seriell dataöverföring

Transkript:

Programmering av inbyggda system 2013/2014 CPU12 Reference Guide Stencil: Assemblerprogrammering.pdf Ur innehållet: Räknarkretsar ( TIMERS ) Pulsbreddsmodulering ( PM ) Analog-/Digital- omvandling ( AD ) Seriekommunikation ( SCI ) 1

CRG, Clock Reset Generator HCS12 har programmerbar arbetstakt. Kontrolleras från CRG-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. 50MHz 2 8MHz Sätt: SYNR = 5 och REFDV = 1 ( SYNR 1) ( REFDV 1) (5 1) 2 8MHz 2 8 3MHz 48MHz (1 1) 3

Basadress = $34 Algoritm: 1. Skriv nya värden till SYNR, REFDV. 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 Reset Generator (CRG) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn 0 0 Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 SYNR 0 0 0 0 0 REFDV REFDV REFDV REFDV Reference Divide REFDV 1 3 2 1 0 0 0 0 0 0 0 0 0 *)Test Flags CTFLG 2 RTIF PORF LVRF LOCKI LOCK SCMIE SCMIF SCM Flags CRGFLG 3 F 0 0 LOCKI 0 0 0 Interrupt Enable RTIE SCMIE CRGINT 4 E PLLSEL PSTP SYSA Clock Select ROAAI PLLAI CAI RTIAI COPAI CLKSEL 5 I 0 PLL Control CME PLLON AUTO AOQ PRE PCE SCME PLLCTL 6 0 RTI Control RTR6 RTR5 RTR4 RTR3 RTR2 RTR1 RTR0 RTICTL 7 0 0 0 COP Control COP RSBCK CR2 CR1 CR0 COPCTL 8 R 0 0 0 0 0 0 0 0 *)Force and $0 FORBYP Bypass Test 9 0 0 0 0 0 0 0 0 *)Test Control CTCTL A 0 0 0 0 0 0 0 0 COP Arm/Timer ARMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset 4

$34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Clock Reset Generator (CRG) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn 0 0 Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 SYNR 0 0 0 0 0 REFDV REFDV REFDV REFDV Reference Divide REFDV 1 3 2 1 0 0 0 0 0 0 0 0 0 *)Test Flags CTFLG 2 RTIF PORF LVRF LOCKI LOCK SCMIE SCMIF SCM Flags CRGFLG 3 F 0 0 LOCKI 0 0 0 Interrupt Enable RTIE SCMIE CRGINT 4 E PLLSEL PSTP SYSA Clock Select ROAAI PLLAI CAI RTIAI COPAI CLKSEL 5 I 0 PLL Control CME PLLON AUTO AOQ PRE PCE SCME PLLCTL 6 0 RTI Control RTR6 RTR5 RTR4 RTR3 RTR2 RTR1 RTR0 RTICTL 7 0 0 0 COP Control COP RSBCK CR2 CR1 CR0 COPCTL 8 R 0 0 0 0 0 0 0 0 *)Force and $0 FORBYP Bypass Test 9 0 0 0 0 0 0 0 0 *)Test Control CTCTL A 0 0 0 0 0 0 0 0 COP Arm/Timer ARMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset 5

..programmering.. Implementera i assembler och C... Vi löser på tavlan... 6

Räknarkrets ( timer ), principiell funktion Pulser/ intervall Räknar värde Reload 0 IRQ IRQ IRQ t Clk Prescaler Används för att dela ned klockfrekvensen Nedräknare Läsbart register =0 IRQ Enable IRQ Periodiska avbrott Kan användas för att skapa en REALTIDSKLOCKA 7

Realtidsklocka i HCS12 Tre olika register används för realtidsklockan 8

Realtidsklocka i HCS12, initiering Algoritm, initiering 2. Aktivera avbrott från kretsen 1. Skriv tidbas för avbrottsintervall till RTICTL $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Clock Reset Generator (CRG) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn 0 0 Synthesizer SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 SYNR 0 0 0 0 0 REFDV REFDV REFDV REFDV Reference Divide REFDV 1 3 2 1 0 0 0 0 0 0 0 0 0 *)Test Flags CTFLG 2 RTIF PORF LVRF LOCKI LOCK SCMIE SCMIF SCM Flags CRGFLG 3 F 0 0 LOCKI 0 0 0 Interrupt Enable RTIE SCMIE CRGINT 4 E PLLSEL PSTP SYSA Clock Select ROAAI PLLAI CAI RTIAI COPAI CLKSEL 5 I 0 PLL Control CME PLLON AUTO AOQ PRE PCE SCME PLLCTL 6 0 RTI Control RTR6 RTR5 RTR4 RTR3 RTR2 RTR1 RTR0 RTICTL 7 0 0 0 COP Control COP RSBCK CR2 CR1 CR0 COPCTL 8 R 0 0 0 0 0 0 0 0 *)Force and $0 FORBYP Bypass Test 9 0 0 0 0 0 0 0 0 *)Test Control CTCTL A 0 0 0 0 0 0 0 0 COP Arm/Timer ARMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset 9

Prescaler för räknarkretsen OSCCLK RTR RTIfreq RTR [3:0] RTR[6:4] 000 (OFF) 001 010 011 100 101 110 111 0000 OFF 2 10 2 11 2 12 2 13 2 14 2 15 2 16 0001 OFF 2x2 10 2x2 11 2x2 12 2x2 13 2x2 14 2x2 15 2x2 16 0010 OFF 3x2 10 3x2 11 3x2 12 3x2 13 3x2 14 3x2 15 3x2 16 0011 OFF 4x2 10 4x2 11 4x2 12 4x2 13 4x2 14 4x2 15 4x2 16 0100 OFF 5x2 10 5x2 11 5x2 12 5x2 13 5x2 14 5x2 15 5x2 16 0101 OFF 6x2 10 6x2 11 6x2 12 6x2 13 6x2 14 6x2 15 6x2 16 0110 OFF 7x2 10 7x2 11 7x2 12 7x2 13 7x2 14 7x2 15 7x2 16 0111 OFF 8x2 10 8x2 11 8x2 12 8x2 13 8x2 14 8x2 15 8x2 16 1000 OFF 9x2 10 9x2 11 9x2 12 9x2 13 9x2 14 9x2 15 9x2 16 1001 OFF 10x2 10 10x2 11 10x2 12 10x2 13 10x2 14 10x2 15 10x2 16 1010 OFF 11x2 10 11x2 11 11x2 12 11x2 13 11x2 14 11x2 15 11x2 16 1011 OFF 12x2 10 12x2 11 12x2 12 12x2 13 12x2 14 12x2 15 12x2 16 1100 OFF 13x2 10 13x2 11 13x2 12 13x2 13 13x2 14 13x2 15 13x2 16 1101 OFF 14x2 10 14x2 11 14x2 12 14x2 13 14x2 14 14x2 15 14x2 16 1110 OFF 15x2 10 15x2 11 15x2 12 15x2 13 15x2 14 15x2 15 15x2 16 1111 OFF 16x2 10 16x2 11 16x2 12 16x2 13 16x2 14 16x2 15 16x2 16 10

Beräkning av tidbas OSCCLK RTR RTIfreq 8 10 RTR 6 1 10 2 RTR x 2 y 8 10 4 (Se även exempel i Stencil 2 ) Den bästa approximationen har vi för RTR = 100 1001 = $49, som medför: 10x2 13 = 81920 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 10 6 / 81920 = 97.656 Hz vilket ger periodtiden: 0.01024 s = 10,24 ms. Klockan kommer alltså att "gå för sakta" som en följd av detta systematiska fel. 11

Realtidsklocka i HCS12, vid avbrott Clock Reset Generator (CRG) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn 0 0 Synthesizer $34 SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 SYNR 0 0 0 0 0 REFDV REFDV REFDV REFDV Reference Divide $35 REFDV 1 3 2 1 0 0 0 0 0 0 0 0 0 *)Test Flags $36 CTFLG 2 RTIF PORF LVRF LOCKI LOCK SCMIE SCMIF SCM Flags $37 CRGFLG 3 F 0 0 LOCKI 0 0 0 $38 Interrupt Enable RTIE SCMIE CRGINT 4 E $39 PLLSEL PSTP SYSA Clock Select ROAAI PLLAI CAI RTIAI COPAI CLKSEL 5 I 0 PLL Control Adress $3A CME PLLON AUTO AOQ PRE PCE SCME PLLCTL 6 (hex) Funktion 0 RTI Control FFF0 Real Time Interrupt $3B RTR6 RTR5 RTR4 RTR3 RTR2 RTR1 RTR0 RTICTL 7 FFEE Enhanced Capture Timer channel $3C 0 0 0 COP Control COP RSBCK CR2 CR1 CR0 COPCTL FFEC Enhanced Capture Timer channel 8 1 FFEA Enhanced Capture Timer channel R2 0 0 0 0 0 0 0 0 *)Force and $0...... $3D FORBYP Bypass Test 9 FF8E Port P Interrupt FF8C PM Emergency $3E Shutdown 0 0 0 0 0 0 0 0 *)Test Control CTCTL FF8A- Reserverade A FF80 $3F 0 0 0 0 0 0 0 0 COP Arm/Timer ARMCOP B Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset Algoritm, kvittera avbrott 1. RTIF = 1 12

..programmering.. Implementera i assembler och C... Vi löser på tavlan... 13

Realtidsklocka med hög upplösning Enhanced Capture Timer (ECT) En maskincykels noggrannhet EXEMPEL: Arbetstakt= 24 MHz PERIOD = 24 000 Intervall = 1 ms Noggrannhet = 1/24 000 000 sek. 41,7 10-9 sec. 14

Programexempel TIOS EQU $40 TCNT EQU $44 TIE EQU $4C TFLG1 EQU $4E TOC_0 EQU $50 PERIOD EQU 24000 Init: MOVB #1,TIOS ; ch 0 är OC MOVB #1,TIE ; tillåt IRQ LDD TCNT ; aktuell cykel ADDD #PERIOD ; addera period STD TOC_0 ; nästa avbrott RTS ORG FDB $FFEE TOCirq TOCirq : MOVB #1,TFLG1 ; kvittera LDD TCNT ; ny period ADDD #PERIOD STD TOC_0 RTI Adress (hex) Funktion FFF0 Real Time Interrupt FFEE Enhanced Capture Timer channel 0 FFEC Enhanced Capture Timer channel 1 FFEA Enhanced Capture Timer channel 2...... FF8E Port P Interrupt FF8C PM Emergency Shutdown FF8A- Reserverade FF80 15

Pulsbreddsmodulering (PM) U 1 U out 2 U U out dutycycle period U 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 $A0 PPOL EQU $A1 PMPRCLK EQU $A3 PMPER0 EQU $B4 PMDTY0 EQU $BC ; låg nivå startar period CLR PMPOL ; c:a 4 ms periodtid MOVB #$77,PMPRCLK ; pwm kanal 0 MOVB #$FF,PMPER0 ; börja med 80% duty cycle.. MOVB #$D0,PMDTY0 ; aktivera kanal 0 MOVB #1,PME 19

Analog-/Digital- omvandling 20

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 #$40,ATDCTL3 ; normal mode MOVB #$C0,ATDCTL2 ; Vänta tills omvandling klar wad: BRCLR ATD0STAT0,#$80,wAD ; När resultat färdigt, läs LDAB ATD0DR0L... 22

Seriekommunikation, SCI Central Processing Unit Serial to parallel conversion Receive Data: RxD Parallel to serial conversion Transmit Data: TxD Central Processing Unit Serial to parallel conversion Transceiver Receive Transmit Transceiver Receive 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 RxD Clock Shift Sändare och mottagares klockor går i samma takt 24

RS232 överföring av tecknet z tecknet z representeras av bitmönstret 0111 1010 (ASCII-tecken). + 10 volt 0 volt - 10 volt S T A R T B I T idle 0 0 1 0 1 1 1 1 0 0 1 idle P A R I T Y B I T S T O P B I T z minst signifikanta bit först 25

Initiering, busy-wait Basadress = $C8 Algoritm: 1. Initiera BAUDRATE 2. Aktivera Transmitter Receiver Serial Communication Interface (SCI) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn $00 R 0 0 0 Baud Rate SBR12 SBR11 SBR10 SBR9 SBR8 SCIBDH High $01 R Baud Rate SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 SCIBDL Low $02 R LOOPS SCISAI RSRC M AKE ILT PE PT SCICR1 Control 1 $03 R TIE TCIE RIE ILIE TE RE RU SBK SCICR2 Control 2 $04 R TDRE TC RDRF IDLE OR NF FE PF SCISR1 Status 1 $05 R 0 0 0 0 0 RAF BRK13 TXDIR SCISR2 Status 2 $06 R R8 0 0 0 0 0 0 Data T8 SCIDRH High $07 R R7 R6 R5 R4 R3 R2 R1 R0 T7 T6 T5 T4 T3 T2 T1 T0 SCIDRL Data Low SCI0BD: EQU $C8 ; SCI 0 baudrate-register (16 bit). SCI0CR2: EQU $CB ; SCI 0 styr-register 2. ; Bitdefinitioner, styrregister TE: EQU $08 ; Transmitter enable. RE: EQU $04 ; Receiver enable. 26

Skriv tecken via SCI Algoritm: TDRE = (Transmit Data Empty) 1. Om TDRE=1 SCIDRL=tecken Serial Communication Interface (SCI) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn $00 R 0 0 0 Baud Rate SBR12 SBR11 SBR10 SBR9 SBR8 SCIBDH High $01 R Baud Rate SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 SCIBDL Low $02 R LOOPS SCISAI RSRC M AKE ILT PE PT SCICR1 Control 1 $03 R TIE TCIE RIE ILIE TE RE RU SBK SCICR2 Control 2 $04 R TDRE TC RDRF IDLE OR NF FE PF SCISR1 Status 1 $05 R 0 0 0 0 0 RAF BRK13 TXDIR SCISR2 Status 2 $06 R R8 0 0 0 0 0 0 Data T8 SCIDRH High $07 R R7 R6 R5 R4 R3 R2 R1 R0 T7 T6 T5 T4 T3 T2 T1 T0 SCIDRL Data Low SCI0SR1: EQU $CC ; SCI 0 status-register 1. SCI0DRL: EQU $CF ; SCI 0 data-register låg byte. ; Bitdefinitioner, statusregister TDRE: EQU $80 ; Transmit data register empty status bit. 27

Läs tecken från SCI Algoritm: RDRF = (Receive Data Full) 1. Om RDRF =1 tecken=scidrl Serial Communication Interface (SCI) Offset 7 6 5 4 3 2 1 0 Mnemonic Namn $00 R 0 0 0 Baud Rate SBR12 SBR11 SBR10 SBR9 SBR8 SCIBDH High $01 R Baud Rate SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 SCIBDL Low $02 R LOOPS SCISAI RSRC M AKE ILT PE PT SCICR1 Control 1 $03 R TIE TCIE RIE ILIE TE RE RU SBK SCICR2 Control 2 $04 R TDRE TC RDRF IDLE OR NF FE PF SCISR1 Status 1 $05 R 0 0 0 0 0 RAF BRK13 TXDIR SCISR2 Status 2 $06 R R8 0 0 0 0 0 0 Data T8 SCIDRH High $07 R R7 R6 R5 R4 R3 R2 R1 R0 T7 T6 T5 T4 T3 T2 T1 T0 SCIDRL Data Low SCI0SR1: EQU $CC ; SCI 0 status-register 1. SCI0DRL: EQU $CF ; SCI 0 data-register låg byte. ; Bitdefinitioner, statusregister RDRF: EQU $20 ; Receive data register full status bit. 28

Bestämma Baudrate-värde exempel: 9600 baud PLLCLK=48 MHz -> E-klocka = 24 MHz BR PLLCLK / 2 16 baudrate baudrate PLLCLK / 16 BR 2 9 600 6 24 10 16 9600 156,25 6 24 10 16 156 9615, 6 24 10 16 157 9585 Eclock: EQU 24000000 ; 24 MHz ; BaudRate register värden, baseras på PLL-klocka Baud9600: EQU (Eclock/(16*9600)) 29