
Ich habe jetzt etwas echt komisches beobachtet. Beim Wechsel von
dtoverlay=w1-gpio,gpiopin=17,pullup=on
dtoverlay=w1-gpio,gpiopin=17,pullup=off
In der Doku der w1 Library wird der w1_master_pullup mit den Worten "5V strong pullup 0 enabled, 1 disabled" beschrieben. Also ich könnte mir das Verhalten so erklären, dass mit abgeschaltetem pullup im dtoverlay entweder der interne Pullup vom Raspi nicht mehr "reinfunkt" und störend in die Kommunikation eingreift oder irgendwelche internen Parameter des w1 Kernels durch diese Einstellung verändert werden (Timings der Reset-Pulse, Read-Pulse, Write-Pulse). Leider ist da die Doku etwas spartanisch.
Falls jemand das auch mal bei sich testen möchte, würde mich das freuen. Einmal ist keinmal. Aber wie gesagt, mit deaktiviertem Pullup (pullup=off) und externer 5V Speisung (kein parasitärer Betrieb) läuft es bei mir gerade deutlich besser und runder.
Noch eine andere Kleinigkeit: Hier bei mikrocontroller.net wird beschrieben, dass man den Bus etwas stabilisieren kann, indem man einen kleinen Widerstand an den GPIO Ausgang in Reihe schaltet. Ich habe mal das Oszi dran gehabt und tatsächlich: Der Pull-Down ist brutal und schwingt minimal über. Kein Wunder, der GPIO vom Pi kann 16 mA ziehen, dass entspricht einem Pull-Down-Widerstand von nur 200 Ohm, während mein Pull-Up bei 3,3 kOhm bzw. 1 mA liegt. Ich werde mal ~ 200 Ohm in Reihe schalten und schauen, wie sich die Signale verändern. Ist zwar keine slewrate control, aber sollte durchaus was bringen. Falls ja, berichte ich und update den loxwiki Eintrag.
Kommentar