Forum: Mikrocontroller und Digitale Elektronik Suche Mikrocontroller mit 16Bit ADCs und DACs


von Paul (Gast)


Lesenswert?

Hallo,

in einem Projekt (Prozessspannungsquelle) setzte ich zur Zeit den 
STM32F767 ein.
Um Spannung zu regeln, erfasse ich mit den 3 ADCs Ströme und Spannungen 
und gebe über die DACs die Stellgrößen aus.

Das funktioniert soweit auch, allerdings stört mich, dass in oben 
genanntem Mikrocontroller die ADCs und DACs nur 12Bit haben.

Ich benötige 3 ADCs und 2 DACs. Eine Samplerate von 750kSps genügt. Am 
besten 14 oder 16 Bit.
Kennt jemand einen Mikrocontroller mit 14 oder 16Bit ADCs und DACs 
integriert? Oder macht es Sinn bei diesen Anforderungen auf externe 
Bauteile auszuweichen (würde ich eigentlich ungern, denn mit dem 
internen ADC kann man bequem den DMA benutzen).

Viele Dank für eventuelle Tipps!

Gruß,
Paul

von Harald W. (wilhelms)


Lesenswert?

Paul schrieb:

> Oder macht es Sinn bei diesen Anforderungen auf externe
> Bauteile auszuweichen.

Wenn Du nicht nur höhere Auflösung, sondern auch höhere Genauigkeit
willst, sind externe AD/DA-Wandler auf jeden Fall sinnvoll. Vor
allen, wenn diese zusätzlich auch noch schnell sein sollen.

von Guest (Gast)


Lesenswert?

Der H7 hat meine ich 14 Bit ADCs im Msps Bereich. Ansonsten hat der F3 
16 Bit Sigma-Delta aber nur 50ksps. Mehr als 12 Bit DAC wird glaub ich 
schwierig, mir ist da so direkt keiner bekannt. Du kannst natürlich die 
16 bzw. 32 Bit Timer nutzen um ein DAC aufzubauen.

Wenn du es wirklich so genau haben willst dann wirst du wohl nicht um 
externe Komponenten herumkommen. Mal davon abgesehen das es im µC 
ohnehin schwierig ist so eine Präzision zu erreichen. Auch die externen 
Komponenten brauchen eine entsprechende Versorgung etc.

von c-hater (Gast)


Lesenswert?

Paul schrieb:

> Kennt jemand einen Mikrocontroller mit 14 oder 16Bit ADCs und DACs
> integriert?

Nein, gibt es nicht. Es ist nämlich praktisch unmöglich, ADCs mit 
derartiger Auflösung (oder gar Genauigkeit) mit µC-Cores auf einen Chip 
zu bringen.

> Oder macht es Sinn bei diesen Anforderungen auf externe
> Bauteile auszuweichen

Das wirst du zwingend tun müssen. Allerdings wird es darauf 
hinauslaufen, dass du dadurch effektiv wenig bis nix gewinnst. Denn 
diese externen analogen ICs sind gegen die Einfüsse des µC genauso 
empfindlich. Man muss sehr viel Aufwand in der Schaltung und im Layout 
treiben, um ihre Eigenschaften tatsächlich nutzen zu können.

Das ist definitiv nix für Leute, die noch solche Fragen stellen...

von Guido Körber (Gast)


Lesenswert?

Cypress (jetzt Infineon) PSoC 5 und 6

von Aufklärer (Gast)


Lesenswert?

Offtopi @ c-hater:

Gibt es einen Grund warum du auf diesen Beitrag nicht antwortest:

Beitrag "Re: [F] programmierbarer Quarzoszillator"

von c-hater (Gast)


Lesenswert?

Aufklärer schrieb:
> Offtopi @ c-hater:
>
> Gibt es einen Grund warum du auf diesen Beitrag nicht antwortest:
>
> Beitrag "Re: [F] programmierbarer Quarzoszillator"

Mehrere. Wenn du was wissen willst, benutze den ursprünglichen Thread.

von c-hater (Gast)


Lesenswert?

c-hater schrieb:
> Aufklärer schrieb:
>> Offtopi @ c-hater:
>>
>> Gibt es einen Grund warum du auf diesen Beitrag nicht antwortest:
>>
>> Beitrag "Re: [F] programmierbarer Quarzoszillator"
>
> Mehrere. Wenn du was wissen willst, benutze den ursprünglichen Thread.

BTW: I know, who you're.

von Baendiger (Gast)


Lesenswert?

Die MSP432 haben 14 Bit ADC aber gar keine DAC.

von Paul (Gast)


Lesenswert?

Vielen Dank an alle für die Tipps, dann muss ich wohl externe ADCs und 
DACs verwenden und bei Layout auf gute Leitungsführung achten. Oder gibt 
es das als fertige Platine zu kaufen? So etwas ist doch quasi eine 
Standardanwendung....?

von Johannes S. (Gast)


Lesenswert?

es gibt die ADS1115 billig als Modul, 16 Bit Delta-Sigma. Die brauchen 
aber ein paar ms für eine Wandlung.

von Mark (Gast)


Lesenswert?

SiLabs hat einige 8051-Derivate mit recht schnellen und genauen ADCs.
z.B.: https://www.silabs.com/mcu/8-bit/c8051f06x
Ich habe noch keinen vergleichbaren Hersteller ausgemacht.

Gruss
Mark

von Baendiger (Gast)


Lesenswert?

Paul schrieb:
> Oder gibt es das als fertige Platine zu kaufen? So etwas ist doch quasi
> eine Standardanwendung....?

Du wirst sicherlich für alle Einzelkomponenten Evalboards finden. Auf 
mich wirkt das nicht wie eine Standardanwendung, Voralpen mit den doch 
recht hohen Anforderungen an die Genauigkeit.

von Hans-Georg L. (h-g-l)


Lesenswert?

Der Stm32H743 hat 16 bit Wandler mit 14bit ENOB.
Bei 750Khz kannst du noch 4fach oversamplen das wären dann 15Bit.
Das Nucleo Board kostet ca. 25€ probier es einfach aus.

