Hat jemand einen funktionstüchtigen Programmschnipsel für den ADS1255? Der ADS1255 auf meiner Leiterplatte antwortet nicht. Bevor ich den ADS1255 austausche, wollte ich ausschließen, dass ich einen (oder mehrere) Fehler im Programm habe. Das Programm muss nicht ausgefeilt sein, Hauptsache es läuft und liefert Messwerte ab. MfG
Zwischenzeitlich läuft bei mir das Auslesen eines Messwertes. Hauptursache war die falsche Polarität für SPI. Der ADS 1255 erwartet für den SCLK Takt im inaktiven Zustand L. Noch nicht gelingt mir das Beschreiben eines Registers. Um z. B. die Verstärkung zu ändern, habe ich formuliert: void einstellungen_ADS1255(void) { TXBUF0 = 0x52; //1. Kommando, 0101 schreiben zum Register; // 0010 = Reg 2=ADCON TXBUF0 = 0x00; //2. Kommando, Anzahl der Bytes, die geschrieben werden //sollen -1;--> 1 Byte TXBUF0 = 0x01; //Verstärkung = 2 } Bei mir ändert sich der ausgelesene Wert nicht. Es bleibt bei dem Wert, der auch mit der Verstärkung = 1 gemessen wird. Was könnte ich falsch machen? MfG
>Was könnte ich falsch machen?
Du weisst nicht welchen uC du benutzt.
Ausserdem schreibst du in TXBUF0 ohne zu checken
ob die letzte Übertragung fertig ist. Hat dein uC da einen
FIFO?
>Ausserdem schreibst du in TXBUF0 ohne zu checken >ob die letzte Übertragung fertig ist. Danke für Deine Ferndiagnose. Hier war der Fehler. Die Einstellung der Verstärkung funktioniert schon, an den anderen Parametern wird noch gearbeitet. was wäre besonders wichtig, um rauscharme Messwerte zu erhalten? (nach Möglichkeit sollen alle 23 BIT verwendbar sein) z. Zt. gehen die letzten 4-5 Bit bei kurzgeschlossenen Eingängen im Rauschen unter. MfG
Wolfgang-G schrieb: >>Ausserdem schreibst du in TXBUF0 ohne zu checken >>ob die letzte Übertragung fertig ist. > Danke für Deine Ferndiagnose. Hier war der Fehler. > > Die Einstellung der Verstärkung funktioniert schon, an den anderen > Parametern wird noch gearbeitet. > > was wäre besonders wichtig, um rauscharme Messwerte zu erhalten? (nach > Möglichkeit sollen alle 23 BIT verwendbar sein) > z. Zt. gehen die letzten 4-5 Bit bei kurzgeschlossenen Eingängen im > Rauschen unter. > MfG Gutes Layout, vernünftige Masseführung/trennung, Eingangs/Antialiasfilter, Referenzspannung filtern, Spannungsversorgung des ADCs u. der Referenz "rauschfrei", Over/undershoot an den digitalen Eingängen des ADCs verhindern (Serienwiderstand) falls während der Wandlung was über SPI übertragen werden muss (besser separaten SPI-Bus für den Wandler der dann während der Wandlung still ist) etc.pp.
Für diejenigen, die es interessiert: Nachdem das Beschreiben der Register jetzt funktioniert, konnte vor allem durch die Einstellung der Umsetzgeschwindigkeit auf 2,5 Umsetzungen/s das "Rauschen" auf 1-2 Einheiten gedrückt werden. Bei 2,5V REF sind das nach meiner Rechnung ca. 1µV. Damit kann man zufrieden sein. Noch eine Frage: Was versteht man unter >Over/undershoot an den digitalen Eingängen des ADCs verhindern >(Serienwiderstand) MfG
Wolfgang-G schrieb: > Für diejenigen, die es interessiert: Nachdem das Beschreiben der > Register jetzt funktioniert, konnte vor allem durch die Einstellung der > Umsetzgeschwindigkeit auf 2,5 Umsetzungen/s das "Rauschen" auf 1-2 > Einheiten gedrückt werden. Bei 2,5V REF sind das nach meiner Rechnung > ca. 1µV. Damit kann man zufrieden sein. > Noch eine Frage: Was versteht man unter >>Over/undershoot an den digitalen Eingängen des ADCs verhindern >>(Serienwiderstand) > MfG Das Überschwingen bzw. Unterschwingen das bspw. bei einem Flankenwechsel auftritt (gefolgt vom Klingeln und Einschwingen)... http://en.wikipedia.org/wiki/Overshoot_(signal) http://www.analog.com/library/analogDialogue/Anniversary/20.html
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.