Forum: Mikrocontroller und Digitale Elektronik CC430 Daten senden mit I2C


von Andy (Gast)


Lesenswert?

Hallo zusammen,

ich benutze das EM430F6137rf900 Board und will von einem Sensor Daten 
mit i2c abfragen.
Ich sehe mir SLA und SCL mit dem Oszi an, sehe allerdings überhaupt 
nichts.
(außer den ca 2.5V, die die Leitungen über die 10k von Vcc bekommen)

Um den Fehler zu finden habe ich jetzt nur den Master an SLA und SCL 
gehängt und will jetzt nur das Start Bit auf dem Bus sehen, aber noch 
nicht mal da sehe ich was

ich benutze folgenden Code


#include "cc430x613x.h"
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  //---------------------------------------------------------------------- 
---
  // PORT MAPPING

  PMAPPWD = 0x02D52;                        // Get write-access to port 
mapping regs
  P2MAP6 = PM_UCB0SDA;                      // Map UCB0SDA output to 
P2.6
  P2MAP7 = PM_UCB0SCL;                      // Map UCB0SCL output to 
P2.7
  PMAPPWD = 0;                              // Lock port mapping 
registers
  //---------------------------------------------------------------------- 
---
  // P2.6 & P2.7 als I2C

  P2SEL |= BIT6 + BIT7;                     // Select P2.6 & P2.7 to I2C 
function
  //---------------------------------------------------------------------- 
---
  // INIT I2C

  UCB0CTL1 = UCSWRST;                      // Enable SW reset
  UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;     // I2C Master + I2C Mode + 
Sync Mode
  UCB0CTL1 = UCSSEL_2 + UCTR + UCSWRST;     // SMCLK + Transmitter Mode 
+ Software reset enable
  UCB0BR0 = 12;                             // fSCL = SMCLK/12 = ~100kHz
  UCB0BR1 = 0;
  UCB0I2CSA = 0x48;                         // Slave Address is 048h
  UCB0CTL1 &= ~UCSWRST;                     // Clear SW reset, resume 
operation
//---------------------------------------------------------------------- 
---
   //Start bit setzen
UCB0CTL1 |= UCTXSTT;

 while((UCB0CTL1 & UCTXSTT) != 0)      //Warte bis adresse und startbit 
gesendet

}


Habe ich da irgendwas gravierendes vergessen?
Ich probiere schon 2Tage daran rum


Vielen Dank für eure Antworten
Gruß Andy

von Andy (Gast)


Lesenswert?

Auf dem Bus müsste ich doch wenigstens irgendwas sehen, das Startbit 
sollte ja eigentlich den SLA kurz auf Low ziehen.

Einen Slave brauche ich dafür ja nicht der Master muss ja erstmal 
überhaupt ein Lebenszeichen von sich geben

Die Beispiele von TI habe ich mir angesehen das passiert auch nichts auf 
dem Bus.

Hat irgend jemand eine Idee?
Oder ein ganz simplen I2C Code für z.B. den msp430 der bei euch 
funktioniert hat?

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.