Hi, ich hab hier ein komisches Problem mit einem DS75 an einem Tiny45. der Sensor ist per Soft-TWI angebunden (INT0 wird für etwas anderes gebraucht). Wenn ich den Sensor in den 12 Bit-Modus schalte und im Sekundentakt auslese, kommen Schrottdaten an (mal -100°C, mal 60°C oder der Messwert bleibt stehen). Erhöhe ich die Ausleserate auf 50Hz kommen die Werte allesamt (!) korrekt an. Den Bustakt habe ich schon ziemlich weit abgesenkt (ca. 50kHz), reine Lesefehler auf dem Bus kann ich also so ziemlich ausschließen. Hat jemand eine Idee, woher der Fehler kommt und wie ich ihn am besten wieder loswerde? ;) Ist so ziemlich das erste mal, dass ich mit einem DS75 solche Probleme habe. Betriebsspannung des ICs liegt auf 3,3V, Pullups (10k) sind vorhanden und die Leitung ziemlich kurz. Irgendeinen Blödsinn auf dem Bus behaupte ich nicht zu haben. Auch auf dem Oszi sieht die Konversation ok aus (wobei das b...e Ding nimmer richtig auf die Signale triggern will)
...und da die Software. Es werkelt vUSB von obdev, die 5V aus dem Port werden durch zwei Dioden auf ca. 3.3V heruntergebrochen. Hätte jedoch relativ wenig schmerzen damit, die Schaltung auf 5V-Betrieb wieder umzubauen, wenns denn zuträglich ist. Ironisch ist irgendwie, dass der USB besser funktioniert als der I²C-Bus...
@Feierfoxx: ähh nein, nicht wirklich. Ich finde es wirklich ironisch, dass der deutlich komplexere USB besser funktioniert als das Auslesen über den I²C. Es ist nur so, dass ich absolut auf dem Schlauch stehe, warum am PC so ein Blödsinn ankommt.
PS: was ich schon gestern abend vergessen habe zu schreiben (nachdem es im Quelltext nicht steht): Der CPU-Takt wird per USB-Framelength auf 16.5 MHz kalibriert. Dadurch, dass F_CPU ebenfalls auf 16.5 MHz eingestellt wurde, sollte es mit den Delays in den I2C-Funktionen zu keinen Problemen kommen. Der Quellcode ist zugegebenermaßen etwas dahingerotzt, wenn es jemand wirklich kompilieren/testen will, kann ich heute Abend den kompletten Rest von vUSB (und ggf. der Windows-Software) hochladen.
Mit 3,3V und 16,5Mhz wird der ATTiny außerhalb der Spezifikationen betrieben.
Der Fall ist geklärt, genau eine Lötstelle war nicht sauber. Vcc zum Sensor war offen. Durch die höhere Auslesefrequenz wurde der Sensor durch SDA und SCL quasi phantomgespeist. Lötstelle korrigiert, jetzt ließt das Teil richtig.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.