The ADC module itself is a 16-bit successive
approximation converter with additional oversampling
hardware. Due to the noise level, only 14-bit equivalent
performance is achieved. To have more than 16-bit
performance, it is necessary to use oversampling
methodology. Under certain conditions, the oversampled
output can have a 21-bit result. The sampling speed is 5
mega samples per second for 14-bit resolution. Each ADC
module integrates an analog watchdog.

von Paul (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Der Stm32H743 hat 16 bit Wandler mit 14bit ENOB.
> Bei 750Khz kannst du noch 4fach oversamplen das wären dann 15Bit.
> Das Nucleo Board kostet ca. 25€ probier es einfach aus.

Danke für den Tipp, ich habe sogar ein solches Board hier, nur nicht 
daran gedacht!! Wird gleich am langen Wochenende ausprobiert ;-)

von Paul (Gast)


Lesenswert?

c-hater schrieb:
> Das wirst du zwingend tun müssen. Allerdings wird es darauf
> hinauslaufen, dass du dadurch effektiv wenig bis nix gewinnst. Denn
> diese externen analogen ICs sind gegen die Einfüsse des µC genauso
> empfindlich. Man muss sehr viel Aufwand in der Schaltung und im Layout
> treiben, um ihre Eigenschaften tatsächlich nutzen zu können.
>
> Das ist definitiv nix für Leute, die noch solche Fragen stellen...

Was kann ich dann machen? Wie kann ich es lernen?

von Olly T. (twinpeaks)


Lesenswert?

Die ADSP-CM40xF von Analog haben zwei 16-Bit-ADCs, die zwei DACs haben 
aber nur 12 Bit.

von c-hater hater (Gast)


Lesenswert?

Paul schrieb:
> Was kann ich dann machen?

Der c-hater wird dir eine asm Routine schreiben, die aus den 12-Bittern 
die gewünschten 16-Bitter machen. So gut ist er, so gut kann er asm. ;-)

von MiWi (Gast)


Lesenswert?

c-hater schrieb:
> Paul schrieb:
>
>> Kennt jemand einen Mikrocontroller mit 14 oder 16Bit ADCs und DACs
>> integriert?
>
> Nein, gibt es nicht. Es ist nämlich praktisch unmöglich, ADCs mit
> derartiger Auflösung (oder gar Genauigkeit) mit µC-Cores auf einen Chip
> zu bringen.
>

Natürlich gibts diese Prozessoren nur Du weißt nicht das es sie gibt...

Soll der To (und auch Du zur Horizonterweiterung) bei Analog Devices 
nachschauen und sich aussuchen ob der sowas mit einem 8051-Core, Cortex 
M3 oder Cortex M4 haben will.

https://www.analog.com/en/parametricsearch/10852#/

Wir arbeiten mit M3 und in einem älteren Produkt mit 8051-Teilen und 
alles ist bestens, abgesehen davon das der von uns verwendete M3 eher 
gemächlich unterwegs ist.

von Wolfgang (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Bei 750Khz kannst du noch 4fach oversamplen das wären dann 15Bit.
Das reduziert nur das Rauschen und liefert ein Bit mehr Auflösung, wenn 
das Wandlerergebnis ausreichend rauscht, erhöht aber nicht die 
Genauigkeit.

von drm (Gast)


Lesenswert?

jeder uC mit 16 digital IOs hat einen 16bit DAC wenn man daran ein R2R 
Netzwerk anschliesst, der Rest ist Software.
Also kann man die Suche auf einen 16bit ADC einschränken.

von Peter S. (psavr)


Lesenswert?

Der STM32F373 hat 3 Stk.16 Bit ADCs
https://www.st.com/en/microcontrollers-microprocessors/stm32f373.html

Aber max. 50 ksps bei einem Kanal bzw 16.6 ksps bei drei Kanälen.

Wenn Du das Datanblatt genau anguckst, siehst Du dass man die letzen 
2..3 Bit bzgl. Genauigkeit "rauchen" kann, bist also bestenfalls wieder 
bei 13..14 Bit.

Es gibt auch endere uC mit 16 Bit ADCs, aber die kämpfen mit den selben 
Problemem.

Wie schon mehrfach empfohlen: Suche dir einen guten externen 16 Bit ADC, 
die sind um Faktoren besser, Du sparst sonst am falschen Ort.

von drm (Gast)


Angehängte Dateien:

Lesenswert?

Parametersuche CubeMX 188 Treffer, zusammen mit R2R DAC reichlich 
Auswahl bei nur einem Hersteller und uC Serie

von Peter D. (peda)


Lesenswert?

drm schrieb:
> jeder uC mit 16 digital IOs hat einen 16bit DAC wenn man daran ein R2R
> Netzwerk anschliesst

Wo gibt es denn bezahlbare Netzwerke mit 0,001% Matching?
Und die Analogschalter müssen bei 10k Widerständen <0,1 Ohm 
On-Widerstand bzw. >600M Off-Widerstand haben.

Diskrete R2R macht man bis maximal 7 Bit und da braucht es schon 0,1% 
Widerstände.

von Dergute W. (derguteweka)


Lesenswert?

Peter D. schrieb:
> und da braucht es schon 0,1%
> Widerstände.

Und die feste Hoffnung, dass die Ausgangstreiber im Chip natuerlich auch 
alle keine oder genau definierte, gleiche Innenwiderstaende haben und 
deren Ausgangsspannung natuerlich auch keine weiteren relevanten 
Stoerungen ueber die Spannungsversorgung ausgibt...
Naja, die Hoffnung driftet, rauscht und schwingt zuletzt ;-)

Gruss
WK

von Hans-Georg L. (h-g-l)


Lesenswert?

Wolfgang schrieb:
> Hans-Georg L. schrieb:
>> Bei 750Khz kannst du noch 4fach oversamplen das wären dann 15Bit.
> Das reduziert nur das Rauschen und liefert ein Bit mehr Auflösung, wenn
> das Wandlerergebnis ausreichend rauscht, erhöht aber nicht die
> Genauigkeit.

