Ich werde bald ein Projekt an der Uni anfangen,
Es geht um sehr genaue Prozesssteuerung. Mein Betreuer meinte zu
mir,ich muss mir ein MCU mit sehr gute analoger Leistung nehmen : hohe
Auflösung, mehr als 8 ADC-Eingängen mit min. 1 KSPS.
Das einzige was ich bis jetzt gefunden habe, sind die "Analog Devices
Precision Analog Microcontrollers"
http://www.analog.com/en/processors-dsp/analog-microcontrollers/products/index.html
Insgesamt sieht es sehr gut aus.
Nun will ich hier Fragen, wie sieht es mit Software/Hardware Entwicklung
bei Analog Devices aus.
Ich habe gehört, dass die Programmer/Debugger sehr teuer sind, und die
Software ist auch nicht kostenlos.
Hat jemand damit Erfahrung gehabt?
Gibt es eventuell andere Alternativen außer AD?
PS
Ich muss erstmals ein MCU auswählen, dann wird ein kleines Dev-Board für
mein Projekt gekauft. Danach wird ein PCB mit ausgewählten MCU
entwickelt.
Das ganze wird zwar von der Uni bezahlt, aber die werden sicherlich
ungern 200-500 Euro für die Hardware ausgeben.
ANAL-og Devices schrieb:> ich muss mir ein MCU mit sehr gute analoger Leistung nehmen : hohe> Auflösung, mehr als 8 ADC-Eingängen mit min. 1 KSPS.
Was auch immer das heißt? Falls für dich
"The STM32F373x devices offer one fast 12-bit ADC (1 Msps), up to three
16-bit Sigma delta ADCs, up to two comparators, up to two DACs (DAC1
with 2 channels and DAC2 with 1 channel)," auch unter "sehr gute Analoge
Leistung" fällt, hast hast damit einen Controller der auch sehr gute
digitale Leistung, freie Tools und günstige Debugger und Evalboards hat.
Prinzipiell bessere Ergebnisse bekommt man, wenn man externe Wandler
einsetzt.
Schnelle digitale Schaltungen stören den Analogteil durch Übersprechen,
oft Masse- und Vcc-Sorgen.
Trenne beides, und du hast neben besseren Eigenschaften die (fast) freie
Wahl, sowohl beim A/D-Wandler als auch beim MC.
Und wenn sich ein Teil von beiden als unbrauchbar für die Aufgabe
erweist (oft weiss man ganz am Anfang nicht, wo man letzendlich landen
wird), kann man da nachbessern, ohne ganz von vorne anzufangen zu
müssen.
Für ein Uniprojekt (also minimale Stückzahlen) spielen die (höheren)
Bauteilkosten keine Rolle, das wird erst bei Serienfertigung evtl. ein
Problem. Ab und zu wird ja aus einem Uniprojekt tatsächlich ein Produkt.
Aber dann kennt man die tatsächlichen Anforderungen und kann falls
erforderlich umdesignen auf ein System mit internem Wandler.
Und du kannst einen Prozessor benutzen, den du schon kennst - das spart
Unmengen von Stunden bei der Programmiererei. Du willst ja ein Problem
lösen und nicht einen Prozessor studieren, der zwar evtl. geeignet wäre,
aber dich viel Einarbeitungszeit kostet, die nicht zur Problemlösung
beträgt, aber erforderlich ist, um überhaupt was zustande zu bringen.
Bin ja ein Fan von LT...
Geh mal auf die Seite von linear.com, da bekommst du Infos über fertige
eval-boards. Da kannst du davon ausgehen, dass die Analog-Sache nahezu
perfekt ist. Gibts für rel. kleines Geld (50...100€) und du bist von
Anfang an ein evtl. grosses Problem los.
ANAL-og Devices schrieb:> Es geht um sehr genaue Prozesssteuerung. Mein Betreuer meinte zu> mir,ich muss mir ein MCU mit sehr gute analoger Leistung nehmen
Ähem.. Das klingt mir ein bissel sehr seltsam nach ahnungslosem
Geschwafel.
Was bittesehr ist eine "genaue Prozeßsteuerung"? und wie definiert dein
Betreuer die "sehr gute analoge Leistung" eines µC?
Halte dich an H.J.Seifert und such dir für die analogen Meßaufgaben die
dafür geeigneten Teile heraus und nimm für die Verarbeitung einen
ordentlichen nicht zu knapp bemessenen µC. Für so ein Projekt zählen
deine Mannstunden (und die deines Betreuers) viel mehr als 20 Euro für
nen ADC oder nen µC.
Und mach dir deine Leiterplatte selber! Damit du auch auf diesem Gebiet
was lernst und dich nicht mit den Unzulänglichkeiten fertiger
Eval-Boards herumärgern mußt.
W.S.
ANAL-og Devices schrieb:> Ich habe gehört, dass die Programmer/Debugger sehr teuer sind, und die> Software ist auch nicht kostenlos.
Aha. AD verwendet zwei unterschiedliche CPU-Kerne im Rahmen ihrer
ADuC-Reihe, einerseits den schon etwas angestaubten MCS-51 und
andererseits ARM7 bzw. Cortex-M3. Ersteren kann man mit dem kostenlosen
C-Compiler SDCC programmieren, man muss sich halt eine Headerdatei mit
den passenden Peripheriedefinitionen besorgen oder selberstricken.
Die ARMe können mit frei verfügbaren Compilern programmiert werden, und
auch das zum Programmieren/Debuggen erforderliche JTAG-Interface ist
kein Problem, hier geht sogar der simple steinalte Frickelport-Adapter
"Wiggler", oder einer der FT2232-basierten OpenOCD-Adapter.
Kostenlose Versionen kommerzieller Tools, die i.d.R. eine
Codegrößenbeschränkung haben, können aber auch in Frage kommen, da gibt
es beispielsweise die Kickstart-Version von IARs Embedded Workbench for
ARM oder Atollic TrueStudio Lite.
Alternativen wären Silicon Labs (die haben allerdings bei den Modellen
mit >=16Bit ADC nur 8051-Kerne, also eher geringe Rechenleistung) und TI
MSP430 (der wird gerne zB in Messgeräten verbaut, und da gibt es einige
Modelle mit 16 und 24 Bit ADCs).
Überlege Dir auch: Brauchst Du >=8 Eingänge oder >=8 ADCs?
Normalerweise hat ein Mikrocontroller nur einen einzigen ADC mit einem
Analogmultiplexer davor. Heißt also: serielle Wandlung der einzelnen
Eingangssignale. Wenn Du mehrere Kanäle synchron abtasten und wandeln
musst, brauchst Du für jeden Eingangskanal einen eigenen ADC. Das gibts
auch, zB bei Chips für die Energiemessung, da gibts von TI zB einen
MSP430F6... (Nummer müßt ich jetzt raussuchen), der 7 24 Bit ADCs hat,
die synchron abtasten und wandeln, weil es für diese Anwendung eben
erforderlich ist.
Dann: Wie viel Rechenleistung brauchst Du? Musst Du unbedingt
Gleitkomma-Arithmetik haben? FFTs machen oder Filter rechnen? Wenn das
mehr ist, fällt der ganze 8051-Krempel raus.
Den Verweis auf externe Wandler solltest Du ernst nehmen. Achte dann
aber auch darauf, dass Du die Werte effizient in den Controller hinein
bekommst.
Und nicht zuletzt: Es ist gar nicht so einfach, einen 16 Bit ADC so
aufzubauen, dass Du von den ganzen Bits auch was hast. Wenn die unteren
4 Bit aufgrund mangelhaften Layouts eh nur Rauschen sind, dann kannst Du
auch gleich 12 Bit Wandler nehmen und Stress und Geld und Aufwand
sparen.
Bei 24 Bit ADCs gilt das noch sehr viel mehr.
fchk
ADuC702x haben einen seriellen Bootloader, der mit der AD-Software
ARMWSD.exe (Windows) programmiert werden kann. Zum Eval-Board wird ein
Seriell-to-3,3V-Adapter mitgeliefert. IAR und andere Compilerhersteller
unterstützen die Chips und es gibt von fast Jedem eine (eingeschränkte)
kostenlose Version.
12bit-ADU und 12bit-DAU sind mit bis zu 1Msps einsetzbar. Im
free-running-mode habe ich 1,8Msps gemessen.
Blackbird
bei der Anforderung vom Betreuer an den uC ist 10bit AD Auflösung
vielleicht schon hoch, dann ist ein ATmega88 schon ein passender
Kandidat.
und ein xmega128A1+extRAM macht restlos glücklich.
Und wer als erstes uC-Projekt mehr als 12bit AD Auflösung
(0,0008V/3V3max) hinbekommt, Respekt !
24 bit vom AnalogDevices uC sind schon recht sportlich.
Rufus Τ. Firefly schrieb:> Aha. AD verwendet zwei unterschiedliche CPU-Kerne im Rahmen ihrer> ADuC-Reihe, einerseits den schon etwas angestaubten MCS-51 und> andererseits ARM7 bzw. Cortex-M3. Ersteren kann man mit dem kostenlosen> C-Compiler SDCC programmieren, man muss sich halt eine Headerdatei mit> den passenden Peripheriedefinitionen besorgen oder selberstricken.
SDCC ist gut und auch unlimitiert, aber man muß sich da wirklich alles
selbst stricken. Am Headerfile Definitionen kann man schon mal einen Tag
verbringen, und am Batch-File für die Compilierung zwei bis drei Tage,
wenn man aber schon was von der Materie versteht. Für Ungeübte können da
auch zwei Wochen für drauf gehen. Debuggen muß man nach der alt her
gebrachten Methode Terminalprogramm am PC und serielle Kommunikation mit
Snapshots. Da geht auch Zeit drauf, um das zu erstellen.
Es geht also mit dem kostenlosen Tool unter Umständen einen Monat mehr
Zeit drauf als nötig, und deshalb würde ich mich für eine Studienarbeit
nur ganz schwer auf so was einlassen wollen. Was nix kostet, ist aber im
Hobby brauchbar, wo es keinen Zeitdruck und Termine gibt.