mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI-Leistung je nach Breakpoints bei AT91


Autor: Johannes (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich programmiere einen AT91SAM7X256 und möchte über I²C ein EEPROM 
auslesen. Dazu habe ich mir das Beispiel: 
basic-twi-eeprom-project-1.4-at91sam7x-ek von Atmel angeschaut und die 
Methoden davon in mein Programm eingebaut.

Ich lese innerhalb einer Schleife immer eine Variable (also Daten von 
ein paar Byte) mit mit der Methode TWID_Read in synchronen Modus aus, 
analysiere die und speichere die dann. Ein Schleifendurchlauf holt eine 
Variable, ingesamt müssten über 100 Variablen auf diese Weise geholt 
werden.

Das läuft auch ganz flüssig, solange ich einen Breakpoint der Schleife 
habe. Wenn ich mehrere Durchläufe auf einmal machen lasse, dann bleibt 
das Programm  an dieser Stelle hängen:

// Wait for transfer to be complete
        while (!TWI_TransferComplete(pTwi));

Im Statusregister (TWI_SR) sind die Bits 0, 2, 3 gesetzt, das sind die 
Bits TXCOMP, TXRDY und ein unbenanntes Bit.

Derzeit arbeite ich mit CrossStudio für ARM 1.6 von Rowley.

Im Anhang ist ein Oszilloskopbild von einer der übertragenen Variablen. 
Oben ist Datenleitung, unten ist Taktleitung.

Hat einer von Euch eine Idee, warum das beim einzelnen Lesen 
funktioniert aber nicht, wenn ich alle Durchläufe auf einmal mache?

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn wirklich keiner eine Idee?

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

schau dir mal meinen Artikel an.
http://www.mikrocontroller.net/articles/AT91-TWI

Das TWI ist im Controller (SAM7S64  128  256 / 512) recht verbugt 
gewesen.

Bei Problemem Melden

Jens

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.