www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 / I2C Senden UND Empfangen


Autor: nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche gerade mit einen MSP430F2132 eine SmartBattery über I2C 
auszulesen. Dazu habe ich mir mal die Code-Samples bezüglich I2C 
angesehen und auch einige zum Laufen gebracht.

Jedoch nur immer in eine Richtung. Das heisst soviel wie entweder ich 
bin Master mit dem uP und sende etwas an eine I2C Device, ich bin Master 
und empfange etwas von einer I2C Device, ich bin Slave und sende eine 
Antwort an einen Master oder ich bin Slave und empfange etwas von einem 
Master.

Soweit so gut, immerhin ein Erfolg. Nun möchte ich aber gerne (als 
Master) ein Byte an eine I2C Device senden und danach die Antwort der 
Device auslesen.

Dazu müsste ich ja nun zuerst senden und dann empfangen. Hier habe ich 
jedoch das Problem, dass in den Samples folgende Interruptfunktion:

#pragma vector = USCIAB0TX_VECTOR
__interrupt void USCIAB0TX_ISR(void){
}

für beides Verwendung findet, also bei den Samples wo der Master sendet 
zum Senden und bei den Samples wo der Master empfängt zum Empfangen.

Wie kann ich aber beides nutzen?

Hoffe ich habe mich verständlich genug ausgedrückt.

Danke und Gruss
Nico

Autor: ramgeis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

In deinem Fall bist Du immer der Master  !!!
Lese Dir mal die Tutorials bezüglich I2C durch.
Hänge einfach mal ein normales I2C  EEPROM dran und teste.
Oft haben die I2C Hardwareblöcke auch Fehler !!
Also immer zuerst die Fehlerbeschreibungen des Controllers lesen.
Ich mache es immer zu Fuß, mit Bitbanging.
Da hab ich die Kontrolle und schalte Fehler aus.

Viel Spaß noch.

Gruß

Siegmar

Autor: nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

danke für deine antwort.

das ich dann der master bin ist mir schon klar, ich habe das mit dem 
slave nur zu testzwecken ausprobiert.

wo gibt es denn ein gutes I2C tutorial? ich habe lange gesucht aber bin 
nicht fündig geworden.

bei den code beispielen von TI ist leider keines für ein eeprom dabei, 
hast du ein solches?

danke
nico

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie kann ich aber beides nutzen?
>Hoffe ich habe mich verständlich genug ausgedrückt.
Also ich hab's nicht verstanden :)
Mit den Interrupts beim Hardware I²C kenn ich mich jetzt auch nicht aus, 
aber egal ob du was als Master senden oder empfangen willst, gehört ja 
auch immer ein senden dazu (minimum senden der Adresse).
Für die ersten Tests würde ich eh alles ohne Interrupts machen. Da 
dengelst du dann einfach Adresse und evt. Register Nr. raus und wartest 
einfach bis die Daten im Empfangsregister stehen.

Autor: ramgeis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

z.B
http://www.roboternetz.de/wissen/index.php/I2C
http://www.sprut.de/electronic/pic/grund/i2c.htm
http://de.wikipedia.org/wiki/I%C2%B2C

auf www.msp430.com findest zu selbstverständlich Beispielcode für EEPROM 
Routinen.

Wichtig ist halt, die Grundlagen verstanden zu haben.
Interupts würde ich für den Anfang auch immer weglassen.

Noch viel Spaß

Gruß
Siegmar

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Interruptvektor fuer RX und TX verwendet wird musst halt die 
IFGs (RXIFG TXIFG) abfragen.

mfg  Alex

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.