Versie 17-01-2003 Ronald Van Ham



Dovnload 260.34 Kb.
Pagina1/6
Datum25.07.2016
Grootte260.34 Kb.
  1   2   3   4   5   6





INLEIDING TOT DE 68HC11 MICROCONTROLLER




VERSIE 17-01-2003

Ronald Van Ham

I N H O U D



0. Doelstelling

1. Wat is een microcontroller ?

2. De basis : Bits en bytes

3. RAM, ROM, PROM, EPROM, EEPROM en Flash geheugen

4. De verschillende types

5. Werkingsmodes

6. Memory Map

7. Machinetaal, assembleertalen en hogere programmeertalen

8. Motorola assembler

9. De parallelle poorten

10. De seriele poort SCI

11. Analoog naar digitaal omzetter

12. Interrupts

13. Timer

14. Pulse Accumulator

15. Real Time Interrupt

16. Het programmeren


17. Programma voorbeelden

18. Opdrachten

Appendix A: 68HC11 Registers

Appendix B: 68HC11 Instruction Set

0. Doelstelling

Het doel van deze cursus is de student aan de hand van een praktisch voorbeeld een duidelijk beeld te geven van wat de mogelijkheden en toepassingsgebieden zijn van microcontrollers. De cursus heeft niet tot doel de student tot een volwaardig programmeur om te scholen, wel zullen de basisinstructies bekeken worden en daarna zal de student deze zelfstandig toepassen in een praktisch project. Dit project zal bestaan uit een gedeelte programmeren, een gedeelte electronica, pneumatica en uiteraard de link tussen beide. De voornaamste eigenschappen van een goed ingenieur waartoe deze cursus tracht bij te dragen is inventiviteit en zelfstandig werken.

Het project zal uitgevoerd worden met behulp van deze inleidende cursus, de 68HC11 Reference Manual en alle mogelijke informatie en voorbeelden die op internet te vinden zijn.

1. Wat is een Microcontroller ?

Een microcontroller is een single chip computer. Dit wil zeggen dat de CPU (Central Processing Unit), geheugen, databus, Input/Output poorten en eventueel D/A- en A/D convertors geïntegreerd zijn in één enkele chip. De toepassingsgebieden zijn zeer uitgebreid. Bijvoorbeeld de PLC (Programmable Logic Controller) bevat een gedeeltelijk voorgeprogrammeerde microcontroller. Een sturing met een microcontroller vindt men ook terug in een recente vaatwasmachine, een programmeerbare hifi-keten, een digitale horloge, een GSM, … . Al deze huishoudelijke toepassingen bevatten microcontrollers waarbij het programma is een onwisbaar geheugen is opgeslagen. De Controller die wij in het labo zullen gebruiken is van het type waarbij het programma in een wisbaar geheugen kan worden opgeslagen. Dit is ideaal voor experimentele en educatieve doeleinden.



2. De basis : Bits en Bytes

Een bit stelt een binaire waarde ‘0’ of ‘1’ voor. Een byte bestaat uit 8 bits welke in één keer gelezen of geschreven kunnen worden. Als we spreken over bit 0 bedoelen we de LSB (Least Significant Bit). Met 8 bits kan men 256 verschillende waarden voorstellen. De 68HC11 kan 64k bytes (65556 bytes) adresseren, hiervoor zijn 16 bits nodig (ook ‘word’ genoemd). Een adres betekent een plaats in het geheugen met een ‘naam’ of ‘adres’ van 16 bits waarin een waarde van 8 bits kan bewaard worden.

Getallen kunnen o.a. decimaal, binair of hexadecimaal voorgesteld worden. In assemblercode wordt voor binaire getallen een ‘%’ en voor hexadecimale getallen een ‘$’ geplaatst.
Decimaal Binair Hexadecimaal

0 %00000000 $00

1 %00000001 $01

2 %00000010 $02

4 %00000100 $04

8 %00001000 $08

16 %00010000 $10

32 %00100000 $20

64 %01000000 $40

128 %10000000 $80



  1. %11111111 $FF

  2. %00000001 00000000 $0100

4096 %00010000 00000000 $1000

32768 %10000000 00000000 $8000

65535 %11111111 11111111 $FFFF
Merk op dat de hexadecimale en de binaire voorstelling snel uit het hoofd om te zetten zijn. Per groep van 4 bits komt één hexadecimaal symbool overeen. De binaire voorstelling is zeer lang, de hexadecimale is veel korter. We zullen dus vooral deze gebruiken.


0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

3. RAM, ROM, PROM, EPROM, EEPROM en Flash geheugen



Random Access Memory : Geheugen dat snel gelezen en gescheven kan worden. Meestal wordt dit gebruikt voor data. Indien de spanning wegvalt wordt het geheugen gewist.
Read Only Memory : Geheugen dat voorgeprogrammeerd is en enkel kan gelezen worden.
Programmable ROM : Rom Geheugen dat één keer kan geschreven worden.
Erasable PROM : Rom geheugen dat door UV-licht gewist kan worden (neemt veel tijd) en daarna kan geherprogrammeerd worden.
Electrical EPROM : ROM geheugen dat elektrisch kan gewist en herschreven worden, byte per byte (veel trager dan RAM).
Flash EEPROM : EEPROM geheugen dan enkel in blokken gewist kan worden (goedkoper).

