Forum: Mikrocontroller und Digitale Elektronik MCP3425 - Frage zum Config Register


von Martin S. (sirnails)


Lesenswert?

Guten Tag,

ich habe hier den MCP3425, der eigentlich tut was er soll, solange ich 
nur den Lese-Befehl verwende.

Das Command-Byte im Lesebefehl setzt die Einstellungen für die nächste 
Messung neu (Gain, Bit-Tiefe, Modus). Wenn ich hier 0x00 schicke als 
CMD-Byte, so überschreibt er mir die Einstellungen allerdings mit der 
Repräsentation dieses Wertes - unabhängig von dem, was im 
Config-Register steht.

Wenn ich versuche, per Write die Config zu schreiben, dann übertragt er 
die Daten richtig.

9B = 8 V/V, 16-bit, Continous Mode, keine Adresse (hat der MCP nicht), 
sowie das ignorierte Initiate new conversion.

Der Analysator sagt, es wird geschrieben:

68WA 9BA

Also so, wie es soll.

Wie kann ich jetzt allerdings "nur lesen", ohne die Config zu 
überschreiben? Wenn das nicht geht, macht es ja keinen Sinn, die Config 
per I²C-Write zu schreiben, denn es wird ja bei jedem Lesezugriff 
überschrieben.

Was hab ich nicht verstanden?

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Du kannst nur ein Byte beschreiben.
Das Config-Byte wird bei jedem Schreibbefehl beschrieben.

Auslesen kannst du es nur zusammen mit den drei Datenbytes.
Dann wird es als letztes übertragen (Grafik auf Seite 18).
Ob die Daten gültig sind, erkennst du am /RDY-Bit (1: Messwert ist noch 
nicht aktualisiert worden).

Soweit klar?

Im Continous-Mode misst der ADC dauerhaft - die 4 Datenbytes kannst du 
jederzeit abfragen.

Willst du nur eine Messung durchführen, konfigurierst du diese auch 
jedes Mal "neu", auch wenn sich an der Konfiguration gar nichts geändert 
hat.
Zum Starten einer Einzelmessung musst also in deinem Master-Controller 
ein Byte vorhalten, das du zum Auslösen der Messung an den ADC schickst.

Deine Fragestellung verstehe ich leider nicht besser.

von Martin S. (sirnails)


Lesenswert?

Ja doch verstehst du schon richtig.

Aber warum steht das dann im Datenblatt über zig Seiten verteilt nur 
indirekt drinnen?!

Dann hab ich das wohl richtig verstanden, aber Sinn macht das für mich 
keinen, zumal sich ein ähnlicher MCP hier genau anders herum verhält.

von STK500-Besitzer (Gast)


Lesenswert?

Martin S. schrieb:
> Aber warum steht das dann im Datenblatt über zig Seiten verteilt nur
> indirekt drinnen?!

Sei froh, dass die Informationen nicht wie bei STM32-Controllern über 
mehrere Dokumente verteilt ist.
Es ist ein Datenblatt. Das wird für fach/sachkundige Leser geschrieben.
Ich vermute, du suchst etwas in der Art eines Tutoriums.


Martin S. schrieb:
> Dann hab ich das wohl richtig verstanden, aber Sinn macht das für mich
> keinen, zumal sich ein ähnlicher MCP hier genau anders herum verhält.

Welcher Sinn erschließt sich dir nicht?
Und welchen MCP meinst du?
Dieser ADC ist derart einfach gestrickt, dass er nur ein 
(beschreibbares) Register zur Konfiguration benötigt.
Gleiches gilt fürs Auslesen: Einfach immer vier Bytes abfragen.
Hätte er jetzt z.B. noch einen Multiplexer an Bord, bräuchte man ein 
weiteres Register. Dann würde sich auch eine Register-Adressierung 
anbieten. Aber so?
Keep it simple.

von Martin S. (sirnails)


Lesenswert?

STK500-Besitzer schrieb:
> Welcher Sinn erschließt sich dir nicht?

Naja also wenn ich den ADC im Single-Shot Modus betreibe, und das 
"Initiate new measurement"-Bit setze, dann liefert er als Status "not 
updated" zurück.

Meine naive Vorstellung war, dass das Setzen der Konfig ja eine gewisse 
Zeit beansprucht, und deshalb fand ich es intuitiv widersinnig, die 
Konfig jedes mal neu zu schreiben, weil der ADC sich ja dann auch immer 
neu verhalten muss.

Scheinbar aber macht er das intern so schnell, dass das nicht ins 
Gewicht fällt.

Ich bin ohnehin total begeistert von dem Teil.

Habe eine Strommessung einer PWM mit INA253 und dem MCP3425 freiluft auf 
dem Steckbrett aufgebaut, und bei 5A @ 1kHz, 30% Duty Cycle habe ich 
eine Abweichung zum Agilent U1241A von gerade einmal 3 mA.

Dafür, dass dort absolut nichts kalibriert ist, sondern aus-der-Kiste 
heraus gemessen ist, finde ich das schon ziemlich gut. Auch so hat der 
ADC kaum rauschen, und kippt nur im LSB etwas herum.

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.