23 | 02 | 2012
PIC12F675
Sonntag, den 14. März 2010 um 20:30 Uhr

1 Grundlegendes

pic12f675Der PIC™12F675 ist ein Mikrocontroller, der in unterschiedlichen Gehäusen ausgeliefert wird. Mit dem Entwicklungsboard PICkit™ 1 der Firma Microchip wird dieser Baustein für einen 8-Pin-DIP-Sockel ausgeliefert. Die folgende Darstellung gibt nur einen Teil der Eigenschaften und diese verkürzt wieder. Es werden die Informationen gegeben, die für die Programmierung bezogen auf das Entwicklungsboard PICkit™1 notwendig sind. Für weitere Informationen sollte man sich das Datenblatt des Prozessors von der Internetseite der Herstellerfirma Microchip herunterladen.

Der 12F675 stellt für Ein- und Ausgaben 6 Pins zur Verfügung. Wie auf der Abbildung zu erkennen ist, sieht der PIC™ teils unterschiedliche bzw mehrere Aufgaben für ein und denselben Pin vor. Sollen die Pins geeignet verwendet werden beispielsweise als Ein- bzw. Ausgabepins, so müssen diese erst entsprechend initialisiert werden. Die Initialisierung geschieht durch entsprechende Sonderregister. Die einzelnen Pins werden dabei angesprochen wie Speicherplätze. Wie bereits im Kapitel "Der PIC" erwähnt wurde, besitzt auch dieser PIC™ eine Havard-Architektur, d.h. Programmspeicher und Datenspeicher sind klar voneinander getrennt.

Der PIC™ besitzt sowohl einen flüchtigen Datenspeicher (RAM), d.h. er bleibt beim Abschalten der Stormversorgung nicht erhalten, als auch einen nichtflüchtigen Datenspeicher (EEPROM). Der RAM hat eine Größe von 64 Worten, der EEPROM hingegen eine Größe von 128 Worten. Ein Datenwort hat dabei immer eine Breite von 8 bit.

Der Programmspeicher des PIC™12F675 hat eine Größe von 1024 Worten wobei ein Wort eine Breite von 14Bit hat. Da es ein Flashspeicher ist, bleiben die Speicherinhalte also auch nach Abschalten der Stroversorgung enthalten. Der Programmspeicher ist wiederbeschreibbar.

PIC™12F675 kennt nur 35 Befehle. Außer den Sprungbefehlen werden alle Befehle in einem Taktzyklus ausgeführt. Es handelt sich also um einen Prozessor mit eingeschränktem Befehlssatz (RISC-Prozessor). Auch kennt der Microcontroller nur ein Arbeitsregister, das Register W. Zugriff auf Datenspeicher ist nur über dieses Arbeitsregister möglich.

Der Baustein enthält einen Analog-Digitalwandler, es können also Spannungen umgewandelt werden in digitale Worte (10-Bit). Für den Wandler gibt es maximal 4 Kanäle (AN0, AN1, AN2, AN3). Es können alle Ein- bzw. Ausgabepins des Bausteins programmiert werden als digitale Ein- und Ausgänge.

Es kann ein externer Oszillator (Taktgeber) angeschlossen werden (max. 20 Mhz. Pins OSC1 und OSC2). Ein interner Oszillator hat eine Taktfrequenz von 4 Mhz.

 2 Die Speicherverteilung

2.1 Programmspeicher

12f674_speicherverteilungDer Programmspeicher fängt bei 0000H an. Das Programm wird durch ein Programmiergerät (z.b. PICkit™1) in den Flashspeicher übertragen. Wie bereits erwähnt ist der Flashspeicher nicht flüchtig und behält somit seine Inhalte bei Stromunterbrechung. Er ist wiederbeschreibbar und wird blockweise verändert. Die Adresse 0004H des Programmspeichers hat eine besondere Bedeutung da zu dieser Adresse der PIC™ bei der Auslösung eines Interrupts springt.

Der Speicher ist bei den 14-Bit-PIC™ in mehrere Bänke aufgeteilt. Eine Bank umfasst 2KB, abhängig vom Prozessortyp können auf diese Weise maximal 8KB angesprochen werden. Bei dem 12F675 hat der Programmspeicher lediglich eine Größe von 1KB (0000H - 03FFH). Hier bleiben wir also immer in der 1. Bank.

2.2. Datenspeicher

2.2.1. Allgemein

Der Datenspeicher ist bei den 14-Bit-PIC™ in maximal 4 Bänke aufgeteilt. Eine Bank hat bei einem 14-Bit-PIC™ maximal 128 Speicherzellen (00H-7FH). Dabei haben bei diesen Microcontrollern nur die jeweils ersten 32 Bytes einer Bank eine besondere Bedeutung. Sie sind Speicher für Steuerregister (00h-20h), mit denen die Hardware konfiguriert wird. Die Speicherbereiche von 20h bis 7FH sind frei verfügbare RAM-Speicher.

2.2.2 Datenspeicher des 12F675 (RAM)

Der 12F675 verfügt über zwei Bänke. Nicht alle Speicherplätze sind implementiert (siehe Abb. Speicherverteilung). Der Mikrocontroller verfügt über eine über 64 Bytes frei verfügbaren  RAM-Speicher (20h - 5Fh). Der RAM-Bereich von 00h bis 20h ist für Konfigurationsspeicherzellen gedacht (s.o.). Da Daten- und Programmspeicher voneinander getrennt sind, ist 20h Speicher im Programmspeicher eine andere Speicherzelle als 20h im Datenspeicher. Bei dem RAM ("random access memory") handelt es sich um einen Speicher bei dem auf jede Speicherzelle direkt zugegriffen werden kann. Immer zugänglich sind 64 Bytes bei dem 12F675 (20H-5FH).

2.2.3 Datenspeicher des 12F675 (EEPROM)

Neben dem RAM-Speicher gibt es auch noch einen EEPROM-Speicherbereich. Das Wort EEPROM ist die Abkürzung für "Electrically Erasable Programmable Read-Only Memory", was wörtlich bedeutet:" elektrisch löschbarer, programmierbarer Nur-Lese-Speicher. Er ist für Konfigurationswerte geeignet, die für ein Programm wichtig sind. Der Speicherinhalt im EEPROM bleibt bei einer Stromunterbrechung erhalten. In das EEPROM wird während des Programmiervorgangs des Prozessors geschrieben. Die Speicherzelle 00H des EEPROMS entspricht dem Datenspeicher (12F675) mit der Adresse 2100H. Das EEPROM umfasst für den 12F675 128 Bytes.

2.2.4 Wichtige Konfigurationsspeicherzellen des 12F675

Es wurde bereits darauf hingewiesen, dass die Hardware mit Hilfe von speziellen Speichern konfiguriert werden. Wie dies geschieht, wird an Beispielprogrammen in den ersten Lerneinheiten erläutert werden. Beispielsweise ist ein Bit im Register mit dem Namen STATUS für die Bankumschaltung wichtig. Wird das Bit gesetzt, so werden Speciherzellen in Bank1 angesprochen. Ist es nicht gesetzt, wird Bank0 benutzt. Für digitale Ein- und Ausgaben müssen die drei Register GPO, CMCON und TRISI0 konfiguriert werden (s.a. Abb. Speicherverteilung).