PIC-Prozessoren - Input/Output -Interfaces


zurück zu PIC-Grundlagen , PIC-Prozessoren , Elektronik , Homepage


 
Einleitung





I/O-Pins (Ports)
(Detailierte Beschreibung)



Timer
(Detailierte Beschreibung)



RS232-Hardware
(Detailierte Beschreibung)
(RS232 per Softwareemulation)
RS232-Grundlagen
SSP-Bus





IIC-Hardware (I2C)
(Detailierte Beschreibung)
(I2C-per Softwareemulation)

USB-Bus
(Detailierte Beschreibung)


USB-Grundlagen
CAN-Bus




CAN-Grundlagen
ADC-Eingang
(Detailierte Beschreibung)
(Spannungsmessung mit Comparator)

Comparator
(Detailierte Beschreibung)



Referenzsspannungsquelle
(Detailierte Beschreibung)



Capure- Eingang /
(Detailierte Beschreibung)



Compare- Ausgang /
(Detailierte Beschreibung)



PWM-Ausgang
(Detailierte Beschreibung)



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.
 
nach oben

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.
nach oben

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.
nach oben

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.
nach oben

(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:
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).


nach oben

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.
nach oben

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.
nach oben

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.
nach oben

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.
nach oben

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.
nach oben

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.

nach oben

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.

nach oben

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