![]() |
AVR-Microcontroller |
|
|
Das APRS Telemetrie Interface Die I2C-Bus Eingangs KanäleDas Interface hat einen I2C-Bus Anschluss für 8 Kanäle. Er ist über die Eingänge PB2 und PB3 des Controllers erreichbar. Er ist als Sonderfunktion der Digitaleingänge 2 und 3 der 2. Gruppe ausgeführt. Wenn der I2C-Anschluss aktiviert wird, stehen die Digitaleingänge und der Spannungsvergleicher nicht mehr zur Verfügung. Der Anschluss PB2 bildet die SCL-Leitung des I2C-Busses und PB3 die SDA-Leitung. Beide Leitungen müssen jeweils über einen 1,8kOhm Pullup-Widerstand mit +5V verbunden werden, weil der I2C-Bus offene Kollektoren verwendet. Die Leitungen sind über den Steckverbinder P16, I2C/Dig, zugänglich:
Um den I2C-Bus verwenden zu können muss er zunächst mit dem Befehl "MI ON" eingeschaltet werden. Weiter muss für jeden verwendeten Kanal die entsprechende I2C-Bus Adresse mit dem Befehl "MI Kanalnummer I2C-Adresse" eingestellt werden. Ein Kanal mit der Adresse 0 wird nicht ausgewertet und ergibt immer den Wert 0. Die Adressen der verschiedenen Bausteine stehen in den entsprechenden Datenblättern. Das Interface unterstützt nur einfache I2C-Bausteine wie den Portbaustein PCF8574 mit 8 Bit Adressierung und 8 Bit Lesedaten. Der Baustein kann nicht geschrieben werden. AdressierungEine Adresse auf dem I2C-Bus besteht aus zwei Teilen. Die oberen Bits sind je nach Baustein vom Hersteller vorgegeben. Darunter kommen einige Bits, die der Benutzer durch die Verdrahtung festlegen kann. Das niederwertigste Bit ist immer 0. Beispiel für den Baustein PCF8574, einen 8 Bit Ein-/Ausgabebaustein:
LesenNach dem Befehl "RI" wird der Wert aller 8 I2C-Kanäle im Sekundentakt über die serielle Schnittstelle ausgegeben. Kanäle mit der Adresse 0 liefern immer 0. Eingabe von "q" beednet die Ausgabe. Die Verbindung zu DIGI_NED wird durch die Ausgabe nicht gestört. Wenn der I2C-Bus nicht aktiviert ist, erfolgt keine Ausgabe von Werten sondern nur die Bemerkung "I2C-Bus off". Konfiguration in DIGI_NEDUm den Kanal in DIGI_NED verwenden zu können, muss er noch über die Kanalmatrix mit einem DIGI_NED-Kanal verbunden werden. Der Befehl "MM DN7=I1" verbindet den DIGI_NED-Kanal 7 mit dem I2C-Kanal 1. Der Kanal muss in der Datei zur Konfiguration von DIGI_NED, "digi_ned.ini", passend definiert werden. Z.B. telemetry: 30 1 lpt1_8/7 DIGI_DEST Also: Sende die Telemetriedaten alle 30 Minuten über Port 1. Quelle für die Daten ist LPT1 im 8 Bit Modus, Analogkanal 1. Der Wert wird von DIGI_NED-Kanal 7 glesen. Es wird an das in DIGI_DEST festgelegte Ziel gesendet. Abfrage auf dem DigieaterMit der Anfrage "tlm a1" lässt sich der Wert afragen, der an dem I2C-Baustein anliegt. Ob der Wert als Analogwert oder als Digitalwert interpretiert werden muss, hängt von der Art des Bausteins ab. Die AuswertegleichungOb und wie auf einen I2C-Kanal die APRS-Auswertegleichung anwendbar ist, hängt ebenfalls von der Art des I2C-Bausteins ab.
|