mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430, I2C, slaa208.zip


Autor: Wolfgang-G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zunächst möchte ich nur mal fragen, ob jemand das Anwendungsprogramm
slaa 208.zip, davon speziell in C, erfolgreich angewendet hat.
Ich habe den EEPROM 24LC32A über I2C angeschlossen und musste 
feststellen, dass das Programm bei „ HÄNGT HIER „  stehen bleibt.
Im Einzelschrittbetrieb bleibt I2CBUSY auf 1 stehen.
Falls ich der einzige bin, bei dem das Programm nicht läuft, muss ich 
natürlich weitersuchen.

Wolfgang

void EEPROM_AckPolling(void)
// Description:
//   Acknowledge Polling. The EEPROM will not acknowledge if a write 
cycle is
//   in progress. It can be used to determine when a write cycle is 
completed.
{ unsigned int count;
  while (I2CDCTL&I2CBUSY); // wait until I2C module has finished all 
operations
  P5OUT ^= 0x10;
  count=0;
  U0CTL &= ~I2CEN;       // clear I2CEN bit => necessary to re-configure 
I2C module
  I2CTCTL |= I2CRM;      // transmission is software controlled
  U0CTL |= I2CEN;        // enable I2C module
  I2CIFG = NACKIFG;      // set NACKIFG
  while (NACKIFG & I2CIFG)
  {
    I2CIFG=0x00;            // clear I2C interrupt flags
    U0CTL |= MST;           // define Master Mode
    I2CTCTL |= I2CTRX;      // I2CTRX=1 => Transmit Mode (R/W bit = 0)
    I2CTCTL |= I2CSTT;      // start condition is generated
    while (I2CTCTL&I2CSTT); // wait till I2CSTT bit was cleared
    I2CTCTL |= I2CSTP;      // stop condition is generated after slave 
address was sent
                            //      => I2C communication is started
  while (I2CDCTL&I2CBUSY); // wait till stop bit is reset   HÄNGT HIER
    count=count+1;
    P5OUT ^= 0x10;
  }
  U0CTL &= ~I2CEN;       // clear I2CEN bit => necessary to re-configure 
I2C module
  I2CTCTL &= ~I2CRM;     // transmission is by the I2C module
  U0CTL |= I2CEN;        // enable I2C module

  return;
}

Autor: Kamil P. (kamil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir laufen die C-Routinen von slaa208 einwandfrei.

Richtige Adresse ausgewählt? WP falsch angeschlossen?
Funktionieren denn die Lese-Routinen?

Autor: Ekschperde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck mal nach Revision und Errata deines MSP430.
Irgendwas war da mal.

Ein Soft-I2C ist aber auch nicht sehr aufwendig.

Autor: Wolfgang-G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank,
>Bei mir laufen die C-Routinen von slaa208 einwandfrei
auch jetzt bei mir
der Fehler war offensichtlich ein schlechter Kontakt zwischen IS-Fassung 
und Speicherschaltkreis

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.