Forum: Mikrocontroller und Digitale Elektronik Controller mit 16bit A/D konverter


von Valentin (Gast)


Lesenswert?

Hallo.

Bitte verzeiht mir meine grenzenlose unwissenheit, Ich bin ein absoluter 
neuling auf diesem Gebiet, habe mich bis jetzt lediglich mit SPS`sen und 
nem ST6225 mittels Realizer rumgeschlagen.

Ich habe folgendes vor: Ich will einen möglichst pflegeleichten 
Microcontroller (so etwas wie der st6) mit ner einfachen Software (in 
der art vom relizer :-)) und der controller sollte einen 16bit A/D 
wandler besitzen!

Könnt ihr mir eventuell irgendwelche Tipps geben?

MfG Valentin

von Uwe G. (gromit)


Lesenswert?

Es kommt darauf an was Du möchtest. Jeder uController hat seine 
Eigenheiten. Wo kommt er zum Einsatz? 16 bit A/D muss sicher zusätzlich 
implementiert werden. Worauf kommt es an? Es gibt keine ultimative 
Aussage darüber. (Wie immer im wirklichen Leben).

Gruss
Uwe

von Simi (Gast)


Lesenswert?

Wenn die Wandlung nicht schnell sein muss, dann kannst Du die 16 Bit 
auch softwaremässig erzeugen. Da reichen Dir auch 10 Bit. Stichwort 
Oversampling.

von Valentin (Gast)


Lesenswert?

Danke erstmal für die Antwort!

Ich will damit einen PH Regler aufbauen.
Ich habe mir die Funktion in etwa so vorgestellt:
Ich gebe ihm ein 0-5V signal ein das einem PH wert von 3-10 entspricht.
Über zwei Taster (PH4) und (PH7) lässt er sich kalibrieren.
Dh. er muss lediglich über ein paar rechen funktionen (addieren 
subtrahieren multipl. u. divid.) verfügen...
Dann stell ich mit zwei anderen tastern den sollwert ein der soll und 
der Istwert soll mir über einen analog port ausgegeben werden.
Und dann bräucht ich noch viell. höchsten zwei drei ein und ausgänge...
nichts weltbewegendes also...


MfG Valentin

von ein anderer (Gast)


Lesenswert?

Mit 16 und 24 bit hat Analog devices die ADuC 's Das sind eigentlich 
ADC's mit angeflanschten 8051-ern oder ARM's. Da gibt es glaub ich 
Demoboards und ein abgespeckten Keil dafür.

von Valentin (Gast)


Lesenswert?

Kleine dumme frage: Was sind ADUC`s und was sind angeflashte 8051 er
oder arms???
Kannst du mir das so verklicker das es auch der blödeste kapiert?
Ich kann, da ich mit der Materie nicht sehr vertraut bin, mit diesem 
Fachjargon leider nicht sehr viel anfangen...
Bin lediglich ein in zwei monaten ausgelernter Elektroniker für BT/AT,
und interessiere mich erst seit kurzer zeit für die Microelektronik...

(Aller anfang ist schwer)

von Valentin (Gast)


Lesenswert?

Ach ja, Simi.

Würde das auch beispielsweise mit einem von diesen C-Control controllern 
gehen.

Kann ich die dann auch ausgeben?
Verwende ein voltmeter modul und will auf diesem bis auf die zweite 
nachkomma stelle anzeigen. und es sollte einigermaßen ruhig sein...

von Christoph Kessler (db1uq) (Gast)


Lesenswert?


von Valentin (Gast)


Lesenswert?

Die sehen ganz gut aus, aber ich benötige auch digitale ein- und 
ausgänge.
Wenn auch nicht viele...

von Valentin (Gast)


Lesenswert?

So etwas in der art sollte dabei rauskommen: 
http://www.dennerle.de/HG07UG09.htm

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Vermutlich ist es nicht einfach, einen guten analogen AD-Wandler und 
einen digitalen Controller auf demselben Chip zu integrieren. Die 
Herstellungstechniken sind zu verschieden.
Ich würde einen externen AD-Wandler benutzen. Es gibt für langsame 
Messungen bis ca 100 Hz den LTC2400 mit 24 Bit, oder für reine 
Wechselspannungsmessungen die AD-Wandler für Soundkarten, ebenfalls bis 
24 Bit und 200 ksamples/sec

von Valentin (Gast)


Lesenswert?

100 HZ langt dicke!!!
wie sieht des dann mit der digital verarbeitung im chip aus???
was für nen chip nimm ich am besten (sollte ne möglichst kostenlose 
komfortable software haben...)
was für nen signal schickt der mir raus (seriell)?
ich hab von der materie echt keine ahnung!

