Forum: Mikrocontroller und Digitale Elektronik MSP430F2013 I2C Library gesucht


von Bastlbub (Gast)


Lesenswert?

Hallo,

ich suche für den MSP430F2013 eine I2C Library. Die Funktionen, die ich 
bisher gefunden und angepasst habe, wollten leider nicht. Drum würde ich 
es gerne mal mit Praxiserprobtem ausprobieren.

Grüßle
Bastl

von Sven (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

vesuch mal diese hier. Die habe ich glaube ich von www.mathar.com. Bei 
mir läuft das ganze erfolgreich auf einem msp430f149. Vielleicht passts 
ja.

Gruß
Sven

von Bastlbub (Gast)


Lesenswert?

Genau die geht halt bei mir nicht :-/

von Sven (Gast)


Lesenswert?

Was heißt "geht nicht" genau?

von Bastlbub (Gast)


Lesenswert?

Also ich habe ein Projekt vom AVR hergenommen und die I2C-Funktionen vom 
AVR durch die vom MSP ersetzt.
Bei AVR geht der Maxim Baustein, beim Msp nicht.

von Bastlbub (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang habe ich meinen Code eingefügt.

Als erstes ist die Frage ob die Initialisierung des uC so richtig ist:
1
  WDTCTL = WDTPW + WDTHOLD;  //Stop Watchdog
2
  BCSCTL1 = CALBC1_1MHZ;
3
  DCOCTL = CALDCO_1MHZ; // SET DCO

Dann könnte es noch in der I2C_MAX6956Init()-Funktion einen Fehler 
geben.

von Sven (Gast)


Lesenswert?

Hallo,


ich würde erst einmal in der Main die Ports noch deklarieren, an denen 
I2C hängt.

Dann würde auch einmal wenns geht die void I2C_MAX6956Init(void) 
abspecken und eins anch dem anderen versuchen wenn das geht. Ich kenne 
den Baustein leider nicht, so kann ich nichts dazu sagen, ob die 
Reihenfolge der Daten usw. stimmt.

Dann könntest du vielleicht auch mal mit einem Oszi auf dem Bus 
nachschauen, was da passiert, ob überhaupt das richtige gesendet wird 
oder ob da überhaupt was passiert. Dazu würde ich wie gesagt die void 
I2C_MAX6956Init(void) Stück für Stück aufbauen.

Von dem DCO habe ich selbst auch noch keine Ahnung.

Ich würde aber sagen, dass es auf keinen Fall an der Library liegt 
sondern in
der void I2C_MAX6956Init(void).

Gruß
Sven

von Christian R. (supachris)


Lesenswert?

Du hast die Ports ja nicht als Ausgänge usw deklariert, wie Scen schon 
schrieb. Außerdem meine ich, der F2013 hat doch wohl eine USI 
Schnittstelle, die man als Hardware-I2C laufen lassen kann. Wieso dann 
so umständlich mit Bitgeklapper selber machen?!?

von Bastlbub (Gast)


Lesenswert?

In den einzelnen Funktionen (SCL_low(),...) wird doch immer die Richtung 
entsprechend mit folgender Anweisung umgeschaltet:  P1DIR|=SCL;

Mir wäre ja eigentlich auch ein Code lieber der direkt die 
Hardwareregister der I2C Schnittstelle anspricht, aber der TI Sample 
Code scheint auf den ersten Blick zu umständlich.

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
Noch kein Account? Hier anmelden.