Du hast gelesen das dies ein 16 Bit Wandler und weisst was ENOB ist ?

: Bearbeitet durch User
von Paul M. (Gast)


Angehängte Dateien:

Lesenswert?

Ok, also habe mir nun Gedanken gemacht und anbei ist mein Schaltplan.
Als 16Bit DAC habe ich mir den AD5062 ausgesucht und als ADC würde ich 
den ADS8681 verwenden.

Das ganze soll eine Art "Kennlinienschreiber" werden, um von Dioden und 
(wenn man zwei Kanäle aufbaut) von Transistoren die Kennlinie aufnehmen 
zu können.

Hat jemand Anmerkungen oder Tipps für mich? Könnte das so funktionieren?

Die Masse habe ich in "Power" und Signal-Masse aufgeteilt und an einem 
Sternpunkt zusammengeführt.

Ein Thema ist noch, passende OpAmps zu finden....

von Paul M. (Gast)


Lesenswert?

Hat jemand eventuell einen Tipp für mich, auf was ich bei der Auswahl 
der OpAmps achten sollte? Geringe Offsetspannung und wenig Rauschen?

von Mark (Gast)


Lesenswert?

AD8033 ist vermutlich passend.
Gruss
Mark

von Andi (Gast)


Lesenswert?

Paul M. schrieb:
> Das ganze soll eine Art "Kennlinienschreiber" werden, um von Dioden und
> (wenn man zwei Kanäle aufbaut) von Transistoren die Kennlinie aufnehmen
> zu können.

Kannst du mir mal erklären wieso man dafür 16 bit ADC und DAC benötigt? 
Und dazu noch mit 750 kS?

von Paul M. (Gast)



Lesenswert?

Andi schrieb:
> Paul M. schrieb:
>> Das ganze soll eine Art "Kennlinienschreiber" werden, um von Dioden und
>> (wenn man zwei Kanäle aufbaut) von Transistoren die Kennlinie aufnehmen
>> zu können.
>
> Kannst du mir mal erklären wieso man dafür 16 bit ADC und DAC benötigt?
> Und dazu noch mit 750 kS?

Weil die Kennlinie rauscht, siehe Anhang.
Außerdem kann ich mit mehr Bits den Messbereich erhöhen.
750kS/s benötige ich, damit ich schnell (~100us) einregeln kann, damit 
die Selbsterwärmung des DUTs möglichst gering bleibt.

von Christoph M. (mchris)


Lesenswert?

>750kS/s benötige ich, damit ich schnell (~100us) einregeln kann, damit
>die Selbsterwärmung des DUTs möglichst gering bleibt.

Das mit der Selbsterwärmung ist interessant. Wird die Kennlinie dann bei 
verschiedenen Temperaturen aufgenommen? Im späteren Betrieb wird die 
Diode ja dann auch abhängig vom Strom erwärmt.

von MaWin (Gast)


Lesenswert?

drm schrieb:
> Parametersuche CubeMX 188 Treffer, zusammen mit R2R DAC reichlich
> Auswahl bei nur einem Hersteller und uC Serie

Schon gemerkt, dass er auch DAC haben wollte ? Offenkundig nicht, aber 
wozu die Frage lesen.

Und ihm in der Messanwendung sicher nicht AudioA/D-D/A gut genug ist.

von Stefan F. (Gast)


Lesenswert?

Einen OP-Amp der die "genauigkeit" der 16 Bit nicht zunichte macht, 
dürfte auch nicht leicht zu finden und anzuwenden sein.

von Paul M. (Gast)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Einen OP-Amp der die "genauigkeit" der 16 Bit nicht zunichte macht,
> dürfte auch nicht leicht zu finden und anzuwenden sein.

Ja, das denke ich mir auch. Mein Hauptproblem ist wahrscheinlich auch 
eher das "Rauschen", siehe das Bild "Diodenkennlinie_1N4007_Samples.png" 
oben, der ADC1 hat die Spannung am Ausgang vom OP U2 (siehe Anhang) 
gemessen. Was könnte ich tun, um das Rauschen zu minimieren? einen 1nF 
Kondensator habe ich auf dem STM-Nucleo-Board am ADC-Eingang schon gegen 
GND geschaltet...

von Paul M. (Gast)


Lesenswert?

Christoph M. schrieb:
> Das mit der Selbsterwärmung ist interessant. Wird die Kennlinie dann bei
> verschiedenen Temperaturen aufgenommen? Im späteren Betrieb wird die
> Diode ja dann auch abhängig vom Strom erwärmt.

