Microcontrollers Theorie



Vergelijkbare documenten
Microcontrollers based microcontroller ADuC832 from Analog Devices. 12/2011 Roggemans M. (MGM)

Microcontrollers Labo

Microcontrollers based microcontroller XC888 from Infineon. 08/2011 Roggemans M. (MGM)

Hoofdstuk 7. Computerarchitectuur

Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

Computerarchitectuur en netwerken. Memory management Assembler programmering

De Arduino-microcontroller in de motorvoertuigentechniek (4)

2 Algemene opbouw van een computersysteem

Basiscursus microcontrollers

scc = b) CD AB

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

De Arduino-microcontroller in de motorvoertuigentechniek (8)

Digitale technieken Microprocessoren

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computertechniek vorige examens

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Registers & Adressering. F. Rubben, ing

Arduino CURSUS. door Willy - 09-juni-2017

BASIS MICROCONTROLLERS. INLEIDING EN ADDENDUM BIJ HET AduC800 DATABOEK.

Interface Technieken. Roggemans M. 2012

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/

ES1 Project 1: Microcontrollers

scc =!F3.!F2 b) CD AB

FORTH op de 80C535 processor met het ATS535 board.

Wat is een busverbinding?

Overzicht Programmeren In Assembler Voor De 8051

Technology, Innovation & Society Delft

8051 Microcontroller Embedded Systemen Een gids voor XC888 toepassingen.

RIOT Remote Internet Operated Terminal. Gebruikers handleiding v1.0 6) De intelligente I/O-controller IOsys.

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

Hoofdstuk 19. Embedded systemen

18 Embedded systemen 1

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

ES1 Project 1: Microcontrollers

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/

Inhoud Auteurs IV Woord vooraf V

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

slides2.pdf April 12,

Hoe werkt een computer precies?

Stappenmotor Interface. Controller

Oefeningen Interpretatie I Reeks 6 : Registermachines

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Software beschrijving Epoluthon 2.0

Antwoorden vragen en opgaven Basismodule

n o F o r t h voor MSP430 Launchpad 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): , verdeeld in vier blokken van 40

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

Getalformaten, timers en tellers

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

De computer als processor

De Arduino-microcontroller in de motorvoertuigentechniek (3)

Beter, Sneller, Mooier. Processoren 12 januari 2015

INHOUD SPI : SERIAL PERIPHERAL INTERFACE ALGEMEEN. Videolessen Deel 3 DATACOMMUNICATIE SPI

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Embedded systems V1.0

Alflex Products B.V. LRN-010-x-C. Payload specificatie

Peripheral Interface Controllers. BRAC clubavond PE2WDO

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

EM2 Microcontroller Project. LED cube

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Microcontrollers. Week 5 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Linux Assembly Uitwerkingen van de vragen en opdrachten

Stapelgeheugen. Processoren 6 maart 2012

Besturingspaneel v Raam E-systeem functie omschrijving v109

Hoe werkt een rekenmachine?

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3)

Microcontrollers Week 5 Interrupts, Timer/Counter 0 Jesse op den Brouw INLMIC/

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

Talstelsels, getalnotaties en Ascii code

Tentamen Computersystemen

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

Liquid crystal display

assembleertaal F. Vonk versie

Examen computerarchitectuur

In deze mannual zal ik het voorbeeld van de Led cube gebruiken maar de principes zijn op alles toepasbaar.

Labo digitale technieken

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

Tweede workshop Arduino

Informatiebundel ADuC832 Motor interface bord MGM/[dp]

Werkbladen voor Arduino workshop 1

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

Digitale en analoge technieken

Studentnummer:... Opleiding:...

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

Talstelsels en getalnotaties (oplmodel)

ES1 Project 1: Microcontrollers

Technische Opleidingen

Sequentiële Logica. Processoren 24 november 2014

Inhoud. 1 De Microcontroller 1. 2 De taal C Declaraties Functies In- en uitvoer Voorwaardelijke opdrachten 41

led 0 aan Opdracht: 1 Opdracht: 4

2 Elementaire bewerkingen

In- en uitgangssignalen van microprocessoren

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.

Transcriptie:

Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 07/2016 Roggemans 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/Les Microcontrollers Aanwezigheid niet verplicht Passieve aanwezigheid verboden Actieve participatie verplicht Misbruik infrastructuur verboden: niet eten of drinken in labo/les respect voor apparatuur Stiptheid verplicht!!

Cursusmateriaal Beschikbaar via: ftp://telescript.thomasmore.be/pub/cdmicrocontrollers/8051/aduc800v3/ Alle materiaal met betrekking op labo en theorie (software, documentatie, oef) ADuC_condensed (onmisbaar in labo en lessen) Nederlandstalige cursus (optioneel): Thuis lezen als herhaling les Stick (minimaal 100MB) : bevat info van telescript (onmisbaar in labo) bevat eigen programma s (onmisbaar in labo) ADuC microcontroller kit kabel (thuis) (onmisbaar in labo) met

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 (laptop, GSM, tablet, lichtsignalen, geluidsgolven, )

