Auslesefehler DS75

Gast #1371883
Lesenswert?

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)
Gast #1373575
Lesenswert?

...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...
Angehängte Dateien:
Gast #1373827
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren