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
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
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.
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
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.
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)
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...
Daten zu "ADuC": http://www.analog.com/en/Search/productSearch.asp?queryText=ADuC&la=English&reqPg=1&x=18&y=6 oder einfach http://www.analog.com/ und nach "ADuC" suchen
Die sehen ganz gut aus, aber ich benötige auch digitale ein- und ausgänge. Wenn auch nicht viele...
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
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!
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?
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 € )
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.
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!" :-)
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.
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?
oversampling hört sich echt gut an! Nur muss ich noch durchsteigen wie ich das mach... und wie und ob überhaupt mit dem st62
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ß
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!!!!!!!
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.
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.
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
<< ADU oder ADC = Analog Digital Wandler oder auch: ADU = Analog Digital Umsetzer
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
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
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
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... :-)
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.
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.
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.
Genau das hab Ich auch vor. :-) Mal sehen ob alles so klappt wie Ich es mir vorgestellt habe... MfG Valentin
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.