Forum: Mikrocontroller und Digitale Elektronik I2C_MSP430_to_SC16IS750


von christian S. (Firma: Gast) (vivien)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe folgendes problem....durch diese kleine beschreibung wisst ihr 
schon alle bestimmt worum es geht...:)
Das problem liegt daran ,dass ich nicht weißt wie ich ein Acknoledge mit 
dem SC16IS750 senden soll. würde mich gern freuen wenn jemand mir helfen 
könnte.


  Master                      SLAVE
//                 MSP430F2274                  SC16IS750
//             -----------------           ------------------
//         /|\|              XIN|-     Low -|I2C/SPI          GND |--
//          | |                 |          |                 |
//          --|RST          XOUT|-         |A0 Slave         |
//            |                 |          |A1 Adress 0x9A   |
//            |                 |          |                 |
//            |                 |          |                 |
//            |         SDA/P3.1| <------->|SDA              |
//            |         SCL/P3.2| -------> |SCL          VIN |--Spannung 
Eingang
//

so sieht mein code aus


unsigned char array[40] = { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 
0xa, 0xb };
unsigned char store[40] = { 13, 13, 13, 13, 13, 13, 13, 0, 0, 0};


void main(void)
{
  //int i = 3;


  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

//EINT();

 BCSCTL1 = CALBC1_8MHZ;
 DCOCTL = CALDCO_8MHZ;

while(1)
{

    TI_USCI_I2C_transmitinit(0x9A,0x12);     // Initilisiert die 
Übertragung mit USCI
    while ( TI_USCI_I2C_notready() );     // wait for bus to be free

    if ( TI_USCI_I2C_slave_present(0x9A) )    // slave address 
unterscheidet sich von der Initialisierung
  {                                         // initializatio
    TI_USCI_I2C_receiveinit(0x9A,0x12);     // Initilisiert der Empfang 
mit USCI
    while ( TI_USCI_I2C_notready() );         // warte bis der Bus frei 
ist
    TI_USCI_I2C_receive(32,store);
    while ( TI_USCI_I2C_notready() );         // warte bis der Bus frei 
ist

    TI_USCI_I2C_transmitinit(0x9A,0x12);  // Initilisiert die 
Übertragung mit USCI
    while ( TI_USCI_I2C_notready() );     // wait for bus to be free
    TI_USCI_I2C_transmit(32,array);       // start transmitting
  }

 //LPM3;


}
}
 und als Anhang habe ich auch eine visualisierung von dem Prozess..aber 
bekomme ich immer noch kein daten.

von christian S. (Firma: Gast) (vivien)


Lesenswert?

hat jemand eine idee?

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.