- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 20

Thema: Frage bezüglich TWI bzw. I2C-Pegel

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ich kann es bestätigen, zumindest bei 5V Arduinos (Uno und Nano, beide selber getestet) sind weder Level-Shifter noch zusätzliche Pullups nötig, wenn beide am selben Bus hängen und der Raspi Master ist, denn beide 1,8k Pullups des Raspi ziehen ja den Bus bereits auf +3,3V.
    Das bestätigen auch Links im Web:
    https://oscarliang.com/raspberry-pi-...connected-i2c/

    Bild hier  

    Man könnte daher davon ausgehen, dass es auch mit anderen 5V AVRs genau so einfach funktioniert.

    Beim Arduino Mega ist es problematischer, weil der selber eingebaute Pullups auf 5V besitzt (sowohl auf dem Chip (die müsste man vorher rauslöten) als auch auf dem Board (die kann man jederzeit in twi.c disabeln) ).

    (Anm.: Allerdings gab es i2c-Kommunikationsprobleme, die auf clock stretching durch den Arduino zurückzuführen waren, die der Raspi (in C programmiert) nicht vertrug. Das muss aber nicht für andere AVRs gelten. )

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    warte warte warte ... der Raspi kann kein Clock Stretching? ... das ist schwach, da les ich mich nochmal genauer zu ein wenn ich Zeit habe
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    HaWe
    Gast
    Genau, sag ich doch, zumindest nicht mit dem damaligen Kernel (bis Anfang April dieses Jahres). Dazu gibt es sogar hier im Forum ein Topic.
    Das clock stretching wurde wohl durch den AVR Arduino verursacht (was viele auch im raspi Forum für die Ursache der I2C Datenübertragungsfehler hielten), und eben das vertrug der Raspi nicht, daher konnten mal keine großen Datenblöcke auf einmal übertragen werden und ein anderes Mal schmiss der Raspi sogar den Arduino aus seinem I2C Bus und erkannte ihn gar nicht mehr als I2C device unter seiner Busadresse.
    Seit dem 10.4. gibt es allerdings einen neuen Kernel, vlt kann der mehr als der vorhergehende, seitdem habe ich die AVRs aber nicht mehr am Raspi-i2c-Bus getestet..
    Mit dem Aruino DUE (andere berichteten, glaube ich, auch mit demZero) funkionierte aber vorher schon I2C immer außerordentlich zuverlässig.

    ich bezog mich auch auf den "echten" I2C Modus, wie er unter C/C++ mit pigpio und wiringPi benutzt wird (mit Arduino per 100kHz, ansonsten mind. bis 400kHz), der wohl langsamere smbus-Modus als auch Software-Bitbanging waren in dieser Hinsicht toleranter. Auch zum letzteren gab es im besagten Topic Beispiele.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    das smbus Protokoll definiert ja clock stretching, logisch dass es da verwendet wird.
    Aber ich bin mir ziemlich sicher dass jedwede Hardware I2C Logik (also das peripheral im raspi SoC) auch dazu in der Lage ist aber die I2C-Libs das notwendigeFflag nicht einschalten .... einer der Gründe warum ich meistens doch lieber Bare Metal programmiere wenns ordentlich werden soll, Bibliotheken scheitern immer an DEtails die der Erfinder nicht bedacht hat.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    HaWe
    Gast
    ...was erklärt, dass damals schon viele Raspi-"Fachleute" (Gordon Henderson, joan u.a.) das Problem schon kannten, samt möglicher Workarounds, und auch davon sprachen, dass ebenfalls die .org Entwickler das auch schon auf dem Schirm hatten und in "einer der nächsten" Kernel-Upgrades mit ändern wollten. Ich selber verstehe die hardwaremäßigen oder Programmier-technischen Einzelheiten nicht, ich kam nur drauf, dass ich es versuchte PI + Arduino zu verbinden, es aber nicht störungsfrei mit den AVRs funktionierte.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von HaWe Beitrag anzeigen
    ...was erklärt, dass damals schon viele Raspi-"Fachleute" (Gordon Henderson, joan u.a.) das Problem schon kannten, samt möglicher Workarounds, und auch davon sprachen, dass ebenfalls die .org Entwickler das auch schon auf dem Schirm hatten und in "einer der nächsten" Kernel-Upgrades mit ändern wollten. Ich selber verstehe die hardwaremäßigen oder Programmier-technischen Einzelheiten nicht, ich kam nur drauf, dass ich es versuchte PI + Arduino zu verbinden, es aber nicht störungsfrei mit den AVRs funktionierte.
    Wenn ich mich recht erinnere ist bzw. war das so:
    Der Prozessor im Raspi unterstützt schon Clock stretching, der Treiber ebenfalls. Es gab aber einen Bug im Chip der dazu führt, daß in einem bestimmten Zeitfenster nach dem ACK-Bit das Clock stretching nicht erkannt wurde. Das ist aber nun genau die Stelle, die am kritischsten ist, nach dem ACK-Bit passiert das am häufigsten.

    Da der Raspi nicht mein Ding ist, hab ich keinen Link aufgehoben und kann das nicht mehr nachvollziehen. Ob inzwischen der Chip gefixt ist oder eine Reparatur in Software möglich ist, hab ich nicht verfolgt.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    HaWe
    Gast
    das führt uns jetzt zwar von dem 5V/3.3V I2C Problem mit/ohne Pullups u/o Levelshiftern weg, würde aber dann sicher bedeuten, dass es bei einem Chip-Hardware-Bug nicht allein durch ein Jessie-Kernel-Upgrade gelöst werden kann, oder?
    Außerdem wäre interessant zu wissen, welche Chips von diesem Bug betroffen waren - da ich den Pi2 habe, mit dem es diese Probleme gab, wäre zu vermuten, dass es dann möglicherweise nicht unbedingt auch mit dem B+ oder Pi3 der Fall ist/war oder sein muss?
    Geändert von HaWe (08.09.2016 um 19:36 Uhr)

Ähnliche Themen

  1. Frage bezüglich Diode
    Von _Johannes_ im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 8
    Letzter Beitrag: 25.07.2013, 15:20
  2. Frage Bezüglich ldi R24
    Von demmy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 12.08.2011, 23:18
  3. Frage bezüglich BTM222
    Von Mixer im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 0
    Letzter Beitrag: 01.09.2010, 18:59
  4. Frage bezüglich LCD mit AT892051
    Von semicolon im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 23.10.2005, 21:30
  5. Frage bezüglich LCD aus Camcorder
    Von Andree-HB im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.01.2005, 09:52

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress