Forum: Mikrocontroller und Digitale Elektronik MSP430 und si4705 (I2C) reden nicht miteinander


von max L. (microspace)


Lesenswert?

Hallo.

Verwende einen MSP aus der MSP430x22x2 Familie und den FM/RDS Chip 4705.
Verbunden über I2C und emuliert mit dem IAR + Launchpad. Hab hier aus 
dem Forum die I2C Softwaresteuerung (Michael) als Basis genommen. Leider 
reagiert der 4705 gar nicht, sprich die Vars arg[x] haben keinen 
sinnvollen Wert (alle FF).
Hat jemand ev. eine Idee, woher dass Problem kommen könnte?
(OV7141 entspricht hier dem 4705)
Fehlen noch Infos?
Gruß

    DTCTL = WDTPW + WDTHOLD;

    P1DIR |= 0x01;
    P1OUT &= 0xFE;  //LED aus (test)
    P1OUT |= 0x01;  //LED an

    P3OUT  = P3OUT_INIT;     //Init output data of port3
    P3SEL  = P3SEL_INIT;     //Select port or module -function on port3
    P3DIR  = P3DIR_INIT;     //Init port direction register of port3
    DCOCTL = 0xE0;           // set DCLOCK to fastest
    BCSCTL1 = 0x87;
    BCSCTL2 = 0x00;

    /* Init the OV7141 */

    sendCmd2(OV7141, 0x01, 0x02 ,0x50);   //POWER_UP
    arg[0] = readData();   // Read Status CTS

    sendCmd(OV7141, 0x10);   //GET_REV
    arg[1] = readData();  // Read Status CTS
    arg[2] = readData();  //Read 1..8 Args
    arg[3] = readData();
    arg[4] = readData();
    arg[5] = readData();
    arg[6] = readData();
    arg[7] = readData();
    arg[8] = readData();
    arg[9] = readData();

    I2C_stop();

von 2ter Gast (Gast)


Lesenswert?

was genau geht nicht? Wird denn die Slave-Addrese akzeptiert (ACK)? Pull 
ups vergessen?

von max L. (microspace)


Lesenswert?

Hallo.

Die internen Pullups habe ich aktiviert
P3REN  = 0x0C;         //3.2 3.3

I2C_gotACK gibt eine 1 zurück, falls Du den Code kennst.

von 2ter Gast (Gast)


Lesenswert?

Den Code habe ich nicht. In deinem Code war nicht ersichtlich, ob Pull 
ups aktiv waren oder nicht. Im Zweifel trotzdem mal Nachmessen ob die 
Port-Pins die Pegel erzeugen; i2c routinen im schrittmodus durchlaufen 
und fröhlich das multimeter dran

Weiterhin sieht man nicht, ob z.B. P3SEL_INIT auch den richtigen PIN 
initialisiert.


Nebenbei:
Ich habe übrigens auch das TI Launchpad. "Mein" Launchpad hat max. 20 
I/O. Lassen sich extern auch größere MSPs (wg. P3DIR) debuggen?

von max L. (microspace)


Angehängte Dateien:

Lesenswert?

Hi,

na dann muß ich morgen mal alles relevaten Pins Durchmessen.
Die Regtister (P3OUT,..) zeigen zumindest alles richtig an.

Dirty-Code anbei.
Vielleicht sieht Du ja auch nen Bug ;-)

Also als Basis habe ich sicherlich das gleiche Launchpad wie Du.
Ich hab über das Spy-by-wire Interface eine weiter Platine dran.
Da ist der MSP430F2274IDA drauf. Über die korrekte Chipauswahl in IAR
kommst Du an alle Register und Pins ran.

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.