Der Beitrag sagt es schon! Ich bin auf der Suche nach einem AVR, der einen 12Bit ADC onboard hat. Gerne würde ich mindestens 1000 Messungen je sekunde tätigen. Also eine hohe Sample-Rate. Kann mir jemand einen Chip empfehlen? evlt brauche ich noch 4 digitale I/Os. und eine UART, externen Baudratenquarz. Danke für Empfehlungen
Ansehen kann man sich in dem Zusammenhang auch mal die "Battery Management AVR" ATMega8HVA, ATMega16HVA, ATMega16HVB, ATMega32HVB Die haben auch 12 Bit Auflösung und Wandlungsraten von > 1500/s bei 1 MHz.
Achtung beim XMEGA! Errata genau lesen. Die 12-bit werden wohl (nicht immer) ganz erreicht!
Jörg B. schrieb: > ATMega8HVA, ATMega16HVA, ATMega16HVB, ATMega32HVB > Die haben auch 12 Bit Auflösung und Wandlungsraten von > 1500/s bei 1 > MHz. weiß denn zu diesen Teilen jemand was? Ich würde gerne damit eine Last betreiben. Kann jemand etwas dazu sagen zu diesen Teilen? Matthias
Also 10kHz über mehrere Kanäle ist kein Problem, solange du es nicht mit dem Rechnen übertreibst. Die Dinger sind cool, allerdings am Anfang sehr gewöhnungsbedürftig was die Register angeht. Gruß Knut
Knut schrieb: > Also 10kHz über mehrere Kanäle ist kein Problem, solange du es nicht mit > dem Rechnen übertreibst. Die Dinger sind cool, allerdings am Anfang sehr > gewöhnungsbedürftig was die Register angeht. Danke Knut. Sind die Register denn so anders? Kümmert sich da der WINAVR/GCC nicht drum? Wo bekomm ich so ein Teil am einfachsten her? PWM ausgeben werden die ja auch können. Ist da eine gute Auflösung erreichbar oder sollte besser ein 12bit DAC dran? Die andere Lösung wäre ein normaler AVR mit externen Wandlern. Oder ein MSP430. Da gibt es Typen mit 12bit ADC und DACs. Matthias
Ein normaler AVR könnte mit Tricks wie Oversampling und gewollte Rauscheinkopplung auf des Messsignal auch 12Bit erreichen. Schon gerade bei der niedrigen Samplerate.
Knut Ballhause schrieb: > Ein normaler AVR könnte mit Tricks wie Oversampling und gewollte > Rauscheinkopplung auf des Messsignal auch 12Bit erreichen. Schon gerade > bei der niedrigen Samplerate. wie gut sind denn die Ergebnisse damit? Und welche Nachteile hat dies in Bezug auf Einschwingzeit?
Matthias W. schrieb: > wie gut sind denn die Ergebnisse damit? Die Auflösung steigt, aber die Genauigkeit bleibt bei max. 10 Bit wie im Datenblatt angegeben. Man kann die unteren Bits auch per Zufallsgenerator erzeugen und kommt so problemlos auf 24Bit bei hoher Messrate.
Ernst schrieb: > Die Auflösung steigt, aber die Genauigkeit bleibt bei max. 10 Bit Das ist falsch. Lektüre zum Thema gibt es hier: http://www.atmel.com/dyn/resources/prod_documents/doc8003.pdf
Knut Ballhause schrieb: > Das ist falsch. Lektüre zum Thema gibt es hier: Dort wird über höhere Auflösung geschrieben. Mir geht's um die Genauigkeit. Ich sehe ins Datenblatt vom ATmega164P/V 09/08, was wohl ein neuerer Typ ist. Dort finde ich unter ADC Characteristics für die abs. Genauigkeit Werte zwischen 2,75 und 3,5 LSB und auch noch Angaben über die Nichtlinearität INL von 1,5 LSB: nicht max. sondern typisch! Ich sehe nicht, wie man daraus 12Bit Genauigkeit zaubern soll. Ein 12Bit ADC, der hier wohl gesucht wird, hat bessere Daten. Beispiele ADS7822 oder MCP3201.
Über den Algorithmus des Oversampling mit Decimation verringert sich auch der Fehler. Aus der AppNote:
1 | To increase the resolution by one bit, four samples from the same ‘neighborhood’ are |
2 | added. These samples have values that differ from each other by a few LSB, because |
3 | of the noise. These four samples are added: 508 + 507 + 505 + 505 = 2025. |
4 | According to the decimation principle the answer now need to be scaled back to 11- |
5 | bit. It needs to be right shifted n times, where n is the desired extra number of bits. |
6 | The result is 1012. After increasing the resolution, it suddenly is possible to achieve |
7 | samples between the original quantization steps. Still, the signal is oversampled |
8 | enough to increase the resolution further, to 12 bit. Adding 16 10-bit samples and |
9 | right-shifting the result 2 times will do this. The result is 2025. This number is more |
10 | reliable, since the error margin is reduced to ~1.22mV using a 12 bit result. This |
11 | example shows that the user who started off with a slow varying signal, sampled 3800 |
12 | times per second, with a voltage accuracy of ~5mV, now has 240 samples per |
13 | second with a 12-bit resolution, and a voltage accuracy of ~1.22mV. |
Beitrag "ADC und Fixed-Point Arithmetik" Probier es aus aber das ko Kriterium sind hier 1000 Messungen pro Sekunde. Ich sehe nicht wie man dann noch 1000 Messungen hinbekommen soll.
So wie ich das Thema ADC sehe macht es wohl wenig Sinn einen ohnehin wohl schon ziemlich ungenauen 10bit-Wandler (2,75..3,5 LSB?) noch auf weitere 2 bit mehr aufzublasen. Daher kam ja die Idee besser gleich einen Mikrocontroller zu nehmen, der mehr bit kann bei entsprechender Genauigkeit. Die Typen ATMega8HVA und ATMega16HVA klingen ja grundsätzlich brauchbar. Es stellt sich die Frage wie einfach man diese als Privatmann bekommen kann und ob man damit die Aufgabe lösen kann. Eine Frage ist dabei ob der GCC diese Derivate brauchbar unterstützt oder ob man selbst Anpassungen machen muss. Eine weitere Frage ist welche Probleme zu erwarten sind wenn ich eine PWM mit 12bit Auflösung oder mehr erzeugen möchte. Wenn dies nicht möglich ist müsste ich einen externen DAC anschließen.
Sieh Dir diese beiden Typen an: ADC http://www.reichelt.de/ICs-M-MN-/MCP-3201-CI-P/index.html?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=90070;START=0;SORT=artnr;OFFSET=500;SID=15w3FueawQAQ8AADzoXi06b09c48df5367744f214a125e8560bc9 und DAC http://www.reichelt.de/ICs-M-MN-/MCP-4921-E-P/index.html?;ACTION=3;LA=3;GROUP=A217;GROUPID=2914;ARTICLE=90088;START=0;SORT=artnr;OFFSET=500;SID=15w3FueawQAQ8AADzoXi06b09c48df5367744f214a125e8560bc9 Für das Geld bekommst Du keine speziellen AVRs, hast 12 Bit mit hoher Geschwindigkeit und mußt keine Klimmzüge programmieren. Die ADCs gibt es mit bis zu 8 Kanälen und die DACs mit 2 Kanälen, wenn's ein bißchen mehr kosten darf.
Bernd N. schrieb: > Probier es aus aber das ko Kriterium sind hier 1000 Messungen pro > Sekunde. Ich sehe nicht wie man dann noch 1000 Messungen hinbekommen > soll. Der ADC des Mega schafft locker 32kHz Abtastung. Das ganze 32x machen und durch 8 dividieren. Schon hat man 12Bit bei 1kHz. Externe Bauteile, die für 12Bit geschaffen sind, sind bestimmt besser, aber wenn es um Platz, Verfügbarkeit und Preis geht, kann der AVR zur Not mithalten.
>> Das ganze 32x machen und durch 8 dividieren.
Deswegen der Link zum Code, 32x für 12 BIT Oversampling funktioniert
nicht aber du kannst es gerne ausprobieren.
Ernst schrieb: > Sieh Dir diese beiden Typen an: > ADC und DAC vielen Dank! Die habe ich angesehen. Sind DIL und leicht zu verarbeiten. > Für das Geld bekommst Du keine speziellen AVRs, mag sein. Ich habe ja keine Ahnung was diese obigen Teile kosten würden. Den Vorteil sah ich im integrierten Spannungsregler und den Wandlern. Auch da wäre ja ein DAC anschließbar. > hast 12 Bit mit hoher > Geschwindigkeit und mußt keine Klimmzüge programmieren. es ist halt eine SPI durchzutackern. Das kostet auch ein paar Taktschritte. Egal ob es eine ISR ist oder mit im Code untergebracht ist. > Die ADCs gibt es > mit bis zu 8 Kanälen und die DACs mit 2 Kanälen, wenn's ein bißchen mehr > kosten darf. das ist wirklich nett. Alternativ wäre ein MSP430 denkbar.
Bernd N. schrieb: > 32x für 12 BIT Oversampling funktioniert > nicht aber du kannst es gerne ausprobieren. Habe ich schon gemacht für eine Temperaturmessung an meinen Heizungsreglern. Und was soll ich sagen: Es geht! Edit: aaah.. ich sehe gerade, dass ich nur auf 11 Bit erweitert habe. Gut, der ADC des Mega kann auch mit 64kHz laufen ;-)
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.