Absender: Timo Sandmann
Datum: Do, 18.10.2007 12:14:37
In-reply-to:
<471716ED.3080403@xxxxxxx>
References:
<22A7A5C0-8CAB-4AEB-BF80-B96525994353@xxxxxxxxxxxxxxx> <471716ED.3080403@xxxxxxx>
Hallo Hari, Am 18.10.2007 um 10:18 schrieb Harald W. Leschner:
habe mir ein SP03 Sprachmodul besorgt und versuche es gerade über I2C anzusteuern. Leider funktioniert es noch nicht mit dem SRF10 Treibermodell, obwohl ich mir sicher bin, das meine Routinen, die den Steuercode in den I2C-Kontainer packen, richtig sind. Es wäre alsoschön, wenn man beliebige I2C Hardware anschließen könnte und sich nichtum die Details der I2C Übertragung kümmern müsste.
genau das war auch mein Gedanke. Ich habe den Code für die I2C- Ansteuerung und den CMPS03-Kompass mal ins SVN gestellt. Um ein beliebiges I2C-Gerät anzusprechen, ruft man i2c_write_read() (siehe mcu/i2c.c und include/i2c.h) auf, was an eine Slave-Adresse X Bytes aus einem Puffer sendet und anschliessend Y Bytes in einen Puffer liest. Möchte man Daten empfangen und dabei vorher nur ein Byte senden, kann man auch i2c_read() verwenden. Die Funktion i2c_wait() wartet, bis der angestoßene I2C-Transfer komplett beendet ist. Bevor man i2c_wait() wait aufruft, kann man den Prozessor also andere Dinge tun lassen und muss nicht erst die Datenübertragung abwarten. Wobei man während der I2C-Übertragung nichts benutzen kann, das die Schieberegister benötigt. Versucht man es trotzdem, wird im Schieberegister-Code erst auf das Ende des I2C- Transfers gewartet. Der letzte Bus-Status (z.B. Fehler, falls einer auftrat) wird gespeichert und lässt sich bis zum nächsten I2C-Transfer jederzeit abfragen. Am besten einfach mal ausprobieren, am CMPS03-Code sieht man auch, wie es sich benutzen lässt.
Parallel bastle ich an einer 2. Erweiterungsplatine, die neben demI2C-Krams (Kompass, Temperatur, Porterweiterung ...) eine Anbindung fürdie CMUCAM2 und noch eine Verteilung der Stromversorgung bereitstellt.
Das habe ich auch vor ;-) ich weiß nur noch nicht so ganz, mit was für einer CPU...
Da gleich mal eine allgemeine (Hardware-)Frage: Wie viel Strom kann ich eigentlich aus dem 3.3V-Zweig der Erweiterungsplatine noch ziehen?
Viele Grüße, Timo