microcontrollers 8051 based microcontroller aduc832 from analog devices 12/2011 roggemans m. (mgm)

Post on 08-Jun-2015

222 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microcontrollers

8051 based microcontrollerADuC832 from Analog Devices

12/2011Roggemans M. (MGM)

LES 1

• Doelstellingen:– situering vak, afspraken labo en evaluatie toelichten– concept embedded oplossing probleem– blokdiagramma computersysteem– wat is een microcontroller?– hoe ziet een basis 8051 er uit– ADuC mogelijkheden en blokdiagramma– memorymap 8051/ADuC832– MOV instructies (inwendige adressering)

Situering van het vak

• Embedded systemen• Hardware georiënteerd• Basis automatisering• Basis voor PLC• Specifieke uitwerking onderdeel

computersystemen• Manier van denken

Afspraken Labo Microcontrollers

• Aanwezigheid niet verplicht• Passieve aanwezigheid verboden• Actieve participatie verplicht

• Misbruik infrastructuur verboden:– niet eten of drinken in labo– respect voor apparatuur

• Stiptheid verplicht!!

Cursusmateriaal

• Nederlandstalige cursus:– thuis lezen als herhaling/voorbereiding les (min 5X)

• ADuC_condensed (onmisbaar in labo)

• Stick:– bevat info van telescript (onmisbaar in labo)

– bevat eigen programma’s (onmisbaar in labo)

• ADuC microcontroller kit met kabel (onmisbaar in labo)

• Slides (PPT) (beknopte versie cursus) (onmisbaar in labo)

Evaluatie

• GEEN permanente evaluatie:– lessen zijn er om te oefenen en vragen te stellen

• Open boek examen (praktische opgave):– vak kan je enkel leren door te doen!!!– vak vraagt zekere incubatietijd!!!– blok en examenperiode onvoldoende tijd!!!

• Je mag op het examen alles gebruiken behalve communicatiemiddel of laptop

Examenverloop en quotering

• Opgave beschikbaar op papier (moet je afgeven)• Je moet op de PC’s van het labo werken• Examen duurt 1,5u

Puntenverdeling:• Flowchart (5/20) (DIGITALE BEOORDELING)

• Werkt het programma 100% (5/20) (DIGITALE BEOORDELING)

• Programma (10/20) (ANALOGE BEOORDELING)

Concept embedded oplossing probleemVoedingsspannings-

bewakingSysteemvoeding Systeemclock

T sensor

Vref (DC)

CPU8/16/32 bit

AnalogeI/O

poort

Businterface

JTAGinterface

Timer/Countercircuits

Seriële interface

Debugsysteem (PC)

Adresbus

Databus

Signaalbewerking

Opto-coupler

Digitale I/O poort Digitale I/O poort

Powersavingmodes

Netspanning Batterij

Analogesignalen

SignaalbewerkingAnaloge

ingang

Analogeuitgang

Schakelaar

Galvanischgescheiden

digitale ingang

I2CSPIUSB

UART

MICROCONTROLLER

Externeinterruptingangen

Externebusinterface

Digitale signalen

ADC

DAC

I supply

Concept embedded oplossing probleem

• Universele hardware• Relatie tussen input en output :

• eenvoudig aanpasbaar (software=programma)• kan afhankelijk zijn van input en output (adaptief(remmen voertuig))• kan gebaseerd zijn op ervaringsgegevens (FUZZY)• is aanpasbaar nadat product verkocht is (firmware upgrade)• aanpasbaar aan voorkeuren gebruiker

+, -, x, /logische bewerkingen

voorwaardelijke beslissingen

Input:schakelaarsspanningen

seriëelsensoren

...

Output:spanningen

LED'scontactoren

motorenseriëel

...

Blokdiagramma computersysteem

CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

Wat is een microcontroller?

Voordelen microcontroller (t.o.v. discrete computer)

• Slechts enkele componenten:– eenvoudige PCB– weinig kans op hardware fouten– betrouwbaar– low cost– kleine afmetingen

Nadeel microcontroller (t.o.v. discrete computer):

– minder flexibel (je koopt een totaal pakket, maar er is wel veel keuze)

– minder rekenkracht/geheugen

CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

Basis 8051CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

Memory map 8051

GPR

00000001

0002

00000001

0002

FFFDFFFEFFFF

FFFD

00040003

00040003

FFFFFFFE

XRAMDATA memory

ROMCODE memory

PROGRAMMA

CPU

Registers

SFR

PIOSIOAD

Timers

00

02

FFFE

8180

FEFF

01

8081

Data bus

Adres bus

RD#

WR#

PSEN#

8 bit 8 bit

MOVC@DPTR

MOVX@DPTR

I/O & control

Read/Write16 bit adres 8 bit adres

Read/WriteRead only

Controlebus

Memory map 8051 (ADuC832)

General Purpose Registers

Memory map 8051 (ADuC)

Onderste 128 GPR’s

Memory map 8051 (XC888)

SFR’s “oude” 8051

Memory- map 8051

(ADuC832)

Memory- map 8051

(ADuC832)

Memory map ADuC832

256 bytesregisters

