Forum: Mikrocontroller und Digitale Elektronik ADC Daten senden


von Lümmel (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Bastler (Gast)


Lesenswert?

>Jemand Erfahrungen mit der Ansteuerung einen ADCs?

Verrate doch mal den TYP, es soll mehrere ADCs mit I²C geben...

von Lümmel (Gast)


Lesenswert?


von Cyblord -. (cyblord)


Lesenswert?

Ohne das DB gelesen zu haben:
Die Bezeichnung WORD-Address und WORD-Data deutet stark auf 16 Bit hin.

von Oliver P. (mace_de)


Lesenswert?

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.

von Lümmel (Gast)


Lesenswert?

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??

von Oliver P. (mace_de)


Lesenswert?

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.

von Lümmel (Gast)


Lesenswert?

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!

von Oliver P. (mace_de)


Lesenswert?

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.

von Lümmel (Gast)


Lesenswert?

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

von Lümmel (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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

von Lümmel (Gast)


Lesenswert?

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?

von Lümmel (Gast)


Lesenswert?

Im Datenblatt ist bei VDDA aber auch von "VDDA Output Voltage" die Rede, 
die über den LDO eingestellt werden kann!

von Cyblord -. (cyblord)


Lesenswert?

Weder die Kommunikation kannst du aus dem DB ablesen noch die 
Beschaltung.
Vielleicht liegt dir ja Gärtnern oder Töpfern eher...

von PittyJ (Gast)


Lesenswert?

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.

von Christian123 (Gast)


Lesenswert?

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.

von Lümmel (Gast)


Lesenswert?

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

von Lümmel (Gast)


Lesenswert?

Keiner mehr mit einem Ratschlag bzgl. REFO?

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.