AdvaBoard Kit - Entwicklungs-/Ausbildungsplattform
AdvaBoard-Kit
Artikel-Nr.: 4160
Das AdvaBoard-Kit ist eine etwa DIN A4 große Kombination aus Raspberry Pi, AdvaBoard RPi1 und 5.0" (126mm) TFT-Display inkl. Touchscreen, erweitert um eine Tastatur, Potis, LEDs, einen Temperatur- und Helligkeitssensor (optional) und einige weitere Komponenten, eingebaut in ein solides, antistatisches Gehäuse mit transparenter Frontplatte.
Es eignet sich somit ideal zu Ausbildungszwecken (z.B. in Berufsschulen), als Entwicklungs- und Testplattform oder für Demo-Anwendungen.
Es besteht standardmäßig aus:
- Raspberry Pi
- AdvaBoard RPi1
- TFT-Display TFT50 (5.0" / 126mm) inkl. Touchscreen
- USB 2.0-Hub (aktiv)
- Audio-Lautsprecher inkl. Verstärker
- Tastenfeld (0-9*#), 2 Potis, 4 LEDs (dimmbar), Piezoschallwandler
- I2C-Temperatur- und Helligkeitssensor (optional)
- Gehäuse mit:
- antistatischer Grundplatte
- antistatischer, transparenter, schlagzäher Polycarbonat-Frontplatte
- Seitenteilen aus (nicht-eloxiertem) Aluminium
- 4 Gummifüßen
- herausgeführten Schnittstellen: HDMI, Cinch, Ethernet, 4*USB (via Hub), RS-232 (inkl. RS-232-TTL-Wandler), RS-485, I2C, Analog-/Digital-I/Os
- Batteriehalter CR2032 (z.B. für die Echtzeituhr)
- Platz für optionale Erweiterungen
- SD-Karte inkl. installierter und konfigurierter Software
- Steckernetzteil 5V / 3A, Touchscreen-Stift, RS-232-Nullmodem
Details
Das AdvaBoard-Kit wurde um das AdvaBoard RPi1 und ein daran angeschlossenes TFT-Display herum entworfen, und bietet damit alle Funktionen des AdvaBoard RPi1. Mehr Informationen hierzu finden Sie in der Dokumentation des AdvaBoard RPi1 und der TFT-Displays.
Zusätzlich sind sämtliche Schnittstellen des Raspberry Pi (außer dem GPIO-Header und der Audio-Klinkenbuchse) auf Steckverbinder am Gehäuse geführt, so dass externe Geräte einfach angeschlossen werden können. Für die RS-232-TTL-Schnittstelle des Raspberry Pi ist hierbei zusätzlich ein Pegelwandler eingebaut, so dass RS-232-Geräte mit Standardpegeln an das AdvaBoard-Kit angeschlossen werden können. Der eingebaute aktive USB 2.0-Hub ermöglicht zudem den direkten Anschluss von bis zu 4 USB-Geräten mit je max. 500mA. Um auch den Audio-Ausgang des Raspberry Pi nutzen zu können, ist außerdem ein kleiner Audio-Verstärker inkl. Lautsprecher im AdvaBoard-Kit eingebaut.
Ebenso sind die I2C-Schnittstelle, die RS-485-Schnittstelle und die Analog- und Digital-I/Os des AdvaBoard RPi herausgeführt, so dass externe I2C-Sensoren, RS-485-Geräte, Schalter, Taster usw. direkt an das AdvaBoard-Kit angeschlossen werden können.
Sollten die Funktionen des AdvaBoard RPi1 für eine Anwendung nicht ausreichen, so kann das AdvaBoard-Kit mit diversen Erweiterungen (z.B. zusätzliche Digital- und Analog-I/Os, Relais, weitere Sensoren, CPLD- oder Mikrocontrollerplatinen) nachgerüstet werden. Im AdvaBoard-Kit ist hierbei Platz für bis zu 5 derartige Erweiterungen vorgesehen. Zusätzlich können externe Erweiterungen (per I2C oder RS-485) an das AdvaBoard-Kit angeschlossen werden.
Speziell für einfache Anwendungen und für Ausbildungszwecke sind zudem eine kleine Tastatur, zwei Potis, und 4 (per PWM dimmbare) LEDs eingebaut, die per I2C angesprochen werden können. Daneben ist natürlich die Bedienung des Geräts per Touchscreen möglich.
Beim Gehäuse wurde stark darauf geachtet, dass dieses solide und antistatisch ausgelegt ist: Es besteht aus einer robusten und antistatischen Grundplatte, nicht-eloxierten Seitenteilen aus Aluminium, sowie einer transparenten, schlagzähen und antistatischen Frontplatte aus Polycarbonat. Durch die transparente Frontplatte sind nahezu alle Komponenten gut sichtbar. Die Größe des Gehäuses (ca. 290 × 215 × 54..87mm) ist mit einer Grundfläche von in etwa DIN A4-Größe recht handlich.
Als Stromversorgung für das komplette Gerät (inkl. AdvaBoard RPi1, Raspberry Pi und USB-Hub) dient ein 5V-Steckernetzteil.
Das AdvaBoard-Kit wird komplett mit SD-Karte und darauf installierter Software geliefert. Nach dem Einschalten bootet der Raspberry Pi und auf dem eingebauten Display erscheint die Linux-Kommandozeile bzw. eine Linux-Desktopoberfläche, die sofort per Touchscreen bedient werden kann. Neben den C- und Python-Bibliotheken ist zudem speziell für Ausbildungszwecke eine Java-Bibliothek enthalten, mit der auf das AdvaBoard RPi1 zugegriffen werden kann.
Kundenspezifische Anpassungen des AdvaBoard-Kits (sowohl bzgl. Hardware als auch bzgl. Software) sind nach Absprache möglich.
Preis / Lieferzeit
- Lieferumfang:
- AdvaBoard-Kit (Gehäuse inkl. aller eingebauter Komponenten)
- Steckernetzteil 5V / 3A
- Touchscreen-Stift
- RS-232-Nullmodem (Stecker/Stecker)
- Knopfzelle CR2032
- SD-Karte inkl. Software
- Preis:
- auf Anfrage
- Lieferzeit:
- auf Anfrage
Zubehör / Erweiterungen
In das AdvaBoard-Kit können bis zu 5 Erweiterungsplatinen eingebaut werden. Diese Erweiterungsplatinen sind jedoch nicht AdvaBoard-Kit-spezifisch, sondern können auch getrennt von diesem verwendet werden.
Zudem ist es möglich, extern verschiedene Geräte (z.B. per I2C oder RS-485) an das AdvaBoard RPi1 anzustecken.
- Zubehör:
- I2C-Steckverbinder / -Kabel (DB-9 mit Flachbandkabelanschluss)
- I2C-Adapter auf Federklemmen bzw. Schraubklemmen
- I/O-Steckverbinder / -Kabel (DB-25 Flachbandkabelanschluss)
- I/O-Adapter auf Federklemmen bzw. Schraubklemmen
- RS-485-Steckverbinder / -Kabel
- Erweiterungen:
- E-SPI-Erweiterungsplatine mit 4 Relais
- RS-485-Erweiterungsplatine mit 4 220V-Relais und S0-Schnittstelle
- I2C-Erweiterungsplatine mit programmierbarem Mikrocontroller:
- 8 hochauflösende Analog-Eingänge (16 Bit, 1 ksps; optional 24 Bit)
- 2 Analog-Ausgänge (D/A-Wandler, 8 Bit, 0..0.25/0.5/1.0/2.0mA, max. 2V),
alternativ als Digital-I/O verwendbar - 6 Digital-Ein-/Ausgänge (konfigurierbar als Eingang, Ausgang (Push-Pull oder Open-Drain), SPI, UART, PWM, Timer, Counter usw.)
- inkl. SiLabs 8-Bit-Mikrocontroller C8051F353 / C8051F351
- für dezentrale oder echtzeitkritische Aufgaben
- per AdvaBoard programmierbar (C2-Interface)
- E-SPI-Erweiterungsplatine mit programmierbarem Mikrocontroller und
programmierbarem Xilinx CPLD:
- inkl. Xilinx CPLD XC9572XL
- inkl. SiLabs 8 Bit-Mikrocontroller C8051F35x
- für schnelle I/Os
- für I/Os mit hardwareunterstützter Verarbeitung (z.B. 2-Phasen-Counter, PWM, serielle/parallele Schnittstellen etc.)
- per AdvaBoard programmierbar (JTAG-/C2-Interface)
- I2C-Sensoren, z.B. Temperatursensor, Temperatur-/Feuchtesensor, Beschleunigungssensoren, Bewegungsmelder, Gassensoren, ...
- I2C-Verteiler, -Switches, -Buffer und galvanische Trennungen
- aktiver I2C-Pullup zur Verlängerung von I2C-Leitungen (bis 5000pF)
- Automatisierungs-Baukasten per RS-485 oder E-SPI (I/O, Relais, Motoren, digitale Messuhren, Thermoelement-Interfaces, Mechatronik-Komponenten, ...)
- ...
Software
Bei der Software für das AdvaBoard-Kit handelt es sich um eine Raspbian-Linuxdistribution sowie die gleiche Software wie beim AdvaBoard RPi1. Nähere Informationen hierzu finden Sie bei der AdvaBoard RPi1-Software.
Die Software (aktuelles Raspbian + AdvaBoard RPi1-Software) ist bereits auf der beiliegenden SD-Karte installiert und konfiguriert (inkl. Touchscreen-Kalibrierung). Damit bootet der Raspberry Pi des AdvaBoard-Kits direkt nach dem Anschluss des Netzteils, und auf dem eingebauten Display erscheint die Linux-Kommandozeile bzw. eine Linux-Desktopoberfläche, die sofort per Touchscreen bedient werden kann.
Das AdvaBoard RPi1 des Kits kann über die mitgelieferten bzw. als Download verfügbaren Bibliotheken und Programme per C, Python, Java oder Shell-Skript angesprochen werden.
Informationen zur installierten Linux-Distribution:
- Distribution: Raspbian 2013-09-25 (2013-09-25-wheezy-raspbian, Download-Seite),auf aktuellen Stand aktualisiert (apt-get update / upgrade)
Kernel: 3.6-trunk-rpi
Einstellungen: deutsche Tastatur, deutsche und englische Locales, HDMI-Grafikspeicher auf 16 MB reduziert
inkl. installierter AdvaBoard RPi1-Treiber/-Software
- Login: Nutzername pi, Passwort raspberryDiese Standard-Logindaten sollten spätestens nach einem Test geändert, bzw. andere Nutzer angelegt und der Nutzer pi gelöscht werden; andernfalls ist ein Login durch jedermann und selbst über das Netzwerk möglich!
Login per SSH aktiviert
root-Zugriff per Login als Nutzer und sudo bash
Start der graphischen Benutzeroberfläche auf dem integrierten Display per Login und startx
- Weitere Konfiguration: per sudo raspi-config(z.B. Änderung der Spracheinstellungen bzw. standardmäßiges booten in die graphische Desktop-Umgebung)
technische Informationen
Gehäuse
Komponenten / Steckverbinder
Die folgende Abbildung zeigt alle elektrischen Komponenten des AdvaBoard-Kits und ihre wichtigsten Verbindungen untereinander:
(zum Vergrößern anklicken)
Stromversorgung
Die Stromversorgung erfolgt über den 5V-Netzteilanschluss, im Normalfall mit einem Steckernetzteil mit 5V / 3A. Dieses versorgt:
- das AdvaBoard RPi1, das wiederum den Raspberry Pi, das TFT-Display, den Audio-Verstärker, den RS-232-TTL-Wandler und die weiteren angeschlossenen Komponenten mit Strom versorgt, und
- den USB 2.0-Hub (5V / 2A)
Zusätzlich kann eine CR2032-Knopfzelle (3V) verwendet werden, um Teile des AdvaBoard RPi1 (insbesondere die Echtzeituhr) bei ausgestecktem Netzteil zu versorgen.
Sofern der rote RPi5V-Jumper auf dem AdvaBoard RPi1 gesetzt ist, wird der Raspberry Pi immer mit Strom versorgt, wenn das Netzteil angeschlossen ist. Wird dieser Jumper entfernt, so kann der Raspberry Pi vom AdvaBoard RPi1 (z.B. zeit- oder ereignisgesteuert) ein- und ausgeschaltet werden. Allerdings ist in diesem Fall zu beachten, dass eine Fehlkonfiguration des AdvaBoard RPi1 dazu führen kann, dass der Raspberry Pi nicht mehr eingeschaltet werden kann.
Sollten Sie den Raspberry Pi vom AdvaBoard RPi ein- und ausschalten wollen, jedoch einen Schutz gegen eine Fehlkonfiguration benötigen, so kontaktieren Sie uns bitte unter support@advamation.de.
5V-Netzteil-Steckverbinder: Hohlstecker 5.5mm/2.1mm
Kontakt | Signal | Beschreibung |
---|---|---|
außen | GND | Masse |
innen | +5V | +5V |
Raspberry Pi
Der Raspberry Pi wird vom AdvaBoard RPi1 mit Strom versorgt (siehe Stromversorgung). Die meisten Schnittstellen des Raspberry Pi sind auf Steckverbinder auf der Rückseite des Gehäuses herausgeführt. Mehr Informationen zum Raspberry Pi finden Sie auf unserer Technik-Seite zum Raspberry Pi.
AdvaBoard RPi1
Das AdvaBoard RPi1 ist die zentrale Komponente des AdvaBoard-Kits. Technische Informationen zum AdvaBoard RPi1 finden Sie in der Dokumentation des AdvaBoard RPi1.
TFT-Display TFT50
Beim eingebauten TFT-Display handelt es sich um das TFT50-Display (5.0" / 126mm) mit einer Auflösung von 800|x|480 Pixeln und einem integrierten Touchscreen.
Die Bedienung ist entweder per Finger oder per mitgeliefertem Stift möglich, wobei der Stift eine exaktere Bedienung ermöglicht.
Das Display und der Touchscreen sind im Auslieferungszustand bereits per Software passend konfiguriert, so dass diese direkt als Linux-Display bzw. Linux-Touchscreen funktionieren.
HDMI, Cinch
Per HDMI kann an den Raspberry Pi (und somit an das AdvaBoard-Kit) ein handelsüblicher digitaler TFT-Monitor angeschlossen werden.
Dieser HDMI-Monitor kann gleichzeitig mit dem eingebauten TFT-Display betrieben werden (Multi-Monitor-Betrieb), und es wäre durchaus möglich, auf beiden Monitoren z.B. Linux-Desktopumgebungen laufen zu lassen. Zusammen mit einer USB-Tastatur und einer USB-Maus wäre es hiermit sogar möglich, auf dem HDMI-Display Software für das AdvaBoard-Kit zu entwickeln, und diese dann auf dem eingebauten Display laufen zu lassen, ohne dass ein ein zusätzlicher Rechner notwendig wäre (sofern die Geschwindigkeit des Raspberry Pi für die Entwicklungsumgebung ausreicht).
Alternativ zum HDMI-Monitor (jedoch nicht gleichzeitig) ist der Anschluss eines Monitors bzw. Fernsehers per "Composite-Video"/Cinch-Kabel möglich. Die Anzeigequalität auf derartigen Monitoren ist jedoch erheblich schlechter als auf HDMI-Monitoren. (siehe auch: http://www.advamation.de/technik/raspberrypi/#tft-display).
Ethernet
Der Raspberry Pi enthält eine 100 MBit Ethernet-Schnittstelle, die an die Rückseite des AdvaBoard-Kits herausgeführt ist.
Raspbian ist hierbei standardmäßig so konfiguriert, dass beim Booten eine IP-Adresse per DHCP angefordert und das Netzwerk entsprechend konfiguriert wird. Zudem läuft standardmäßig ein SSH-Server, so dass ein Login in den Raspberry Pi bzw. das AdvaBoard-Kit über ein Netzwerk per SSH möglich ist.
Die Standard-Logindaten (pi / raspberry) der Raspbian-Distribution sollten deshalb möglichst bald durch andere Logindaten ersetzt werden, da andernfalls jedermann, der Zugriff auf das Netzwerk hat, sich in den Raspberry Pi einloggen kann.
USB
Das AdvaBoard-Kit enthält einen aktiven USB 2.0-Hub mit 4 Anschlüssen. Der USB-Hub wird durch das 5V-Netzteil des AdvaBoard-Kits mit Strom versorgt, so dass an jedem der 4 USB-Anschlüsse je 500mA zur Verfügung stehen.
Diese USB-Anschlüsse können beispielsweise zum Anschluss einer USB-Tastatur, von USB-Speichersticks, WLAN- und UMTS-Sticks oder anderer USB-Peripherie verwendet werden. Beim Anschluss externer USB-Festplatten sollte jedoch darauf geachtet werden, dass deren maximaler Strom die erlaubten 500mA nicht überschreitet (was leider von vielen USB-Festplatten nicht eingehalten wird). Vom Anschluss mittels sogenannter "Y-Kabel" muss gewarnt werden, da auch mit diesen Kabeln nicht mehr als 500mA zur Verfügung stehen, und die Y-Kabel jede USB-Spezifikation verletzen.
Audio
Um den Audio-Ausgang des Raspberry Pi ohne externe Lautsprecher verwenden zu können, ist im AdvaBoard-Kit auf der linken Seite ein kleiner Lautsprecher (inkl. Verstärker) integriert. Dieser Lautsprecher ist dabei eher für Signaltöne und weniger für eine hochqualitative Wiedergabe von Musik gedacht, und gibt den linken Kanal eines Stereosignals aus; der rechte Kanal wird ignoriert.
Sollen externe Lautsprecher oder ein Mikrofon an den Raspberry Pi angeschlossen werden, so empfiehlt es sich, diese per USB-Soundstick an das AdvaBoard-Kit anzuschließen. Viele der erhältlichen USB-Soundsticks werden direkt von Linux unterstützt; im Zweifelsfall können wir Ihnen USB-Soundsticks empfehlen, die mit dem Raspberry Pi funktionieren.
RS-232
Der Raspberry Pi besitzt eine RS-232-Schnittstelle mit TTL-Pegeln. Um RS-232-Geräte mit "normalen" Pegeln daran anschließen zu knnen, ist im AdvaBoard-Kit ein RS-232-TTL-Pegelwandler eingebaut.
Standardmäßig ist die RS-232-Schnittstelle des AdvaBoard-Kits als Buchse bzw. DCE/DÜE (Datenübertragungseinrichtung) ausgeführt. Um diese Schnittstelle auch als DTE/DEE (Datenendeinrichtung) nutzten zu können, wird ein RS-232-Nullmodem mitgeliefert, das direkt auf die RS-232-Buchse gesteckt werden kann.
Zu beachten ist, dass gleichzeitig immer nur entweder die RS-232 oder die RS-485-Schnittstelle verwendet werden kann. Es ist jedoch möglich, per Software zwischen den beiden Schnittstellen umzuschalten, z.B. per Kommandozeilenprogramm:
# Umschalten auf RS-232: sudo am_rpi_advaboard_tool -m RS485_CFG RS232
Steckverbinder: D-Sub, 9-polig (DB9), Buchse
RS-232-Buchse | RS-232-Stecker des Nullmodems |
(Ansicht: Steckseite) | (Ansicht: Steckseite) |
Pin | Signal | Beschreibung |
---|---|---|
1 | – | nicht verwendet |
2 | RX | Datenleitung, DTE <- DEE / vom DTE empfangene Daten |
3 | TX | Datenleitung, DTE -> DEE / vom DTE gesendete Daten |
4 | – | nicht verwendet |
5 | GND | Masse |
6 | – | nicht verwendet |
7 | – | nicht verwendet |
8 | – | nicht verwendet |
9 | – | nicht verwendet |
RS-485
Die RS-485-Schnittstelle ist eine störfeste Industrieschnittstelle, an die als Bus (evtl. mittels Hubs) mehrere Geräte (z.B. aus unserem Automatisierungs-Baukasten) angeschlossen werden können, und die auch für die Überbrückung langer Distanzen geeignet ist.
Die RS-485-Schnittstelle des AdvaBoard-Kits enthält eine automatische Richtungsumschaltung, sowie einen auf dem AdvaBoard RPi1 per Steckbrücke aktivierbaren RS-485-Leitungs-Terminator. Darüber hinaus ist eine konfigurierbare automatische 9.Bit-Modifikation als Adresskennung (Bit 9=1: Adresse, Bit 9=0: Daten) integriert, wie sie z.B. in vielen Mikrocontrollern vorgesehen und für das Advamation-RS-485-Protokoll notwendig ist.
Der verwendete RS-485-Steckverbinder enthält neben den Datenleitungen mehrere Stromversorgungsleitungen, so dass 1 Kabel zum Anschluss eines externen Geräts ausreicht, und keine zusätzlichen Stromkabel notwendig sind. Das AdvaBoard-Kit enthält allerdings selbst keine entsprechende +12V/+24V-Stromversorgung. Deshalb gibt es im AdvaBoard-Kit einen zweiten RS-485-Steckverbinder, der als RS-485-Netzteil-Anschluss verwendet werden, und die RS-485-Geräte dann mit +12V bzw. +24V versorgen kann.
Für größere Leistungen (z.B. für größere Motoren) sind die Kontakte "A1" und "A2" vorgesehen, die jedoch im AdvaBoard-Kit sinnvollerweise nicht bestückt sind. Werden derartige Leistungen benötigt, so sollte ein entsprechendes externes Netzteil mit den Kontakten "A1" und "A2" verwendet, ohne den Strom durch die AdvaBoard-Kit-Steckverbinder "durchzuschleifen".
Zu beachten ist, dass gleichzeitig immer nur entweder die RS-232 oder die RS-485-Schnittstelle verwendet werden kann. Es ist jedoch möglich, per Software zwischen den beiden Schnittstellen umzuschalten, z.B. per Kommandozeilenprogramm:
# Umschalten auf RS-485, Baudrate 115200, 9.Bit-Modifikation ein: sudo am_rpi_advaboard_tool -m RS485_CFG RS485 1701 1
RS-485-Steckverbinder: D-Sub 7W2, Buchse/Stecker
RS-485-Buchse | RS-485-Netzteilanschluss |
(Ansicht: Steckseite) | (Ansicht: Steckseite) |
Pin | Signal | Strom | Beschreibung |
---|---|---|---|
1 | +24V | max. 5A | 24V-Stromversorgung, bei Bedarf |
2 | +12V | max. 5A | 12V-Elektronik-Stromversorgung |
3 | DGND | max. 5A | Masse für Pin 1 + 2 |
4 | RS-N | RS-485-Datenleitung, im Ruhezustand negativere Leitung (ca. 2.3V) | |
5 | RS-P | RS-485-Datenleitung, im Ruhezustand positivere Leitung (ca. 2.7V) | |
A1 | (+12..+48V) | max. 30A | im AdvaBoard-Kit nicht verwendet |
A2 | (PGND) | max. 30A | im AdvaBoard-Kit nicht verwendet |
I2C
Der I2C-Bus ist mittlerweile die Schnittstelle für digitale Sensoren, z.B. für Temperatursensoren, Temperatur-/Feuchtesensoren, Beschleunigungssensoren, Bewegungsmelder etc.
Im AdvaBoard-Kit wird diese Schnittstelle verwendet, um die Tastatur-/Poti-/LED-Einheit und den Temperatur-/Helligkeitssensor anzubinden sowie für die interne Kommunikation auf dem AdvaBoard RPi1 selbst. Zudem ist die I2C-Schnittstelle auf einen Steckverbinder auf der Rückseite herausgeführt.
Das AdvaBoard verwendet dabei:
- 3.3V Versorgungsspannung
- 3.3V Pegel (nicht 5V-tolerant!)
- eine separate Leitung für die Versorgung per Batterie
- eine Interrupt-Leitung für schnelle Reaktionszeiten und das Aufwecken des AdvaBoards/Raspberry Pis bei bestimmten Ereignissen
Die Stromaufnahme aller angschlossenen 3.3V-Geräte darf hierbei 100mA nicht überschreiten. Die I2C-Adressen 8, 9 und 10 sind durch das AdvaBoard-Kit bereits belegt und können nicht für externe Sensoren verwendet werden.
Der Raspberry Pi enthält leider einen Fehler in seiner I2C-Schnittstelle, die dazu führen kann, dass Daten verloren gehen oder verfälscht ankommen, sofern ein I2C-Gerät das sogenannte "Clock-Stretching" verwendet. (siehe auch: http://www.advamation.de/technik/raspberrypi/rpi-i2c-bug.html). Das AdvaBoard RPi1 kann diesen Fehler jedoch teilweise abfangen. Nähere Informationen hierzu finden sich in der Software-Dokumentation unter "I2C-clock-stretching".
Als Steckverbinder für I2C verwenden wir innerhalb von Gehäusen üblicherweise 6-polige Pfostenverbinder, außerhalb von Gehäusen codierte 9-polige D-Sub-Steckverbinder. Eine Adaption ist mittels D-Sub-Steckverbindern mit Flachbandkabelanschluss sehr einfach möglich.
Steckverbinder: D-Sub Buchse, 9-polig (DB9), blau
I2C-Steckverbinder |
(Ansicht: Steckseite) |
Pin | Signal | Beschreibung |
---|---|---|
5 | GND | Masse |
9 | SDA | I2C-Datenleitung |
4 | +3.3V | Stromversorgung für I2C-Geräte, 3.3V, geschaltet,
max. 100 mA zusammen mit Pin 2/11 des I/O-Steckverbinders
|
8 | SCL | I2C-Taktleitung |
3 | +VBatt | Stromversorgung für I2C-Geräte, batteriegestützt |
7 | ALERT | I2C-/SMBus-Interruptleitung |
2 | NO PIN | Stecker-Codierung |
6 | -- | nicht verwendet |
1 | -- | nicht verwendet |
Für den Anschluss externer I2C-Geräte empfehlen sich hierbei neben normalen DB9-Steckern (ohne Pin 2) insbesondere DB9-Stecker mit Flachkabelanschluss (z.B. D-SUB ST 09FB von reichelt.de) und Adapter von DB9 auf Feder- bzw. Schraubklemmen (z.B. DELOCK 65269).
I/O-Steckverbinder
Das AdvaBoard bietet einige Analog- und Digital-I/Os, die beim AdvaBoard-Kit auf einen 25-poligen D-Sub-Steckverbinder auf der Rückseite herausgeführt sind. Diese beinhalten:
- 8 Digital-I/Os per CPLD
- 2 Digital-I/Os per Mikrocontroller inkl. PWM
- 2 Analog-Ausgänge (8 Bit, einstellbarer Bereich 0..0.25/0.5/1.0/2.0mA, max. 2.0V),
alternativ als Digital-I/Os nutzbar - 4 Analog-Eingänge (16 Bit, 1 ksps) inkl. Spannungsteiler und Filter
Als I/O-Steckverbinder verwenden wir innerhalb von Gehäusen üblicherweise 20-polige Pfostenverbinder, außerhalb von Gehäusen codierte 25-polige D-Sub-Steckverbinder. Eine Adaption ist mittels D-Sub-Steckverbindern mit Flachbandkabelanschluss sehr einfach möglich.
Steckverbinder: D-Sub Buchse, 25-polig (DB25), blau
I/O-Steckverbinder |
(Ansicht: Steckseite) |
Pin | Signal | Beschreibung |
---|---|---|
1 | NO PIN | Stecker-Codierung |
14 | -- | nicht verwendet |
2 | +3,3V | Versorgung für externe Elektronik
max. 100mA zusammen mit Pin 11 und externen I2C-Geräten
|
15 | GND | Masse |
3 | AIN0 | Analog-Eingang 0, inkl. Spannungsteiler und Filter-Kondensator |
16 | AIN1 | Analog-Eingang 1, inkl. Spannungsteiler und Filter-Kondensator |
4 | AIN2 | Analog-Eingang 2, inkl. Spannungsteiler und Filter-Kondensator |
17 | AIN3 | Analog-Eingang 3, inkl. Spannungsteiler und Filter-Kondensator |
5 | IO 0.4 / IDA0 | Digital-I/O 4 / Analog-Ausgang 0 |
18 | IO 0.5 / IDA1 | Digital-I/O 5 / Analog-Ausgang 1 |
6 | IO 0.6 / PWM0 | Digital-I/O 6 / PWM 0 / Frequenzausgang 0 |
19 | IO 0.7 / PWM1 | Digital-I/O 7 / PWM 1 / Frequenzausgang 1 |
7 | IO 1.0 / CPLDIO0 | CPLD-I/O 0 / RPi PWM |
20 | IO 1.1 / CPLDIO1 | CPLD-I/O 1 |
8 | IO 1.2 / CPLDIO2 | CPLD-I/O 2 |
21 | IO 1.3 / CPLDIO3 | CPLD-I/O 3 |
9 | IO 1.4 / CPLDIO4 | CPLD-I/O 4 |
22 | IO 1.5 / CPLDIO5 | CPLD-I/O 5 |
10 | IO 1.6 / CPLDIO6 | CPLD-I/O 6 |
23 | IO 1.7 / CPLDIO7 | CPLD-I/O 7 |
11 | +3,3V | Versorgung für externe Elektronik
max. 100mA zusammen mit Pin 2 und externen I2C-Geräten
|
24 | GND | Masse |
12 | -- | nicht verwendet |
25 | -- | nicht verwendet |
13 | NO PIN | Stecker-Codierung |
Für den Anschluss empfehlen sich hierbei neben normalen DB25-Steckern (ohne Pin 1 und 13) insbesondere DB25-Stecker mit Flachkabelanschluss (z.B. D-SUB ST 25FB von reichelt.de) und Adapter von DB25 auf Feder- bzw. Schraubklemmen (z.B. DELOCK 65318).
Tastatur, Potis, LEDs, Piezoschallwandler
Insbesondere für Ausbildungszwecke und kleine Anwendungen wurden im AdvaBoard-Kit eine kleine Tastatur, 2 Potis, 4 LEDs und ein Piezoschallwandler integriert. Die Anbindung dieser Komponenten an das AdvaBoard RPi1 erfolgt hierbei mit einer eigenen I2C-Erweiterungsplatine, die ber unser Advamation RS-485-/I2C-Protokoll angesprochen wird.
Tastatur
Die Tastatur besteht aus einem Tastenfeld mit 12 Tasten (0-9, *, #), das elektrisch als 4*3-Matrix (4 Zeilen, 3 Spalten) ausgeführt ist.
Um die Tasten abzufragen, kann vom Raspberry Pi aus ein Tastaturscan durchgeführt werden, indem nacheinander die Ausgänge entsprechend gesetzt und die Eingänge gelesen werden [1]. Zusätzlich ist eine automatische Tastenüberwachung und ein automatischer Tastaturscan integriert:
Tastenüberwachung: Es wird ständig die Tastatur auf Tastendrücke überwacht. Ob derzeit eine Taste gedrückt ist, wird in einem virtuellen Eingangsbit abgelegt, das per I2C abgefragt werden kann. Zusätzlich kann bei einem Tastendruck ein I2C-Interrupt ausgelst werden.
Tastaturscan: Es wird ständig die Tastatur auf Tastendrücke überwacht und nach einem Tastendruck automatisch die gedrückte Taste ermittelt. Ob derzeit eine Taste gedrückt ist und der Scancode der letzten gedrückten Taste wird in einem virtuellen Eingangs-Byte abgelegt, das per I2C abgefragt werden kann.
Solange eine Taste gedrückt bleibt, werden weitere Tastendrücke ignoriert, um bauartbedingte Fehlerkennungen ("rollover") zu vermeiden.
Die Tastenüberwachung und der Tastaturscan sind ein-/ausschaltbar.
Kommunikation per am_rpi_advaboard_tool:
# Tastatur-Scan aktivieren sudo am_rpi_advaboard_tool -m I2C_PROT 10 IO_CONTROL 0 0x08 # Tastendrücke abfragen sudo am_rpi_advaboard_tool -m I2C_PROT 10 INPUT_READ 2 1 # Tastendrücke in einer Endlosschleife abfragen while true; do sudo am_rpi_advaboard_tool -m I2C_PROT 10 INPUT_READ 2 1 -v 0; sleep 0.1; done # Tastatur-Scan deaktivieren sudo am_rpi_advaboard_tool -m I2C_PROT 10 IO_CONTROL 0 0x04
per Java:
// Tastatur-Scan aktivieren advaboard.i2c_prot(10, AM_CMD.IO_CONTROL, I(0, 0x08)); // Tastendrücke abfragen (Digital-I/O, Offset 2, Länge 1) int[] key; key = advaboard.i2c_prot(10, AM_CMD.INPUT_READ, I(2, 1)); if((key[0] & 0x80) != 0) { System.out.printf("Key pressed, Scancode %d%n", key[0] & 0x7F); } // Tastatur-Scan deaktivieren advaboard.i2c_prot(10, AM_CMD.IO_CONTROL, I(0, 0x04));
per Python:
# Tastatur-Scan aktivieren advaboard.i2c_prot(10, AM_CMD.IO_CONTROL, (0, 0x08)) # Tastendrücke abfragen (Digital-I/O, Offset 2, Länge 1) key = advaboard.i2c_prot(10, AM_CMD.INPUT_READ, (2, 1)) # for Python 3: if key[0] & 0x80: print("Key pressed, Scancode %d" % (key[0] & 0x7F)) # for Python 2: if ord(key[0]) & 0x80: print("Key pressed, Scancode %d" % (ord(key[0]) & 0x7F)) # Tastatur-Scan deaktivieren advaboard.i2c_prot(10, AM_CMD.IO_CONTROL, (0, 0x04))
Potis
2 Potis, 270° Drehwinkel, 500 Ohm, angeschlossen an einen 10-Bit-A/D-Wandler.
Die A/D-Wandler zum Einlesen der Potis können per I2C ein-/ausgeschaltet werden; ebenso sind die A/D-Wandler-Werte per I2C abfragbar.
Kommunikation per am_rpi_advaboard_tool:
# A/D-Wandler starten sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOG_CONTROL 0 0b00001111 # A/D-Wandler lesen sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGIN_READ4
per Java:
// A/D-Wandler starten advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, I(0, 0x0F)); // warten, bis A/D-Wandler-Werte gültig sind int status[]; while(true) { status = advaboard.i2c_prot(10, AM_CMD.ANALOG_STATUS, I(0,1)); if((status[0] & 0x44) == 0x44) { break; } // sleep try { Thread.sleep(10); } catch(InterruptedException ex) { } } // A/D-Wandler lesen (beide Potis) int adc[]; adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ4); // nur 1. Poti lesen adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ2); // nur 2. Poti lesen adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ, I(2, 2));
per Python:
# A/D-Wandler starten advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, (0, 0x0F)) # warten, bis A/D-Wandler-Werte gültig sind while True: status = advaboard.i2c_prot(10, AM_CMD.ANALOG_STATUS, (0,1)) # for Python 3: if status[0] & 0x44 == 0x44: break # for Python 2: if ord(status[0]) & 0x44 == 0x44: break time.sleep(0.01) # A/D-Wandler lesen (beide Potis) adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ4) # nur 1. Poti lesen adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ2) # nur 2. Poti lesen adc = advaboard.i2c_prot(10, AM_CMD.ANALOGIN_READ, (2, 2))
LEDs
4 LEDs (2*rot, 1*gelb, 1*grün), per PWM dimmbar
Die 4 LEDs können per I2C ein- und ausgeschaltet werden. Zusätzlich ist es möglich, per PWM die Helligkeit der LEDs einzustellen oder diese blinken zu lassen.
Kommunikation per am_rpi_advaboard_tool:
# LED 0 an sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_CLR 0x14 # LED 0 aus sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_SET 0x14 # LED 1 an sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_CLR 0x15 # LED 1 aus sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_SET 0x15 # LED 2 an sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_CLR 0x16 # LED 2 aus sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_SET 0x16 # LED 3 an sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_CLR 0x17 # LED 3 aus sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_SET 0x17 # Helligkeit per PWM einstellen # - LED 0 aus, PWM-Modus an sudo am_rpi_advaboard_tool -m I2C_PROT 10 OUTBIT_SET 0x14 sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOG_CONTROL 2 0x02 # - LED-Helligkeit (0xFF=min. Helligkeit, 0x00=max. Helligkeit) sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGOUT_WRITE 1 0xF0 sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGOUT_WRITE 1 0xC0 sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGOUT_WRITE 1 0x80 sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGOUT_WRITE 1 0x00 # - PWM-Modus aus sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOG_CONTROL 2 0x01
per Java:
// LED 0 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, I(0x14)); // LED 0 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, I(0x14)); // LED 1 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, I(0x15)); // LED 1 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, I(0x15)); // LED 2 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, I(0x16)); // LED 2 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, I(0x16)); // LED 3 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, I(0x17)); // LED 3 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, I(0x17)); // LED 0 Helligkeit // Helligkeit per PWM einstellen // - LED 0 aus, PWM-Modus an advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, I(0x14)); advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, I(2, 0x02)); // - LED-Helligkeit (0xFF=min. Helligkeit, 0x00=max. Helligkeit) advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, I(1, 0xF0)); advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, I(1, 0xC0)); advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, I(1, 0x80)); advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, I(1, 0x00)); // - PWM-Modus aus advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, I(2, 0x01));
per Python:
# LED 0 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, (0x14,)) # LED 0 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, (0x14,)) # LED 1 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, (0x15,)) # LED 1 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, (0x15,)) # LED 2 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, (0x16,)) # LED 2 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, (0x16,)) # LED 3 an advaboard.i2c_prot(10, AM_CMD.OUTBIT_CLR, (0x17,)) # LED 3 aus advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, (0x17,)) # LED 0 Helligkeit # Helligkeit per PWM einstellen # - LED 0 aus, PWM-Modus an advaboard.i2c_prot(10, AM_CMD.OUTBIT_SET, (0x14,)) advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, (2, 0x02)) # - LED-Helligkeit (0xFF=min. Helligkeit, 0x00=max. Helligkeit) advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, (1, 0xF0)) advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, (1, 0xC0)) advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, (1, 0x80)) advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITE, (1, 0x00)) # - PWM-Modus aus advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, (2, 0x01))
Piezoschallwandler
Zusätzlich zur Tastatur, den Potis und LEDs ist ein kleiner Piezoschallwandler integriert. Per I2C kann dieser ein-/ausgeschaltet, sowie dessen Frequenz eingestellt werden.
Standardmäßig können Frequenzen zwischen ca. 50 Hz und 12 kHz eingestellt werden. Zu beachten ist, dass bei Piezoschallwandlern die Lautstärke bauartbedingt stark frequenzabhängig ist.
Kommunikation per am_rpi_advaboard_tool:
# aktivieren sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOG_CONTROL 1 0x40 # Frequenz einstellen, z.B. ca. 1 kHz sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOGOUT_WRITEN 12 # deaktivieren sudo am_rpi_advaboard_tool -m I2C_PROT 10 ANALOG_CONTROL 1 0x10
per Java:
// aktivieren advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, I(1, 0x40)); // Frequenz einstellen, z.B. ca. 1 kHz advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITEN, I(12)); // deaktivieren advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, I(1, 0x10));
per Python:
# aktivieren advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, (1, 0x40)) # Frequenz einstellen, z.B. ca. 1 kHz advaboard.i2c_prot(10, AM_CMD.ANALOGOUT_WRITEN, (12,)) # deaktivieren advaboard.i2c_prot(10, AM_CMD.ANALOG_CONTROL, (1, 0x10))
detaillierte Beschreibung
Der folgende Abschnitt beschreibt die I2C-Erweiterungsplatine, an die die Tastatur, die Potis, die LEDs und der Piezoschallwandler angeschlossen sind, im Detail. Auf alle Funktionen der Platine kann über unser Advamation RS-485-/I2C-Protokoll zugegriffen werden.
- I2C-Schnittstelle:
I2C-Adresse: 10 / 0x0a
Protokoll: Advamation RS-485-/I2C-Protokoll, inkl. CRC/PEC
Unterstützte Kommandos:
Kommunikation:
0x01 Adresse lesen0x02 Adresse setzen0x03 Adresse ins EEPROM sichern0x04 Scan0x05 bei UIN/Nummer: Adresse lesen0x06 bei UIN/Nummer: Adresse setzen0x07 UIN lesen0x08 Kommunikations-Parameter lesen0x09 Kommunikations-Parameter setzenGeräte-Information:
0x10 Seriennummer lesen0x11 Identifikation lesen0x12 Geräteinformationen lesenEEPROM:
0x18 EEPROM-Status lesen0x19 EEPROM-Größe lesen0x1A EEPROM lesen0x1B EEPROM schreiben0x1C Einstellungen aus EEPROM laden0x1D Einstellungen ins EEPROM sichernGerät/Diagnose:
0x20 Echo0x28 Reset0x29 Handler-Flags lesen0x2A Handler-Flags löschen0x2B Handler auslösenDigital-I/O:
0x30 Eingang lesen, 1 Byte0x31 Eingang lesen, 2 Bytes0x32 Eingang lesen, 4 Bytes0x33 Eingang lesen, 8 Bytes0x34 Eingang lesen, Offset + N0x35 Ausgang zurücklesen, 1 Byte0x36 Ausgang zurücklesen, 2 Bytes0x37 Ausgang zurücklesen, 4 Bytes0x38 Ausgang zurücklesen, 8 Bytes0x39 Ausgang zurücklesen, Offset + N0x3A Ausgang schreiben0x3B Ausgang schreiben, Offset + N0x3C Ausgangs-Bit setzen0x3D Ausgangs-Bit löschen0x3E I/O Update0x40 Konfiguration lesen0x41 Konfiguration schreiben0x42 Status lesen0x43 Control schreiben0x44 Handler: Control lesen0x45 Handler: Control schreiben0x46 Handler: Ausgang lesen0x47 Handler: Ausgang schreiben0x48 Event: Konfiguration lesen0x49 Event: Konfiguration schreibenAnalog-I/O:
0x50 Eingang lesen, 1 Byte0x51 Eingang lesen, 2 Bytes0x52 Eingang lesen, 4 Bytes0x53 Eingang lesen, 8 Bytes0x54 Eingang lesen, Offset + N0x55 Ausgang (zurück)lesen, 1 Byte0x56 Ausgang (zurück)lesen, 2 Bytes0x57 Ausgang (zurück)lesen, 4 Bytes0x58 Ausgang (zurück)lesen, 8 Bytes0x59 Ausgang (zurück)lesen, Offset + N0x5A Ausgang schreiben0x5B Ausgang schreiben, Offset + N0x60 Konfiguration lesen0x61 Konfiguration schreiben0x62 Status lesen0x63 Control schreiben0x64 Handler: Control lesen0x65 Handler: Control schreiben0x66 Handler: Ausgang lesen0x67 Handler: Ausgang schreiben0x68 Event: Konfiguration lesen0x69 Event: Konfiguration schreiben
- Kommunikations-Parameter:
Offset Länge Bedeutung 0 1 (reserved) 1 1 min. I2C-Clock-Stretching-Zeit in 1.306ms(Standardeinstellung: 08h für ca. 10.5ms / >= 95.7 kHz)- Digital-I/Os:
Eingang Ausgang Bedeutung 0.0 0.0 (nicht verwendet) 0.1 0.1 (nicht verwendet) 0.2 0.2 (nicht verwendet) 0.3 0.3 (nicht verwendet) 0.4 0.4 (nicht verwendet) 0.5 0.5 Tastatur, Spalte 3 0.6 0.6 Tastatur, Spalte 2 0.7 0.7 Tastatur, Spalte 1 1.0 1.0 Tastatur, Zeile 1 1.1 1.1 Tastatur, Zeile 2 1.2 1.2 Tastatur, Zeile 3 1.3 1.3 Tastatur, Zeile 4 1.4 1.4 LED 0 (0=an, 1=aus bzw. PWM) 1.5 1.5 LED 1 (0=an, 1=aus bzw. PWM) 1.6 1.6 LED 2 (0=an, 1=aus bzw. PWM) 1.7 1.7 LED 3 (0=an, 1=aus bzw. PWM) – 2.0 I2C-Interrupt (0=low/interrupt, 1=high/kein Interrupt) 2.6..0 – Tastatur-Scancode der letzten gedrückten Taste (1..12) oder 0(falls Tastatur-Scan aktiviert)2.7 – 1=Tastatur-Taste gedrückt, 0=keine Taste gedrückt(falls Tastenüberwachung oder Tastatur-Scan aktiviert)Alle Digital-I/Os sind Open-Collector-I/Os mit einem schwachen Pullup-Widerstand. Um einen I/O-Pin als Eingang zu verwenden, muss der entsprechende Ausgang vorher auf 1 (high) gesetzt werden.
Tastatur-Scancodes:
Scancode Taste 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 * 11 0 12 # - Digital-I/O-Konfiguration:
Mit der Digital-I/O-Konfiguration kann festgelegt werden, welche I/Os für den Tastatur-Scan verwendet werden sollen. Folgende Werte sind jeweils gültig:
0 / 0b00: nicht für Tastatur-Scan verwendet 1 / 0b01: Tastatur-Scan-Eingang 3 / 0b11: Tastatur-Scan-Ausgang
Bits Bedeutung Standardeinstellung 0.1..0 I/O 0.0-Konfiguration 0 0.3..2 I/O 0.1-Konfiguration 0 0.5..4 I/O 0.2-Konfiguration 0 0.7..6 I/O 0.3-Konfiguration 0 1.1..0 I/O 0.4-Konfiguration 0 1.3..2 I/O 0.5-Konfiguration 3 (Tastaturscan-Ausgang) 1.5..4 I/O 0.6-Konfiguration 3 (Tastaturscan-Ausgang) 1.7..6 I/O 0.7-Konfiguration 3 (Tastaturscan-Ausgang) 2.1..0 I/O 1.0-Konfiguration 1 (Tastaturscan-Eingang) 2.3..2 I/O 1.1-Konfiguration 1 (Tastaturscan-Eingang) 2.5..4 I/O 1.2-Konfiguration 1 (Tastaturscan-Eingang) 2.7..6 I/O 1.3-Konfiguration 1 (Tastaturscan-Eingang) 3.1..0 I/O 1.4-Konfiguration 0 3.3..2 I/O 1.5-Konfiguration 0 3.5..4 I/O 1.6-Konfiguration 0 3.7..6 I/O 1.7-Konfiguration 0 Die Konfiguration für die im AdvaBoard-Kit eingebaute Tastatur lautet somit:
0x00 0xfc 0x55 0x00
Diese Konfiguration ist standardmäßig eingestellt; wurde sie verändert, so kann sie folgendermaßen wiederhergestellt werden:
# Konfiguration schreiben sudo am_rpi_advaboard_tool -m I2C_PROT 10 IO_CFG_WRITE 0 0x00 0b11111100 0b01010101 0x00 # Konfiguration ins EEPROM sichern sudo am_rpi_advaboard_tool -m I2C_PROT 10 EEPROM_CFG_STORE 3
- Digital-I/O-Status:
Bits Bedeutung 0.0 Tastenüberwachung: 1=aktiviert, 0=deaktiviert 0.1 Tastatur-Scan: 1=aktiviert, 0=deaktiviert 0.2 – 0.3 – 0.4 Event 0: 1=aktiviert, 0=deaktiviert 0.5 Event 1: 1=aktiviert, 0=deaktiviert 0.6 – 0.7 – Die Tastenüberwachung testet periodisch, ob eine Taste gedrückt wurde, und schreibt das Ergebnis in den Digital-Eingang 2.7. Der Tastatur-Scan scannt die Tastatur periodisch, und schreibt die Information, ob eine Taste gerdrückt ist sowie den Scancode in den Digital-Eingang 2.x.
- Digital-Control:
Bits Bedeutung 0.0 1=Tastenüberwachung deaktivieren 0.1 1=Tastenüberwachung aktivieren 0.2 1=Tastatur-Scan deaktivieren 0.3 1=Tastatur-Scan aktivieren 0.4 – 0.5 – 0.6 – 0.7 – 1.0 1=Event 0 deaktivieren 1.1 1=Event 0 aktivieren 1.2 1=Event 1 deaktivieren 1.3 1=Event 1 aktivieren 1.4 – 1.5 – 1.6 – 1.7 – - Digital I/O-Events/-Handler:
- 3 Handler (Reset-Handler + 2 nutzerspezifische Handler)
- Handler-Ausgang: BITMASK0 OUTPUT0 BITMASK1 OUTPUT1 BITMASK2 OUTPUT2
- Handler-Control: CONTROL0 CONTROL1
- 2 Events: BITMASK0 INPUT0 BITMASK1 INPUT1 BITMASK2 INPUT2
- Analog-I/O:
Analog-Eingänge:
Bytes Bedeutung 1..0 AIN0: rotes Poti 3..2 AIN1: blaues Poti 5..4 AIN2: (nicht verwendet) 7..6 AIN3: Temperatur (unkalibriert) 9..8 AIN4: Versorgungsspannung Der Wertebereich der Analog-Eingänge beträgt 0..0xFFC0 bei einer Auflösung von 10 Bit.
Analog-Ausgänge:
Bytes Bedeutung 0 Piezo-Beeper-Frequenz (0..255, 0 entspricht hierbei 256) 1 LED 0 PWM, 0..0xFF 2 LED 1 PWM, 0..0xFF 3 LED 2 PWM, 0..0xFF 4 LED 3 PWM, 0..0xFF Die Frequenz des Pizeo-Beepers berechnet sich folgendermaßen:
Frequenz = PWM-Takt / 2 / 1..256
Beim standardmäßig eingestellten PWM-Takt von 25.5 kHz ergibt sich somit:
Frequenz = 12.75 kHz / 1..256
Die LED-Helligkeit kann per PWM eingestellt werden, wobei ein PWM von 0xFF der minimalen Helligkeit, und ein PWM von 0x00 der maximalen Helligkeit entspricht.
- Analog-Konfiguration:
Über die Analog-Konfiguration kann der PWM-Takt eingestellt werden:
PWM Takt = (24.5 MHz / Vorteiler / (Teiler+1)) ± 2%
Ein 8-Bit PWM-Zyklus dauert 256 Takte, ein 16-Bit PWM-Zyklus 65536 Takte.
Bytes Bedeutung 1 PWM-Frequenz-Vorteiler: 0x00=1, 0x01=4, 0x02=12, 0x03=48 0 PWM-Frequenz-Teiler, 0x00..0xFF Die Standard-Einstellung ist:
Vorteiler: 0x01: 4 Teiler: 0xef: 240 PWM-Takt: 25.5 kHz (± 2%)
- Analog-Status:
Bits Bedeutung 0.0 AIN0 Status: 0=aus, 1=an 0.1 AIN0 Modus: 0=aus bzw. nur 1 Mal einlesen, 1=kontinuierlich einlesen 0.2 AIN0 Gültigkeit: 0=ungültig, 1=gültig 0.3 – 0.4 AIN1 Status: 0=aus 1=an 0.5 AIN1 Modus: 0=aus bzw. nur 1 Mal einlesen, 1=kontinuierlich einlesen 0.6 AIN1 Gültigkeit: 0=ungültig, 1=gültig 0.7 – 1.0 AIN2 Status: 0=aus 1=an 1.1 AIN2 Modus: 0=aus bzw. nur 1 Mal einlesen, 1=kontinuierlich einlesen 1.2 AIN2 Gültigkeit: 0=ungültig, 1=gültig 1.3 – 1.4 AIN3 Status: 0=aus 1=an 1.5 AIN3 Modus: 0=aus bzw. nur 1 Mal einlesen, 1=kontinuierlich einlesen 1.6 AIN3 Gültigkeit: 0=ungültig, 1=gültig 1.7 – 2.0 AIN4 Status: 0=aus 1=an 2.1 AIN4 Modus: 0=aus bzw. nur 1 Mal einlesen, 1=kontinuierlich einlesen 2.2 AIN4 Gültigkeit: 0=ungültig, 1=gültig 2.3 – 2.7..4 Piezo-Beeper PWM-Modus 3.3..0 LED 0 PWM-Modus 4.3..0 LED 1 PWM-Modus 5.3..0 LED 2 PWM-Modus 6.3..0 LED 3 PWM-Modus gültige PWM-Modi:
0: PWM deaktiviert 1: PWM8 / 8-Bit PWM 2: PWM16 / 16-Bit PWM 3: FREQ / Rechtechfrequenz-Ausgabe
- Analog-Control:
Bits Bedeutung 0.1..0 ADC0: 1=stop, 2=1 Mal einlesen, 3=kontinuierlich einlesen 0.3..2 ADC1: 1=stop, 2=1 Mal einlesen, 3=kontinuierlich einlesen 0.5..4 ADC2: 1=stop, 2=1 Mal einlesen, 3=kontinuierlich einlesen 0.7..6 ADC3: 1=stop, 2=1 Mal einlesen, 3=kontinuierlich einlesen 1.1..0 ADC4: 1=stop, 2=1 Mal einlesen, 3=kontinuierlich einlesen 1.7..4 Piezo-Beeper PWM: 1=deaktivieren, 2=PWM8, 3=PWM16, 4=Frequenzausgabe 2.3..0 LED 0 PWM: 1=deaktivieren, 2=8-Bit PWM, 3=16-Bit PWM, 4=Frequenzausgabe 3.3..0 LED 1 PWM: 1=deaktivieren, 2=8-Bit PWM, 3=16-Bit PWM, 4=Frequenzausgabe 4.3..0 LED 2 PWM: 1=deaktivieren, 2=8-Bit PWM, 3=16-Bit PWM, 4=Frequenzausgabe 5.3..0 LED 3 PWM: 1=deaktivieren, 2=8-Bit PWM, 3=16-Bit PWM, 4=Frequenzausgabe
[1] | siehe z.B. Wikipedia-Eintrag zu Tastaturen |
Temperatur-/Helligkeitssensor
Optional können im AdvaBoard-Kit ein Temperatur- und ein Helligkeitssensor eingebaut sein, die per I2C angebunden sind.
- Temperatursensor:
- Typ: Microchip MCP9803-M/SNI2C-Adresse: 0x48Hersteller-Webseite: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en020950
Auslesen per am_rpi_advaboard_tool::
sudo am_rpi_advaboard_tool -m I2C 2 0x48 0x00
- Helligkeitssensor:
- Typ: Avago Technologies APDS-9300-020I2C-Adresse: 0x29Hersteller-Webseite: http://www.avagotech.com/pages/en/optical_sensors/ambient_light_photo_sensors/apds-9300/Datenblatt: http://www.avagotech.com/docs/AV02-1077EN
Auslesen per am_rpi_advaboard_tool::
# Chip-ID lesen sudo am_rpi_advaboard_tool -m I2C 1 0x29 0x8A # Einschalten/Aktivieren sudo am_rpi_advaboard_tool -m I2C 1 0x29 0x80 0x03 # Einschalt-Status lesen sudo am_rpi_advaboard_tool -m I2C 1 0x29 0x80 # Werte lesen sudo am_rpi_advaboard_tool -m I2C 4 0x29 0x8C
Erweiterungen
Sollten die Funktionen bzw. I/Os des AdvaBoard-Kits für eine Anwendung nicht ausreichen, so kann das AdvaBoard-Kit mit Erweiterungsplatinen ausgebaut werden. Insgesamt ist Platz für bis zu 5 Erweiterungsplatinen (1* an der Rückwand unter dem Display, 4* rechts unten, Platinenmaß ca. 42 × 47mm) vorgesehen.
Die Erweiterungsplatinen werden üblicherweise per E-SPI, I2C oder RS-485 an das AdvaBoard RPi1 angebunden, und besitzen meist einen 20-poligen Wannenstecker oder einen 15-poligen D-Sub-Steckverbinder als I/O-Steckverbinder.
Informationen zu den verfügbaren und geplanten Erweiterungen finden Sie im Abschnitt Zubehör / Erweiterungen.