8051 based microcontroller

Slides:



Advertisements
Verwante presentaties
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 5 - onderwerpen •DB038 hardware : toetsenbordje.
Advertisements

Programmeren en Software Engineering 2
Embedded systemen Embedded software.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
PROS2 Les 2 Programmeren en Software Engineering 2.
Par. 3.1 Computers zijn overal
8051 based microcontroller
HCC PC gebruikersgroep: Practical Electronics, Maarssenbroek I2CI2CI2CI2C Wat kun je ermee?
Week 1: overzicht computersysteem-organisatie
Ingebedde systemen (embedded systems)
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
Elektor Proton Robot RTC West-Vlaanderen 1 oktober 2013
Microcontrollers 8051 based microcontroller
ADuC8xx MICROCONVERTER
Les 5 - onderwerpen Aansturen van vier 7-segment displays
Auteursomgeving voor Digitale Componenten
Week 6: Invoer / uitvoer “devices” adresdecodering
De microcontroller Door Klaas De Nys.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
PROS2 Les 14 Programmeren en Software Engineering 2.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.

5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 6(1): Invoer.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Assembly-taal Namen:Danny van Waes Rohan Schenk Klas:EM4 Docent:Dhr. Ing. JA Verhage Embedded systems.
Flight 68K Temperatuur geregelde ventilator
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Afstudeerproject ETHERFLOW:
Les 2: Zaterdag 24 mei 2014 Wim Peeters
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Onderwerp: PIC assembler programmeren
Les 1: Zaterdag 10 mei 2014 Wim Peeters
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB027 hardware : LEDs en displays.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Anton van den Noort1 FOTOSHOWS MAKEN HCC DEVENTER.
Ontstaan en werking van het internet De Cloud. Inhoud Geschiedenis Computer Ontstaan internet Werking internet The Cloud Toepassing.
Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 01/2016 Roggemans M. (MGM)
H01: Informatie Digitaal Toetsweek1 : VT41, 50 min.
Microcontrollers Labo
Programmeren.
Kennismaking met programmeren
Programmeren met Reeksen
3 Hardware 3.1 De processor en intern geheugen
Kennismaking met programmeren
INGEBRUIKNAME & TESTEN
Embedded systemen Programmeren op de Arduino Les 1
INGEBRUIKNAME & TESTEN
Wat gaan we doen? Herhaling ARM assembler instructies
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Netwerken & Internet 3.
Transcript van de presentatie:

8051 based microcontroller Microcontrollers 8051 based microcontroller XC888 from Infineon 09/2015 Roggemans M. (MGM)

