RaspberryPi: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springenZur Suche springen
(i2c)
(i2c)
Zeile 97: Zeile 97:
 
* mit '''sudo i2cdump -y 1 0x20''' werden alle Register des Chips auf der Adresse 0x20 ausgelesen
 
* mit '''sudo i2cdump -y 1 0x20''' werden alle Register des Chips auf der Adresse 0x20 ausgelesen
  
''Register des MCP-23017''
+
''Register des MCP-23017'' (der letzte Buchstabe ist immer das Port (A oder B)
* 00h IODIRA....IO Direction 0=Ausgang, 1=Eingang (Port A)
+
 
* 01h IODIRB
+
{| border="1"
* 02h IPOLA.....Input Polarität umpolen (Port A)
+
|Register
* 03h IPOLB
+
|Bezeichnung
* 04h GPINTENA
+
|Beschreibung
* 05h GPINTENB
+
|Anmerkungen
* 06h DEFVALA
+
|-
* 07h DEFVALB
+
|00h
* 08h INTCONA
+
|IODIRA
* 09h INTCONB
+
|I/O Direction Register
* 0Ah IOCON
+
|0=Ausgang, 1=Eingang
* 0Bh IOCON
+
|-
* 0Ch GPPUA.......GP PullUp Port A(100k Ohm)
+
|01h
* 0Dh GPPUB
+
|IODIRB
* 0Eh INTFA.......Interrupt ein/aus (Port A)
+
|-
* 0Fh INTFB
+
|02h
* 10h INTCAPA.....Zustand der Ports wird zwischengespeichert wenn ein Interrupt ausgelöst wird (Port A)
+
|IPOLA
* 11h INTCAPB
+
|Input Polarity Port Register
* 12h GPIOA.......das sind die Ein- & Ausgänge (Port A)
+
|-
* 13h GPIOB
+
|03h
* 14h OLATA.......Output Latches (Port A)
+
|IPOLB
* 15h OLATB
+
|-
 +
|04h GPINTENA..Interrupt-n-Change Control Register Port A
 +
|-
 +
|05h GPINTENB
 +
|-
 +
|06h DEFVALA
 +
|-
 +
|07h DEFVALB
 +
|-
 +
|08h INTCONA
 +
|-
 +
|09h INTCONB
 +
|-
 +
|0Ah IOCON
 +
|-
 +
|0Bh IOCON
 +
|-
 +
|0Ch GPPUA.......GP PullUp Port A(100k Ohm)
 +
|-
 +
|0Dh GPPUB
 +
|-
 +
|0Eh INTFA.......Interrupt ein/aus (Port A)
 +
|-
 +
|0Fh INTFB
 +
|-
 +
|10h INTCAPA.....Zustand der Ports wird zwischengespeichert wenn ein Interrupt ausgelöst wird (Port A)
 +
|-
 +
|11h INTCAPB
 +
|-
 +
|12h GPIOA.......das sind die Ein- & Ausgänge (Port A)
 +
|-
 +
|13h
 +
|GPIOB
 +
|-
 +
|14h
 +
|OLATA.......Output Latches (Port A)
 +
|-
 +
|15h
 +
|OLATB
 +
|}
  
 
Umschalten der Ports vom ''GPIOA'' auf Ausgang mit dem Befehl '''sudo i2cset 1 0x20 0x00 0x00'''
 
Umschalten der Ports vom ''GPIOA'' auf Ausgang mit dem Befehl '''sudo i2cset 1 0x20 0x00 0x00'''

Version vom 14. Juli 2014, 22:06 Uhr


der RaspberryPi ist ein scheckkarten großer stromsparender Computer der sich besonders zum Messen und Regeln einigt

PaspBerry Pi Homepage

Es gibt einen Klone(Nachfolger) den [Bana Pi] der hat mehr Rechneleistung und ist angeblich kompatibel mit dem Paspberry Pi

Raspberry Pi auf elektronik-kompendium.de

Betriebssysteme

Raspbian

raspbian.org

Standart User : pi

Tipps und Tricks

  • Configuration starten : sudo raspi-config
  • cron logging aufdrehen : in der Datei /etc/rsyslog.conf die Zeile #cron.* editieren (# am Anfang löschen)

= WLAN Verbindung mit der Commandline herstellen

  • wpa_cli starten (default interface ist wlan0
  • scan durchsucht die vorhanden Netzwerke
  • mit scan_results werden die gefundenen Netzwerke angezeigt
  • add_network legt eine neue Netzwerkkonfiguration an (beim ersten MAl die Konfiguration 0, dies wird als Wert angezeigt) dieser muss als ID angegeben werden
  • set_network 0 ssid "WLAN-Network"
  • set_network 0 psk "SupahSecretPassphrase"

Pakete

update der Paketlisten

# sudo apt-get update

Pakete updaten

# sudo apt-get upgrade


  • mc (Midnight Comander) => sudo apt-get install mc
  • iceweasel (firefox Ersatz) => sudo apt-get install iceweasel
  • php => sudo apt-get install php5
  • php-mysql => sudo apt-get install php5-mysql
  • git => sudo apt-get install git-core

Software

OpenVpn auf Raspberry Pi installieren

GPIO

PiFace

Messen und steuern

WireingPi installieren

cd
mkdir -p Programming
cd Programming
git clone git://git.drogon.net/wiringPicdwiringPi
git pull origin
./build

1Wire

Ds1820 an Raspberry Pi

Bevor man mit dem Rasperry den 1Wire Bus benutzen an, müssen die Kernel Module geladen werden

  • sudo modprobe w1-gpio pullup=1
  • sudo modprobe w1-therm

damit diese Module beim Start automatisch geladen werden, müssen sie in das File /etc/modules eingetragen werden

w1-gpio pullup=1
w1-therm

auf die Sensoren wird via Device zugegriffen. Für jeden Sesnor gibt es ein Verzeichnis unter /sys/bus/w1/devices in diesem Unterverzeichnis dann die Datei w1_slave. mit dem Befehl

/sys/bus/w1/devices/10-000802bd06e4/w1_slave

wird der Sensor mit der ID 10-000802bd06e4 ausgelesen (dauert ca. 0,5 - 1 Sekunde.

i2c

Raspberry Pi auf I2C Raspberry Pi and the MCP23017 I2C I/O Expander

I2C ist default im Rasberry abgedreht. Um es zu aktivieren mus in der Datei /etc/modprobe.d/raspi-blacklist.conf die Zeile blacklist i2c-bcm2708 auskommentiert werden.

Beschaltung: Wichtig, Pin 18 (Reset) muss auf + gelegt werden

  • sudo modprobe i2c-bcm2708 i2c Kernelmodule laden
  • sudo modprobe i2c_dev i2c Kernelmodule laden
  • sudo apt-get install i2c-tools i2c Tools installieren
  • testen des i2c mit sudo i2cdetect -y 1 Auf einer Adresse sollte ein Gerät angezeigt werden (zum Beispiel 0x20)
  • mit sudo i2cdump -y 1 0x20 werden alle Register des Chips auf der Adresse 0x20 ausgelesen

Register des MCP-23017 (der letzte Buchstabe ist immer das Port (A oder B)

Register Bezeichnung Beschreibung Anmerkungen
00h IODIRA I/O Direction Register 0=Ausgang, 1=Eingang
01h IODIRB
02h IPOLA Input Polarity Port Register
03h IPOLB
04h GPINTENA..Interrupt-n-Change Control Register Port A
05h GPINTENB
06h DEFVALA
07h DEFVALB
08h INTCONA
09h INTCONB
0Ah IOCON
0Bh IOCON
0Ch GPPUA.......GP PullUp Port A(100k Ohm)
0Dh GPPUB
0Eh INTFA.......Interrupt ein/aus (Port A)
0Fh INTFB
10h INTCAPA.....Zustand der Ports wird zwischengespeichert wenn ein Interrupt ausgelöst wird (Port A)
11h INTCAPB
12h GPIOA.......das sind die Ein- & Ausgänge (Port A)
13h GPIOB
14h OLATA.......Output Latches (Port A)
15h OLATB

Umschalten der Ports vom GPIOA auf Ausgang mit dem Befehl sudo i2cset 1 0x20 0x00 0x00 Parameter:

1    => i2c Bus 1
0x20 => Adresse des Bausteins
0x00 => IODIRA (Input Output Direction Bus A)
0xff => 1111 1111 => alle als Imput (0x00 => 0000 0000 => alle als Output)

Einschalten eines Ausganges sudo i2cset 1 0x20 0x12 0x01

1    => i2c Bus 1
0x20 => Adresse des Bausteins
0x12 => GPIOA
0x01 => 0000 0001 => Port 1 einschalten (LED leuchtet)


damit diese Module beim Start automatisch geladen werden, müssen sie in das File /etc/modules eingetragen werden

i2c_dev
i2c-bcm2708

Programmierung "C"

Wireing Pi I2C: MCP23008 & MCP23017



Interrupts

Tutorial: Interrupt-Driven Event-Counter on the Raspberry Pi