Ja, mit aktiver Heizung kann man bei verschiedenen Temperaturen messen.
Das ganze soll übriges ein Geburtstagsgeschenk für meine Frau werden, 
damit sie ihre Kennlinien von Dioden und Transistoren bei verschiedenen 
Temperaturen automatisiert aufnehmen kann. Aber mit der Messgenauigkeit, 
die ich aktuell erreiche, wird das kein gutes Geschenk :-(

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Hier im Forum gab es ja mal jemand, der den Transistortester entwickelt 
hat. Ich bin immer wieder höchst erstaunt, wie genau der ist und was der 
alles kann ( C,R,L C und L auch mit Serienersatzschaltbild ).

Deshalb könnte ich mir gut vorstellen, dass man das Kennlinienproblem 
auch mit einem Atmega328 lösen könnte.

Hier mein erster Versuch mit einem Arduino Uno und 6 x 
Hühnerfutterbauelementen. Das Ding muss man vielleicht noch etwas 
kalibrieren ...

von Paul M. (Gast)


Lesenswert?

Oh man, wie schön sieht denn Deine Kennlinie aus! Wie hast Du das so 
schön glatt bekommen? Oder warum habe ich so viel Rauschen drin?

von Baendiger (Gast)


Lesenswert?

Paul M. schrieb:
> Oh man, wie schön sieht denn Deine Kennlinie aus! Wie hast Du das so
> schön glatt bekommen? Oder warum habe ich so viel Rauschen drin?

Ich denke das dir mehr Auflösung gar nichts bringt sondern etwas anderes 
nicht stimmt.

Wie sieht denn deine aktuelle Schaltung aus?

von Paul M. (Gast)


Lesenswert?

Baendiger schrieb:
> Wie sieht denn deine aktuelle Schaltung aus?

Wie im Anhang hier: 
Beitrag "Re: Suche Mikrocontroller mit 16Bit ADCs und DACs"

Die verwendeten OpAmps sind noch THS4041: 
http://www.ti.com/lit/ds/symlink/ths4042.pdf?ts=1588522887626

Sind diese eventuell das Problem? Da sie pinkompatibel mit dem von Mark 
empfohlenen AD8033 sind, könnte ich das mal ausprobieren, muss die 
AD8033 aber erst bestellen. Ist das ein Versuch wert?

von Stefan F. (Gast)


Lesenswert?

Paul M. schrieb:
>> Wie sieht denn deine aktuelle Schaltung aus?
> Wie im Anhang hier:

Hast du da wirklich 100kΩ Widerstände verwendet? Mit etwas Pech 
empfängst du so noch Radio Eriwan, nicht nur elektromagnetisches 
Rauschen.

von Name: (Gast)


Lesenswert?

c-hater schrieb:
> Nein, gibt es nicht.

Doch. Beispiele:

PIC24FJ128GC006
STM32F3

von Paul M. (Gast)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Hast du da wirklich 100kΩ Widerstände verwendet? Mit etwas Pech
> empfängst du so noch Radio Eriwan, nicht nur elektromagnetisches
> Rauschen.

Ok, habe nun mal deutlich kleinere Werte verwendet, um das 
auszuschließen.
Schalung ist nun so wie im Anhang, das hat aber keine Besserung gebracht 
:-(

Meine Idee war halt, mit der Messschaltung das DUT so wenig wie möglich 
zu belasten. Ein Oszi misst doch auch z.B. mit 1MegOhm!?

von Christoph M. (mchris)



Lesenswert?

>Oh man, wie schön sieht denn Deine Kennlinie aus! Wie hast Du das so
>schön glatt bekommen? Oder warum habe ich so viel Rauschen drin?

Hmm ... die 1N5819 Kennlinie wäre gar nicht so glatt, wenn man reinzoomt 
...
Ich habe über 20 Werte gemittelt, aber verwende auch keinen DAC, der 
Rauschen erzeugen könnte.

von Paul M. (Gast)


Lesenswert?

Christoph M. schrieb:
> Ich habe über 20 Werte gemittelt, aber verwende auch keinen DAC, der
> Rauschen erzeugen könnte.

Ich habe sogar 25 Werte gemittelt...
Benutzt Du dann PWM statt DAC?

von MaWin (Gast)


Lesenswert?

c-hater schrieb:
> Paul schrieb:
>
>> Kennt jemand einen Mikrocontroller mit 14 oder 16Bit ADCs und DACs
>> integriert?
>
> Nein, gibt es nicht

Name: schrieb:
> c-hater schrieb:
>> Nein, gibt es nicht.
>
> Doch. Beispiele:
>
> PIC24FJ128GC006
> STM32F3

Noch so ein Schwachmat der die Überschrift nicht liest.

16 bit DAC und ADC mit 750ksps gibt es nicht, der PIC hat bloss 2x10-bit 
1MSPS DAC und dumme SigmaDelta ADC, der STM ebenso zu wenig.

Es gibt einige Audio-DSP z.B. von AK, aber zu langsam und 16 (oder gar 
24) bit Auflösung macht nicht 16 bit Genauigkeit, als Messknecht also 
unbrauchbar.

von Stefan F. (Gast)


Lesenswert?

Paul M. schrieb:
> Ok, habe nun mal deutlich kleinere Werte verwendet
> das hat aber keine Besserung gebracht

Schade, das habe ich nicht erwartet.

Paul M. schrieb:
> Ein Oszi misst doch auch z.B. mit 1MegOhm!?

Das stimmt wohl, aber mit abgeschirmten Leitungen. Und dennoch sind 
Messfehler durch eingekoppelte EMV immer wieder ein Anlass für 
Überraschungen (vor allem bei Anfängern).

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Benutzt Du dann PWM statt DAC?

Nein, das würde wahrscheinlich auch Störungen erzeugen.

Zufälligerweise habe ich vor kurzem ein paar ADS1115 ADCs ( 16Bit ) 
bestellt und für die gibt's einen Arduino Treiber.
Tatsächlich sehen die Kurven damit noch ein wenig besser als mit den 
internen 10Bit des Arduino Uno aus.

von Andi (Gast)


Lesenswert?

Paul M. schrieb:
> Das ganze soll übriges ein Geburtstagsgeschenk für meine Frau werden,
> damit sie ihre Kennlinien von Dioden und Transistoren bei verschiedenen
> Temperaturen automatisiert aufnehmen kann. Aber mit der Messgenauigkeit,
> die ich aktuell erreiche, wird das kein gutes Geschenk :-(

Ach so, das erklärt es natürlich.
Solche Roboterfrauen sind sicher sehr empfindlich und müssen oft 
durchgemessen werden, nicht dass sie noch schwanger werden. Ob da 16bit 
reicht?

von Josef (Gast)


Lesenswert?

Paul schrieb:
> dann muss ich wohl externe ADCs und
> DACs verwenden und bei Layout auf gute Leitungsführung achten. Oder gibt
> es das als fertige Platine zu kaufen? So etwas ist doch quasi eine
> Standardanwendung....?

Es gibt den AD5522 und ein Evalboard dazu.
Hat aber auch seinen Preis.

von Kutte R. (kutte)


Lesenswert?

Christoph M. verrät uns bis jetzt nicht, wie er das gemacht hat. Also, 
es bleibt spannend, bleiben Sie dran!
Kutte

von Mark B. (markbrandis)


Lesenswert?

Paul M. schrieb:
> Das ganze soll übriges ein Geburtstagsgeschenk für meine Frau werden,
> damit sie ihre Kennlinien von Dioden und Transistoren bei verschiedenen
> Temperaturen automatisiert aufnehmen kann.

Der 1. April ist aber schon seit ner Weile vorbei... ;-)

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Wo bitte wird denn da der Messstrom geregelt? Das was Du da misst ist 
kein Rauschen sondern einfach das Stromgewackel von deinem Fet.

Die Schutzdioden an den Ausgängen der OPs sind auch kontraproduktiv. 
Z-Dioden haben keine scharfe Kennlinie bei den kleinen Spannungen. Die 
verfälschen Dein Ergebniss zusätzlich.

von Paul M. (Gast)


Lesenswert?

Andreas M. schrieb:
> Wo bitte wird denn da der Messstrom geregelt? Das was Du da misst ist
> kein Rauschen sondern einfach das Stromgewackel von deinem Fet.
>
Geregelt wird im Mikrocontroller. Über die ADCs wird ja Strom und 
Spannung erfasst und mit dem DAC gebe ich entsprechende Spannung über 
den OpAmp auf das Gate. Die Regelung funktioniert ziemlich gut, ich 
erreiche den Sollwert. Das Problem ist dann nur, dass die mit dem ADC 
gemessene Spannung und Strom um den Sollwert herum so stark rauschen....

> Die Schutzdioden an den Ausgängen der OPs sind auch kontraproduktiv.
> Z-Dioden haben keine scharfe Kennlinie bei den kleinen Spannungen. Die
> verfälschen Dein Ergebniss zusätzlich.

Das ist natürlich eine Idee! Werde ich mal entfernen! Danke!

von Paul M. (Gast)


Lesenswert?

Mark B. schrieb:
> Paul M. schrieb:
>> Das ganze soll übriges ein Geburtstagsgeschenk für meine Frau werden,
>> damit sie ihre Kennlinien von Dioden und Transistoren bei verschiedenen
>> Temperaturen automatisiert aufnehmen kann.
>
> Der 1. April ist aber schon seit ner Weile vorbei... ;-)

Das ist auch kein Scherz, ich habe Glück mit meiner Frau und wir basteln 
beide gerne. Auch das gibt es!

von Mark B. (markbrandis)


Lesenswert?

Paul M. schrieb:
> Mark B. schrieb:
>> Der 1. April ist aber schon seit ner Weile vorbei... ;-)
>
> Das ist auch kein Scherz, ich habe Glück mit meiner Frau und wir basteln
> beide gerne. Auch das gibt es!