Examenverloop en quotering Opgave beschikbaar op papier (moet je afgeven) Je moet op de PC s van het labo werken Examen duurt 1u en 30 minuten Puntenverdeling: Flowchart (5/20) (DIGITALE BEOORDELING) Werkt het programma 100% (5/20) Programma (10/20) (ANALOGE BEOORDELING) (DIGITALE BEOORDELING)

Waarom programmeerbare bouwstenen gebruiken? Input: schakelaars spanningen seriëel sensoren... Microcontroller - PLC - Regelaar Procescomputer Controller - +, -, x, / logische bewerkingen voorwaardelijke beslissingen Output: spanningen LED's contactoren motoren seriëel... 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 X-tal Osc. POR ADRES DECODER ADRESBUS CPU ROM (FLASH) (EPROM) (EEPROM) DATABUS SRAM PAR. POORT TIMER SER. COUNTER POORT

X-tal Osc. POR ADRES DECODER ADRESBUS Basis 8051 CPU ROM (FLASH) (EPROM) (EEPROM) DATABUS SRAM PAR. POORT TIMER SER. COUNTER POORT

Memory map 8051 0000 0001 0002 0003 0004 0000 0001 0002 0003 0004 8 bit 8 bit 00 01 02 Data bus 80 81 Adres bus ROM CODE memory XRAM DATA memory GPR CPU FE FF 80 81 PROGRAMMA SFR PIO SIO AD Timers FE FF FFFD FFFE FFFF FFFD FFFE FFFF Registers Controle bus PSEN# RD# WR# Read only Read/Write MOVC @DPTR 16 bit adres Read/Write MOVX @DPTR 8 bit adres I/O & control

0000 0001 0002 0003 0004 0000 0001 0002 0003 0004 8 bit 8 bit 00 01 02 Data bus 80 81 Adres bus ROM CODE memory XRAM DATA memory GPR CPU FE FF 80 81 PROGRAMMA SFR PIO SIO AD Timers FE FF FFFD FFFE FFFF FFFD FFFE FFFF Registers Controle bus PSEN# RD# WR# Read only Read/Write MOVC @DPTR 16 bit adres Read/Write MOVX @DPTR 8 bit adres I/O & control

Memory map 8051 (ADuC832) General Purpose Registers

Memory map 8051 (ADuC) Onderste 128 GPR s

Memory map 8051 (XC888) SFR s oude 8051

Memorymap 8051 (ADuC832)

Memory map 8051 (ADuC832)

Memory map ADuC832 MOVC A,@A+DPTR Optioneel RAM (niet gebruikt) 256 bytes registers

De MOV instructies Mnemonic OP-CODE Uitvoeringssnelheid Symbolische werking

Alle MOV instructies (tussen registers met 8 bit getallen)

LES 2 Doelstellingen: Overlopen schema s ADuC bord ADuC poorten looplicht via tabel: DB MOVX, MOVC en DPTR DJNZ CJNE

ADuC832 V3 schema s

ADuC832 V3 schema s

ADuC832 poorten

Tabel aanmaken/uitlezen Waar? Hoe? VB: Jef: In FLASH geheugen (ROM) Na DB (Define Byte) in programma ljmp lus ;programma sluiten met lus db db 11111110b ;eerste waarde in tabel 11111101b ;tweede waarde in tabel db 01111111b ;laatste waarde in tabel #include c:\aducgd1.inc

Tabel aanmaken/uitlezen Hoe aangeven in programma waar tabel in geheugen zit? Jef: = adres eerste byte in tabel in geheugen = label in programma Hoe Flash lezen? movc a,@a+dptr ;lees uit code geheugen naar de accu dptr=dptr= pointer die 16 bit adres moet bevatten jef: =16 bit adres in geheugen = label in programma a? Voor de instructie ongekende waarde eerst op 0 zetten mov dptr,#jef ;16 bit adres tabel in dptr laden mov a,#00h ;eerst accu=0 mov a,@a+dptr ;mov a,@0+dptr = steek in accu wat er op adres in dptr staat Na de instructie bevat a de waarde uit de tabel (in vb = 11111110b)

MOVC & MOVX

DPTR instructies

DJNZ of lussen tellen

CJNE of getallen testen

