Port

 

Atmel Mega

 

Der Atmel Mega 32 hat 4 Ein-/Ausgabeports zu je 8 Bit. Der Atmel Mega 128 hat 6 Ein-/Ausgabeports zu je 8 Bit und ein Ein-/Ausgabeport zu 5 Bit. Jedes Bit der einzelnen Ports kann als Eingang oder als Ausgang konfiguriert werden. Da aber die Anzahl der Pins der Mega 32 Risc CPU begrenzt ist, sind zusätzliche Funktionen einzelnen Ports zugeordnet.

 

 Es ist wichtig, vor der Programmierung die Pinzuordnung zu studieren, da wichtige Funktionen der Programmentwicklung (z.B. die USB Schnittstelle des Application Boards) auf bestimmten Ports liegen. Werden diese Ports umprogrammiert oder sind die zugehörigen Jumper auf dem Application Board nicht mehr gesetzt, kann es passieren, daß die Entwicklungsumgebung keine Programme mehr zur C-Control Pro übertragen kann.

 

 Die Datenrichtung (Eingang/Ausgang) kann mit der Funktion Port_DataDir oder Port_DataDirBit festgelegt werden. Ist ein Pin als Eingang konfiguriert, so kann dieser Pin entweder hochohmig ("floatend") oder mit einem internen Pullup betrieben werden. Schreibt man mit Port_Write oder Port_WriteBit eine "1" auf einen Eingang, so wird der Pullup Widerstand (Bezugspegel VCC) aktiviert, und der Eingang ist definiert.

 

 

Atmel AVR32Bit

 

Im Atmel AVR32Bit gibt es die Ports A bis D, die jeweils 32-Bit breit sind. Jedes Bit der einzelnen Ports kann als Eingang oder als Ausgang konfiguriert werden. Zusätzlich ist es möglich einen PullUp, PullDown, und die Drive Strength einzustellen. Beim AVR32Bit wurden die vom Atmel Mega bekannten Port_DataDir, Port_Toggle und Port_Write Funktionen weggelassen, da in der Praxis ein Schreiben der kompletten 32-Bit eines Ports sehr unhandlich ist.

 

 Es ist wichtig, vor der Programmierung die Pinzuordnung zu studieren, da wichtige Peripherie Funktionen auf bestimmten Ports liegen. Werden diese Ports umprogrammiert, kann es passieren, daß die Entwicklungsumgebung keine Programme mehr zur C-Control Pro übertragen kann.

 

 Beim AVR32 die Port_Attribute Funktion anstatt wie beim Atmel Mega Port_DataDirBit benutzen, um zwischen Eingang und Ausgang umzuschalten.

 

 Wird bei einem Portpin eine Funktion wie z.B. PWM nur temporär benutzt, empfiehlt es sich meist, nach der Abschaltung dem Pin wieder mit Port_Attribute einen definierten Pegel zu geben.