Hallo, ich habe die Aufgabe bekommen mit einem externen ADC Widerstände zu Messen. Ich habe den AD7793 gewählt und über SPI mit meinen µC verbunden. Probleme habe ich jetzt mit der Behandlung des "data-ready signal". Meine erste Idee war das die einen Interrupt auslösen soll, aber mein SPI Pin kann dieses nicht. Kann mir einer Helfen? ------------------------------------------------------------------ The DOUT/RDY pin operates as a data-ready signal also, the line going low when a new data-word is available in the output register. It is reset high when a read operation from the data register is complete. It also goes high prior to the updating of the data register to indicate when not to read from the device, to ensure that a data read is not attempted while the register is being updated.
Wo ist denn jetzt Dein Problem? Sei einfach mal ein bißchen kreativ! Wer sagt denn, daß man(n) das DOUT/RDY-Signal nur an einen Pin des Controllers legen darf? Da der Pin ja eine duale Funktion hat, kann man ihn sowohl an SPI hängen für die 'normale' Kommunikation und an einen maskierbaren Interrupt-Eingang, der in der Lage sein sollte die fallende Flanke am DOUT/RDY-Signal zu detektieren und daraufhin einen Interrupt auszulösen. Während man selbst mit dem AD7793 kommuniziert sollte man dann tunlichst den Interrupt-Eingang via Maske 'disablen', damit Dein µC keine Interrupts während dieser Zeit vom ADC akzeptiert. Eine andere Methode wäre das Status-Register kontinuierlich zu pollen und SR7 (was das /RDY-Bit ist) abzufragen.
Das Problem ist das ich gehoft habe die spärlich vorhandenen Interrupt für anderes benutzen zu können. =) Ein Pollen habe ich getest, verbraucht mir aber zu viel Rechenleistung. LG Bergie
Tja, kein Vorteil ohne Nachteil. Für irgend eine Methode wirst Du Dich aber wohl entscheiden müssen, gelle? Bedenke: Die Summe aller Übel ist stets konstant. ;-)
Ok erstmal danke für deine Hilfe =) Meine hoffnung war das mir einer sagen kann das mein MSP430x248 das Rdy Signal des AD-Wandeles erkennt und so zu sagen automatisch nen Int. auslösen kann. LG
Bergie B. schrieb: > Das Problem ist das ich gehoft habe die spärlich vorhandenen Interrupt > für anderes benutzen zu können. =) > > Ein Pollen habe ich getest, verbraucht mir aber zu viel Rechenleistung. > > LG Bergie Warum Pollen oder Interrupt? Der interne Oszillator des AD7793 ist genau und stabil genug, um die Wandlungen einfach per Timer alle x-Millisekunden (mit entsprechenden Reserven) starten zu können (bzw. die Ergebnisse auszulesen).
Arc Net schrieb: > Warum Pollen oder Interrupt? > Der interne Oszillator des AD7793 ist genau und stabil genug, um die > Wandlungen einfach per Timer alle x-Millisekunden (mit entsprechenden > Reserven) starten zu können (bzw. die Ergebnisse auszulesen). Kann man auch machen. Nur dann sollte man tunlichst nicht den "Continuous Conversion Mode", der auch noch der Default-Mode ist, wählen, sondern den "Single Conversion Mode" - dann gibt es jedenfalls keine Probleme, das der ADC und der µC asynchron zueinander werden können, und man kann den Timer zur 'Ablaufsteuerung' mißbrauchen.
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.