MSP430 USI - I2C

Gast #3010200
Lesenswert?

Hallo!

Ich benutze den MSP430F2013. Ich möchte eine Kommunikation zu einem 
Sensor aufbauen via I2C. Im Sensorblatt steht als Übertragungsfrequenz 
für dieses Protokol 100 kHz.
Nach meinem Verständnis bekomme ich aber mit dem Controller nur ~125 
kHz:
1
USICKCTL = USIDIV_3 + USISSEL_2 + USICKPL; //Setup USI clocks: SCL = SMCLK/8 (~125kHz)
SMCLK ist hierbei auf 1MHz gesetzt.

Ist da eine Kommunikation überhaupt möglich?


Meine zweite Bitte währe, wo um alles in der Welt finde ich 
Beispielcodes oder ein Forum auf der Texas Instruments Homepage, die mir 
weitere Infos zum MSP430F2013 bzw. I2C Programmieren liefert. Ganz 
ehrlich, ich bin auf deren homepage aufgeschmissen. Für mich ist sie 
unübersichtlich und überladen. Man findet gar nix.

Danke für alle Hilfe :)
Gast #3010294
Lesenswert?

BL schrieb:
> Im Sensorblatt steht als Übertragungsfrequenz
> für dieses Protokol 100 kHz

Wird höchstwahrscheinlich auch mit den 125 gehen. Ansonsten eben weiter 
teilen.

BL schrieb:
> Ganz
> ehrlich, ich bin auf deren homepage aufgeschmissen.

Geht, da sind unendlich viele Beispiele. Es gibt doch zu nahezu jedem 
Controller Code-Examples. Wenn auf der Seite des 2013 keine sind, nimm 
halt die von nem anderen. Das USI-Modul is gleich.
Gast #3010302
Lesenswert?

Ein DS1621.
Achso. Es müssen also nicht genau 100kHz sein, sondern nur die maximale 
Frequenz darf nicht überschritten werden?


Das ist klar. Es ging mir eher um das Zurechtfinden auf der TI homepage.

Ausserdem hab ich keinen Code gefunden, der ein repeatet start aufweist.
meine I2C statemachine ist so aufgebaut, wie mans kennt:
1
__interrupt void USI_TXRX (void)
2
{
3
  switch(I2C_State)
4
    {
5
      case 0: // Generate Start Condition & send address to slave
6
              P1OUT |= 0x01;           // LED on: sequence start
7
              USISRL = 0x00;           // Generate Start Condition...
8
              USICTL0 |= USIGE+USIOE;
9
              USICTL0 &= ~USIGE;
10
              USISRL = SLV_Addr;       // ... and transmit address, R/W = 1
11
              USICNT = (USICNT & 0xE0) + 0x08; // Bit counter = 8, TX Address
12
              I2C_State = 2;           // Go to next state: receive address (N)Ack
13
              break;
14

15
      case 2: // Receive Address Ack/Nack bit
16
              USICTL0 &= ~USIOE;       // SDA = input
17
              USICNT |= 0x01;          // Bit counter = 1, receive (N)Ack bit
18
              I2C_State = 4;           // Go to next state: check (N)Ack
19
              break;
20

21
      case 4: // Process Address Ack/Nack & handle data RX
22
              if (USISRL & 0x01)       // If Nack received...
23
              { // Prep Stop Condition
24
                USICTL0 |= USIOE;
25
           ...

Aber ich brauche ein case, wo ich ein repeated start ausführe. Bekomm 
ich aber irgendwie nicht auf die Reihe. Kann jemand weiterhelfen?
Gast #3010312
Lesenswert?

>wo um alles in der Welt finde ich Beispielcodes oder ein Forum auf
> der Texas Instruments Homepage, die mir weitere Infos zum MSP430F2013
> bzw. I2C Programmieren liefert.

Lade dir msp430ware von der ti site runter, dort befinden sicht viele 
Codebeispiele zu den unterschiedlichsten msp430 Typen. Musst dazu einen 
Acoount bei TI erstellen.

http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430ware/latest/index_FDS.html

msp430ware ist bereits in ccs (Code Composer Studio) von TI integriert. 
Kann man nach Reistrierung auch frei herunterladen.

Zwei brauchbare msp430 Foren:

http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/default.aspx?DCMP=Grace&HQS=Other+OT+gracefeedback

http://forum.43oh.com/
Gast #3011541
Lesenswert?

BL schrieb:
> Ganz
> ehrlich, ich bin auf deren homepage aufgeschmissen. Für mich ist sie
> unübersichtlich und überladen. Man findet gar nix.

???
Wenn ich mir die Seiten zum MSP430 anschaue, weiss ich nicht, wie es 
noch übersichtlicher geht:
http://www.ti.com/mcu/docs/mcuprodtechdoc.tsp?sectionId=95&tabId=1208&familyId=912&techDoc=1&docCategoryId=1&viewType=mostrecent

Mit den 5 Tabs hast du Zugriff auf alle zur Familie gehörenden Infos. 
Auch auf die App-Notes und einen SW-i2c.

Und auch direkt von der Typenseite:
http://www.ti.com/product/msp430f2013

Alles ist schön strukturiert aufgelistet und passt zum gewählten 
Exemplar. Die App-Notes brauchen nur aufgeklappt werden.

Wenn du sch... Seiten suchst, musst du bei ST und Atmel reinschauen. Die 
haben ihre Seiten ruiniert.
Gast #3012447
Lesenswert?

Hast schon recht.

Trotzdem ist sie für Neueinsteiger doch nicht ganz trivial.

Zum Beispiel die Seitenleiste:

MSP430™16-bit Ultra-Low Power MCUs  (481)

    1 Series  (33)
    2 Series  (47)     <--- das hier bedeutet: MSP430F2xx

Sorry, aber das hab ich erst nach dem dritten hinschauen geblickt.

usw....
Gast #3013278
Lesenswert?

BL schrieb:
> Trotzdem ist sie für Neueinsteiger doch nicht ganz trivial.

???

Für wen ist wohl die Seite
http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/newtomsp430.page

BL schrieb:
> 1 Series  (33)
>     2 Series  (47)     <--- das hier bedeutet: MSP430F2xx
>
> Sorry, aber das hab ich erst nach dem dritten hinschauen geblickt.

Auf der Newbee Seite findest du
http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/newtomsp430.page#generations

Du kannst schon alleine auf Klo, oder?  ;-D

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren