Hi, ich habe ein analoges Signal (ziemlich linear) das sich von 0 bis ca. 4 V bewegt. die anwendung soll die spannung an einem LCD element zeigen. dafür brauche ich doch erst einmal einen ADC... 2 lithium batt. sollen 6 V spannung liefern signal soll recht schnell und fehlerfrei "ankommen" T. kompensiert aber welchen jetzt? 8 bit oder 16? ich habe einen bereich von 0-4V und möchte noch drei spannungen auf +/- 0,01 V genau "abgreifen", soll heissen, dass an den drei spannungen ein akkustisches signal erzeugt wird. 8 bit geringere Auflösung und damit ungenauer? heißt 8 bit, dass ich 8 digitale ausgänge habe, die mir das signal von 0000.0000 bis 1111.1111 liefern? was kann man an einem µC alles programmieren? kann ich das signal mit anderen funktionen addieren? ich würde auch noch gerne über die zeit die steigung berechnen wollen, dann brauche ich noch einen oszillator und timer. was empfehlt ihr mir? bin auch über gute links zum µC grundsätzlich und ADC und thema bit...
Messbereich 4V Auflösung = 0.01 4V / 0.01 = 400 Schritte d.H. mit 8 bit kommst du nicht mehr hin 2^8 = 256 . Mit 10 Bit 2^10 = 1024 sieht es besser aus. Mann darf aber Auflösung nicht mit Genauigkeit gleichsetzten - sollte trotzdem langen. Viele AVR's haben einen 10bit AD-Wandler eingebaut. Du solltest dir unbedingt hier das AVR-Tutorial anschauen wegen den Grundlagen. Ich würde dir dringend empfehlen dir mal einen Comiler-Demo aus dem Internet zu ziehen bei dem du auch die AD-Wandler Eingänge simulieren kannst. Der E-LAB Pascal Compiler scheint mir da Ideal. Da ist auch ein Demoprog dabei bei dem du Spannungen über Regler auf dem Simulator einstellen kannst, die dan auf einem simuliertem LCD-Display angezeigt werden. Die von dir gewünschten Mathematischen Funktionen must du dan schon noch selber schreiben. Mit Pascal hast du dafür aber eine optimale Sprache und kannst die dann auch gleich auf dem PC simulieren. Die Demo kann übrigens mit 4Kb z.B. mehr als ein AVR90S2333 an Programmspeicher hat. Dein Projekt kannst du sicher damit komplett programmieren. Pascal verbindet die Einfachheit von Basic mit den Anforderungen an eine Vernünftige Hochsprache. Für den ersten Einstieg ist ein guter Simulator, viele Demoprogramme und deutschsprachige Dokumentation oft sehr hilfreich. Wenn du mal Blut geleckt hast, kannst du ja immernoch auf WINAVR (sauguter, kostenloser C-Compiler ohne jegliche Einschränkung aber sehr spartanisch) umsteigen. Gruß Bernhard
ich gehe jetzt genauer auf die komponenten ein das ganze soll ein teil einer Wetterstation werden... der Drucksensor liefert bei 115kPa 4V jetzt noch mal zur Auflösung: also der Drucksensor hat eine Sensitivität dann von 4V/115kPa = 34,8 mV/kPa nehme ich jetzt einen 8 bit ADC -> Auflösung = 6V(Referenzspannung)/255 = 23,5 mV/Bit bei 16 bit ADC: -> Auflösung = 6V / (2^16-1)= 0,09 mV/bit bei 10 bit ADC -> Auflösung = 6V/(2^10-1) = 5,86 mV/Bit den Fehler vom Sensor mal ausser acht gelassen... welcher ADC ist optimal für mich, damit ich die Spannung möglichst genau auf 0,01 V ansteuern kann, um z.B. bei 1,52 V ein akkustisches Signal ertönen zu lassen? Da ich ja auch noch die Steigung der Geraden berechnen will, über einen best. Zeitraum, brauche ich eine Komponente, möglichst eine hochwertige, die eine Timerfunktion hat. Brauche ich eigentlich noch ein BCD/7-Segment oder kann ich vom µC direkt in das 7-Segment? Welchen ADC (>10bit) empfehlt ihr mir? Gut wäre ein billiger zum testen und ein hochwertigerer für die Anwendung. ich habe zwar etwas ahnung über hoch-, tiefpässe, OP und ausreichend grundlagen in ANSI-C, aber mit µC habe ich mich noch nicht beschäftigt... empfehlt ihr mir selber ein entwicklungsboard zu bauen oder ein teures zu kaufen? hat jemand einen link parat, zum thema ADC speziell in der Anwendung
Hi, ich empfehle dir den AT8535. Er hat 8 ADC`s mit jeweils 10 Bit. Dein Ad Wandler ist aber nur so genau wie deine Ref Spannung ist. Du solltest deshalb ein Referenzspannungs IC nehmen. Weiss die genaue Type im moment net. Die gibt es als 2.56 V oder 5.1 V mit Adj. Pin. Ich hab mir fuer mein 8535 selber ein Entwicklungsboard gebaut. Kostenpunkt somit nur 20 Euro , dazu kommt der Programmer ca 10 € und RS232 - TTL Pegelwandler ca 5 €. Anstatt der 7 Segmentanzeige empfehle ich dir ein 16 x 2 LCD. Timerfunktion mit Interrupt laesst sich auch schnell mit dem µC realisieren. Nochmal zu deiner Messgenauigkeit. Jeder ADC bei mir hat eine Messgenauigkeit von 0.01 V und bei mir liegen an den ADC`s Spannungsteiler mit einfachen Kohlewiderstaenden. Hohe Messgenauigkeit erreichst du nur bei niedriger Referenzspannung. Spiel erstmal mit den ADC`s vom µC , wenn es Dir nicht reichen sollte kannst du immer noch ein 16 Bit ADWandler per I2C Bus ansschliessen ,und den µC zum berechnen der Graden benutzen. Achja falls du kein C oder ASM proggen kannst es gibt auch Basic Compiler. Mfg Dirk
> Hohe Messgenauigkeit erreichst du nur bei niedriger Referenzspannung.
Falsch, vielleicht meinst du ja Auflösung.
Bonebit, geh die Sache anders an. Definiere einen bestimmten
(Luftdruck)Bereich, den du gerne messen möchtest. 0-800hPa werden dich
wahrscheinlich nicht interessieren. Mittels OPV-Schaltung diesen Bereich
"ausblenden", dafür den interessierenden Bereich "aufziehen".
Mach dich frei von deinen 0,01V - beziehe das auf deine gewünschte
Auflösung und Genauigkeit.
z.B. definierter Messbereich 800-1200hPa -> 0-5V
danach dann AD-Wandler aussuchen.
Schmittchen.
Hallo, der Einfachheit halber eine Referenzquelle von 4.096V und Du sparst Dir bei 12 Bit Auflösung (1mV/Bit)die Umrechnung. REF = MAX6164, ADW = MAX1284, 2 Stück bekommst Du jeweils als Muster kostenlos. MfG Manfred Glahe
Schmittchen, so hört sich das gut an, allerdings sehe ich das "ausblenden" und "aufziehen" wieder mit Fehler verbunden. Aber ich probiere jetzt erst mal... Manfred, wie kommt man am einfachsten an Muster als Privatperson ran? Irgend ein Tip, der bei den Herstellern immer zieht oder senden die jedem ein Muster?
Hallo Bonebit, mein Sohn hat noch als Student auch ohne Probleme seine Muster bekommen. Ich empfehle einfach eine ehrliche Anforderung mit der ausfürlichen Angabe des Verwendungszweckes. Wer mit den MAX Bausteinen zufrieden war wird sie auch später im Beruf nutzen wollen. Das machen sich nun auch immer mehr Hersteller zu nutze. Der Nachteil dieser Entwicklung ist allerdings, daß man (auch als UNI) immer häufiger nur noch 50 oder gar 100 Stück/ IC abnehmen muß wenn man sich mal dafür entschieden hat. So holen die Hersteller sich offenbar das Geld wieder rein. MfG Manfred Glahe
Ich würde nicht irgendwelche exotische Referenzen einsetzen. Die interne Referenz ist doch sehr konstant. Letztendlich willst Du ja auch nicht mV haben sondern kPa. Und Rechnen ist ja nun wirklich eine Sache die jeder MC am liebsten macht. Dann kannst Du auch gleich Deinen Sensor in Software kalibrieren. D.h. du mißt bei einer linearen Fuktion an 2 Stellen, berechnest daraus die Korrekturwerte (Nullpunkt und Anstieg) und legst diese dann im EEPROM ab, wo sich die Rechenroutine die Werte dann rausholt. Peter
Hallo Herr Dannegger, das ist keine exotische Referenz, sondern ein intelligente! MfG Manfred Glahe
danke peter das bringt mich voran! ich will ja umrechnen, drum ja auch der µC ausserdem wär ja wieder ein bauteil mehr! aber falls ich doch ne konstante referenzspannung Bei den Sensoren hab ich den MPXV4115V von Motorola oder den KP120 von Infineon im Auge... beide schon mit integr. signalverstärkung, tempkompensation und Kalibrierung Kann mir da jemand sagen ob ich nicht bessere (das ist mir wichtig) bekomme (schließlich bewegt sich der luftdruck auch nicht so wahnsinnig... vielleicht werde ich mal bergsteigen gehen... die höhen von den bergen sind ja ziemlich genau vermessen... denk ich mal) wegen den mustern... ich hab jetzt motorola und infineon angeschrieben und erklärt, dass ich den der konkurenz in der hobbyanwendung drinnen habe und mal ihren testen würde... ich bin aber schon am überlegen ob ich das wirklich abwarten kann... schnell werden die nicht kommen...
ich werde den beitrag etwas ruhen lassen, die theorie ist mir jetzt klar und von anderen Beiträgen hier konnte ich auch ne menge mitnehmen... aber ich sollte mal wieder an die FH... leider bin ich nicht im studiengang elektrotechnik, bei uns wurden nur die Grundschaltungen wie Pässe, OPV... behandelt. Ärgert mich schon! ach und war jemand auf der sensor2003 in Nürnberg? war nicht der hit, finde ich, die haben eher marketing experten hinter den ständen als Leute die auch was technisches zu den Produkten erzählen können... ich lass jetzt jedenfalls alles mal ruhen bis ich die hardware habe. aber danke für die antworten... irgendwelche probleme werden mit sicherheit auftauchen... man sieht sich
Hallo Bonebit, aus gegebenem Anlaß noch mal eine Präzisierung meiner Vorschläge: Die Festlegung auf 12 Bit und einer Referenz von 4096 mV/Bit macht selbstverständlich Sinn für anspruchsvollere Anwendungen mit mehreren Analogen Pfaden für Ein- und Ausgabe. (Wenn man mit den internen ADW's nicht arbeiten kann oder will, wofür es für -erfahrene Praktiker- viele Gründe geben kann). Die externe analoge Elektronik verfügt über immer gleiche Schnittstellen und kann dadurch automatisch mit einem DA- Ausgang bei schrittweiser (bitweiser) Erhöhung der Ausgangsspannung getestet werden (und umgekehrt) wenn die von der externen Elektronik generierten Werte wieder synchron eingelesen werden (Eine Kalibrierung und Funktionsprüfung ist so auch im Anwenderprogramm während des Einsatzes möglich) . Ein ADW verarbeitet nur SPANNUNGEN und nichts anderes! Den daraus resultierenden Luftdruck rechnet der µP nun auch wieder nicht "so gern" um, er muß es halt. Aber 1mV/Bit am AD Eingang ist immer sinnvoll, "krumme Werte" ergeben sich leider von selbst! Es ist offensichtlich, daß die Vorgehensweise bei solchen Problemen davon abhängt ob man nun von der Hardware kommt oder mehr der Software nahesteht. Wer nicht genau mißt, der kann sich die "Software" basierte Kalibrierung auch gleich schenken! MfG Manfred Glahe
Puh, da verwechselt wohl einer Genauigkeit mit Auflösung ! Das ist aber wirklich nur ein vollkommen theoretisches Modell, daß ein ADC mit 1mV Auflösung auch wirklich bei 1mV, 2mV, 3mV usw. auf den nächsten Digitalwert springt. In der Praxis jedoch heißt, daß ein ADC auf 1 LSB monoton ist nur, das der Fehler immer kleiner als 1LSB ist. D.h. ein praktischer ADC kann z.B. bei 1mV, 1,1mV, 2,9mV, 4,5mV usw. den nächsten Digitalwert ausgeben. Daher ist es also völlig egal, ob die theoretische Schrittweite nun exakt 1mV oder 1,1mV oder sonstwas ist. Die Genauigkeit ist aber wieder ein völlig anderes Ding. Bei manchen ADCs ist sie z.B. nur 2 .. 4 LSBs, d.h. gewandelte 10mV können als 7 oder auch 13mV angezeigt werden. Meistens sind die ADCs nicht die schnellsten, d.h. bis die nächste Wandlung fertig ist, wartet der MC nur unnütz rum. Also genug Zeit, um an dem vorher gewandelten Wert noch etwas rumzurechnen. Ich weiß, daß Rechnen wird von Anfängern nicht besonders gemocht. Das trifft aber für alles zu, was der Prozessor nicht direkt in einem Befehl machen kann, also wofür man einmalig eine kleine Routine schreiben muß. Aber z.B. für den AVR gibts ja nun wirklich genug Beispiele für die Grundrechenarten im Web. Bei Verwendung eines C-Compilers sind die entsprechenden Funktionen schon in den Bibliotheken enthalten, d.h. die entsprechenden Unterprogramme werden automatisch mit eingebunden, wenn man z.B. Y=aX+b; schreibt. Seitdem ich die Softwarekalibrierung nehme hat die Stabilität und Zuverlässigkeit deutlich zugenommen. Ein Poti kann nun mal leicht verstimmt werden oder altern. Besonders bei benötigten hohen Genauigkeiten ist der Stellbereich oftmals sehr klein. Dann muß man das Poti sehr oft hin und herdrehen, bis es endlich zufällig bei Offset 0,00000V bzw. Gain 9,99985V (alte 16Bit-DAC-Karte) stehen bleibt. Auch deshalb repariere ich nur sehr ungern Altgeräte. Ein EEPROM hält seinen Digitalwert zumindest genau so stabil und lange, wie der MC sein Programm behält. Peter
Ich habe eine Frage zur Spannungsreferenz, da es ja angesprochen wurde: Mein ATMega8L hat, wie die meisten anderen µC von Atmel auch, eine interne Referenz von (angeblich) 2,56V. Ich habe da mal einige AD-Wandlungen durchgeführt und bin beim Vergleichen der Analogen und Digitalen Werte darauf gestoßen, daß der µC eine Uref von 2,707V hat. Genau das hat mir dann auch mein Multimeter gesagt, als ich den Vref-Pin gemessen habe. Wie kann das sein, dass Atmel mit 2,56 V prahlt (und das auch mit 2 Nachkommastellen in Datenblättern angibt) , obwohl die tatsächliche Referenz 2,707 V bei meinem µC hat ??? PS: Ich bin mittlerweile dazu übergegangen, auf einen einfachen niederohmigen Spannungsteiler als Referenz zurückzugreifen, bei dem ich mir nach belieben 1024, 2048 4096 mV auf 1 mV genau einstellen kann. Denn Vertrauen schenke ich den Sp.Referenzen nicht mehr.
@Andi_K An welcher Stelle im Datenblatt prahlt Atmel den mit hochgenauer Spannungsrefenz. In den Datenblättern steht Vint min. 2,3 V typ. 2,56 V max. 2,7 Volt. In hochgenaue Referenzspannung kann man bei eine Mikrocontroller für den Massenmarkt ja auch nicht erwarten. Der von dir genannte niederohmige Spannungsteiler ist auch noch keine Garantie für eine auf ein Millivolt genaue Referenzspannung. Dazu muß ja die Versorgungsspannung für den Spannungsteiler ja entsprechend genau und stabil sein.
@mikki In jedem Datenblatt eines Atmel µC mit AD und interner Referenz wird unter "features" geschrieben: "Selectable 2.56V ADC Reference Voltage" und in ADMUX kann man mit 11xxxxxx "Internal 2.56V Voltage Reference with external capacitor at AREF pin" einstellen. Es wird also immer von genau 2,56V gesprochen. Wenn man dann zum Schluß aber angibt (wie du schon sagst) "Internal Voltage Reference =2.45 / 2.56 / 2.80 V" Dann ist das nicht nur verwirrend,sondern einfach nur falsch seitens des Herausgebers. Ich habe mich von dieser 2,56V-Angabe fehlleiten lassen. Das muss ich zugeben. Dann soll man es bis zum Schluss Symbolisch "Vref" nennen und nicht ständig auf 2 Kommastellen angeben! Zu meiner eigenen Referenz: Du hast da schon recht, was die Versorgungsspannung angeht. Diese muss ich natürlich konstant halten und auch gut kennen. Ich mache das mit einem selbstgebastelten Netzteil mit 7805er Reglern und ausrechenden Dämpfungsgliedern. Damit ist meine Restwelligkeit unterhalb der AD-Auflösung. Und die knapp um die 5 V liegende Versorgungsspannung ist nun recht zuverlässig messbar. MfG
Auf der Atmel Roadshow wurde das auch angesprochen: Die Referenz ist zwar hochkonstant, aber nicht hochgenau. Deshalb wird empfohlen, die Referenz zu messen und dann im EEPROM einen Korrekturwert einzuspeichern, mit dem dann die Software wieder ein hochgenaues Ergebnis errechnen kann. Für den Bastler dürfte das kein Problem sein. Interessant ist auch, daß man bei einigen Atmels den EEPROM gegen Löschen schützen kann. Dann kann man das einmal für alle seine MCs machen und die Rechnung stimmt auch dann, wenn man mal einen anderen MC einsetzt. Bzw. man muß nicht jedesmal nach dem Flashen auch den Korrekturwert neu in den EEPROM schreiben. Für die Massenproduktion muß man diese Kalibration eben während des Endtests der Geräte vorsehen. Peter
Hallo Herr Dannegger, ich verwechsele ganz sicher nicht Genauigkeit mit Auflösung! Wenn ich 10 Bit Genauigkeit erreichen möchte und einen 12 Bit Wandler benutze habe ich selbstverständlich eine höhere Genauigkeit zur Verfügung. Und damit Sie nicht wieder Mißverstehen, das 'Bitklappern' der beiden niedrigen Bits ist nicht mehr Ausschlaggebend, da sie nicht mit verarbeitet werden. Desweiteren lassen Ihre Ausführungen über Datenblattangaben darauf schließen ,daß Sie wenig praktische Erfahrung im Aufbau von kompletten ADW Systemen haben sonst würden Sie die Herstellerangaben nicht mehr als Kriterium herranziehen sondern nur noch als schöngefärbte Laborergebnisse! Ich darf Sie auch daran erinnern, daß Sie mir schon einmal bei einem PIC Programm vorgehalten haben, ich würde unübersichtliche Programme vorstellen. Daraufhin habe ich Ihnen eine Rutine von Mikrochip vorgestellt welche in fast genau der gleichen Weise aufgebaut war. Sie sind mir allerdings den Ihrigen, angekündigten Programmcode bis heute schuldig geblieben. Haben Sie die Generatorsteuerung nicht verstanden oder war es einfach zu viel Arbeit darüber nachzudenken? Es ist offensichtlich für Sie einfacher zu kritisieren als eigene KOMPLETTE Entwürfe vorzulegen! MfG Manfred Glahe
@Manfred Glabe, ich habe im Gegenteil die Erfahrung gemacht, daß bei sorgfältigem Schaltungsaufbau und guten ADCs durchaus die volle Auflösung zu erzielen ist, d.h. aufeinanderfolgende Wandlungen nur um max +/-1 voneinander abweichen. In einer Applikation eines Regelkreises habe ich durch Mittelwertbildung über 16 Meßwerte sogar noch 2 zusätzliche Bits an Auflösung rauskitzeln können. Schlechte Erfahrungen habe ich nur mit ADCs gemacht, die im MC integriert sind. Da tritt dann durchaus der Effekt auf, daß die unteren Bits wie wild zappeln. Es hat also schon seinen Grund, warum externe ADCs meist wesentlich teurer sind, als ein MC mit ADC intern. "Haben Sie die Generatorsteuerung nicht verstanden..." das war doch genau mein Kritikpunkt gewesen, daß man vor lauter "GOTO" und fester Zahlen ohne Angabe wie diese berechnet wurden total den Faden verliert, was wie passiert, wo was weitergeht, wo eine Funktion aufhört und eine andere beginnt usw. Aber wenn es sich nicht um konstruktive Beiträge handelt, sondern um persönliche Differenzen, sollte man das besser per E-Mail ausmachen. So ein Forum soll ja nicht zur Tortenschlacht verkommen. Also auf ein Wiedersehen per E-Mail, Peter
Hallo Herr Dannegger, "Puh, da verwechselt wohl einer Genauigkeit mit Auflösung !" Dann hätten Sie das besser auch per Email gemacht. Sie hatten die Schaltung und die Aufgabe! Und Sie haben es als 'einfach' beschrieben das Problem zu lösen. Wenn Sie dann ankündigen ein 'struktutriertes Programm' vorzulegen (und sei es auch nur aus sportlichem Ehrgeiz) dann hätten Sie das tun können. Von mir aus auch per Email! Ich frage jedenfalls erstmal nach bevor ich jemandem unterstelle er verwechsle so fundamentale Begriffe. Nochwas zum ADW System, eine der seltenen Fehler ist das Überspringen von Bitmustern (Missing Code's) mit der von mir beschriebenen Vorgehensweise ist das leicht zu erfassen. In solchen kurzen Texten kann man nun nicht alles erläutern und deshalb ist Nachfragen doch sinnvoller als gleich kritteln. MfG Manfred Glahe
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.