also was die Widerstände angeht ist das doch eine Frage der Leitungslänge oder nicht?
Das mit dem Tiny auf 3.3V betrieben habe ich bewusst weggelassen, weil ich keine Infos dazu habe was der Tiny sonst noch alles steuert ... und die Verlockung die 3.3V aus dem Raspi zu benutzen möchte ich möglichst schnell wieder dämpfen, denn der Regler der diese 3.3V aufbringt ist nicht für übergroße Extralasten ausgelegt wohingegen man die 5V fast unbegrenzt belasten kann
In den Code habe ich jetzt nicht hineingesehen, aber das ist ein böser Fehler!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.
Warum zum Geier wird für Slave Init überhaupt die Clock auf Ausgang geschaltet bzw. warum wird der Output für DAta und Clock überhaupt auf high gesetzt?
Wenn es als Slave mit externem Pull Up läuft sollte in alle 4 Zeilen CBI stehen!
Generell macht mir der gesamte I2C part in dem Code sorgen, der klingt überhaupt nicht gach konformen I2C der arbeite die ganze Zeit im Push-Pull Mode und nicht im Pull-Down! Das wird so nicht mit nem Raspi funktionieren ... jetzt tendiere ich doch auch zur Empfehlung den Tiny auf 3.3V zu betreiben!
Lesezeichen