Mag sein. Dann betrachte Dich als glücklich :-)

Zur Lösung Deines Problems brauchst Du aber sehr wahrscheinlich keine 
A/D oder D/A-Wandler mit 16 Bit Auflösung... sondern einen vernünftigen 
Messaufbau ohne Störeinflüsse. Sonst misst Du nur die Störungen noch 
genauer und für teuer Geld. ;-)

Wer viel misst, misst viel Mist!

von Paul M. (Gast)


Lesenswert?

Mark B. schrieb:
> Zur Lösung Deines Problems brauchst Du aber sehr wahrscheinlich keine
> A/D oder D/A-Wandler mit 16 Bit Auflösung... sondern einen vernünftigen
> Messaufbau ohne Störeinflüsse. Sonst misst Du nur die Störungen noch
> genauer und für teuer Geld. ;-)
>
> Wer viel misst, misst viel Mist!

Ok, stimmt. Mein Aufbau ist aber eigentlich ganz ordentlich. Mache heute 
Abend mal ein Foto, vielleicht könnt ihr dann erkennen, woher die 
Störung kommen könnten. Die Schaltung habe ich auf eine geätzte Platine 
gebaut und mit möglichst kurzen Drähten mit dem STM32F767-Nucleo Board 
verbunden.

von Christoph M. (mchris)


Lesenswert?

Wie bist Du auf die Anforderungen an die Abtastzeit gekommen?

Meiner Meinung nach bringt es nicht wirklich viel, schnell zu messen, 
weil man nichts über die Diodenfläche ( die dürfte sehr klein sein ) und 
über die punktuelle Erwärmung dort sagen kann.
Im Betrieb hängt dann die Kennlinie immer vom Strom und der daraus 
folgenden schnellen Erwärmung ab.
Die eigentliche Temperatur auf dem Silizium setzt sich dann aus der 
Eigenerwärmung und der Wärmeabfuhr an die Umgebung zusammen.

Mich würde mal interessieren, wie die Hersteller die Diodenkennlinien 
messen ( unter zeitlichen Randbedingungen ).

von Tom R. (tt_r)


Lesenswert?

Habe mal etwas ähnliches gebaut und da hat es funktioniert.

von Paul M. (paul_ma)


Angehängte Dateien:

Lesenswert?

Hallo,

nun endlich ein Foto vom Aufbau.
Außerdem habe ich die Dioden an den OpAmp-Ausgängen abgezwickt. Leider 
hat auch das keinerlei Verbesserung gebracht. Mir gehen die Ideen aus... 
was könnte ich denn noch versuchen?

von Stefan F. (Gast)


Lesenswert?

Eigentlich wollte ich den Verlauf sämtlicher GND Leitungen sehen.

von Paul M. (paul_ma)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Eigentlich wollte ich den Verlauf sämtlicher GND Leitungen sehen.

Na dann lade ich doch einfach das Layout hoch. Das GND-Net ist 
gehighlightet.

von Joachim B. (jar)


Lesenswert?

Paul schrieb:
> Am
> besten 14 oder 16 Bit.

bist du sicher mit 12-14 Bit umgehen zu kömnnen?
16bit umfasst schon mal runter bis 30µV bei maximal 2V signal.
Solche Forderungen nach 14-16 bit findet man öfter aber kaum jemanden 
der damit umgehen kann!
Dazu sind die meisten Versorgungsspannungen und Leiterbahnführungen oder 
die Verkabelung mit allen Impedanzen zu dilettantisch aufgebaut!

von Michael B. (laberkopp)


Lesenswert?

Christoph M. schrieb:
> Mich würde mal interessieren, wie die Hersteller die Diodenkennlinien
> messen ( unter zeitlichen Randbedingungen ).

Gar nicht.

Die messen 1 oder 2 markante Kennwerte, und der Rest wird durch eine 
schnelle Hand eines begabten Bleistifthalters dazwischengezogen, 
'interpoliert'.

von Joachim B. (jar)


Lesenswert?

Michael B. schrieb:
> Die messen 1 oder 2 markante Kennwerte, und der Rest wird durch eine
> schnelle Hand eines begabten Bleistifthalters dazwischengezogen,
> 'interpoliert'.

Quark, es gibt Kurvenlineale!
https://images0.gerstaecker.de/out/pictures/generated/1500_1500/pboxx-pixelboxx-2564338/STANDARDGRAPH+Kurvenlineal.jpg

von Paul M. (paul_ma)


Angehängte Dateien:

Lesenswert?

Hallo nochmals,

zu später Stunde hatte ich die Idee, den noch unbenutzten ADC3-Eingang 
doch einfach mal direkt auf dem STM32-Nucleo-Board mit GND 
kurzzuschließen und währenddessen die Messung durchzuführen.

Anbei das Resultat: die rote Kurve zeigt den ADC2 der den Strom durch 
das DUT gemessen hat. Die blaue Kurve zeigt den ADC3, dessen Eingang 
nach GND kurzgeschlossen war. Wie man sieht, bekomme ich trotzdem Peaks, 
die bis zu ADC-Rohwert = 8 hoch reichen. Woran kann das liegen? Probleme 
mit Vref oder AGND auf dem Nucleo-Board? Hat jemand Tipps für mich, was 
ich noch probieren könnte?

von Gustl B. (-gb-)


Lesenswert?

Paul M. schrieb:
> Wie man sieht, bekomme ich trotzdem Peaks,
> die bis zu ADC-Rohwert = 8 hoch reichen.

Das sind doch nur die letzten 3 Bits die wackeln. Nimm mal viele (z. B. 
2^14) Werte am Stück auf und mach davon
- eine FFT
- ein Histogram.
(Oder poste hier eine z. B. CSV Datei mit vielen Werten und ich erstelle 
FFT/Histogram.)

Paul M. schrieb:
> Woran kann das liegen?

Da gibt es sehr viele Möglichkeiten.
Wie hast du den Eingang mit Masse verbunden? Ein langer Draht kann 
Rauschen einfangen.
Wie hast du AGND und DGND beschaltet? Ist das eine ordentliche 
Spannungsreferenz (welche?) mit einem schön großen Kondensator dran?

Paul M. schrieb:
> Probleme mit Vref oder AGND auf dem Nucleo-Board?

Ja genau, das kann beides sein. Tatsächlich eine hohe Genauigkeit zu 
erreichen ist gar nicht so einfach.

Ich vermute das wird mit einem ADC in einem uC sehr schwer werden. 
Verwende da lieber einen externen ADC mit ordentlicher Referenz, 
gefilterter Versorgung und einem möglichst jitterarmen Abtasttakt.

Was ich noch nicht ganz verstehe ist wieso du eine so hohe Genauigkeit 
brauchst/haben willst.

von Joachim B. (jar)


Lesenswert?

Gustl B. schrieb:
> Ich vermute das wird mit einem ADC in einem uC sehr schwer werden.

deswegen werden die auch selten sein, ein guter ADC hochauflösend und 
genau verträgt sich schlecht mit µC.

Was ich schrieb:

Joachim B. schrieb:
> bist du sicher mit 12-14 Bit umgehen zu kömnnen?

Ich hatte im industriellen Umfeld schon Schwierigkeiten -60dB zu messen 
(Kosten fast egal) und der TO will ja noch weiter aber günstiger runter.

von Christoph M. (mchris)


Lesenswert?

>Christoph M. schrieb:
>> Mich würde mal interessieren, wie die Hersteller die Diodenkennlinien
>> messen ( unter zeitlichen Randbedingungen ).

>Gar nicht.

>Die messen 1 oder 2 markante Kennwerte, und der Rest wird durch eine
>schnelle Hand eines begabten Bleistifthalters dazwischengezogen,
>'interpoliert'.

Wer weiß, am Ende könntest Du noch Recht haben.

https://de.wikipedia.org/wiki/Shockley-Gleichung

Wenn ich's richtig sehe, sind da nur zwei variable Parameter in der 
Gleichung: Der Emissionskoeffizient und der Sättigungssperrstrom.

von Paul M. (paul_ma)


Angehängte Dateien:

Lesenswert?

Gustl B. schrieb:
> Paul M. schrieb:
>> Wie man sieht, bekomme ich trotzdem Peaks,
>> die bis zu ADC-Rohwert = 8 hoch reichen.
>
> Das sind doch nur die letzten 3 Bits die wackeln. Nimm mal viele (z. B.
> 2^14) Werte am Stück auf und mach davon
> - eine FFT
> - ein Histogram.
> (Oder poste hier eine z. B. CSV Datei mit vielen Werten und ich erstelle
> FFT/Histogram.)
>
Vielen Dank für Dein Angebot und die Hilfe. Im Anhang ist die CSV-Datei 
mit 2^14 Werten. Die Samplerate war 1MSps. Der ADC-Eingang war direkt 
(mit so kurzem Draht wie möglich) mit GND kurzgeschlossen.

> Paul M. schrieb:
>> Woran kann das liegen?
>
> Da gibt es sehr viele Möglichkeiten.
> Wie hast du den Eingang mit Masse verbunden? Ein langer Draht kann
> Rauschen einfangen.
> Wie hast du AGND und DGND beschaltet? Ist das eine ordentliche
> Spannungsreferenz (welche?) mit einem schön großen Kondensator dran?
>
Da habe ich ganz auf ST vertraut. Es ist die Standardschaltung auf dem 
Nucleo-Board, siehe Schaltplan von ST anbei.