von Valentin (Gast)


Lesenswert?

Noch ne dumme frage (hoffe ihr verzeiht mir meine Unwissenheit)

Bei analogen ein-/ausgängen spricht amn ja von der auflösung in bit.

Wie ist es aber wenn ich ein digitales signal (eben von einem A/D 
wandler) rein bekomm dieses verarbeite und dann wieder als dig. signal 
rausschick auf einen D/A wandler. Was muss ich da beachten? gibt man 
auch in bit an was er digital verarbeiten kann? und wie heist das?

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Hier das Datenblatt zum LTC2400:
http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1152,P1636,D1887
den gibts bei Reichelt  ( LTC 2400 CS8  9.30 €)
und Conrad ( Best. Nr. 178233-62, LTC 2400 IS 8 22,95 € )

von ein anderer (Gast)


Lesenswert?

ADU oder ADC = Analog Digital Wandler
ARM = ein Mikroprozessor Familie  32 Bit
8051 = eine sehr weit verbreitete Mikroprozessor Familie 8 bit.
Keil = Hersteller von Compilern (besonders C) und entsprechender 
Entwicklungsoberflächen
Die ADuC Familie von Analog Devices beinhaltet also ein AD-Wandler und 
ein Mikocontroller (wird gerne auch als uC bezeichnet u steht hier als 
Ersatz für das Griechische My = µ ) zudem besitzen diese Teile natürlich 
auch noch digitale I/O’s und andere Peripherie z.B. auch DA-Wandler .
Wenn du aber mit dem von dir verwendeten Prozessor und 
Entwicklungswerkzeugen  (relizer) zufrieden bist würde ich auch erstmal 
einfach externe AD und DA Wandler verwenden.
Die Auflösung von DA-Wandlern gibt man auch in Bit an. Man bezeichnet 
das als Auflösung oder englisch resolution. Wie bei den AD-Wandlern gibt 
es auch bei den DA-Wandlern verschiedene Funktionsweisen. Zu beachten 
ist unter Anderem der Verwendete Schnittsetellen Art (Parallel oder 
seriell etc.) die Auflösung, die Wandlungsgeschwindigkeit mit externer 
oder interner Referenz ……etc.

von Simi (Gast)


Lesenswert?

Ich denke, PH Messung wird nicht hochdynamisch sein ;-) (Wie Du ja 
selber schon sagtest). Also kannst Du m. E. auch mit weniger Bits 
auskommen. Und wenn das ganze ein bisschen verrauscht ist, tut das auch 
nichts zur Sache. Hilft sogar.

Wie gesagt: Stichwort Oversampling. Das Prinzip ist, vereinfacht gesagt, 
wie folgt:

Stell Dir vor, Du hast einen Komparator. Entweder 0-2.5V oder 2.5V-5V. 
Das ist alles, was Du messen kannst. Jetzt willst Du eine Spannung 
zwischen 2 und 3 Volt messen. Was tust Du? Du packst ein Rauschen drauf. 
Das lässt Dir den Komparator flackern. Und je höher die Spannung wird, 
desto öfter wirst Du "1" messen, und desto seltener "0". Mach das 1000 
mal, dann mittle. Schon hast Du eine genaue Messung der 
durchschnittlichen Spannung über diese 1000 Samples.

Nun - wenn Du 'nen 10-Bit-Wandler hast, dann wird Dir das LSB (das 
niedrigstwertige Bit) eh immer rumzappeln. Und das zweite auch, und das 
dritte wohl auch noch. Wie gesagt, Rauschen ist in diesem Fall Dein 
Freund! Messe 10'000 mal und mittle die Samples. So kriegst Du beliebige 
auflösung. Nur halt sehr langsam. Aber das gute dran ist - und das ist 
besser als jedes wunderschöne Analogdesign mit teuersten 
High-Precision-ADCs, Multilayer mit Power- und Groundplane und 
wasweissich...: Das Rauschen wird weg sein! Da kann das wüsteste Zeug 
reingemessen werden, wenn Du nach 10'000 Samples den Sack zu machst und 
zusammenrechnest, kommt unter dem Strich immer etwa das selbe raus.

Warum machen es dann nicht alle so?
Tja, eben, weil es halt LANGSAM ist. Aber auch, weil Nicht-Ingenieure 
UND Ingenieure oft die physikalische Auflösung zu stark gewichten. Ein 
Auto mit 300 PS ist besser als eins mit 200 PS. Ob es die auch auf die 
Strasse bringt, ist sekundär. ;-)

(Naja, das ist jedenfalls meine Erahrung aus einigen firmeninternen - 
aber bereichsübergreifenden "Verkaufsgesprächen". "Aber das 
Vorgänger-System hatte doch 16Bit! Warum habt Ihr hier nur noch 14??? 
Nein, keine Ausreden, ich will wieder 16Bit haben!"

:-)

von Simi (Gast)


Lesenswert?

Das C-Control-System kenne ich nicht. Aber wenn Du 'nen ADC hast, auch 
wenn's nur ein 10-Bitter ist, dann geht das sicher. Schau Dir das 
gemessene Zeug mal an. Wenn Du erkennst, dass es Dir zu wenig rauscht, 
um eine schöne Mittelung zu bekommen, dann leg doch einfach noch 'nen 
DOUT hochomig da drauf und lass den ein wenig rumzappeln. Am besten mit 
einem Pseudo-Zufallsgenerator, so bekommst Du sicher kein Aliasing. Und 
um das auszugeben, würde ich Dir raten, ein PWM-Signal zu generieren. 
Dazu wird er wohl auch schon geeignete Hardware-Generatoren haben. Und 
wenn nicht -> Software.

Aber ich würde jedenfalls nicht auf externe ADCs zurückgreifen, nur um 
eine hohe Auflösung zu bekommen.

von Valentin (Gast)


Lesenswert?

Puh... Langsam raucht mein Kopf :-)
Also hab den hab ich: 
http://www.st.com/stonline/products/literature/ds/5266/st6225c.pdf

Währe der was?

von Valentin (Gast)


Lesenswert?

oversampling hört sich echt gut an!
Nur muss ich noch durchsteigen wie ich das mach...
und wie und ob überhaupt mit dem st62

von ein anderer (Gast)


Lesenswert?

Schluck - die ST6 sieht mir etwas altmodisch aus 8bit AD und 8 bit PWM 
(Pulswellenmodulation mit Hilfe eines counters/Zähler als art einfacher 
DA-Wandler). Ob das reicht kann ich nicht sagen,  Simi kennt sich da 
sicher besser aus, aber grundsätzlich glaube ich auch, das man mit 
weniger meist auch zurechtkommt. Aber ich würde mir diesen Typ heute 
nicht mehr antun. Ich bin aber auch sehr von den AVR’s verwöhnt bei den 
gibt’s 10 bit AD-Wandler und bis zu 16 bit PWM. Die gibt es an jeder 
ecke, super Support hier auf dieser Seite . Die sind sehr billig, 
Software für umsonst etc.
Gruß

von Valentin (Gast)


Lesenswert?

Ich was das die dinger steinzeit sind, aber sie haben in meinen 
bisherigen anwendungen super funktioniert!

Dann muss wohl was neues her...
Schau Ich mir mal an.
Nach genau sowas hab ich ja auch gesucht.(billig, kostenlose software 
und genug leute die was davon verstehen. :-)





Und nochmal vielen Dank das ihr mir so fleissig antwortet!!!
Das erlebt man nicht überall!!!!!!!

von ein anderer (Gast)


Lesenswert?

Oversampling? schreibt Simi doch:  häufiger messen und Mittelwert 
bilden.
Schau dir doch mal hier unter AVR > AVR-GCC-Tutorial an. Ist eigentlich 
eine Einfürung in GCC (ein kostenloser C-Compiler), da wird auch einiges 
über AD und DA geschrieben.

von Dicky (Gast)


Lesenswert?

ich kann nur davor warnen zu versuchen aus einem 10 bit ADC ein 11. oder 
12. bit herauszukitzeln durch langes aufsummieren und dann duch einen 
kleineren teiler zu teilen. das ergebnis ist sehr lustig. wenn die 
ref-spannung und die temperatur stabil sind kann man die Werte 
tatsächlich aufblasen, das Ergebnis sind dann aber ''weiche 10 bit 
Treppen'': man kann die tatsächlichen 10 bit dann wiederfinden. Um das 
Rauschen zu killen muss man schwache Signale natürlich immer über den 
arithmetischen MW (oder Median) bestimmen, das ist klar.

Ich würde auch den exzellenten aber langsamen LTC2400 nehmen, aber nur 
dann sinnvoll wenn man eine stabile Referenzspannung und 
Versorgungsspannung hat, ansonsten ist es Perlen vor die Säue !

Die µC mit integriertem 16 bit Wandler sind sehr teuer !

Und Finger weg vom PIC14000 !!!!! Nach 2 Wochen der Tüftelei habe ich 
die letzten Chips weggeworfen. Siehe auch Ergebnisse von anderen Leuten 
die es aufgegeben haben sich weiter mit dem Chip zu beschäftigen.


