Linux i2c

Für Fragen von Einsteigern und Programmieranfängern...
berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Linux i2c

Beitrag von berbog »

Hallo
Ich möchte über einen USBtoI2C Adapter (CH341A) einen GY-BMP280 auszulesen.
Die Suche im Forum sagt mir zwar das es einfach sein soll aber ein Beispiel finde ich nicht. Alles bezieht sich auf Berechnungen.
Hat jemand ein konkretes Beispiel wie ich auf den Bus über /dev/i2c-x zugreife?
Vielen Dank
Gruss Bernd

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Linux i2c

Beitrag von Socke »

Hallo Bernd,

mit PascalIO kannst du auf I2C-Geräte zugreifen, sobald diese als /dev/i2c vorhanden sind.
Ein Beispiel findest du unter https://github.com/SAmeis/pascalio/blob ... ject1.lpr; wobei sich natürlich die Adresse deines Drucksensors und die ausgelesenen Register ändern. Wenn du PascalIO nicht nutzen möchtest, findest du dort auch ein Beispiel zur direkten I2C-Kommunikation: https://github.com/SAmeis/pascalio/blob ... oject2.lpr
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Linux i2c

Beitrag von pluto »

Ich möchte über einen USBtoI2C Adapter (CH341A) einen GY-BMP280

Ich habe einmal ein AM2302 zum "laufen" gebracht unter Lazarus.

Du könntest dir erst mal Arduino Libs anschauen zu der Libray und anschließend versuchen einen Port auf Pascal zu machen.
So habe ich das mit dem AM2302 auch gemacht.

Andere schauen sich das Datenblatt an und wissen anschließend wie sie das Bauteil auslesen können.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Linux i2c

Beitrag von pluto »

Ich möchte über einen USBtoI2C Adapter (CH341A) einen GY-BMP280

Ich habe einmal ein AM2302 zum "laufen" gebracht unter Lazarus.

Du könntest dir erst mal Arduino Libs anschauen zu der Libray und anschließend versuchen einen Port auf Pascal zu machen.
So habe ich das mit dem AM2302 auch gemacht.

Andere schauen sich das Datenblatt an und wissen anschließend wie sie das Bauteil auslesen können.

edit: Warum ist der Beitrag zwei mal vorhanden? einmal reicht doch?
MFG
Michael Springwald

berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Re: Linux i2c

Beitrag von berbog »

Vielen Dank für eure Hilfe
@ Socke
Das versuche ich zu testen.
Warum wird die doc (pascalio.xml) im Browser nur als Quelltext dargestellt.Damit lässt sich nichts machen?.

@ Pluto
So weit bin ich noch nicht

Gruss Bernd

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linux i2c

Beitrag von Mathias »

Nicht vergessen, ansonsten kannst du nicht auf i²C zugeifen.

Code: Alles auswählen

$ apt-get install i2c-tools 
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Linux i2c

Beitrag von Socke »

berbog hat geschrieben:Warum wird die doc (pascalio.xml) im Browser nur als Quelltext dargestellt.Damit lässt sich nichts machen?

Das ist im FPDoc-Format. Diese kann entweder direkt in Lazarus verwendet werden oder muss in eine Leseansicht übertragen werden.
Unter http://sameis.github.io/pascalio/doc-html/ kannst du auch die HTML-Version ansehen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Re: Linux i2c

Beitrag von berbog »

Es ist wohl nicht so einfach wie ich dachte.
Für den CH 341 Adapter ist ein eigener Treiber erforderlich, der zwar 3 Devicedateien (spidev0.0 bis spidev0.2) erstellt aber keine I2C Schnitstelle.
Das suche ich noch.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linux i2c

Beitrag von Mathias »

Wen man noch einen VGA oder DVMI Anschluss hat, hat man i2c am PC zu Verfügung, ohne externe Hardware.

Oder man nimmt einen Arduino als Brücke zwischen PC und Endgerät.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Re: Linux i2c

Beitrag von berbog »

Mit der VGA habe ich noch keine 3,3 V und zum basteln habe ich gerne etwas was mir der Rechner bei einem Fehler nicht zerstört.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linux i2c

Beitrag von Mathias »

Da wäre eine Arduino am besten, ein Arduino ist nicht so teuer, wen man ihn zerstört. Ein Chinamodel bekommt man schon für 2.- .

Hier habe ich mal ein kleine lib für i2c geschrieben. Als Demo wird ein LCD angesprochen.
https://github.com/sechshelme/Lazarus-E ... op/I2C_LCD
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Re: Linux i2c

Beitrag von berbog »

Ich versuche mich etwas in i2c mit pascal und dem PC einzuarbeiten.
Ich weiß das es viele andere Lösungen (Raspberry Arduino C u.v.a.) gibt.
Das bringt mich aber in meinem Ansinnen nicht weiter.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Linux i2c

Beitrag von Socke »

berbog hat geschrieben:Für den CH 341 Adapter ist ein eigener Treiber erforderlich, der zwar 3 Devicedateien (spidev0.0 bis spidev0.2) erstellt aber keine I2C Schnitstelle.

Hast du denn Pin 1 (ACT#) mit einem 2K Ohm-Widerstand mit Masse verbunden?
Soweit ich die Datenblätter verstanden habe, muss man dem Chip per EEPROM oder elektrischen Kontakten mitteilen, welchen Betriebsmodus er beim Start nutzen soll. Je nach Modus wählt er unterschiedliche USB-PIDs aus, die der Treiber auswertet und danach die Gerätedateien erstellt.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

berbog
Beiträge: 11
Registriert: Mi 8. Aug 2007, 17:42

Re: Linux i2c

Beitrag von berbog »

Der ACT ist nicht vorhanden Bild

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Linux i2c

Beitrag von Timm Thaler »

Kannst du die Grafik noch kleiner machen, bitte? Dann kann man es noch schlechter sehen...

Antworten