> Paul M. schrieb:
>> Probleme mit Vref oder AGND auf dem Nucleo-Board?
>
> Ja genau, das kann beides sein. Tatsächlich eine hohe Genauigkeit zu
> erreichen ist gar nicht so einfach.
Ja, das habe ich nun gelernt. Macht es Sinn, ein Design mit externem 
DAC/ADC anzugehen?

>
> Ich vermute das wird mit einem ADC in einem uC sehr schwer werden.
> Verwende da lieber einen externen ADC mit ordentlicher Referenz,
> gefilterter Versorgung und einem möglichst jitterarmen Abtasttakt.
>
Ok, mache mich daran.

> Was ich noch nicht ganz verstehe ist wieso du eine so hohe Genauigkeit
> brauchst/haben willst.
Muss es nicht unbedingt sein, aber ich möchte die Kennlinien ja noch bis 
ca. 50V aufnehmen... und 50V / 2^12 = 12mV, naja, stimmt, auch das wäre 
ja ok. Also genügen wohl doch 12Bit, aber das Rauschen (das ja jetzt 
schon mit dem 12Bit ADC da ist, es wird mit mehr Bit ja nicht weniger), 
stört. Das werde ich daher zuerst angehen und wenn ich dann doch noch 
mehr Auflösung benötige, mache ich mich an ein weiteres Design mit 16Bit 
DAC und ADC extern.

von Stefan F. (Gast)


Lesenswert?

Paul M. schrieb:
> Na dann lade ich doch einfach das Layout hoch.

Grr. Ich meine die Kabel, nicht auf der Platine.

von Stefan F. (Gast)


Lesenswert?

Paul M. schrieb:
> Da habe ich ganz auf ST vertraut. Es ist die Standardschaltung auf dem
> Nucleo-Board, siehe Schaltplan von ST anbei.

Ich denke, dieses Board ist zum Experimentieren gedacht, nicht für 
hochgenaue Messungen.

Schaue Dir dazu mal die AN2834 an, dort sind alle denkbaren Maßnahmen 
zusammen gefasst. Du könntest z.B. mal versuchen, die CPU während der 
Messung anzuhalten.

von Andreas M. (amesser)


Lesenswert?

Paul M. schrieb:
> Andreas M. schrieb:
>> Wo bitte wird denn da der Messstrom geregelt? Das was Du da misst ist
>> kein Rauschen sondern einfach das Stromgewackel von deinem Fet.
>>
> Geregelt wird im Mikrocontroller. Über die ADCs wird ja Strom und
> Spannung erfasst und mit dem DAC gebe ich entsprechende Spannung über
> den OpAmp auf das Gate. Die Regelung funktioniert ziemlich gut, ich
> erreiche den Sollwert. Das Problem ist dann nur, dass die mit dem ADC
> gemessene Spannung und Strom um den Sollwert herum so stark rauschen....

Wie hast Du das geprüft, dass dein Sollwert stabil ist? Hast du mal mit
einem Oszi und AC Kopplung mit kleinem Messbereich draufgeschaut? Ich
verstehe nicht warum Du überhaupt per Software regelst. Wenn da eh schon
nen OP am FET ist. Der könnte das auch direkt viel genauer regeln.

Ich glaube eh das da was schwingt. Die ganzen Kapazitäten, der FET
ohne wirkliche Gegenkopplung und auf der Drain-Seite
eine nichtlineare Diode die gemessen werden soll.

Hast du mal eine Messung mit einem einfachen Widerstand gemacht?

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Paul M. schrieb:
> Der ADC-Eingang war direkt
> (mit so kurzem Draht wie möglich) mit GND kurzgeschlossen.

Das sieht doch auch ganz gut aus. Ja, es gibt Rauschen, aber das gibt es 
immer. Das Histogramm zeigt deutlich, dass die Häufigkeit der höheren 
Werte ziemlich selten ist.

Paul M. schrieb:
> Macht es Sinn, ein Design mit externem DAC/ADC anzugehen?

Das kommt drauf an zu was du bereit bist und was du erreichen möchtest.

Paul M. schrieb:
> Das werde ich daher zuerst angehen und wenn ich dann doch noch
> mehr Auflösung benötige, mache ich mich an ein weiteres Design mit 16Bit
> DAC und ADC extern.

Naja, da gibt es Grenzen. 16 Bits ADCs haben selten eine ENOB von 16 
Bits. Da kannst du Aufwand treiben wie du willst.

Du verwendest hier 1 MSps als Abtastrate, welche Freuanz hat denn das 
Signal das du angucken möchtest? Mit 1 MSps fängst du dir vielleicht 
deutlich höherfrequentes Rauschen ein als seien müsste. Da könnte dann 
auch ein Tiefpassfilter in Software helfen oder analog vor dem ADC.

von Paul M. (paul_ma)


Lesenswert?

Hallo zusammen,

vielen Dank für die vielen Tipps, vor allem an Gustl für das Anfertigen 
der FFT.
Ich habe mich nun so entschieden, eine Platine mit externen DACs und 
ADCs zu machen. Ich melde mich dann wieder, mit dem was dabei 
rausgekommen ist.

von Paul M. (paul_ma)


Lesenswert?

Andreas M. schrieb:
> Wie hast Du das geprüft, dass dein Sollwert stabil ist? Hast du mal mit
> einem Oszi und AC Kopplung mit kleinem Messbereich draufgeschaut?

Genau so. Zum einen mit dem Oszi in kleinstem Messbereich (AC-Kopplung) 
aber auch in dem ich die DAC-Samples "mit geloggt" habe und man sieht, 
dass der DAC eine konstante Spannung/konstanter Wert ausgibt.

In meiner ersten Version früher, habe ich analog geregelt. Ging auch 
ganz gut, der Sollwert kam über ein Poti und später über einen DAC.
Da ich nun aber mit ADCs messen möchte, wirst ja im Mikrocontroller 
sowieso der Istwert schon erfasst. Deshalb ist es praktisch, die 
Regelschleife im Mikrocontroller zu schließen.

von Andreas M. (amesser)


Lesenswert?

