Forum: Mikrocontroller und Digitale Elektronik A/D-Wandler ADS1255 antwortet nicht


von Wolfgang-G (Gast)


Lesenswert?

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

von Wolfgang-G (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>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?

von Wolfgang-G (Gast)


Lesenswert?

>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

von Arc N. (arc)


Lesenswert?

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.

von Wolfgang-G (Gast)


Lesenswert?

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

von Arc N. (arc)


Lesenswert?

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
Noch kein Account? Hier anmelden.