Zitat Zitat von iBot Beitrag anzeigen
Pullup-Widerstände sind ja auf dem Pi-Board schon drauf (nach meinen Messungen sind die gegen 3,3V).
Da die Eingänge vom Pi ja auch nur 3,3V vertragen.

Jetzt meine Frage:
Was genau macht die Hardware im Tiny? Hab ich den TWI-Bus richtig verstanden, dass der eigentlich nur entweder in der Luft hängt oder gegen GND zieht?
Deswegen doch auch die Pullups...
So ist es. Die 3,3V reichen nicht als standardkonformes High, da werden 3,5V erwartet. Im praktischen Betrieb wird es aber einfach funktionieren. Bevor du dir die Ohren mit nicht funktionierenden Pegelwandlern brichst, probier es einfach aus. Wenn man so die Threads verfolgt, kommen problematische Pegelwandler viel öfter vor, als zu niedrige High-Pegel.

Manche I2C Controler können auch einen SM-BUS Mode. Da sind die Pegel TTL-kompatibel und passen perfekt für 3,3V CMOS. Ob der Tiny das auch kann, weiß ich nicht. Viele PICs können es.
Somit wäre es ja kein Problem den Tiny trotzdem mit 5V zu versorgen (bei 3,3V hätte ich probleme mit der Auslegung von nem Spannungsteiler an nem ADC).
Das verstehe ich nicht.

MfG Klebwax

- - - Aktualisiert - - -

Zitat Zitat von Unregistriert Beitrag anzeigen
der Pullup von SCL (PIN_SCL) eingeschaltet und dann der Pin im DDR auf output geschaltet. Der Pin ist dann ein Ausgang mit High Potential und damit wird Vcc vom Tiny auf den Bus gelegt. Falls der Tiny mit 5V betrieben wird, kommen die auch auf den Bus.
Ich kann den Code nicht nachvollziehen, kenne den Chip nicht. Aber ein I2C Device, daß aktiv ein High auf den Bus legt, wird nicht funktionieren. Ein anderes Device kann zu jeder Zeit aktiv auf Low treiben, das kracht dann. Wenn der Code das wirklich so macht, ab in die Tonne.

Bitbangig Code macht das normalerweise so: eine 0 ins interne Latch vom Pin schreiben, dann und erst dann auf Ausgang umschalten. Um die Leitung dann wieder High zu bekommen, den Pin auf Input schalten und der Pullup macht das High. So gibt es keine Konflikte.

MfG Klebwax