Ahoi, folgendes Problem: Ich habe erfolgreich (zumindest im Atmel-Simulator) die Kommunikation zw. Atmega32 und AD7794 über SPI implementiert, allerdings gibt es da eine Sache, die ich nicht hinkriege. Der AD7794 setzt die DOUT/nRDY-Leitung (MISO) auf LOW, wenn eine Konversion abgeschlossen ist, aber dies ist im SPI-Handling des Atmega nicht implementiert, d.h. er löst das Interrupt immer bei "transmission complete", ohne Rücksicht auf MISO. Interessanterweise ist die Leitung nur beim Auslesen der Daten wichtig, das reine Reinschieben von Befehlen geht laut Datenblatt von AD7794 auch bei DOUT/nRDY auf HIGH. Gibt es eine Möglichkeit es interruptgesteuert zu lösen, ohne polling? Das einzige was mir einfällt, ist das SPI-Interrupt (welches aus einem Ringspeicher Befehle an den AD7794 weiterleitet und ankommende Daten in einen anderen Ringspeicher schreibt) vor dem speziellen Befehl des Auslesens des DATA-Registers des AD7794 zu deaktivieren und einen Timerinterrupt zu aktivieren, der jede Millisekunde die DOUT/nRDY-Leitung überprüft. Falls die Leitung auf LOW geht, aktiviert die Timerinterruptroutine das SPI-Interrupt und deaktiviert sich selbst. Ansonsten ein dickes Lob an das Forum, immer wieder erste Suchmaschineneinträge bei Elektronikfragen. Grüße Tycho
lastbump? Schade, ich werde es also wie oben dargestellt ausprobieren. Im Datenblatt vom AD7794 habe ich folgendes gefunden: "The DOUT/RDY falling edge can also be used as an interrupt to a processor, indicating that valid data is available." Und genau das kriege ich nicht hin. Grüße Tycho
Die Leitung zusätzlich auf einen interruptfähigen Pin legen. Welcher das ist verrät dir dein Datenblatt.
Leider ist die Platine schon entwickelt und verlötet, ich könnte aber eine Brücke legen. Ist das eine typische Lösung für ähnliche Probleme oder geht es noch irgendwie anders?
Im Moment fallen mir keine anderen Lösungen ein; entweder Pollen oder Hardware-Interrupt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.