von Valentin (Gast)


Lesenswert?

Langsam wird es für mich schwierig, mich auf eine lösung zu fixieren!
Der eine sagt das der andere das...
Es ist ja echt lobenswert das alle so fleissig antworten, aber es macht 
es für einen noob wie mich nicht gerade leicht!
Ich habe mich jetzt eigentlich darauf eingestellt das Tutorial mit 
ATmega8 durch zu ackern, und dann, wenn alles soweit klappt, es mit 
oversampling zu versuchen...
Es muss lediglich ein ruhiges signal geben, das ich dann schätzungsweise 
auf einem LCD darstellen werde.


Habe momentan leider andere probleme, deshalb schläft das Projekt noch 
für ein paar tage...


Gruß Valentin

von Wolfgang (Gast)


Lesenswert?

<< ADU oder ADC = Analog Digital Wandler
oder auch: ADU  = Analog Digital Umsetzer

von Simi (Gast)


Lesenswert?

Falls Du Dich doch wieder dranmachst:

Ich denke doch, dass in DEINER Anwendung Oversampling viel besser ist 
als ein teurer, externer, hochauflösender ADC. Du willst kleine "Stufen" 
in Deinem Messsignal. Das kannst Du schon versuchen, mit 14 oder 16 Bit 
zu erreichen. Ich will Dir mal was vorrechnen: Sagen wir, Du kommst mit 
einem 10V-Full-Scale-Signal rein (wird wohl noch kleiner sein). Dann ist 
Dein LSB 10V/(2^16) = 100 Mikrovolt! Glaube ja nicht, dass Dir dieses 
Bit wunderschön stabil bleibt. An Deinem ADC-Eingang wird ein Rauschen 
liegen, das um ein VIELFACHES höher ist. Und jedesmal, wenn Du samplest, 
nimmst Du einen Schnappschuss aus diesem Rauschen. Mal die obere Spitze, 
mal die untere, mal irgendwas zwischendrin.
Wenn Du aber mit 10 Bit samplest, hast Du noch 10mV Auflösung. 
Vielleicht musst Du hier tatsächlich das Rauschen noch ein wenig 
künstlich verstärken, um gute Resultate zu kriegen. Aber dann machst Du 
einen statistischen Mittelwert über 100 oder 1000 Samples. Damit 
erreichst Du WIRKLICH wunderschön gleichmässige End-Samples.
Um dies zu verdeutlichen: Stell Dir vor, Du summierst 100 Zahlen, die 
immer zwischen 995 und 1005 liegen. Zufällig verteilt (das ist Dein 
Rauschen um 5 LSB). Sagen wir, Du würfelst das aus mit einem - hm- 
10seitigen Würfel :-). Am Schluss hast Du also ein Zahl um 100'000. Es 
könnten auch 99'500 sein oder 100'500. Aber diese Fälle sind EXTREM 
unwahrscheinlich. Tatsächlich wirst Du immer etwas zwischen 99'900 und 
100'100 kriegen (Und das ist noch SEHR pessimistisch geschätzt). Das 
teilst Du wieder durch 100. Und kriegst etwas zwischen 999 und 1001.
Obwohl Du immer nur GANZE Zahlen genommen hast, kriegst Du am Schluss 
Kommastellen. 999.5, 1000.3.....
Das ist Oversampling. Und das Rauschen ist durch die inherente 
Digitalfilterung verschwunden resp. stark unterdrückt.
Und noch 'nen Vorteil hat das ganze. Du musst Dich viel weniger mit 
Aliasing rumschlagen. Das ist auch so ein hässliches Phänomen, das den 
ADC plötzlich Dinge messen lässt, die gar nicht da sind. Oversampling 
entschärft dieses Problem sehr stark.

Gruss
Simi

von Valentin (Gast)


Lesenswert?

Klar, geh Ich da wieder ran!!!
Manche probleme lösen sich doch schneller wie vermutet
(sch... Microsoft)...
Den ISP Programmer habe Ich mir schon zusammen gelötet, nun muss Ich nur 
den Controller bestellen (ATmega8), und schon kanns losgehen.

Vielen Dank, genau so habe ich mir das auch vorgestellt. Ist ja ziemlich 
simpel (in der Theorie :-) )

Kleine frage Simi was bist denn eigentlich von Beruf?
(wenn ich fragen darf)


MfG Valentin Baer

von Simi (Gast)


Lesenswert?

Salü Valentin!

Cool! Erzähl dann, wie's so läuft (oder - selbstverstänglich - löchere 
uns weiterhin mit Fragen)!
Bei Microsoft-Fragen könnte ich allenfalls Fluchen helfen ;-)