Les 3 Doelstellingen: gebruik van de drivers voor: LCD Arithmetic talstelsels basis wiskundige berekeningen bit, CY vlag) (+,-,x,/, 8 en 16

aducgd1.inc LCD interace tftinit tftoutchar tftoutbyte tftoutnib tftoutmsga tftsetbgcolor tftsetfrcolor tftxpos tftypos klaar zetten LCD voor gebruik schrijven van ascii code (accu=input) schrijven hex waarde accu naar LCD afdrukken 4 laagste bits accu op LCD afdrukken ascii string @dptr, tot 000h code set background color (red= 0-31, green= 0-61, blue= 0-31) set front color (red= 0-31, green= 0-61, blue= 0-31) register voor x adres bij schrijven register voor y adres bij schrijven tftxpos 0-->19 tftypos - 0-6 0 6 19

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

aducgd1.inc ; Diverse ; delaya0k05s accu)*0,05s ; getadc ; ; ; ; ; ; getadc tijdsvertraging (waarde in lees spanning op analoge input meet de spanning op de analoge input waarvan het nummer in de accu (a) staat. input: accu= te meten kanaalnummer (00h-0Fh) output: accu= 8 bit meetresultaat gebruikt: accu

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 4 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)

Indirect adresseerbare registers Direct adresseerbare registers GPR SFR (I/O) ffh ffh 90h Stack ruimte Basis stack werking 86h 85h Eerste byte gebruikt als stack Wordt niet gebruikt als stack 85h 80h 7fh 00h 81h=SP 80h

LCALL Return address 1 subroutine aanroepen Subroutine LCALL Return address 2 RET

Les 5 Doelstellingen: principe AD omvorming mogelijkheden ADC ADuC832 Mogelijkheden DAC ADuC832 Timers 0, 1 RTC (TIC)

ADC

ADC SAR

ADC sample and hold

ADC 1LSB 1LSB= Vref/(aantal schaaldelen) 5v/256=0,01953125..v

Gebruik getadc getadc is een functie: lcall getadc ;roep functie op getadc verwacht input parameter mov a,#xx ;xx=06h voor LM335 (10mV/K) lcall getadc ;xx=07h voor potmeter (0-5v) ;roep functie op getadc geeft resultaat terug na lcall getadc bevat accu 8 bit meetresultaat: 00h=0v - ffh=4,980v ((5/256)x255)

ADuC832 ADC

ADuC832 DAC

ADuC832 DAC

Timers 0 & 1 OSC /12 C/T=0 C/T=1

Timers 0 & 1 OSC /12 C/T=0 C/T=1

RTC (TIC) TIC SFR s

TIMECON

Les 6 Doelstellingen: Uitleg interrupt op 8051 en generiek Belang van: PUSH-POP uitvoeringstijd flowchart Uitleggen hoe interrupt interval instelbaar Uitleg over stappenmotoren Uitleg over DC motoren

Interrupt 1 cyclus programma Tijd Test HW Geen test HW Test HW Geen test HW Test HW Geen test HW

Door hardware opgestart Hoofd programma Hoofd programma Initialisaties (geen interrupts) Initialisaties (ook interrupts) Taak 1 Taak 1 Interrupt routine Neen Test HW Ja Speciaal 1 Speciaal 1 Speciaal 2 Speciaal 2 RETI Taak 2 Taak 2 Taak 3 Taak 3 Zonder interrupt Met 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

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

Minimum programma met interrupt: LED s veranderen elke seconde van toestand Main: org ljmp 0000h main ;startadres programma ;spring naar main org push mov cpl mov pop reti 0053h acc a,p2 a p2,a acc ;adres TIC interrupt (hardware bepaald) ;gaan we gebruiken (even bewaren) ;LED s naar accu ;complementeren ;terug naar LED s schrijven ;accu herstellen ;einde interruptroutine mov sp,#80h ;stackpointer klaar zetten mov p2,#10101010b ;startwaarde LED s naar LED s mov timecon,#01010011b ;zie datasheet voor waarden ;24 uur systeem, seconden als basis, continu laten werken, time interval ;aan, time clock aan, geen keuze mogelijk (anders werkt systeem niet ;naar behoren) mov intval,#1 ;elke seconde interrupt opwekken setb ea ;alle interrupts toelaten mov ieip2,#00000100b ;interrupten RTC inschakelen Lus: ljmp lus ;programma moet blijven hangen

Digitale output: stappen motoren Interface Technieken 71

Digitale output: stappen motoren Interface Technieken 72

Digitale output Interface Technieken 73

Digitale output Interface Technieken 74

Digitale output Interface Technieken 75

Digitale output Interface Technieken 76

Digitale output: current chopping Interface Technieken 77

Digitale output Interface Technieken (recirculatie) 78

Digitale output Interface Technieken (braking) 79

Digitale output: full step aansturing Interface Technieken 80

Digitale output: half step aansturing Interface Technieken 81

Digitale output Interface Technieken (microstepping0 82

Digitale output: inductieve belasting Interface Technieken 83

Einde. Vragen?