Raspberry Pi / GPIO / I2C Zugriff?

OP #2788856
Lesenswert?
• ▲
▼
Hallo,

ich habe mir eben das Raspberry Pi gekauft.

Jetz würde mich mal interessieren wie das mit dem I2C Bus läuft. Am Ende 
muss ja ein abgespecktes Debian drauf. Ich habe schon Erfahrungen mit 
Atmels Atmega32 und der Ansteuerung des I2C gemacht. Dabei habe ich 
direkt auf Register zugegriffen. Aber mit dem RasPi bin ich dann ja 
bereits im OS.
Wie gehe ich die Sache dann an? Kann ich dann immernoch auf Register 
zugreifen? Oder bietet Linux da eine API?
Ich habe viele Tutorials gesehen in denen alles mit Python läuft. 
Allerdings hasse ich Python (ingesamt alle Skriptsprachen) und würde 
sehr gerne in C schrieben.
Hat schon jemand Erfahrungen damit gesammelt? Habt ihr Tipps / 
Referenzen für mich?

Gruß Manuel
#3013501
Lesenswert?
• ▲
▼
Hallo Leute,
ich bin seit Kurzem auch glücklicher Besitzer eines Raspberry Pi, und 
der verfügt auf seinem GPIO Connector zum Glück über I²C/SMBUS. Ich 
konnte auch schon verschiedene I²C Chips erfolgreich mit Python und dem 
mudul "smbus" ansprechen (z.B. SAA1064 und ADS1110).
Ich habe aber leider den Eindruck dass das Linux SMBUS Protokoll nur 
einen relativ "starren" Funktionsumfang bietet und viele Anwendungsfälle 
nicht umgesetzt werden können, jedenfalls wenn ich mir diese 
Beschreibung ansehe:

http://www.kernel.org/doc/Documentation/i2c/smbus-protocol

Zum Beispiel:
- Wie kann man ein "Restart" machen bevor ein "Stop" gesendet wird?
- Wie kann man "nur" lesend adressieren und z.B. 2 Byte lesen ohne 
"Stop" dazwischen und OHNE vorher einen Adresspointer zu setzen?

Die Funktion i2c_smbus_read_word_data() hat ja eine relativ starre 
Syntax:
<start> Chip-Addr <write> [Ack] <daten> [Ack] <start> Chip-Addr <read> 
[Ack] [DataLow] <ack> [DataHigh] <nack> <stop>

Beim AtMega kann man das alles selbst "zusammensetzen". Oder habe ich da 
einfach noch etwas übersehen

Habt ihr da schon Erfahrungen machen können?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.