I²C clock stretching am TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

I²C clock stretching am TXT

Beitrag von MasterOfGizmo » 11 Mai 2017, 17:48

Es ist ja bekannt, dass der TXT (wie übrigens der Raspberry-Pi auch) so seine Probleme mit Clock-Stretching hat. Nun brauchte ich aber gerade für mein nächstes kleines Projekt einen I²C mit Clock-Stretching. Da kam mir ein über 10 Jahre altes Projekt von mir gerade recht: Der i2c-tiny-usb. Das ist ein USB-nach-I²C-Adapter. Damals habe ich eine passende Hardware dazu entwickelt, inzwischen vertreibt jemand eine sehr ähnliche Hardware, den digispark. Und meine alte Firmware läuft darauf. Der dazuehörige Treiber ist fast ebenso lange Teil des Linux-Kernels. Ich habe ihn in der Community-Firmware neulich aktiviert und damit funktioniert der auch am TXT unter der Community-Firmware.

Das Resultat: I²C mit Clock-Stretching am TXT. Dazu ist er 5V-fähig und die Stromversorgung des Zielchips bringt der USB-Anschluss auch gleich mit.

Der Digispark: http://digistump.com/products/1 (Clones gibts bei Ebay für einen Euro das Stück)
Die Firmware dafür: https://github.com/harbaum/I2C-Tiny-USB ... /digispark
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: I²C clock stretching am TXT

Beitrag von chehr » 14 Mai 2017, 13:39

Hi MoG,
Das ist eine Super Sache, weil die power gleich mitgeliefert wird. Ich habe mir gleich ein paar von diesen Attiny85 bestellt, welche mit USB Kabelanschluss. Somit kann man Standart USB Kabel zum Sensor Modul nehmen.

Unterstützt deine Firmware außer i2c auch SPi und PWM?
Wie kommt die Firmware auf das Board? Braucht man da noch spezielle H/W?
Schon mal danke für das tolle neue i2c Feature via TXT USB!
Gruß Christian

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: I²C clock stretching am TXT

Beitrag von MasterOfGizmo » 14 Mai 2017, 17:51

Diese Digisparks kommen mit einem Bootloader und können unter Linux recht simpel mit der i2c-tiny-usb-Firmware programmiert werden, wie ich das auch in den Readme unter https://github.com/harbaum/I2C-Tiny-USB ... /digispark beschreibe. Man braucht keine weitere Hardware.

Da das Arduinos sind kannst Du da reinflashen was Du willst, auch irgendwelche SPI- oder PWM-erzeugende Software. Allerdings wirst Du Dir dann TXT-seitig passende Software selbst schreiben müssen. Der Kernel-Treiber und die Firmware des i2c-tiny-usb unterstützen halt i2c. Deswegen heisst das Gerät ja auch so.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: I²C clock stretching am TXT

Beitrag von MasterOfGizmo » 14 Mai 2017, 20:24

Weil die Frage per PM kam, was denn eigentlich das Problem mit dem Clock-Stretching beim TXT und R-Pi ist: Ich habe da auch nur Wissen aus zweiter Hand, das klingt aber jeweils plausibel:

Zum Clock-Streting auf dem TXT gibt es einen Thread unter viewtopic.php?f=21&t=3373, wo steht, dass der TXT wenn der Client Clock-Stretching anfordert sich mal entspannt eine knappe Sekunde Pause einlegt. Fazit: Wenn dem so ist wird der I2C extrem langsam.

Beim R-Pi gibt es wohl einen Hardwarebug, der dazu führt, dass der Pi Clock-Streching nur in der Ackknowledge-Phase erkennt und beachtet: http://www.advamation.com/knowhow/raspb ... c-bug.html. Das Resultat ist, dass es Überragungsfehler gibt, wenn der Client Clock-Stretching macht.

Theretisch könnte sich beides inzwischen geklärt haben. Der TXT könnte mit dem neueren Kernel der CFW das Problem nicht mehr haben, der Pi könnte in seinen neueren Versionen Pi-2 und Pi-3 das Problem gefixt haben. Dazu habe ich jeweils nix gefunden.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: I²C clock stretching am TXT

Beitrag von H.A.R.R.Y. » 31 Mai 2017, 07:13

Hallo zusammen,

das mit dem clock-stretching ist mittlerweile eindeutig widerlegt!
http://forum.ftcommunity.de/viewtopic.php?f=8&t=4306
Der TXT kann es konform zur I²C-Spec. Das die ganze Diskussion aufkam, war wohl ein Mißverständnis hier:
viewtopic.php?f=21&t=3373&p=23096&hilit ... ing#p23096

Gruß
H.A.R.R.Y.
[42] SURVIVE - or die trying

Antworten