4. De verschillende types

Er zijn verschillende bedrijven die microcontrollers maken : Motorola, Intel, … . Informatie over alle verschillende microcontrollers is eenvoudig op het internet te vinden. De microcontroller die we als voorbeeld zullen gebruiken is van het type Motorola 68HC11. De 68HC11 bestaat in verschillende versies. De belangrijkste verschillen zijn :




  • verschillende hoeveelheden ROM, RAM, EPROM, EEPROM

  • Verschillende aantal Inputs en Outputs

  • Maximum bus frequentie (klokfrequentie)

  • Aanwezigheid A/D convertor

De Microcontroller die zal gebruikt worden is de MC68HC11E1FN met 32 kilobyte extern RAM geheugen. Deze microcontroller heeft intern 512 bytes RAM en 512 bytes EEPROM, een 8-kanaals 8-bits analoog/digitaal omzetter, 2 Mhz maximum interne bus frequentie. Informatie over de andere modellen kan gevonden worden op Motorola site.



http://www.mcu.motsps.com/
Uitgebreide informatie over de MC68HC11E1FN kan gevonden worden in de 68HC11 Reference Manual op de Motorola Site. Volgende bestanden zijn zeer goede referenties:

M951447430763colleteral.pdf (2742k,332p)

M951447501688colleteral.pdf (4072k,512p)
De pinconfiguratie en interne opbouw van de 68HC11 wordt op volgende figuren geschetst.


5. Werkingsmodes

De 68HC11 kan in 4 verschillende modes werken. Afhankelijk van de ingangen ‘mod a’ (pin 3) en ‘mod b’ (pin 2) bij reset wordt de microcontroller in één van deze modes opgestart.




MOD B

MOD A

Mode

Bootloader

Extended Mem

Special Mode

1

0

Single Chip

0

0

0

1

1

Expanded Multiplexed

0

1

0

0

1

Special Test

0

1

1

0

0

Special Bootstrap

1

0

1

/

/

Special Expanded Bootstrap

1

1

1

De bootloader is een intern ROM programma dat het mogelijk maakt uw eigen programma in te laden en dat onzichtbaar is tenzij de ‘bootloader on bit’ hoog is gezet in het option register. Dit kan enkel tijdens reset en in speciale modes. De bit die aangeeft dat de adres bits en data bits via poort B en C naar buiten worden gebracht en dus naar het extern geheugen moeten gestuurd worden, wordt automatisch gezet tijdens de reset in Expanded Multiplexed Mode en Special Test Mode. Maar ook in Special Bootstrap kan deze bit gezet worden. Dit is interessant omdat we zo een programma via de bootloader in het extern geheugen kunnen laden. Strikt gezien werken we dus niet meer in Special Bootstrap Mode, maar in ‘Special Expanded Bootstrap Mode’. Deze benaming wordt in de referentiewerken niet gebruikt, maar wordt hier ter verduidelijking ingevoerd.


De microcontrollers van het type dat wij zullen gebruiken kunnen bij gebrek aan intern geheugen voor de interruptvectoren(zie verder) niet in Single Chip Mode werken. Special Bootstrap Mode is een speciale mode waarbij de boatloader (Absolutely Binairy Loader, zie cursus informatica) zichtbaar is. Deze zorgt ervoor dat de eerste 256 of 512 bytes(afhankelijk van het type) die ontvangen worden via de seriële poort geplaatst worden in het interne RAM geheugen. Nadat dit volledig gebeurd is wordt het ingeladen programma gestart. Dit juist ingeladen programma kan er dat voor zorgen dat je eigen programma dan via de seriële poort van de PC in de juiste plaats in de EEPROM of RAM kan geschreven worden. Als de microcontroller dan gereset wordt en het eerste karakter dat binnenkomt via de seriele poort is $00, dan start de Bootloader het programma in de EEPROM. Expanded Multiplexed Mode houdt in dat wanneer uw programma verwijst naar een geheugenplaats buiten de interne RAM, ROM, EPROM of EEPROM, de adres- en databits via de poorten B en C (zie verder) naar buiten worden gebracht en bijvoorbeeld worden verbonden met een extern geheugen. De microcontroller die wij zullen gebruiken heeft 32K bytes externe RAM. In deze mode moeten we wel zorgen dat in adres $FFFE en adres $FFFF het beginadres van ons programma zit. Dit is de zogenaamde ‘reset interrupt vector’(zie verder). Een vierde werkingsmode is de Special Test Mode. In deze mode wordt wel het extern geheugen bereikbaar, maar is de interne bootloader niet beschikbaar. Omdat we deze bootloader toch wensen te gebruiken en ook het extern geheugen zullen we dus werken in een gemixte mode, die we enkel via de Special Bootstrap Mode kunnen bereiken. De mode zullen we de Special Expanded Bootstrap Mode noemen.



  1   2   3   4   5   6


De database wordt beschermd door het auteursrecht ©opleid.info 2017
stuur bericht

    Hoofdpagina