Natürlich darfst Du fragen! :-)
Ich bin Elektroäschenjöör... hm... bei Euch sagt man zwar eher 
ElektroINschenjöör. :-)

Gruss
Simi

von Valentin (Gast)


Lesenswert?

Mach dir da mal keine sorgen!
Ich werde euch noch zu tode löchern!
Ihr werdet es noch bereuhen... ;-)

Ja ja, ich sag nur treiber oder geräte inkompatibilität und die daraus 
resultierenden, kaum nachvollziehbaren, zur weissglut treibenden 
probleme...

Stimmt, so oder so ähnlich sagts nen Alemanne...  :-)

von Pöhli (Gast)


Lesenswert?

hab ich was überlesen?

wozu braucht man zur pH Messung, noch dazu in einem so eingeschränkten 
Messbereich, einen 16 Bit Wandler ??

Verlangt man eine Auflösung von 0,01 pH Einheiten, was schon sehr exakt 
ist da man so genau gar nicht kalibrieren kann, dann benötigt man über 
den gesamten üblichen pH Bereich von 0 -14 gerade mal 1400 Werte. Bei 
einer 2 Punkt Kalibrierung bei 4 und 7 kann man die Endbereiche eh 
vergessen, also sagen wir zwischen pH 0 - 10 . Da reicht man mit einem 8 
bit Wandler, ein 12 bit Wandler schafft den gesamten pH Bereich locker 
mit riesigen Reserven.

Ein 16 Bit Wandler ist sinnlos da die Genauigkeit nicht verwertbar ist.

Wer der Meinung ist eine pH Messung in der dritten Kommastelle 
durchzuführen sollte sich mal die Angaben auf den Kalibrierstandarts 
ansehen und mit einem Chemiker unterhalten.

Messtechnik sollte auch Sinnhaftigkeit beinhalten.

von Valentin (Gast)


Lesenswert?

Ja, hast du...

 "So etwas in der art sollte dabei rauskommen:
http://www.dennerle.de/HG07UG09.htm";

Wenn du dir die Beiträge durchgelesen hättest, währe dir aufgefallen das 
Ich von dem 16bit wandler weg bin und nun einen 10biter vor mir liegen 
habe...
Mir ging es mehr um eine ruhige Anzeige...
Deswegen wollte ich anfangs einen 16er da Ich durch einen gewissen 
überfluss an bits eine ruhige Anzeige erhlten wollte.

von Pöhli (Gast)


Lesenswert?

na dann ist ja alles paletti :-)
Und ich meinte oben natürlich 10 bit, nicht 8bit....

Da PH Messung nicht so sehr zeitkritisch ist solltest du bereits durch 
Mittelung über 64 A/D Wandlungen eine akzeptable Ruhe in die Anzeige 
bekommen.

von Valentin (Gast)


Lesenswert?

Genau das hab Ich auch vor. :-)
Mal sehen ob alles so klappt wie Ich es mir vorgestellt habe...


MfG Valentin

von Sonic (Gast)


Lesenswert?

Thema C-Control: das sind nix weiter als aufpolierte und schön verpackte 
AVRs, die heißen sogar so! Nur dass sie den 6-8-fachen Preis kosten und 
einen langsamen C-Interpreter an Bord haben, obwohl ein Mega sowieso in 
C programmiert wird. Wieder 'n Beutelschneiderei vom 'C'.
Als 24-Bit ADC kann ich auch den AD7711 empfehlen, ist mit I²C.

von Daniel M. (dandansen)


Lesenswert?

Ich verstehe auch noch nicht so ganz, wie mir das Oversampling eine 
höhere Auflösung bringen soll? Vielleicht könnt ihr mir ja helfen:

Ich treibe eine Welle mittels eines DC-Motors an. An einem Wellenende 
ist über eine Kupplung ein Winkelsensor angebracht, der den absoluten 
Wert mißt und eine Spannung zwischen 0 und 5 V ausgibt. Die Auflösung 
ist mit 0,5° angegeben. Das macht 720 zu digitalisierende Werte. Mein 
Atmega32 hat einen 10 Bit A/D-Wandler, d.h. er kann 1024 Werte ausgeben. 
Lande ich damit zwischen den vom Sensor ausgegebenen Werten, muß ich 
runden. Den maximalen Fehler habe ich damit zu 0,17° abgeschätzt. Das 
ist mir eigentlich zu viel. Mit einem 12 Bit Wandler würde ich einen 
max. Fehler von 0,04° erhalten.

Wie kann mir das Oversampling jetzt helfen? Habe ich in meinen 
Überlegungen einen Fehler gemacht?

Gruß,
Daniel

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.