Situering van het vak Embedded systemen Hardware georiënteerd Hoort bij interfacetechnieken Basis voor embedded systemen derde jaar Basis voor “C” programmeren Specifieke uitwerking onderdeel computersystemen

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 (www.GROG.be): thuis lezen als herhaling/voorbereiding les (min 5X) XC888 condensed ( FTP://telescript.thomasmore.be) Stick: bevat info van telescript (onmisbaar in labo) bevat eigen programma’s (onmisbaar in labo) XC888 microcontroller kit met USB kabel (onmisbaar in labo) Slides (PPT) (beknopte versie cursus (TOLEDO of FTP))

Examenverloop en quotering Evaluatie Zie labo Examenverloop en quotering

Concept embedded oplossing probleem

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

Blokdiagramma computersysteem

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

Basis 8051

XC888

XC888

Memory map 8051 (XC888)

XC888

Memory map 8051 (XC888) General Purpose Registers

Memory map 8051 (XC888) Onderste 128 GPR’s

Memory map 8051 (XC888) SFR’s “oude” 8051

Memory map 8051 (XC888) SFR’s XC888

Memory map 8051 (XC888)

Effectieve geheugenkaart XC888

De MOV instructies Mnemonic OP-CODE Uitvoeringssnelheid Symbolische werking

Alle MOV instructies (tussen registers met 8 bit getallen)

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware XC888 bord

Hardware schakelaars & LED’s

MOVC & MOVX

DPTR instructies

DJNZ of lussen tellen

CJNE of getallen testen

XCEZ ; standaard I/O: ; initdipswitch klaar zetten poort 4 voor gebruik met de dipswitch ; initftoetsen klaar zetten 4 functieschakelaars onderaan scherm ; initleds klaar zetten LED's als outputs

XCEZ ; I2C interface (minimale interface op 100kbit/s) enkel master mode!! ; initiic klaar zetten iic interface ; iicstart genereren van een startconditie op iic poort ; iicstop genereren stop conditie op iic poort ; iicinbyteack lezen van 1 byte met ack (accu=output) ; iicinbytenack lezen van 1 byte met nack (accu=output) ; iicoutbyte schrijven van 1 byte (accu=input, c=waarde ack bit slave)

XCEZ ; LCD interace ; initlcd klaar zetten LCD voor gebruik (incl i2c init) ; 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 ; lcdlighton backlight aan ; lcdlightoff backlight uit ; lcdbuzon buzzer aan ; lcdbuzof buzzer uit

XCEZ ; Seriële interface (via USB stekker!!) ; 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!

XCEZ ; ADC ; initadc klaar zetten ADC voor minimaal gebruik ; adclm335 uitlezen lm35 (a-b) bevat resultaat ; adcpotmeter uitlezen van de potmeter (a-b) bevat resultaat

XCEZ ; 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

XCEZ ; Diverse ; delaya0k05s tijdsvertraging (waarde in accu)*0,05s ; delay1ms tijdsverraging 1 milliseconde ; delay10us tijdsvertraging 10 microseconde ; XCsw2xtal overschakelen rc naar kristal (Pauwels Danny) ; mapregs selecteer de SFR's in de mapped area ; nomapregs selecteer de SFR's in de non-mapped area

Talstelsels Getal=voorstelling!! Decimaal getal: Binair 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: BCD 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

Basis stack werking

subroutine aanroepen

STACK bij CALL en RET

ADC

ADC SAR

ADC sample and hold

ADC 1LSB 1LSB= Vref/(aantal schaaldelen) 5v/1024=0,0048828125v

XC888 ADC

XC888 ADC

Timers 0 & 1

Timers 0 & 1

Timers 0 & 1

Timers 0 & 1

Timers 0 & 1

Timer 2 (21) Up-down count with reload

Timer 2 (21) capture

Timer 2 (21)

CCU 6

CCU 6

CCU 6

CCU 6 Gebruik p3.7 om een PWM signaal te genereren met CCU6 en T13 Initialiseer p3.7 (zie figuur onderaan slide) Initialiseer T13 Lees potmeter en gebruik signaal om PWM in te stellen (10 bit)

CCU 6

CCU 6

CCU 6

CCU 6

CCU 6

CCU 6

CCU 6

Interrupt

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

Interrupt structuur

Interrupt structuur

Periferie die interrupt opwekt CPU scant interrupt inputs Interrupts en prioriteit toelaten

Interrupt vectoren

Algemene opmerkingen interrupt: Per interruptroutine is er een bijkomende flowchart. De interruptroutine onderbreekt het hoofdprogramma. PUSH-POP!! Uitvoeringstijd interruptroutine. Prioriteiten kunnen nodig zijn.

XCEZ ; Seriële interface (via USB stekker!!) ; 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 ; sioinchar inlezen van 1 ascii code in de accu ; sioinbufa inlezen van ascii buffer vanaf adres strtbuf, max 20h karakters!

Seriële poort hardware Controller beschikt over: 2 UART poorten (met LIN mogelijkheid) 2 CAN nodes 1 SPI poort (Synchronous serial channel) 1 IIC poort (maar enkele via bitbanging) LET OP!!! Bij ontwerp XC888 bord werden keuzes gemaakt naar mogelijke level shifters!! Je kan selecteren op welke pinnen SIO naar buiten komt!

PIO

PIO

PIO als input ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; initdipswitch is een subroutine die de pinnen van poort 4 insteld als input met ; pull-up weerstanden ingeschakeld. Hierdoor kunnen schakelaars gebruikt worden naar ; massa zonder extra weerstanden. ; Gebruikt geen registers initdipswitch: push syscon0 ;juiste map selecteren mov syscon0,#004h push port_page ;tijdelijk bewaren (later herstellen) mov port_page,#001h ;selecteer poort page 1 mov p4_pudsel,#0ffh ;selecteer pull_up device mov p4_puden,#0ffh ;selectie inschakelen mov port_page,#000h ;pagina 0 selecteren mov p4_dir,#000h ;poort 4 als input schakelen pop port_page ;herstellen in oorspronkelijke staat pop syscon0 ;pagina terug herstellen ret

PIO als output ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; initleds is een routine die de poort 3 als output schakeld. De LED's ; worden gedoofd (actief laag om ze te laden branden). ; Gebruikt geen registers initleds: push syscon0 ;juiste map selecteren mov syscon0,#004h push port_page ;tijdelijk bewaren (later herstellen) mov port_page,#000h ;selecteer poort page 0 mov p3_dir,#0ffh ;poort 3 als output schakelen pop port_page ;herstellen in oorspronkelijke staat pop syscon0 ;pagina terug herstellen ret

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 (oscillator watchdog, zie verder)

Fail-safe werking: spanningsbewaking (Embedded Voltage Regulator)

Fail safe werking: software bewaking

Fail safe werk-ing: beveiligde bits

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 bewaking ingangsklok

Snelheid processor aanpassen: fsys moet 96MHz zijn

Snelheid processor aanpassen:

Snelheid processor aanpassen:

Snelheid programma deterministisch maken: UITVOEREN ALS: lcall dffch of lcall dfffh

VRAGEN?