De MOV instructies

Mnemonic OP-CODE Uitvoeringssnelheid Symbolische werking

Alle MOV instructies (tussen registers met 8 bit getallen)

LES 2

• Doelstellingen:– Testen en verdelen van de hardware– Verkennen van de IDE (Integrated design environment) en

WSD software– Overlopen schema’s ADuC bord– maken programma’s (via sjabloon):

• schakelaars naar LED’s• knipperlicht zonder tijdsvertraging (basis uitvoeringstijd instructies)

• knipperlicht vaste snelheid (met delaya0k05s)

• knipperlicht variabele snelheid (met delaya0k05s)

• looplicht variabele snelheid (rotate instucties)• Knight rider (herhaald gebruik rotate instructies)

Hardware ADuC bord

ADuC832 poorten

Les 3

• Doelstellingen:– MOVX en MOVC– looplicht via tabel (DJNZ, CJNE, DB, DPTR)– gebruik van de drivers voor:

• LCD• SIO• Arithmetic

MOVC & MOVX

DPTR instructies

DJNZ of lussen tellen

CJNE of getallen testen

ADuCEZ; LCD interace ; initlcd klaar zetten LCD voor gebruik; lcdoutchar schrijven van ascii code (accu=input); lcdoutbyte schrijven hex waarde accu naar LCD; lcdoutnib afdrukken 4 laagste bits accu op LCD; lcdoutmsga afdrukken ascii string @dptr, tot 000h code

De reële adressen +80hVoor gebruik met driver:00 wordt 80h, 01 wordt 81h,…

ADuCEZ

; Seriële interface; initsio klaar zetten seriële poort 9600 baud; siooutchar afdrukken ascii code (accu=input); siooutbyte afdrkken getal in accu ; siooutnib afdrukken 4 laagste bits accu; siooutmsga afdrukken ascii string @dptr tot 000h code; sioinchar inlezen van 1 ascii code in de accu

; sioinbufa inlezen van ascii buffer vanaf adres strtbuf, max 20h karakters!

ADuCEZ; Arithmetic:; mul16 vermenigvuldigen 2 16 bit getallen; mul32 vermenigvuldigen 2 32 bit getallen; div16 delen 2 16 bit getallen; div32 delen 2 32 bit getallen; add16 optellen 2 16 bit getallen; add32 optellen 2 32 bit getallen; sub16 verschil 2 16 bit getallen; sub32 verschil 2 32 bit getallen; hexbcd8 omvormen 8 bit hex naar bcd; hexbcd16 omvormen 16 bit hex naar bcd; bcdhex8 omvormen 8 bit bcd naar hex; bcdhex16 omvormen 16 bit bcd naar hex

ADuCEZ

; Diverse; delaya0k05s tijdsvertraging (waarde in accu)*0,05s

Les 4

• Doelstellingen– talstelsels– basis wiskundige berekeningen (+,-,x,/, 8 en 16 bit, CY vlag)

– teller op LCD (een decimaal en een hex, stand dip-switches bij op tellen, een decimaal en een hex stand dip-switches er van aftrekken (4 tellers!!))

– uurwerk in uu:mm:ss, met software delay

Talstelsels

Getal=voorstelling!!Decimaal getal:

– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9– waarde afhankelijk plaats getal 123 1 2 3

Binair getal:– 0, 1– waarde afhankelijk plaats getal 1001 1 0 0 1

Talstelsels

Hexadecimaal getal:– 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F– waarde afhankelijk plaats getal FF

BCD getal:– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9– binair gecodeerd: 0000, 0001, 0010, 0011, ...

Talstelsels

Optelling

Verschil berekenen

INC en DEC

Vermenigvuldigen en delen

Les 5

• Doelstellingen:– Overlopen instructieset (adhv. CONDENSED) :

• speciale “verplaats” instructies• logische instructies (ANL, ORL, XRL)• bit-instructies• voorwaardelijke sprongen• stack bij subroutines (LCALL, RET, PUSH en POP)

– Programma looplicht 1 uit 4 via functieschakelaars:• contactdender• overnamecontact

Basis stack

werking

ffh

00h

7fh

80h 80h

ffh

SFR (I/O)GPR

81h=SP85h

Stack ruimte

85h

86h

90h

Eerste byte gebruikt als stack

Wordt niet gebruikt als stack

Indirect adresseerbare registers Direct adresseerbare registers

subroutine aanroepen

LCALL

RET

Subroutine

LCALL

Returnaddress 1

Returnaddress 2

STACK bij CALL en RET

instructie ninstructie n+1instructie n+2instructie n+3call subroutineinstructie n+5instructie n+6

XXYY

Externe controller-geheugen met

instructiesAdres vande

instructies16-bits

Interne controller-geheugen

Stack-pointer register(wijst naar intern

geheugen in decontroller)

07h

08h

09h

0Ah

0Bh

SP+1

SP+1

YYXX

SP na reset

SP 8-bit

subroutine

return

1

2

3

4 5

opslaanLSB

opslaanMSB

Program counter 16-bit

PC = subroutine

6

7

8

9

PChigh =XXSP-1

