Forum: Mikrocontroller und Digitale Elektronik LTC2440 über SPI mit atmega 16 aulesen


von Kolja (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute!

Um eine sehr kleine und möglichst genaue Spannung zu messen, wollte ich 
einen 24Bit SigmaDelta ADC verwenden(LTC2440). Zu Testzwecken habe ich 
deswegen nen Poti an den Eingang des ADC gehängt. Ansonsten habe ich die 
Pins laut Datenblatt verbunden. Zunächst wollte ich mir einmal die 32 
Bit anschauen, die der ADC rausshiftet und auf einem LDC anzeigen 
lassen.
Mein Code dafür habe ich angehängt. Nun bekomme ich lauter Einsen und 
Nullen auf meinem Display angzeigt. Das Merkwürdige ist, dass viele 
dieser Stellen sehr wackeln und die Vollauschläge des Potis nicht als 
(111...111) und (0000.....0000) gewertet werden. Zwischendurch erwisch 
ich mit dem Poti auch einen Bereich, in dem ich erkennen kann wie 6 Bits 
binär hochzählen, während die anderen nur wie verrückt wackeln. Dies 
lässt mich hoffen, dass der ADC funktioniert und ich die SPI - 
Verbindung falsch programmiert habe.

Hat jemand eine Idee, was an meinem Code alles falsch ist? :)

Viele Grüße
Kolja

von cskulkw (Gast)


Lesenswert?

LTC2440 sind die gewandelten Daten mit Most Significant Bit first

Auszug Datenblatt Seit 11
Bits ranging from 28 to 5 are the 24-bit conversion result
MSB fi rst.

Das bedeutet, dass DORD auf 1 stehen sollte. Sonst mußt Du die Bitorder 
im Code anpassen.


######################################
AtMega xxx unter Registerbeschreibung des SPI-Interfaces

• Bit 5 – DORD: Data Order
When the DORD bit is written to one, the LSB of the data word is 
transmitted first.

When the DORD bit is written to zero, the MSB of the data word is 
transmitted first.
######################################


Außerdem fragst Du ohne darauf zu warten, dass der AD-Wandler seine 
Wandlung beendet hat, das Datenregister aus.

Bei anderen AD-wandlern muß man warten, sonst gibt es nur Müll aus 
Ausgabe.

Vielleicht ist das ja schon Dein Problem.

von Kolja (Gast)


Lesenswert?

Ich habe jetzt mal eine while - Schleife eingebaut, die wartet bis die 
Wandlung beendet ist. Das ändert leider aber nichts. :(

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.