PIC-Prozessoren -
Input/Output
-Interfaces
zurück zu
PIC-Grundlagen , PIC-Prozessoren , Elektronik
, Homepage
multiplexe
Nutzung
der Pins
zurück:
zu
PIC-Prozessoren
zurück:
zu
PIC-Grundlagen
Einleitung
Die meisten
PICs
besitzen eine Reihe spezieller Interfaces, deren Hardware Input- und
Outputfunktionen
erleichtert. Dazu zählen:
Im Folgenden wird die Nutzung dieser
Schnittstellen
beschrieben.
I/O-Pins (Ports)
Die einfachste I/O-Funktion des PIC
verkörpern
die Ports (PortA ... PortE). Sie stellen jeweils bis zu 8 digitale
Leitungen
bereit, die als digitaler Eingang oder digitaler Ausgang funktionieren
können. An solche Pins lassen sich
z.B.
Tasten oder Leuchtdioden anschließen.
Timer (und
Impulszähler)
Der Name Timer suggeriert, dass es sich um
eine Art Stopp-Uhr handelt, mit der sich zeitliche Abläufe steuern
lassen. Das ist richtig, aber außerdem eignen sich die Timer
eines
PIC auch zum Zählen von Impulsen, die den PIC über eine Pin
erreichen.
Außerdem werden Timer für die Funktionen
des
CCP-Moduls benötigt.
RS232 (USART)
Die serielle Schnittstelle USART (z.B. des
PIC16F87x oder 16F62x) ist eine universelle Schnittstelle für
asyncrone
und syncrone Datenübertragung (USART). Am interessantesten
für
den Baster ist die normale asyncrone RS232-Betriebsart der USART, mit
der
sich der PIC z.B. an die COM-Schnittstellen eines Personalcomputers
anschließen
lässt.
(M)SSP-Bus
Während bei
der asynchronen USART (pro Richtung) nur ein Draht für die
Datenübertragung verwendet wird, sind es bei der synchronen
seriellen Übertragung zwei Drähte:
- Datenleitung und
- Taktleitung
Ein Master
erzeugt auf der Taktleitung einen Übertragungstakt, mit dem auf
der Datenleitung die Bits seriell (und synchron zum Takt) zwischen
Master und Slave übertragen werden. Solche SSP-Schnittstellen
werden oft zur direkten Verbindung zwischen Schaltkreisen eingesetzt.
Es gibt sie in verschiedenen "Geschmacksrichtungen". Einige sind
high-aktiv andere low-aktiv, einige übertragen mit der steigenden
Taktflanke andere mit der fallenden.
Das MSSP-Interface eines PICs ist flexibel einstellbar, und beherrscht
verschiedenste "Dialekte".
Eine Variante des SSP-Busses ist übrigens IIC (I2C).
IIC (I2C)-Bus
Überall,
wo
höchste Geschwindigkeit
kein wichtiges Argument ist, erfreut sich der serielle-Zweidrahtbus I2C
großer Beliebtheit. EEPROMS, ADC sowie viele ICs für Audio-
und Videogeräte lassen sich mit diesem Bus Steuern.
Die bei vielen PICs enthaltene
SSP-Schnittstelle
lässt sich als I2C-Interface benutzen.
nach
oben
USB-Bus
Das ist ein schneller, serieller Bus, der
wohl jedem aus der PC-Technik bekannt ist.
Während die PIC16C-Serie nur USB1.1
(low-speed 1,5 Mb/s) unterstützte gibt es beim PIC18Fxxxx nur
USB2.0
mit full-speed (12 Mb/s) (also nicht mit high-speed).
Da die 14-Bit-Kern-PICs (PIC16Cxxx) mit
USB1.1 keinen Flash-Programmspeicher besitzen, sind sie für mich
als
Bastler uninteressant. Die 16-Bit-Kern-PICs (PIC18Fxxxx) mit USB sind
da
schon wichtiger.
CAN-Bus
Controller Area Network: Das ist ein
schneller serieller
Bus zum Datenaustausch zwischen Geräten. Dieser Bus wird vor
allem
in der KFZ-Technik eingesetzt, da er sehr störfest ist.
ADC-Eingang
Mit den analogen ADC-Eingängen lassen
sich positive Gleichspannungen mit einer Auflösung von 10-Bit
messen.
Das entspricht bei einem Messbereich von 5V immerhin einer
Genauigkeit
von bis zu 5 Millivolt.
analoger Komparator
Ein Komparator ist eine
Spannungsvergleicherschaltung
mit 2 analogen Eingängen und einem digitalen Ausgang. Damit
lässt
sich überwachen, ob eine ananoge Eingangsspannung über eine
Vergleichsspannung
ansteigt oder unter sie absinkt. Die Vergleichsspannung wird entweder
auch
von außen eingespeist, oder mit einer internen Referenzspannungsquelle
erzeugt.
Referenzspannungsquelle
Diejenigen PIC-Typen, die mit Komperatoren
ausgerüstet sind, haben auch einen steuerbaren Spannungsteiler als
Referenzspannungsquelle. Die Spannung lässt sich an
Komperatoreingänge
legen oder auch über ein Pin ausgeben.
Capture /
Compare
/ PWM (CCP)
Capture, Compare und PWM werden mit der
selben
Hardware realisiert, schließen sich also gegenseitig aus. Einige
PICs (z.B. PIC16F87x) haben aber jeweils 2 Capture/Compare/PWM-Module
(CCP1,
CCP2). Dadurch kann ein Modul im Capture- oder Compare- Mode laufen,
währen
das andere Modul im PWM-Mode ist.
Durch Capture und Compare wird
außerdem
der Timer1 blockiert, wärend
PWM den Timer2 benötigt.
Capture
Mit dem Capture-Mode lässt sich
der Zeitpunkt genau bestimmen, zu dem ein Impuls am Port RC2 (RC1)
eintrifft.
Compare
Mit dem Compare-Mode lassen sich am Port
RC2 (RC1) High-Low oder Low-High Flanken mit hoher zeitlicher
Präzision
erzeugen
PWM
Der PWM-Ausgang ermöglicht das
einfache
Erzeugen von Impulsen mit einem einstellbaren Tastverhältnis.
Damit
lassen sich z.B. Schalttransitoren von Transvertern ansteuern.
Multiplexe
Nutzung
der Pins
Wenn man sich mal die Pins eines PIC
anschaut,
so findet man spezielle Pins für Masse (Vss), Betriebsspannung
(Vdd),
den Taktgenerator (OSC1 & OSC2), Reset (MCLR). Alle anderen Pins
gehören
zu den Ports A..E (je nach Größe des PIC) und haben digitale
Input/Output-Funktionen. (In einigen PICs lassen sich auch die MCLR-
und
OSC-Pins
als digitale I/O-Pins nutzen.)
Wo sind denn all die anderen analogen
und
digitalen Interfaces angeschlossen???
Sie verwenden die gleichen Pins, wie die
digitalen Ports. Viele Pins haben also multiple Funktionen. Wie
verhindert
man, dass sich die Interfaces nicht in die Quere kommen?
Input / Output
Auch bei den speziellen Interfaces gibt
es Interfaces mit Ausgängen (RS232-TX, Compare, PWM) und
Eingängen
(Timer, ADC, Komparator, Capture). Ob ein Pin als Eingang oder Ausgang
funktioniert, wird immer durch das zugehörige TRIS-Bit
gesteuert, dessen Funktion im Zusammenhang mit den digitalen I/O-Pins
erläutert
wurde. Wenn ein Pin z.B. als ADC-Eingang benutzt werden soll, so
muß
das zugehörige TRIS-Bit unbedingt auf '1' gesetzt werden. Wird das
vergessen, so funktioniert das Pin zwar immer noch als ADC-Eingang,
allerdings
ist auch der Ausgangstreiber des Pins aktiv und zieht das Pin auf +5V
bzw
0V. Der ADC könnte also nur die Höhe der digitalen Pegel
ausmessen,
was wenig sinnvoll ist.
verschiedene Input-Funktionen an
einem
Pin
Sind verschiedene digitale Eingänge
an ein Pin angeschlossen (z.B. der Timer-Eingang und der digitale
Port-Eingang)
so behindern sie sich nicht gegenseitig. Beide Funktionen können
nebeneinander
benutzt werden, eine Umschaltung ist nicht erforderlich und auch nicht
möglich.
Etwas anders ist das, wenn auch eine
analoge
Eingangsfunktion (ADC-Eingang, Komparator-Eingang) am selben Pin
genutzt
werden soll, wie das z.B. beim PortA oft der Fall ist. Dann ist es
nämlich
normal, dass am Pin über längere Zeit analoge Spannungen
anliegen,
die zwischen exaktem High- und Low-Pegel liegen. Da das zu einer
erhöhten
Stromaufnahme der giditalen Eingangsstufe führen könnte, wird
die digitale Eingangsstufe abgeschaltet, wenn eine analoge
Eingangsfunktion
aktiviert wurde. Wenn man nun z.B. das dem Pin zugeordnete
I/O-Port-Pin
digital ausliest, bekommt man immer '0', auch wenn am Pin 5V anliegen.
Die Umschaltung auf 'analoge
Eingangsfunktion'
wird durch Steuerbits aktiviert, die in den Steuerregistern (SFR)
der analogen Interfaces (ADC, Komparator)
enthalten sind. Nach einem Reset sind die ADC- und
Komparator-Eingänge
auf 'analog' eingestellt! (Analogfalle)
verschiedene Output-Funktionen an
einem
Pin
Einige Interfaces wollen ein Pin als
Output
benutzen (RS232-TX, PWM). Da das gleiche Pin auch zu einem I/O-Port
gehört,
der vielleicht zur gleichen Zeit einen anderen Pegel auf das gleiche
Pin
legen will, ist hier ein Umschalter notwendig. Der Umschalter
wird
jeweils von einem Steuerbit umgeschaltet, das in den
Steuerregistern
(SFR) der speziellen Interfaces enthalten ist. Nach einem Reset sind
die
Umschalter auf die normalen I/O-Ports geschaltet, aber da alle
TRIS-Bits
gesetzt sind, sind ohnehin alle Pins als Eingang initialisiert.
zurück:
zu
PIC-Prozessoren
zurück:
zu
PIC-Grundlagen
zurück zu
PIC-Grundlagen , PIC-Prozessoren , Elektronik
, Homepage
Autor: sprut
erstellt: 03.07.2001
letzte Änderung: 27.05.2004