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