Hallo Zusammen,
die fehlende Clock-Streatching Funktion macht es mir es fast unmöglich die Standard Funktionen des I2C Bus zu verwenden.
Hat jemand mit diesem GPIO I2C Bus Erfahrungen gemacht ?
http://wiringpi.com/reference/i2c-library/
Gruss R.
Hallo Zusammen,
die fehlende Clock-Streatching Funktion macht es mir es fast unmöglich die Standard Funktionen des I2C Bus zu verwenden.
Hat jemand mit diesem GPIO I2C Bus Erfahrungen gemacht ?
http://wiringpi.com/reference/i2c-library/
Gruss R.
Kaum macht man es richtig, schon funktioniert's ...
Wenn die Möglichkeit besteht, wechsle auf U(S)ART. Darüber verstehen die beiden sich prima. Zur Not ein zusätzlicher kleiner Atmel, welcher zwischen USART und I2C mit einem weiteren Atmel übersetzt.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Hi,
verstehe ich das so, das diese Lib nicht geht. Ich beginne gerade mit der Codierung meines Testprogrammes.
Edit:
Danke für den Hinweis. Ich habe mir den Quellcode von dieser Lib dann doch nochmals angesehen
und musste feststellen, das er auf den Standard I2C "i2c_smbus_access" Routinen basiert und somit
keine Lösung meines Problem ist.
Leider habe ich zu viele Teilnehmer, um auf eine serielle Verbindung zu wechseln. Eher würde ich mir ein anderes
Board zulegen.
Gruss R.
Geändert von Ritchie (12.08.2014 um 17:56 Uhr)
Kaum macht man es richtig, schon funktioniert's ...
Hey Ritchie,
bei meinen Recherchen zu meinem ADC-Treiber habe ich heute gesehen, dass der BSC doch eine Clock Streching Funktion besitzt.
Schau mal auf S. 35 nach:
http://www.raspberrypi.org/wp-conten...eripherals.pdf
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo Daniel,
ich habe den Thread später dann hier Artverwand weitergeführt, da ich nach einer Alternative für den RPI gesucht habe.
https://www.roboternetz.de/community...Bus-Problem%29
Hier habe ich auch einige erklärende Links eingefügt, welche dem Problem genauer auf den Grund gehen.
Dieser Link erklärt zum Beispiel den Fehler im Chip:
http://elinux.org/BCM2835_datasheet_...ock_stretching
Die genaue Erklärung kann man dann hier nachlesen:
http://www.advamation.com/knowhow/ra...i-i2c-bug.html
Der Chip besitzt diese Fähigkeit, nur ist diese Fehlerhaft implementiert.
Ich habe derzeit einen BeagleBone Black Element14 auf dem Tisch liegen und bin dabei mein Programm und Hardware
zu portieren.
Ganz entscheidend ist die Aussage:
Für mich der Grund, nach einem anderen Board zu suchen.Don't expect help from the Raspberry Pi creators or from Broadcomm.
They know the problem (at least partially), but they unfortunately did neither document nor solve it.
Viele Grüße
R.
Kaum macht man es richtig, schon funktioniert's ...
Hey Ritchie,
ahh ok. Ich hatte mich nur nach dem Datenblatt gerichtet. Bisher ist mir dieses Problem nicht aufgefallen.
Wobei....ich hatte mal vor einiger Zeit mit nem PSoC am Raspberry Pi experimentiert. Die Kommunikation zwischen AVR und Raspi bzw. PSoC und AVR klappte 1a...nur die Kombination PSoC und Raspi warf Probleme auf. Irgendwas hat die I²C Kommunikation immer gestört.
Eventuell war es sogar das Problem....ich kenne leider die API von Cypress bzgl. I²C Slave im PSoC nicht gut genug um dieses Verhalten auf diesen Fehler zurück führen zu können.
Aber die Info das der I²C buggy ist, ist schon mal viel Wert
Jetzt ist natürlich die Frage was könnte Broadcomm dagegen tun (abgesehen davon den Chip zu fixen)....
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo Daniel,
hier wäre eine mögliche Lösung ein sogenanter "Bit Banging" Treiber. Hierbei wird die Steuerung des I2C Bus komplett in Software gelöst.
Nur muss man auch das Wissen und die Zeit dafür haben.
Viele Grüße
R.
Kaum macht man es richtig, schon funktioniert's ...
Lesezeichen