PClow =YYSP-1

Jump to XXYY

Jump to subroutine

PChigh PClow

Les 6

• Doelstellingen:– principe AD omvorming– mogelijkheden ADC ADuC832– Mogelijkheden DAC ADuC832– lezen potmeter– lezen potmeter als voltmeter tussen 0-5v

ADC

ADC SAR

ADC sample and hold

ADC 1LSB

1LSB= Vref/(aantal schaaldelen)

5v/4096=0,001220703v2,5v/4096=0,000610351v

ADuC832 ADCOutput formaat ADC

ADC SFR’s

ADuC832 ADC

Optionele buffering voor externe signalen.

-beveiliging tegen overspanning

-opvangen capacitieve load S&H

ADuC832 DAC

ADuC832 DAC

DAC SFR’s

Les 7

• Afwerken alle vorige oefeningen• Stellen van vragen

Les 8

• Doelstellingen:– Timers 0, 1 – RTC (TIC)– Oefening:

• Afdrukken van een uurwerk in UU:MM:SS op LCD

Timers 0 & 1 OSC/12

C/T=0

C/T=1

Timers 0 & 1OSC/12

C/T=0

C/T=1

T0 en T1 SFR’s

TMOD register

RTC (TIC)

TIC SFR’s

TIMECON

Les 9

• Doelstellingen:– Uitleg interrupt op 8051 en generiek– Belang van:

• PUSH-POP• uitvoeringstijd• flowchart

– Oefening:• knipperlicht op interrupt, teller LCD in hoofdprogramma• teller lcd in interrupt, looplicht in hoofdprogramma

– Uitleggen hoe interrupt interval instelbaar

Interrupt

Tijd

1 cyclus programma

Test HW Test HW Test HW

Geen test HW Geen test HW Geen test HW

Initialisaties(geen interrupts)

Taak 1

Test HW

Speciaal 1

Speciaal 2

Taak 2

Taak 3

Initialisaties(ook interrupts)

Taak 1

Taak 2

Taak 3

Interruptroutine

Speciaal 1

Speciaal 2

RETI

Met interruptZonder interrupt

Hoofdprogramma

Hoofdprogramma

Neen

Ja

Door hardware opgestart

Interrupts

• Noodzakelijk wanneer hardware niet kan wachten op polling door CPU

• Wordt gegenereerd door hardware:– timers, I/O pinnen, ADC, SIO, system,...

• Initialisatie nodig:– hardware die interrupt zal genereren– CPU

• Er moet een interruptroutine klaar staan

Mogelijke interrupt bronnen en -adressen

-Interrupts zijn HARDWARE GEBEURTENISSEN.

-Een interrupt activeert een interruptroutine (indien ingeschakeld).

-Een interruptroutine moet met een RETI afgesloten worden.

-PUSH en POP kunnen noodzakelijk zijn.

-Interruptroutines zijn beperkt in de tijd.

-Bij meer dan een interruptbron zijn PRIORITEITEN belangrijk.

-Overlappingen in het geheugen moeten vermeden worden.

Interrupt structuur

Standaard 8051 interrupt hardware

Les 10

• Doelstellingen:– Uitleg over stappenmotoren– Uitleg over DC motoren– oefening met stappenmotor– oefening met DC motor

Interface Technieken 84

Digitale output:stappen motoren

Interface Technieken 85

Digitale output:stappen motoren

Interface Technieken 86

Digitale output

Interface Technieken 87

Digitale output

Interface Technieken 88

Digitale output

Interface Technieken 89

Digitale output

Interface Technieken 90

Digitale output:current chopping

Interface Technieken 91

Digitale output (recirculatie)

Interface Technieken 92

Digitale output (braking)

Interface Technieken 93

Digitale output:full step aansturing

Interface Technieken 94

Digitale output:half step aansturing

Interface Technieken 95

Digitale output (microstepping0

Interface Technieken 96

Digitale output:microstepping

Interface Technieken 97

Digitale output:inductieve belasting

Les 11

• Doelstellingen:– Speciale mogelijkheden:

• Fail safe werking– Spanningsbewaking– Software bewaking

• Snelheid processor wijzigen• Low power mogelijkheden (hier generiek bespreken)

– Afwerken oefeningen vorige les

Fail safe werking:• Systeem kan de fout ingaan door:

– storingen in voedingsspanning• spanningsbewaking • overspanningsbeveiliging

– storingen in programmaverloop (externe of interne factoren)

• externe beinvloeding (EMC, EMI)• eventuele bugs in code• uitblijven van verwachte signalen (inputs)

– defect gaan van de hardware (heel duur om op te vangen)

• space, nucleaire toepassingen, ...

– Bewaking van de systeemklok

Snelheid processor aanpassen:

• OSC:– RC, XTAL, TTL-klok– kunnen gekozen worden uit gamma aan

mogelijkheden (toepassingsafhankelijk, wat is beschikbaar in systeem)

• PLL: – aanpassen ingangsklok aan basisfrequentie

hardware

PLLCON

Les 12

• Doelstellingen:– stellen van vragen– afwerken van oefeningen– oplossen specifieke problemen

top related