I2C Probleme beim Daten schreiben

OP #2139149
Hallo zusammen,

ich möchte mit meinem Arduino folgendes Kameramodul ansteuern: 
http://www.sparkfun.com/datasheets/Sensors/Imaging/TCM8230MD.pdf
Dazu verwende ich folgenden Code:
1
#include <Wire.h>
2

3
int incomingByte = 0;
4

5
void setup()
6
{
7
  Wire.begin();                   // join i2c bus (address optional for master)
8
  Serial.begin(9600);
9
  Wire.beginTransmission(60);  // transmit to device #4
10
  Wire.send(0x03);                // sends one byte  
11
  Wire.send(0x00);                // sends one byte  
12
  byte ret = Wire.endTransmission();      // stop transmitting
13
  Serial.write(ret);
14
}
15

16
void loop()
17
{}
18
}

Mit diesem Code bekomme ich immer eine 3, das heisst er kann die Daten 
nicht senden, die Adresse funktioniert aber! Also habe ich mir mal die 
i2cmaster library von Peter Fleury geholt und versucht mit folgendem 
Code zu schreiben:
1
#include <i2cmaster.h>
2

3
void setup()
4
{
5
   i2c_init(); 
6
   Serial.begin(9600);
7
   //digitalWrite(13,1);
8
   byte ret = i2c_start(120);     // set device address and write mode
9
   Serial.write(ret);  
10
   //digitalWrite(13,0);
11
   ret = i2c_write(3);                        // write address = 5
12
   Serial.write(ret); 
13
   ret = i2c_rep_start(120);
14
   Serial.write(ret); 
15
   ret = i2c_write(0x00);                        // write address = 5
16
   Serial.write(ret); 
17
   ret = i2c_write(0x02);                        // write address = 5
18
   Serial.write(ret); 
19
   ret = i2c_write(0x00);                        // write address = 5
20
   Serial.write(ret); 
21
   i2c_stop(); 
22
}
23

24
void loop()
25
{}

Das Ergebnis: "010111", d.h. die Funktionen i2c_start und i2c_rep_start 
funktionieren, die funktion i2c_write allerdings nicht!

Hat jemand eine Vorstellung warum das so sein könnte? Ich kann das Gerät 
addressieren aber nicht reinschreiben?!

Wäre super, wenn mir da jemand helfen könnte!

Danke und beste Grüße,
Max
OP #2139245
Jetzt habe ich das ganze noch mit einem Propeller-Mikrocontroller von 
Parallax probiert, auch hier das gleiche Problem:
Write(120) funktioniert
Write(03)  funktioniert nicht
Write(00)  funktioniert nicht!?

Wäre echt super, wenn Sich jemand etwas darunter vorstellen könnte!

Grüße,
Max
OP #2139771
Wäre es denn denkbar, dass das Element, das ich ansteuern will defekt 
ist und nur noch seine adresse bestätigen kann?! Das kann ich mir 
irgendwie nicht vorstellen, weshalb ich mir eigentlich sicher bin, dass 
der Fehler irgendwie in meinem Verständnis liegen muss!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.