MCP3561 seltsames Verhalten

OP #6790956
Lesenswert?

Hallo zusammen,

ich versuche gerade einen MCP3561 ADC auszulesen. Der ADC ist über ein 
IsoSPI-Interface (LTC6820) mit dem Master verbunden. Daher kann ich die 
Interruptleitung nicht verwenden und muss pollen.
Ich nutze den ADC, weil er eine CRC Prüfsumme an die Daten anhängt (Ist 
eine Anforderung).

Nun zu dem Problem. Ich setze beim Start die Konfigurationsregister 
(Bild 1). Dabei nutzt der ADC seine interne Clock (Die auch 
funktioniert, vgl. Bild 3, Kanal 7. Frequenz = 4,2 MHz).

Ich setze dann periodisch das Mux-Register, gefolgt von Incremental 
Read-Kommandos ab Adresse 0 (ADCDATA) (Bild 2). Das mache ich so lange, 
bis das Bit /DR_STATUS (Data ready) im Status-Byte 0 ist (Bild 4).
So wie ich das Datenblatt verstehe, sollte der ADC mit der gesetzten 
Config selbstständig Messungen durchführen.

Zum testen setze ich den Mux auf die interne Temperaturmessung, um 
Fehler von Extern auszuschließen. Aber das Ergebnis ist eigentlich immer 
dasselbe.
Der gelesene ADC-Wert ist immer 0.

Aufgrund der Tatsache, dass es teilweise über eine Millisekunde dauert, 
bis das /DR_STATUS Bit auf 0 springt, gehe ich von einem 
Konfigurationsfehler aus.

Die Versorgungsspannung ist Ok und die Referenzspannung ist auch in 
Ordnung.

Vielleicht hat ja jemand eine Idee.

https://ww1.microchip.com/downloads/en/DeviceDoc/MCP3561-2-4-Two-Four-Eight-Channel-153.6-ksps-Low-Noise-24-Bit-Delta-Sigma-ADCs-DS20006181B.pdf

Edit: Ach mist, während der Beitrag noch nicht abgeschickt war, habe ich 
nochmal im Code rumgepfuscht. sensor_2.c ist die zum Thread passende 
Datei...
Beitrag #6790969 wurde von einem Moderator gelöscht.
Gast #6873025
Lesenswert?

Hallo Luca,

spontan, ohne Deinen Code durchgegangen zu sein: Ich hatte mit dem 
verwandten 3564 ein ähnliches Problem. Es lag letztendlich daran, dass 
der ~IRQ-Pin im High-Z-Mode einen Pull-Up benötigt. Hatte ich zunächst 
im Datenblatt, Section 3.4, überlesen. Vielleich liegts daran?

Hier 
(https://stackoverflow.com/questions/62436715/adc-mcp3561-not-returning-conversion-values 
, versteckt im Post unter der Antwort) wurde ein ähnliches Problem u.a. 
wohl auch so behoben.


VG
Roderick
OP #6873103
Lesenswert?

Hallo Roderik,

das kann tatsächlich das Problem sein. Der IRQ Pin ist aktuell 
unbeschaltet. Steht tatsächlich explizit im Datenblatt, dass der einen 
Pullup braucht. Klarer Fall von RTFM mal wieder...

Ich hatte in der Zwischenzeit sogar Kontakt mit Microchip. Dort hat man 
meinen Code getestet und keinen Fehler festgestellt. Hab dann 
letztendlich eine andere Lösung gefunden.

Ich probiere das die Tage mal aus. Dann kriege ich die ADCs, die hier 
jetzt rumliegen, vielleicht doch noch verbaut. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren