Hi, ich habe hier einen ATMega324, der einen Drucksensor MS5611 per ausliest und das dann anzeigt. Wie das angezeigt wird dürfte nicht wichtig sein, das funktioniert, habe ich auch nach Belieben im Griff. Ich rechne das in die Höhe relativ zur Höhe beim Start um. Das funktioniert alles im Prinzip sehr gut. Erstes Symptom: Das Ding zeigt Blödsinn an. Alles mögliche auskommentiert, nur noch die Rohdaten (letzte 4 Stellen des Drucks in Pa anzeigen) - keine Änderung. Die Anzeige springt auch gelegentlich. Mache ich nach anklemmen der Versorgung aber nochmal manuell einen Reset (Hardware!), passt alles! Power weg und wieder ran, wieder falsch. Absolut sicher reproduzierbar. Alle Berechnungen (relative Höhe, Druck) auskommentiert, keine Änderung. Hardwarereset - alles gut und stabil. Power weg und wieder ran, wieder falsch. Ewige Warteschleifen ganz am Anfang haben auch nichts gebracht. Da sind noch ein paar andere Sensoren an I2C und die funktionieren tadellos! BOD ist korrekt auf 2,7V eingestellt, ATMega und I2C läuft alles an 3,3V. Nun habe ich folgenden absurden Code eingefügt, bevor der Drucksensor das erste Mal angesprochen wird: Dim Dummy As Byte Dim Edummy As Eram Byte Dummy = Edummy Incr Dummy Edummy = Dummy If Dummy.0 = 1 Then Config Watchdog = 2048 Start Watchdog Do Loop End If Ja, Bascom, das dürfte aber mit der Problematik nichts zu tun haben. Das macht nichts weiter, als bei jedem zweiten Start den Watchdog vor die Wand laufen zu lassen. Also: 1. Power on -> Dummy.0 ist 0 -> Werte falsch. 2. Power off und wieder on -> Dummy.0 ist 1 -> Watchdogreset -> Neustart -> Dummy.0 ist 0, Programm läuft -> Werte richtig! 3. Power off und wieder on -> Dummy.0 ist 1 -> Watchdogreset -> Neustart - Dummy.0 ist 0, Programm läuft -> Werte richtig! Das kann ich beliebig wiederholen, damit funktioniert es. Alternativ kann ich das Ganze ohne den Teil zum Funktionieren bringen, indem ich nach dem Start nochmal einen Hardwarereset mache. Was zum Teufel kann das sein? Einer ne Idee? Gruß, Norbert
Norbert S. schrieb: > Was zum Teufel kann das sein? Welche Anstiegszeit hat deine Versorgungsspannung? Klemmst du direkt stabile 5V auf die Schaltung, oder steigt die Spannung über z.B. 500ms von 0 auf 5V?
Lothar Miller schrieb: > Welche Anstiegszeit hat deine Versorgungsspannung? Darauf würde ich auch tippen.. dass mit der Spannung beim Einschalten etwas nicht sauber ist.
jaaa ... Bascom und I2C ist auch so ne Sache ... weiß jetzt nicht mehr obs bei der Verwendung vom Hardware oder Software I2C war, aber in einem der Modi macht Bascom beim I2Cstart tatsächlich elektrisch nen I2Crestart, das hat mir auch mal schlaflose Nächte beschert das zu finden, weil ein Baustein das nicht mochte. Also auch mal checken mit dem Oszi ... Der Unterschied ist, dass bei Restart erst ein Stop, dann sofort der Start kommt.
:
Bearbeitet durch User
Hi, Spannungsanstieg: Zugegeben, es riecht etwas danach aber das müsste ja mit der Warterei ganz am Anfang gegessen sein. Hilft aber nichts. Fhutdhb Ufzjjuz schrieb: > aber in einem der Modi macht Bascom beim I2Cstart tatsächlich > elektrisch nen I2Crestart Das kommt schon eher hin. Auch wenn es komisch wäre, denn das hat ja schon funktioniert. Und warum geht es, wenn ich vorher (vor dem I2C Krams) einen zweiten Reset mache? Das kann alles nur sein, wenn Bascom sich nicht um die Reihenfolge im Quellcode schert und die Initialisierung immer gleich am Anfang macht. Ich werde Beides nochmal genau verfolgen. Gruß, Norbert
Moin, alles falsch, inkl. meiner Beobachtungen ;-) Auch mit dem 2. Reset spinnt das weiterhin. Die Betriebsspannung war immerhin die richtige Fährte. Steigt zwar in < 100µs an aber ist dann total versaut. Der kleine Regler im TO-92 ist einfach an der Stromgrenze. Als LDO von 5 auf 3,3V wird er nicht warm aber kann eben auch nur 100mA. Da jetzt alle Sensoren dran sind kommt das hin, daß es etwas zuviel ist. Das ergibt dann auch ein rundes Bild und erklärt auch noch andere komische Dinge. Hätte ich erwähnt, daß eine gemessene Spannung in der Anzeige hopst, sobald ich eine LED blinken lasse, wäre vielleicht auch ein Anderer eher drauf gekommen. Asche auf mein Haupt. Bascom und I2C: Ich nutze Hardware und die Lib "i2c_twi.lbx". In der sieht es so aus als wenn der Start korrekt nur ein Start ist. Laut Simulation macht er bei der Initialisierung auch nur das was man erwarten würde. Naja, wenn das falsch gewesen wäre, hätte das ja auch nie funktionieren dürfen. Ich bringe jetzt erstmal die 3,3V in Ordnung und erwarte eigentlich, daß es dann rennt. Nur blöd, daß ich ausser LM317 im TO220 nix im Haus habe (oder grad nicht finde). Der muß dann an 12V und naja, wird er bei gut 100mA eben etwas wärmer. Sollte noch ok sein. An den 5V ist mir das zu knapp und es schadet nicht wenn ich die etwas entlaste. Gruß, Norbert
Hi, kaum macht man's richtig, schon gehts. Mit dem LM317 stehen die 3,3V und schon rennt alles problemlos. Vielen Dank an die "Anstieg der Versorgungsspannung" Fraktion, das war zumindest der Wink in die richtige Richtung. Ich hatte auch noch eine Uart von 5V, die im Idle ständig in den 3,3V Mega reingedrückt hat. Das war bestimmt auch nicht so doll. Der I2C Start bei Hardware ist übrigens korrekt. I2C per Software mit Bascom - da würde ich auch im Traum nicht dran denken. Gruß, Norbert
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.