Forum: Mikrocontroller und Digitale Elektronik Serielle Chip Ansteuerung?


von Gerd F. (gerd_f)


Lesenswert?

Hallo,

die Auflösung des internen ADC des 89C51CC03ers reicht für mein Projekt 
leider nicht aus. Ich möchte Strom messen (60mv Shunt - 150A) Bei 10 Bit 
bekomme ich eine Auflösung von 146 mA, deshalb würde ich gerne einen 12 
Bit ADC einsetzen, dann bekommme ich immerhin 36,6 mA Schritte, das 
sollte dann reichen um die entnommene und zugeführte Leistung 
einigermassen genau zu ermitteln.

Ich habe mir den 12 Bit ADS7816 rausgesucht, er wird seriell angesteuert 
über !CS, DCLOCK und Dout. Ich möchte das folgendermassen machen:

- Mit einem Port DCLOCK hin und her schalten.
- Den Chip mit CS=0 aktivieren.
- Während den nächsten 12 Impulsen die bits von Dout lesen und zu einem 
12 Bit Wort zusammensetzen.

Ist das das richtige Vorgehen oder gibt es da eine elegantere Lösung?

Gruss
Gerd

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Es gibt auch die Möglichkeit, die Auflösung eines gegebenen Wandlers 
durch Oversampling zu erhöhen. Das setzt natürlich die effektiv 
erzielbare Samplerate herab; um vier Bit zusätzliche Auflösung zu 
gewinnen, ist 256faches Oversampling erforderlich, bei zwei Bit genügt 
16faches Oversampling.

Dieses Konzept ist in einer AppNote* von TI beschrieben, ich habe es 
erfolgreich mit dem in verschiedenen MSP430-Varianten verwandten 
12-Bit-A/D-Wandler umgesetzt (auf 'F449, 'F1611 und 'F5438), mit dem so 
stabile 16 Bit Auflösung erreicht wurden.

Das Prinzip ist einfach: 256 Samplewerte werden addiert und die 
resultierende Summe durch 64 geteilt.

*) 
http://focus.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=slaa323

von Peter D. (peda)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das Prinzip ist einfach: 256 Samplewerte werden addiert und die
> resultierende Summe durch 64 geteilt.

Kann man machen, wenn man sie gerne selber in die Tasche lügen will.
Das Ergebnis ist hochgradig vom Rauschen des Signals und des ADC 
abhängig.
Es ist im allerbesten Falle monoton, aber keinesfalls linear.

Ich hab das selber mal mit nem ATmega8 probiert, der hat auch nen 10 Bit 
ADC. Ich habe nichtmal ein 11. Bit rauskitzeln können.

Wenn ein ADC so gut wäre, daß er 12 Bit Auflösung schafft, warum sollte 
dann der Hersteller nur 10 Bit ausgeben?


Peter

von Peter D. (peda)


Lesenswert?

Gerd F. schrieb:
> Ist das das richtige Vorgehen oder gibt es da eine elegantere Lösung?

Ja, so wird das gemacht.
Nennt sich Software-SPI.


Peter

von Gerd F. (gerd_f)


Lesenswert?

Ich hab den 12 Bit ADC auf meinem layout auch schon untergebracht, es 
geht mir nur noch um die Softwaremässige Ansteuerung, ob der oben 
beschriebene Weg so funktionierten wird oder ob man das anderst macht, 
ich hab eben nich nie mit einem Chip der auf diese Weise angesteuert 
wird, gearbeitet.

Gruss
Gerd

von Gerd F. (gerd_f)


Lesenswert?

Danke Peter, unser Treat hat sich gerade überschnitten :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das hat möglicherweise auch mit dem Aufbau des ADC zu tun, da gibt es ja 
unterschiedliche Funktionsweisen. Daß TI vollständige Augenwischerei 
betreibt, das wage ich zu bezweifeln.

Peter Dannegger schrieb:
> Wenn ein ADC so gut wäre, daß er 12 Bit Auflösung schafft, warum sollte
> dann der Hersteller nur 10 Bit ausgeben?

Nun, er ist dann ja erheblich langsamer, was sich nicht so schick 
verkauft.

Ich werde mal meinen Testaufbau (besteht im wesentlichen hieraus: 
http://olimex.com/dev/msp-449stk2.html) überprüfen, ich kann dafür eine 
Präzisionsspannungsquelle mit vier Dekaden und auch eine 
Widerstandsdekade mit sechs Dekaden verwenden; Kontrollmessungen kann 
ich mit einem genauen kalibrierten DVM anstellen.

Kann jetzt aber noch nicht genau sagen, wann ich dazu kommen werde; im 
Büro ist gerade Land unter.

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.