Ich weiß, es ist gerade mal erst ein Tag vorbei, aber so langsam bin ich doch am verzweifeln.
Hat wirklich niemand eine Idee??
mfg,
jon
Hi!
Ich habe heute mal wieder meinen CMPS03 herausgekramt, da ich diesen für die nächsten Programme bei IMADEIT-V3 brauchen werde.
Allerdings reagiert der Sensor gar nicht mehr. Wenn ich ihn an den I2C-Bus anschließe, so ist der gesamte Bus tot.
Der Verdacht, dass die Leitungen des Busses zu lang sind konnte ich nicht bestätigen, da ich einfach mal alle I2C-Anschlüsse von der Hauptplatine abgenommen habe und den CMPS03 direkt an den µC auf dieser Platine gehängt hab. Es ging nichts... Somit kann es auch nicht an eventuell falsch dimensionierten Pull-Up Widerständen am Bus liegen. (Ich glaube, dass sind momentan zwei 4,7kOhm Widerstände.)
Die Anschlüsse am CMPS03 sind richtig. Ich hab extra nochmal alles "durchgebeept" um das zu kontrollieren. Auch die Spannung ist mit 4,98Volt im grünen Bereich.
Hat jemand eine Idee, was mit dem Sensor los sein könnte, bzw. was ich noch testen kann, oder ist der im Eimer (was sehr sch*** wäre!)?
Ich hoffe, mir kann jemand helfen,
jon
Nice to be back after two years
www.roboterfreak.de
Ich weiß, es ist gerade mal erst ein Tag vorbei, aber so langsam bin ich doch am verzweifeln.
Hat wirklich niemand eine Idee??
mfg,
jon
Nice to be back after two years
www.roboterfreak.de
Hallo,Zitat von Jon
ich würde ers mal schauen wie es mit der Stromaufnahme aussieht.
Ich glaube so 15-20mA mit ein paar Spitzen sollten richtig sein.
Wenn das in Ordnung ist würde ich mal den PWM Ausgang vornehmen, da dieser auch ständig aktiv sein sollte, soweit ich das jetzt in Erinnerung habe.
Schaue mal ins Datenblatt, habe ich jetzt nicht hier...
Gruß André
Das sind zwei sehr gute Ideen, die ich mal versuchen werden!
Vielen Dank!!!
jon
EDIT:
Ich hab habe mal den Strom gemessen, den das Modul zieht, wenn ich weder an den PWM noch an die I2C-Pins etwas anschließe. Er liegt bei gerade mal 0,48mA, ist also viel zu niedrig und spricht eher dafür, dass das Modul im Elektronikhimmel ist, oder?
EDIT²:
Kein wunder, dass der Strom so gering war, ich hatte das Modul eben falsch gepolt. Jetzt kann ich über den PWM-Port ein Ergebnis erziehlen, dass schonmal grob die Himmelsrichtung angibt. Jetzt würde mich nur interessieren, ob ich den I2C-Bis wieder irgendwie zum laufen kriege, da mir derr lieber wäre als der PWM-Ausgang.
Naja, in der englischen Doku habe ich eben noch gelesen, dass es bei timingpproblen dazu kommen kann, dass der I2C-Bus lahmgelegt wird...
Nice to be back after two years
www.roboterfreak.de
Nachdem ich nun drei Wochen in England war, habe ich endlich wieder Zeit, am Roboter weiter zu bauen.
Deshalb habe ich mir erstmal den cmps03 vor geknüpft, da ich diesen dringend brauche.
Um zu vermeiden, dass eventuelle Schaltungsfehler da sind, habe ich einen atmega8 verwendet, an den sonst nur drei LEDs und die ISP Buchse angeschlossen ist. Leider geht es nicht Sobald ich den SCL-Port verbinde bleibt das Programm einfach stehen und es passiert nichts mehr
Hat jemand ne Idee, oder muss ich mir nen neuen kaufen? Die sind so verdammt teuer...
Vielen Dank,
jon
EDIT:
Der Quellcode (Die Funktion zum Auslesen ist aus der Wiki):
Code:Declare Function Rn_cmps_himmelsrichtung() As Word 'Die Standartdefinitionen am Anfang eines jeden Programms $regfile = "m8def.dat" $hwstack = 32 $framesize = 32 $swstack = 32 $crystal = 11059200 'Quarzfrequenz $baud = 19200 'Baud-Rate Baud = 19200 Config Scl = Portd.0 'Ports fuer IIC-Bus Config Sda = Portd.1 Dim Himmelsrichtung As Word Dim V As Byte Config Portd.2 = Output 'rote LED Portd.2 = 1 'LED aus ' ######################################################################## ' ###### Hauptproggi ' ######################################################################## Waitms 100 V = 1 Do Waitms 250 Himmelsrichtung = Rn_cmps_himmelsrichtung() V = V + 3 Toggle Portd.2 Waitms 250 Loop End Function Rn_cmps_himmelsrichtung() As Word Local Lob As Byte Local Hib As Byte Local Cmps_slaveid As Byte Local Cmps_slaveid_read As Byte Cmps_slaveid = &HC0 Cmps_slaveid_read = Cmps_slaveid + 1 'Register auswählen I2cstart I2cwbyte Cmps_slaveid I2cwbyte 2 I2cstop I2cstart I2cwbyte Cmps_slaveid_read I2crbyte Hib , Ack I2crbyte Lob , Nack I2cstop Rn_cmps_himmelsrichtung = Makeint(lob , Hib) End Function
Nice to be back after two years
www.roboterfreak.de
Lesezeichen