- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 11

Thema: Amtel atmega 32 als I2C- SLAVE Bus mit 250kBaud im Interrupt Modus

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.08.2006
    Beiträge
    84
    Zitat Zitat von Ritchie Beitrag anzeigen
    - Messwert fertig, auswerten (schon was aufwendiger)
    Wenn das zu lange dauert kanns das schon sein.
    Für sowas setz ich gerne nur eine Variable in der Int-Routine, prüfe die dann in der Hauptschleife und mach dann die Auswertung von da aus.
    Da bleibt dann genug Zeit, falls doch mal 2 Interrupts zeitlich zusammenfallen.
    Ein sei() am Anfang einer Interrupt-Routine ließe aber auch einen Int für I2C mittendrin zu (nested interrupt)

    Was für Fehler gibts denn überhaupt? Bitfehler? Fehlen ganze Bytes?

    MfG Niels

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hi,
    schwer zu sagen, welchen Fehler ich habe, da Linux mir derzeit nur einen result-code -1 zurück gibt.

    Leider streikt auch mein I2C Bus Monitor bei dieser Speed (250k). Der zeigt nur Teile der Übertragung an.
    Der ist mit 100kBaud schon an seiner Grenze und kann auch hier längere Protokolle nicht mehr mitschreiben.

    Ich versuche gerade den Fehler weiter einzugrenzen (c++-linux). Ein einziger Schreibbefehl auf eine Variable scheint kein Problem zu sein. Sende ich mehrere Bytes in einem Rutsch herunter, hat der Kontroller wohl ein Problem.

    Ich habe die Routine auch schon dahin geändert, das ich das AC/NACK wirklich am Ende der Routine sende, damit der Master nicht schon wieder mit der nächsten Datenübertragung beginnt, bevor der Kontroller die Interrupt-Routine verläßt. Viel schneller geht es wirklich nicht.

    Bei Lesen erscheint das Problem nicht derart. Ich vermute evtl. also auch noch einen Bug in meiner Schreib-Routine. Kann Ihn aber derzeit nicht mehr sehen (Amtel Code).

    Derzeit habe ich einen 200Mhz CPU für Linux im Einsatz, die 400Mhz CPU liegt aber schon auf dem Schreibtisch und wartet auf dem Einbau. Ich habe da schon die Vermutung, das das ganze noch schlimmer wird, da hier dann das Abtaster Raster kürzer wird.

    Gruss R.
    Geändert von Ritchie (21.07.2012 um 17:32 Uhr)
    Kaum macht man es richtig, schon funktioniert's ...

Ähnliche Themen

  1. Atmega in MPCP Modus
    Von demmy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 07.05.2012, 09:23
  2. Antworten: 3
    Letzter Beitrag: 06.11.2010, 19:54
  3. Interrupt beim I2C Slave
    Von guenter1604 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 07.12.2009, 19:59
  4. Interrupt bei TWI Slave (Atmega8)?
    Von ingo pirker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 20.11.2009, 23:36
  5. I2C Slave Interrupt
    Von simple im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 29.11.2006, 18:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests