Forum: Mikrocontroller und Digitale Elektronik 16 Bit MC oder 8 Bit MC


von The_Freshmaker (Gast)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach einem MC und habe folgende Anforderungen:

Es sollen zwei analoge Werte eingelesen werden (Stromsensor 0-5V, 
Temperatursensor 0-5V). Der Stromwert soll aufintegriert, also einfach 
in jedem Zyklus aufaddiert, werden. Die Samplingrate sollte 500kSps oder 
1MSps sein. Zur Spannungsversorgung liegen +5V und GND vor (kann durch 
DC/DC Wandler erweitert werden, wenn möglich keine Zusatzwandler)
Alle 50ms sollen diese Werte über CAN an einen anderen MC übergeben 
werden. Zusätzlich sollen die Werte im EEPROM gespeichtert werden.

Jetzt würde ich gerne wissen, was ihr mir eher empfehlt:

1. 16 Bit MC mit integriertem 16 Bit ADC und CAN
oder
2. 8 Bit MC und CAN mit externem 16 Bit ADC

Über entsprechende Empfehlungen mit dem richtigen MC würde ich mich 
freuen.

von Helmut L. (helmi1)


Lesenswert?

The_Freshmaker schrieb:
> 1. 16 Bit MC mit integriertem 16 Bit ADC und CAN
> oder

16 Bit ist heute out. Da kann man gleich auf 32 Bit gehen wo das Angebot 
wesentlich groeser ist.

> 2. 8 Bit MC und CAN mit externem 16 Bit ADC
>

8 Bit wird deine Samplingrate von 1MSPs wohl nicht schaffen.

> Über entsprechende Empfehlungen mit dem richtigen MC würde ich mich
> freuen.

Schau dir mal die 32 Bit Cortex STM32 uC von ST an.

von Viktor N. (Gast)


Lesenswert?

ein dsPic moeglicherweise..

von Schlumpf (Gast)


Lesenswert?

Ich würde für diese Anwendung auf jeden Fall einen uC suchen, der 
möglichst alle Peripherie, die du benötigst, integriert hat.
Spart Verdrahtungsaufwand und die damit möglichen Fehlerquellen und 
kostenmäßig ist es sicher auch günstiger.

16 Bit-ter sind eher auf dem absteigenden Ast und wie ja bereits erwähnt 
wurde, greift man dann üblicherweise gleich zum 32 Bit-ter. Die gibt es 
in Hülle und Fülle und sie sind auch schon recht günstig zu haben.

von Tachen (Gast)


Lesenswert?

Die LPC11C-Reihe hat CAN schon komplett intern (also mit Tranceiver).
Allerdings brauchst Du da dann einen externen ADC...

von Frank K. (fchk)


Lesenswert?

The_Freshmaker schrieb:

> 1. 16 Bit MC mit integriertem 16 Bit ADC und CAN
> oder
> 2. 8 Bit MC und CAN mit externem 16 Bit ADC

Ein integrierter 16 Bit Wandler ist schon eine Herausforderung, wenn Du 
von allen 16 Bit was haben willst. 5V/65536=76.3µV, das ist eine Stufe 
des ADC. Bist Du Dir wirklich sicher, dass Du diese Auflösung brauchst 
und und auch tatsächlich nutzen kannst, ohne dass die untersten 4 oder 6 
Bit im Rauschen untergehen?

12 Bit ADC-Auflösung entsprechen einer Auflösung von 1.2mV bei 5V 
Messbereich. Das klingt realistischer.

Du kannst zB den dsPIC33EP64GP502 verwenden. 70 MHz CPU-Takt, ECAN, 12 
Bit ADC mit 500 kSmp/s, erweiterter Temperaturbereich -40...+125 °C, 
Preisangabe von Microchip: 2.63$

fchk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

The_Freshmaker schrieb:
> Es sollen zwei analoge Werte eingelesen werden (Stromsensor 0-5V,
> Temperatursensor 0-5V). Der Stromwert soll aufintegriert, also einfach
> in jedem Zyklus aufaddiert, werden. Die Samplingrate sollte 500kSps oder
> 1MSps sein.
Einen uC mit integrierten 16Bit ADCs und 1MS/s kenne ich nicht. Und vor 
allem glaube ich kaum, dass ein integrierter ADC 16 Bit auch tatsächlich 
schafft...

von Gregor B. (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> Schau dir mal die 32 Bit Cortex STM32 uC von ST an.

Passt nicht zu:

The_Freshmaker schrieb:
> Es sollen zwei analoge Werte eingelesen werden (Stromsensor 0-5V,
>
> Temperatursensor 0-5V). Der Stromwert soll aufintegriert, also einfach
>
> in jedem Zyklus aufaddiert, werden. Die Samplingrate sollte 500kSps oder
>
> 1MSps sein.

Der STM32F3 hat einen 16-Bit Delta-Sigma-Wandler, der schafft sicher 
nicht 500ksps.

Die Freescale Kinetis haben zwar zwei 16-Bit A/D-Wandler, aber die 
schaffen maximal 413 ksps, und eine große effektive Auflösung nur mit 
Hardware-Averaging, was die effektive Samplerate reduziert.



Silicon Laboratories C8051F060/1/2/3,

zwei eingebaute 16-Bit ADCs mit 1Msps (ENOB 13,99 Bit Single ended, 
14,49 Bit Differential)  und CAN.

von Frank K. (fchk)


Lesenswert?

Die TI MSP430F4xxx haben 16 Bit ADCs, aber die findet man eher in 
Messgeräten. Fluke verbaut die z.B. sehr gerne. Aber CAN gibts in der 
MSP430-Welt nicht, und statt MS/s sinds eher kS/s. Dafür aber 16 Bit.

fchk

von Peter D. (peda)


Lesenswert?

The_Freshmaker schrieb:
> Die Samplingrate sollte 500kSps oder
> 1MSps sein.

Wow, must Du aber flinke Temperatursensoren haben, die alle 1µs ihren 
Wert ändern.
Deine Anforderungen dürften hoffnungslos überzogen sein.

von Achim S. (Gast)


Lesenswert?

Peter Dannegger schrieb:
>> Die Samplingrate sollte 500kSps oder
>> 1MSps sein.
>
> Wow, must Du aber flinke Temperatursensoren haben, die alle 1µs ihren
> Wert ändern.
> Deine Anforderungen dürften hoffnungslos überzogen sein.

insbesondere wenn man bedenkt, dass der Messwert gar nicht zeitaufgelöst 
weiterverarbeitet wird, sondern einfach nur gemittelt/integriert:

The_Freshmaker schrieb:
> Der Stromwert soll aufintegriert, also einfach
> in jedem Zyklus aufaddiert, werden. ....
> Alle 50ms sollen diese Werte über CAN an einen anderen MC übergeben
> werden. Zusätzlich sollen die Werte im EEPROM gespeichtert werden.

Wenn ohnehin nur das Integral/der Mittelwert über 50ms interessiert, 
dann wäre es sinnvoll, die Mittelung über die hohen Frequenzanteile von 
einem analogen Tiefpass vor dem ADC durchführen zu lassen (z.B. 1kHz). 
Dann kann man gemütlich abtasten (z.B. 50kHz), und dafür reicht dir ein 
8 Bitter. Im Integral über 50ms ergibt sich - bis auf einen fixen 
Skalierungsfaktor - kein Unterschied zum 1MSps-Ansatz.

von Arc N. (arc)


Lesenswert?

Lothar Miller schrieb:
> Einen uC mit integrierten 16Bit ADCs und 1MS/s kenne ich nicht. Und vor
> allem glaube ich kaum, dass ein integrierter ADC 16 Bit auch tatsächlich
> schafft...

SiLabs C8051F06x oder
Freescale K50 (allerdings nur afair 500 kSps und dann Mittelwertbildung)

von M. K. (sylaina)


Lesenswert?

Peter Dannegger schrieb:
> The_Freshmaker schrieb:
>> Die Samplingrate sollte 500kSps oder
>> 1MSps sein.
>
> Wow, must Du aber flinke Temperatursensoren haben, die alle 1µs ihren
> Wert ändern.
> Deine Anforderungen dürften hoffnungslos überzogen sein.

Naja, vielleicht braucht er die Samplingrate nur für den 
Stromsensor…denke aber auch an überzogene Samplingwerte…aber besser 
zuviel als zuwenig, hab erst letztens erlebt als jemand ein 
~100kHz-Signal mit 50 kS/s abtasten wollte. Ganz großes Kino :D

von c-hater (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> 8 Bit wird deine Samplingrate von 1MSPs wohl nicht schaffen.

Was hat denn die Verarbeitungsbreite mit der Samplingrate zu schaffen? 
Direkt auf jeden Fall nix.

Abgesehen davon:

Die ganze Aufgabe ist debiler Quatsch, wie sie sich nur Vollidioten 
ausdenken können. Wozu denn 1MSps, wenn das Ergebnis dann doch nur 
weichgespült mit 20Sps benutzt werden soll. Das ist doch völliger 
Unsinn. Dafür wäre sogar 1kSps Samplingrate noch deutlich 
überdimensioniert.

> Schau dir mal die 32 Bit Cortex STM32 uC von ST an.

Na das wäre ja nun wirklich mit Interkontinentalraketen auf 
Libellenlarven geschossen.

von Helmut L. (helmi1)


Lesenswert?

c-hater schrieb:
> Na das wäre ja nun wirklich mit Interkontinentalraketen auf
> Libellenlarven geschossen.

In welcher Zeit lebst du? Die Interkontinentalraketen sind mittlerweile 
billiger als die Silvesterraketen (8Bit).

c-hater schrieb:
> Was hat denn die Verarbeitungsbreite mit der Samplingrate zu schaffen?

Kennst du einen gaengigen 8 Bitter mit der Samplingrate? Bei 32 Bit ist 
das fast normal.

von Wilhelm F. (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> Kennst du einen gaengigen 8 Bitter mit der Samplingrate?

Der wurde hier genannt:

Beitrag "Re: 16 Bit MC oder 8 Bit MC"

So ein Eval-Board habe ich hier, und der 8051-Core spielt nicht so die 
Hauptrolle. Per DMA werden die Wandlungsergebnisse dort am Core vorbei 
direkt in ein SRAM übertragen.

Allerdings muß ich mal wieder ins Datenblatt schauen. Mit dem Board gab 
sich SiLabs auf jeden Fall Mühe, gutes HF-Design, und zwei BNC-Buchsen 
drauf.

von c-hater (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> In welcher Zeit lebst du? Die Interkontinentalraketen sind mittlerweile
> billiger als die Silvesterraketen (8Bit).

Wen willst du hier verarschen?

Ich mag alt sein, aber Preislisten kann ich schon noch lesen...

von Wilhelm F. (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> Die Interkontinentalraketen sind mittlerweile
> billiger als die Silvesterraketen (8Bit).

Haben Sylvesterraketen inzwischen denn schon µC? Denkbar wäre es ja, bei 
allem elektronischem Party-Firlefanz und Grußkarten, was ich in der 
letzten Zeit so sah. ;-)

von Helmut L. (helmi1)


Lesenswert?

c-hater schrieb:
> Wen willst du hier verarschen?

Ich will hier keinen verarschen (Sind wir eigentlich in der Gosse mit 
der Sprache)


ATMEGA644         6.91 Digikey  64K Flash  10Bit ADC
20MHz Clock

STM32F051         3.24 Digikey  64K Flash  12Bit ADC 1us Conversion Time 
48MHz Clock

Wilhelm Ferkes schrieb:
> Haben Sylvesterraketen inzwischen denn schon µC? Denkbar wäre es ja, bei
> allem elektronischem Party-Firlefanz und Grußkarten, was ich in der
> letzten Zeit so sah. ;-)

Ich meinte da letztes Jahr sowas gesehen zu haben. Da wurde irgendwo in 
Dubai ein Feuerwerk gezuendet und damit alles gleichzeitig ablief 
haetten die da uC in die Raketen eingebaut.

von c-hater (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> Ich will hier keinen verarschen

Warum versuchst du es dann?

> STM32F051         3.24 Digikey  64K Flash  12Bit ADC 1us Conversion Time
> 48MHz Clock

+18 EUR Versand=21.24 EUR

Dagegen:

ATMEGA1284P         128k Flash

Pollin: 5.95+4.95 Versand=10.90 EUR

Reichelt: 5.90+5.60 Versand=11.50 EUR

Dazu kommt noch, daß ich den 1284P auch in DIP bekommen kann und so eine 
Versuchsschaltung mal eben auf Rasterplatine aufbauen, also sämtliche 
PCB-Kosten einsparen kann.

Ja, der ST ist ein wirklich interessanter µC. Aber nicht bei meinen 
Randbedingungen. Wenn es ihn bei den üblichen Verdächtigen und auch im 
DIL-Gehäuse gäbe, sähe das sicher anders aus.

von Wilhelm F. (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> Ich meinte da letztes Jahr sowas gesehen zu haben. Da wurde irgendwo in
> Dubai ein Feuerwerk gezuendet und damit alles gleichzeitig ablief
> haetten die da uC in die Raketen eingebaut.

Interessant. Ich kannte hier am Ort nur einen Feuerwerker, der mir davon 
erzählte, daß professionelle Feuerwerke z.B. bei Stadtfesten per 
Knopfdruck oder per Programm am PC fast automatisch ablaufen. Denn er 
machte die elektrischen Zündsätze dafür, und hatte die Berechtigung, 
Pulver einzukaufen, was Normalbürger nicht bekommt.

von Werner M. (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Zusätzlich sollen die Werte im EEPROM gespeichtert werden.
Welche Speichertiefe bzw. welche Aufzeichnungsdauer schwebt dir denn 
dabei vor?

von c-lover ;-) (Gast)


Lesenswert?

c-hater schrieb:
> ATMEGA1284P         128k Flash
>
> Pollin: 5.95+4.95 Versand=10.90 EUR
>
> Reichelt: 5.90+5.60 Versand=11.50 EUR

oder so:
guloshop: 5.00+2.40 Versand=7.40 EUR

von Helmut L. (helmi1)


Lesenswert?

c-hater schrieb:
> ATMEGA1284P         128k Flash
>
> Pollin: 5.95+4.95 Versand=10.90 EUR
>
> Reichelt: 5.90+5.60 Versand=11.50 EUR

STM32F103 128KByte  Reichelt 4.85 Eur

DIP verbraucht zuviel Platz.

@Wilhelm Ferkes

Ich habe es gefunden.

http://www.elektor.de/elektronik-news/0x206c-8300-mikrocontroller-in-die-luft-gejagt.2033382.lynkx

von Frank K. (fchk)


Lesenswert?

c-hater schrieb:

> Dagegen:
>
> ATMEGA1284P         128k Flash
>
> Pollin: 5.95+4.95 Versand=10.90 EUR
>
> Reichelt: 5.90+5.60 Versand=11.50 EUR

Dagegen:

PIC 32MX150F128B-ISP    128k Flash, 32k RAM, 32 Bit, 50 MHz, SDIP-28
Reíchelt: 3.60€

Lass Dich nicht verarschen, vor allem nicht beim Preis.

fchk

von Wilhelm F. (Gast)


Lesenswert?

Helmut Lenzen schrieb:

> @Wilhelm Ferkes
> Ich habe es gefunden.
> http://www.elektor.de/elektronik-news/0x206c-8300-...

Danke, sehr interessant!

von F. F. (foldi)


Lesenswert?

Die  32-Bit-XMC1000-Mikrocontroller Cortex™ von Infineon haben so ein 
paar Goodies eingebaut. Allerdings hab ich vor einem Monat noch keinen 
Anbieter von Einzelstücken gesehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Silicon Laboratories C8051F060/1/2/3,
> zwei eingebaute 16-Bit ADCs mit 1Msps (ENOB 13,99 Bit Single ended...
Immer, wenn ich aus der schier unübersehbaren Menge von uC genau und nur 
1 finde, der meine Anforderungen erfüllt, beginne ich an meinem Konzept 
zu zweifeln...

von Wilhelm F. (Gast)


Lesenswert?

Lothar Miller schrieb:

> Immer, wenn ich aus der schier unübersehbaren Menge von uC genau und nur
> 1 finde, der meine Anforderungen erfüllt, beginne ich an meinem Konzept
> zu zweifeln...

Das ist einerseits richtig. Aus diesem Grunde habe ich es prinzipiell 
meistens nie mit Spezialbausteinen. Den SiLabs C8051F064 gibt es aber 
schon laaaange, mein Eval-Board mit dem ist von 2005. Das sind bis jetzt 
8 Jahre. Vertrauen darauf darf man indessen nicht. Eher dem 8085 oder 
8051 als Standardbausteine.

von F. F. (foldi)


Lesenswert?

Lothar Miller schrieb:
>> Silicon Laboratories C8051F060/1/2/3,
>> zwei eingebaute 16-Bit ADCs mit 1Msps (ENOB 13,99 Bit Single ended...
> Immer, wenn ich aus der schier unübersehbaren Menge von uC genau und nur
> 1 finde, der meine Anforderungen erfüllt, beginne ich an meinem Konzept
> zu zweifeln...

Bin ja erst "ein paar Tage" mit µC dran, aber diese Aussage kann ich 
schon jetzt sehr gut verstehen.:-)
Nur, dass ich im Moment noch froh wäre, wenn ich immer das passende Teil 
finden würde.

von Gregor B. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Immer, wenn ich aus der schier unübersehbaren Menge von uC genau und nur
> 1 finde, der meine Anforderungen erfüllt, beginne ich an meinem Konzept
> zu zweifeln...

Was soll's, wenn ich aus der Menge der ARM Cortexe mir einen aussuche, 
der  einen 12-Bit ADC beitzt (z.B. Energy Micro) und wechsel dann später 
auf einen mit 12-Bit-ADC von z.B. Silicon Laboratories, dann fange ich 
trotzdem wieder von vorne an, da die Peripherie der beiden komplett 
unterschiedlich ist.

Echte Austauschbarkeit gibt es sowieso nicht.

Ich habe auch nur bei meiner Suche nach µC mit ADC und CAN gesucht...

von Wilhelm F. (Gast)


Lesenswert?

Gregor B. schrieb:

> Echte Austauschbarkeit gibt es sowieso nicht.

Dazwischen liegt immer die wunderbare Portierbarkeit von Code, C-Code 
1:1 am besten, das kann doch maximal nur zwei Tage nach Zeitplan dauern. 
Viel Spaß, das wird immer noch interessanter.

von Gregor B. (Gast)


Lesenswert?

Wilhelm Ferkes schrieb:
> das kann doch maximal nur zwei Tage nach Zeitplan dauern

Das kenne ich, gerade haben wir die Umstellung vom Infineon XC164 auf 
den XE164 hinter uns.

Beide haben den gleichen Core (C166 V2), die gleichen Hardware-Module, 
der XE ist nur schneller, hat mehr Speicher und z.B. statt einer Capture 
Compare Unit wie beim XC drei.

Tasking hat die XE-Serie allerdings nicht mehr in den alten CL-Compiler, 
sondern nur in den neuen VX-Compiler integriert.
Also haben wir die alten XC164-Projekte auf den neuen Compiler 
umgestellt.

Nichts am Programm geändert, nur Compiler updaten -> etliche Wochen!

von The_Freshmaker (Gast)


Lesenswert?

Peter Dannegger schrieb:

> Wow, must Du aber flinke Temperatursensoren haben, die alle 1µs ihren
> Wert ändern.
> Deine Anforderungen dürften hoffnungslos überzogen sein.

Vielen Dank für deine Antwort.
Die Temperatur wird sich nicht schlagartig ändern. Allerdings unterliegt 
der Strom schnelllen Änderungen. Ich weiß nicht, ob eine Aufteilung der 
beiden Messungen sinnvoll wäre. Deswegen würde ich einfach beide 
Messwerte gleich behandeln.

von Noch'n Gast (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Allerdings unterliegt der Strom schnelllen Änderungen.

und wie schnell ist der Sensor, was für Störungen und was für high speed 
Verbraucher sind dahinter?


Mit 500 ksp/s kannst du z.B. wunderbar die Störungen auf allen 
Netzleitungen in der Umgebung in tolle Einzelteile zerlegen (gerade bei 
16 bit). Auch einige Langwellensender sind da schon gut zu 
digitalisieren ;-).

von The_Freshmaker (Gast)


Lesenswert?

Noch'n Gast schrieb:
> und wie schnell ist der Sensor, was für Störungen und was für high speed
> Verbraucher sind dahinter?
>
>
> Mit 500 ksp/s kannst du z.B. wunderbar die Störungen auf allen
> Netzleitungen in der Umgebung in tolle Einzelteile zerlegen (gerade bei
> 16 bit). Auch einige Langwellensender sind da schon gut zu
> digitalisieren ;-).

Laut Datenblatt des Stromsensors:
Tr Response Time <1 us

Störungen:
keine Ahnung

High Speed Verbraucher:
Messplatine soll universell einsetzbar sein. Als Anschlusspunkt zwischen 
Motor und Umrichter oder auch zwischen Umrichter und Netz. Also einfach 
an des Verbindungskabel klemmen und messen.

von The_Freshmaker (Gast)


Lesenswert?

Vielen Dank an alle für die vielen Vorschläge. Ich werde mir die 
einzelnen uC`s anschauen und hoffe, dass was für mich dabei ist. 
Ansonsten muss ich meine Anforderungen anpassen.

von F. F. (foldi)


Lesenswert?

The_Freshmaker schrieb:
> Peter Dannegger schrieb:
>
>> Wow, must Du aber flinke Temperatursensoren haben, die alle 1µs ihren
>> Wert ändern.
>> Deine Anforderungen dürften hoffnungslos überzogen sein.
>
> Vielen Dank für deine Antwort.
> Die Temperatur wird sich nicht schlagartig ändern. Allerdings unterliegt
> der Strom schnelllen Änderungen. Ich weiß nicht, ob eine Aufteilung der
> beiden Messungen sinnvoll wäre. Deswegen würde ich einfach beide
> Messwerte gleich behandeln.

Alle Themen die hier Temperatur betreffen finde ich immer genial, weil 
die so weit von der Wirklichkeit entfernt sind, wie der Mond von der 
Erde.
Da werden immer Forderungen aufgestellt ... soll 0,0001°C genau sein ... 
0,001 Sekunden Messwerte erfassen.
Was ist das für ein Quatsch? Und nahezu lächerlich wird es, wenn es um 
Umgebungstemperaturen geht, selbst in liquiden Medien ändern sich die 
Temperaturen doch nicht schlagartig.
Ich hab natürlich mit den Zahlen etwas übertrieben, aber die Forderungen 
gehen ganz schnell runter, wenn man den Leuten einfach mal vor Augen 
führt was da eigentlich passiert.
Zum Beispiel habe ich für mein Projekt Temperatur und Luftfeuchtigkeit 
messen müssen und lies mich auch schon von diesem, ich nenne ihn mal 
"Milliwahn" anstecken, aber der Sirion war mir mit fast 30 Euro zu 
teuer. Also nahm ich den DHT 11. "Viel zu langsam", kamen die Unkenrufe. 
Lächerlich! Der ist für alle Messungen der Luftfeuchtigkeit und 
Temperatur mindestens doppelt so schnell, wie sich die die Werte 
physikalisch ändern können.

von Noch'n Gast (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Also einfach an des Verbindungskabel klemmen und messen.

Um dann irgendeiner Feldtheorie bezüglich elektromagnetischer 
Zusammenhänge zum Opfer zu fallen?

http://de.wikipedia.org/wiki/Effektivwert

Mir ist es ja egal, aber bevor du diesen Aufwand treibst schlage ich vor 
mal n Scope an die Leitung zwischen Umrichter und Motor zu hängen um 
eine Vorstellung zu bekommen was da abgeht.

von Matthias (Gast)


Lesenswert?

The_Freshmaker schrieb:
> 1. 16 Bit MC mit integriertem 16 Bit ADC und CAN
> oder
> 2. 8 Bit MC und CAN mit externem 16 Bit ADC

Bist du sicher dass du 16-bit brauchst?

von Achim S. (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Laut Datenblatt des Stromsensors:
> Tr Response Time <1 us

Das ist die maximale Geschwindigkeit des Sensors. Du musst ihn aber 
nicht mit dieser maximalen Geschwindigkeit einsetzen, sofern immer noch, 
was du am Anfang geschrieben hast:

The_Freshmaker schrieb:
> Der Stromwert soll aufintegriert, also einfach
> in jedem Zyklus aufaddiert, werden.
> Alle 50ms sollen diese Werte über CAN an einen anderen MC übergeben
> werden.

Falls du immer noch das Integral über 50ms bilden willst, dann bist du 
mit dem Mittelwert des Stroms genau so gut bedient wie mit dem zeitlich 
hoch aufgelösten Verlauf. Den Mittelwert über das Stromsignal bildest du 
sehr viel einfacher über einen analogen Tiefpass am Ausgang des 
Stromsensors als über das schnelle Abtasten und die Mittelung im µC. 
Einen möglichen Aufbau dazu hatte ich weiter oben schon mal beschrieben:

Achim S. schrieb:
> Wenn ohnehin nur das Integral/der Mittelwert über 50ms interessiert,
> dann wäre es sinnvoll, die Mittelung über die hohen Frequenzanteile von
> einem analogen Tiefpass vor dem ADC durchführen zu lassen (z.B. 1kHz).
> Dann kann man gemütlich abtasten (z.B. 50kHz), und dafür reicht dir ein
> 8 Bitter. Im Integral über 50ms ergibt sich - bis auf einen fixen
> Skalierungsfaktor - kein Unterschied zum 1MSps-Ansatz.

Die Geschwindigkeit des Stromsensors ausreizen (ohne nachgeschalteten 
Tiefpass) musst du nur, wenn du auch wirklich die Zeitabhängigkeit des 
Stroms auf kurzen Zeitskalen betrachten willst.

Bei der Auflösung des ADC von 16Bit solltest du auch daran denken, dass 
sich durch die Mittelung über viele Abtastungen die rechnerische 
Auflösung des Integrals ohnehin erhöht. Wenn du mit 50kHz abtastest und 
über 50ms aufintegrierst, summierst du insgesamt 2500 Messwerte auf. Das 
erhöht die Auflösung des Integrals um mehr als 11 Bit gegenüber der 
Auflösung des ADC. Einen besonders hoch auflösenden ADC brauchst du also 
nicht, lediglich die Genauigkeit des ADCs könnte weiter für dich 
interessant sein.

von The_Freshmaker (Gast)


Lesenswert?

Es ist schlecht von mir erklärt worden. Es sollen alle 50ms sowohl der 
aktuell gemeessene Stromwert und das in der Zwischenzeit berechnete 
"Integral" übergeben werden. Der aktuelle Stromwert ist für die Reglung 
des anderen uC´s entscheidend.

Was ich aber jetzt nicht mehr verstehe?

Achim S. schrieb:
Einen besonders hoch auflösenden ADC brauchst du also nicht, lediglich 
die Genauigkeit des ADCs könnte weiter für dich interessant sein.

Ist Auflösung nicht gleich der Genauigekit?

Der Stromsensor kann Ströme von -150A bis 150A messen und gibt diese 
proportional zwischen GND und +5V wieder. Also 0A entsprechen dann 2,5V. 
Mein Zeil war es nun, die 300A möglichst genau einzulesen. Also je mehr 
Bit, umso genauer. Oder habe ich da was nicht verstanden?

von Eumel (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Ist Auflösung nicht gleich der Genauigkeit?

Nein, natürlich nicht. Stell dir mal ein billiges Digital Thermometer 
vor. Die haben in der Regel eien Auflösung von 0,1°  also zeigt es dir 
sowas wie 21,4 Grad als Raumtemperatur an. Die Genauigkeit ist 
allerdings wesentlich schlechter, eher im Berech von +- 1 Grad. Die 
Nachkommastellen sind einfach nur Rauschen also zufällig.

von Achim S. (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Es sollen alle 50ms sowohl der
> aktuell gemeessene Stromwert und das in der Zwischenzeit berechnete
> "Integral" übergeben werden. Der aktuelle Stromwert ist für die Reglung
> des anderen uC´s entscheidend.

wenn der andere µC den Momentanwert des Stroms nur einmal pro 50ms 
braucht, könnte ihm ja vielleicht trotzdem noch eine geringere 
Messbandbreite reichen (d.h. Messung nach analogen Tiefpass)

The_Freshmaker schrieb:
> Ist Auflösung nicht gleich der Genauigekit?

Die Auflösung gibt eine prinzipielle Grenze für die Genauigkeit: wenn du 
in einer Einzelmessung den +/-150A Messbereich mit 16 Bit auflöst, kann 
das Messergebnis nicht genauer sein als 300A/2^16=4,6mA. Allerdings wird 
bei einem 16Bit ADC diese prinzipielle Grenze normalerweise nicht 
erreicht, die Genauigkeit ist oft deutlich geringer. Schau dir das 
Datenblatt eines ordentlich spezifizierten ADCs genauer an (z.B. für den 
AD7606:
http://www.analog.com/static/imported-files/data_sheets/AD7606_7606-6_7606-4.pdf 
)

Dort findest du unter "DC Accuracy" eine Reihe von Genauigkeitsangaben, 
die bei statischem Eingangssignal gelten (und die bis 40 LSB gehen, also 
40*4,6mA bei optimaler Ausnutzung des Messbreichs). Diese DC-Genauigkeit 
könntest du im Prinzip auch noch mit einem 12Bit ADC erreichen.

Bei dynamischer Ansteuerung mit schnell variierenden Signalen kommen 
nochmal ordentlich Fehler obendrauf. Da wird dann häufig das Verhältnis 
von Nutzsignal zu Rauschen und Verzerrungen betrachtet (SINAD). Das 
kannst du dir ebenfalls in eine effektive Bitzahl (enob) umrechnen, die 
bei einem 16Bit ADC deutlich unterhalb von 16 liegen wird.

von Frank K. (fchk)


Lesenswert?

The_Freshmaker schrieb:

> Ist Auflösung nicht gleich der Genauigekit?

Auflösung: Wie groß ist eine Stufe beim ADC, d.h. wieviel mV Unterschied 
zwischen dem ADC-Wert (n) und dem ADC-Wert (n+1)? Die Abstufungen können 
unter Umständen auch unterschiedlich groß sein - das nennt sich dann 
Nichtlinearität und das will man möglichst nicht haben.

Genauigkeit: Wie groß ist der Fehler zwischen dem gemessenen und dem 
tatsächlichen Messwert?

Und: Wenn Du die Breite eines A4 Blattes mit einem normalen Lineal misst 
(da sollten 21 cm rauskommen), dann ist es unsinnig oder sogar falsch, 
dem Wert mit 210.000mm anzugeben, denn so genau messen kannst Du mit 
einem Lineal gar nicht. Hast wohl in Schule und Studium gepennt.

fchk

von troll (Gast)


Lesenswert?

The_Freshmaker schrieb:
> Ist Auflösung nicht gleich der Genauigekit?
Auflösung und Genauigkeit

von The_Freshmaker (Gast)


Lesenswert?

Okay. Den Unterschied habe ich jetzt verstanden. Die beiden Wörter waren 
bei mir synonymverwandt. Heute schon was gelernt.

von Gregor B. (Gast)


Lesenswert?

Hättest Du gleich gesagt, dass Du an den Leitungen zwischen Motor und 
Umrichter messen möchtest, hätte ich Dir gleich sagen können, dass das 
unsinnig ist.
Der Störpegel wird so groß, dass selbst 10 Bit bei einer 
Referenzspannung von ungefähr 2,4V sportlich sind.

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.