I2C Probleme beim Daten schreiben

OP #2139149
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.