Paul M. schrieb:
> Genau so. Zum einen mit dem Oszi in kleinstem Messbereich (AC-Kopplung)
> aber auch in dem ich die DAC-Samples "mit geloggt" habe und man sieht,
> dass der DAC eine konstante Spannung/konstanter Wert ausgibt.

Es geht nicht um den DAC. Es geht um das was an dem Prüfling anliegt. 
Also:
1) Prüfling anschließen

2) Das Program im UC einen festen Stromwert regeln lassen. (Aufgrund 
deines Diagramms gehe ich davon aus, dass Du den Strom regelst)

3) In diesem Zustand mit dem Oszi an den Prüfling und Messen.

Beitrag #6260247 wurde vom Autor gelöscht.
von Paul M. (paul_ma)


Angehängte Dateien:

Lesenswert?

Hallo,

nach langem Basteln geht es nun weiter.
Habe eine Platine mit ADS8681 ADCs und AD5062 DACs gemacht und zwischen 
Mikrocontroller-Board (immer noch das Nucleo-Board) und die 
Leistungselektronikplatine gebaut.

Die ADCs rauschen damit noch ungefähr um 5 ADC-Rohwerte. (von Minumum zu 
Maximum). Die Kennlinie wird damit schon ganz ansehlich, siehe Anhang 
(Achsenskalierung stimmt noch nicht, aber das bekomme sogar ich hin).

Ich nehme also an, dass die ADCs/DACs im Mikrocontroller einfach durch 
zu viele Störungen (vielleicht aus dem Mikrocontroller selbst oder auf 
dem Nucleo-Board) für diese Anwendung ungeeignet sind.

Ein paar Kleinigkeiten sind noch zu tun und alles muss dann noch in ein 
schönes Gehäuse eingebaut werden, damit ich es meiner Frau schenken 
kann.

Vielen Dank nochmals an alle für die Tipps.

von c-hater (Gast)


Lesenswert?

Paul M. schrieb:

> Die ADCs rauschen damit noch ungefähr um 5 ADC-Rohwerte.

Das wäre ein wirklich sehr, sehr gutes Ergebnis.

Die Frage ist: eher Zufall oder wirklich das Ergebnis eines bewussten 
und kompetenten Design-Prozesses?...

> damit ich es meiner Frau schenken
> kann.

Was, zum Teufel könnte einer Frau gefallen, was unbedingt mit 14 oder 
gar 16 Bit aufgelöst werden müsste? Hochaufgelöste Diodenkennlinien 
entzücken nach meiner Erfahrung eher keine Frau...

Da machst du mich jetzt echt neugierig...

von -gb- (Gast)


Lesenswert?

Se*spielzeug mit hochpräziser Drehzahlregelung?

von Paul M. (paul_ma)


Lesenswert?

c-hater schrieb:
>> Die ADCs rauschen damit noch ungefähr um 5 ADC-Rohwerte.
>
> Das wäre ein wirklich sehr, sehr gutes Ergebnis.
>
> Die Frage ist: eher Zufall oder wirklich das Ergebnis eines bewussten
> und kompetenten Design-Prozesses?...

Habe 3 Wochen Urlaub genommen und mich intensiv damit beschäftigt. 
Außerdem habe ich etwas mehr Erfahrung als meine Posts hier vermuten 
lassen, da habe ich den falschen Eindruck hinterlassen. Es hat aber 
trotzdem zwei Iterationen (also zwei mal Platinen bestellen) 
gebraucht....

von Blumpf (Gast)


Lesenswert?

Paul M. schrieb:
> zu später Stunde hatte ich die Idee, den noch unbenutzten ADC3-Eingang
> doch einfach mal direkt auf dem STM32-Nucleo-Board mit GND
> kurzzuschließen und währenddessen die Messung durchzufüh

Dein ADC ist nur so gut wie deine Referenz.
Also, überprüfe doch mal:
- Was genau wird als Referenz verwendet
- Ist die sauber
- Wie sieht AVDD aus

Und ein Wert von 300 bei einem Kurzschluss gegen GND riecht außerdem 
nach einem Offsetproblem. Hast du die Kalibrierung des ADC verwendet?

Ich arbeite viel mit den STM32, aber selbst bei 3V3 aus einem 
Schaltregler als Referenz haben wir vielleicht 6LSB Rauschen drauf bei 
12Bit.
Bei Platinen mit Referenz und VREF-Pins schaffen die ADCs auch die im 
Datenblatt angegebenen Werte.
Da liegt das Problem wohl an den Nucleo-Boards.

--> VREF, AVDD anschauen!

von Stefan F. (Gast)


Lesenswert?

Blumpf schrieb:
> Da liegt das Problem wohl an den Nucleo-Boards.

Wenn man sich das Nucleo64 Board genauer anschaut sieht man, dass da auf 
den ADC überhaupt keine Rücksicht genommen wurde. Es ist ja auch nur zum 
Lernen vorgesehen, das ist es gar nicht schlecht, die echte unperfekte 
Welt vorzuführen. Wer immer nur perfekt funktionierende Baugruppen zu 
sehen bekommt, kann sich einige Haken und Ösen nur schwer vorstellen, 
mit denen wir alltäglich zu tun haben.

von Joachim B. (jar)


Lesenswert?

c-hater schrieb:
> Paul M. schrieb:
>
>> Die ADCs rauschen damit noch ungefähr um 5 ADC-Rohwerte.
>
> Das wäre ein wirklich sehr, sehr gutes Ergebnis.

stimme absolut zu, das ist wirklich gut!

Paul M. schrieb:
> Außerdem habe ich etwas mehr Erfahrung als meine Posts hier vermuten
> lassen,

da wage ich nicht zu widersprechen, trotzdem danke für die Rückmeldung!

von Paul M. (Gast)


Lesenswert?

Joachim B. schrieb:
> trotzdem danke für die Rückmeldung!

Nur durch Feedback lernt man und sammelt Erfahrung. Ihr habt mir einige 
Tipps gegeben, da melde ich mich natürlich zurück.

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.