Hallo, ich würde gerne einen ADC seriell ansprechen. Es funktioniert in etwa wie folgt (siehe Anhang): 1. Sende Device Adresse und warte ACK (8 bit) 2. sende Registeradresse und warte (16bit) 3. sende Daten (8bit) ?? 4. Stop Due 8 bit Daten werden bei mir NIE bestätigt. Nach Bild ADC2 erwartet der ADC auch 16-Bit (WORD) was mir nach Bild adc jedoch nicht ganz ersichtlich ist, da hier eindeutig nur 8 bit beschrieben werden müßen. Ich bin mir also unsicher wieviele Bits Daten ich hier senden muss. Wenn ich nur 8 bit sende, das ADC IC jedoch 16 erwartet, erklärt dies natürlich warum diese nicht bestätigt werden. Jemand Erfahrungen mit der Ansteuerung einen ADCs?
>Jemand Erfahrungen mit der Ansteuerung einen ADCs?
Verrate doch mal den TYP, es soll mehrere ADCs mit I²C geben...
Ohne das DB gelesen zu haben: Die Bezeichnung WORD-Address und WORD-Data deutet stark auf 16 Bit hin.
Laut Datenblatt hat die Adresse nur 8 Bit. Die Adresse darf dabei 00h-04h sein. Alles was >04h ist führt zu Fehlern oder zum Kommunikationsabbruch. Das steht so in den Fußnoten zum Diagramm. EDIT: Macht auch Sinn, es gibt ja nur 5 R/W Register.
Vielen Dank für die Antworten. Das habe ich auch gelesen. Es gibt jedoch 6 Read/Write Register und die Adressen sind doch 0x000, 0x001, 0x010, 0x011, 0x100 und 0x101 und diese müßen dann mit 16 Bit angesprochen werden oder nicht??? Laut Bild oben wird Register ja auch über WORD Address (also 16 Bit) angesprochen!? Die Note mit der 0x04 ist mir ebenso nicht ganz klar. Ich habe es so verstanden, dass wenn die Adresse des Reigisters > 0x04 ist -> die Adresse nicht mehr ACK wird. Auch unverständlich warum WORD Daten (also 16 Bit) gesendet werden müßen??
Nicht direkt, 0x101 ist ein Read Only Register. Die Bezeichnung "Word" ist hier etwas unglücklich gewählt. Der Hersteller versteht unter "Word" einen 8 Bit Wert. Geht ja auch aus dem Diagram hervor wenn man die Bits zählt.
hmmm, d.h. deiner Meinung nach ist das SYS Register mit 0x00, ADC1 mit 0x01, ADC2 mit 0x03, ADC3 mit 0x03 und ADC4 mit 0x04 also 8 bit angesprochen und dann werden ebenso nur 8 bit Daten gesendet? Ist das des Rätsels Lösung? Wenn das stimmen würde, wie würde ich dann das Read only Register mit 8 bit ansprechen. Wiederum vielen Dank, das hilft mir enorm weiter!
Ja, so lese ich das zumindest aus dem Datenblatt herraus. Das Lesen ist ein anderes Paar Schuhe. Da darfst du die Adresse 05h natürlich verwenden. Du musst dann halt aufpassen wieviele Bits gelesen werden müssen. Bei den Registern 00h-04h sind das 8 Bit und bei 05h 24 Bit wobei nach 8 Bit jeweils ein ACK kommt.
Hey Oliver, möchte mich bei Dir recht herzlich bedanken! Es scheint wirklich so zu sein, wie Du gesagt hast. Habe mich durch die Registeradressen (000h, 001h, etc...) und das WORD Adress bzw. WORD Data zu sehr verwirren lassen. Danke nochmals
Noch eine weitere Frage. Die grundsätzliche Funktion eines ADC ist natürlich klar. Ich überlege nun aber wie ich den obigen Wandler beschalte und mir fehlt noch das grundsätzliche Verständnis einiger Pins wie z.b. REFN, REFP, VDDA und REFO, auch wenn das Blockdiaramm auf S. 7 ja schon Auskunft gibt. Ebenso ist ja eine Beispiel Application Schaltung gegeben (S.9). Mir fehlt aber noch das Verständnis warum diese Pins gerade so verschaltet sind. REFN und REFP können ja scheinbar über das zugehörige Register eingestellt werden -> Dann müssen die Pins natürlich auch Hardwareseitig so beschaltet werden. Aus der Differenz von REFP und REFN ergibt sich dann ja eine Referenzspannung, die auf den Delta Sigma AD geht. Warum ist dann REFP in der Application Circuit direkt mit VDDA connectet? VDDA scheint eine interne Ausgangsspg. zu sein, die ja auch über ein Register gesetzt werden kann. Wenn Jemand aus dem Stehgreif ein paar Sätze zu der Problematik sagen könnte wäre ich dankbar.
Lümmel schrieb: > Wenn Jemand aus dem Stehgreif ein paar Sätze zu der Problematik sagen > könnte wäre ich dankbar. Situation: Du betreibst den IC mit 3,6V. Deine Aufgabe verlangt, dass du Spannungen, die sich im Bereich von 2V bis 3V bewegen können, mit möglichst hoher Auflösug messen kannst. Frage: wie machst du das, wenn du den IC bis aufs letzte ausnutzen willst? Genau. Du baust dir 2 Referenzspannungsquellen, schliesst die eine an REFN an, die andere an REFP und sorgst so dafür, dass der ADC seine 24 Bit genau auf diesen Bereich aufteilt. > VDDA scheint eine interne Ausgangsspg. zu sein Nö. VDDA Analog Power Supply Eine Power Supply ist immer eine Versorgungsspannung
Danke schon einmal. Im Application Circuit hängt an VDDA ja gar keine Spannung. Ist VDDA sozusagen nur dazu da, um eine Referenzspannung (beispielsweise über REFP) einzustellen. D.h. zum Beispiel wenn ich 3V an VDDA hänge, VDDA mit REFP verbinde und REFN mit GND teilt der ADC "seine 24 Bit auf den Spannungsmessbereich zwischen 0 und 3 V auf". Wofür ist dann genau REF 0?
Im Datenblatt ist bei VDDA aber auch von "VDDA Output Voltage" die Rede, die über den LDO eingestellt werden kann!
Weder die Kommunikation kannst du aus dem DB ablesen noch die Beschaltung. Vielleicht liegt dir ja Gärtnern oder Töpfern eher...
Hm, was ich jetzt nicht verstehe: Das Teil ist ein 24 Bit ADC, also recht empfindlich. Da lötet man nicht einfach mal dran herum. Sprich der 'Anwender' sollte Elektronik-Wissen haben, um die 24 Bit auch auf elektrischer Ebene auszunutzen. Das sehe ich hier nicht. Weder Elektronik-Wissen, noch I2C-Kenntnisse noch Datenblatt-Lesen ist vorhanden. Was soll das also? Ein Fahranfänger bekommt einen Polo und kein Formel-1 Wagen. Um einfach mal so mit einem ADC zu spielen, dazu reichen doch die 10 Bit im Atmel. Und die gibt es sogar ohne I2C.
Leg wenn Du eine interne Referenzspannung verwenden willst einfach VSSA (GND analog) und REFN an Masse, REFP über nen 100n (wie im Datasheet) gegen GND. Dann kannst du deine INTERNE Referenzspannung aus VREF = Refp - Refn berechnen. beispielsweist ist dann REFP = VDDA (über Konfigurationsregister einstellen). An VDDA zum Beispiel auch die Versorgungsspannung des Chips (3,3V). -> 3,3 V / 2^24 (bzw. hier 23) ergibt dann die Breite einer Spannungsstufe. Der herausgegebene ADC Wert multipliziert mit dieser Spgs.stufe ergibt dann wieder die äquivalente Spg.
Hey, ich habe es jetzt versucht einmal so auszuprobieren wie oben beschrieben und es klingt einleuchtend. Wenn ich refp = 3,3 V setze (über VDDA, dort ist 3,3V angeschlossen) und refn auf Masse ziehe ergibt sich eine Referenzspg. von 3,3 V. Bei 23 Bit ergeben sich dann 2^23 Spannungstufen und die "Breite" einer SPgs.stufe ist dann 3,3V / 2^23 = 0,3934 uV. Was mir leider immer noch nicht ganz klar ist, ist was REFO bedeutet. Laut Datenblatt ist diese über 100nF gegen Masse geschaltet und ist eine "programmable Output Voltage", die durch setzen der "Konfigurationsregister" auf 1,2 V bzw. 1,5 V geswetzt werden kann. Diese soll jedoch disablet werden, wenn mit einer externen Input Voltage gearbeitet wird. Diese habe ich ja eigentlich nicht an refp und refn. Zusammenfassung: 3,3 V an VDDA, REFP (100nanoF vs GND) per Konfig-register = VDDA setzen, REFN vs GND und REFO disablen, 1,2V oder 1,5V?? Vielen Dank trotzdem für ernstgemeinte Hilfe! Gehe jetzt ne Runde töpfern
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.