Hallo alle hier, ich habe gerade ausgelernt und bin Berufsanfänger. Meine Aufgabe ist nach einem geeigneten Controller zu suchen. Er soll 12 Spannungswerte von 3 PSDs (so eine Art Lichtsensor, 4 Spannungen pro PSD) messen und daraus pro PSD 2 Werte berechnen (1 Multiplikation, 1 Division und 2 Additionen bzw. Substraktionen in der Berechnung enthalten). Es sollen ca. 70 solche Messungen mit Berechnung in Zeitabständen von 0,075s durchgeführt werden und die berechneten Werte zunächst gespeichert und dann per serielle Schnittstelle (z.B. SPI, I2C, RS485) an die zentralle Steuerung auf Entfernung bis ca. 10m übermittelt werden. Und dann das ganze von Vorne. Wie sollte man die Wahl des Controller richtig angehen? Welche Wortbreite? Welche serielle Schnittstelle? Was sollte man sonst noch beachten? Wäre froh wenn erfahrene Leute mir mit ein paar Tipps helfen würden! Danke!
Also was die serielle Schnittstelle angeht: Hast du zu der einen Zentrale auch nur EINEN Controller, der Daten an die Zentrale übermittelt? Dann nimm UART. Sehr einfach zu nutzen. Vor allem bei Atmega Controllern von atmel Soll das ne einzelanfertigung werden oder Massenproduktion? Soll der Controller also möglichst klein oder möglichst billig gehalten werden?
Welche Genauigkeit für die ADC-Werte brauchst du? im übrigen hören sich 75ms für ca 70ADC-Messungen brutal kurz an, denke das wirst du nicht schaffen. Son ADC braucht für die Wandlung eine gewisse Zeit..... Oftmals haben Controller 8 Channel 10-bit A/D-converter. Reichen tut also ein kleiner Controller nicht. Evlt mal überlegt, zwei kleine zu nehmen? zb. zwei ATMEGA8 für je ca. 1,50?
Ein AVR schafft 15000 AD-Wandlungen pro Sekunde. Hier werden nur ~1000 gebraucht. Klingt nicht nach einem Problem. Und von mehr als 10-Bit AD ist nirgends die Rede. Ein Analogmuxer erweitert problemlos auf 12 AD-Kanäle.
> ca. 70 solche Messungen mit Berechnung in Zeitabständen von 0,075s
Also ca. 1 Messung pro ms. Das ist kein Problem, aber die meisten
Controller haben nur 8 ADC Eingänge. Wenn Du die analogen Spannungen
nicht multiplexen kannst, musst Du einen Controller mit ausreichend
Eingängen verwenden. Da würde der ATmega640 in Frage kommen. Der ist
auch für alles weitere (Berechnungen, serielle Übertragung) mehr als
schnell genug.
Wenn's ohne Muxer auskommen soll und ein 100-Pinner dafür etwas überbordend erscheint: Atmel mag bei den bei kleineren Typen mit den ADCs geizen, Microchip nicht. Deren ebenfalls umgängliche 16-Bitter PIC24/dsPIC30/33 haben im 40/44-er Gehäuse 13 Kanäle.
Danke für die Rückmeldung! Zur Übertragung der Messungen soll ein Bussystem verwendet werden, da mehrere Messmodule im System geplant. RS232 ist wohl ungeeignet aber mit UART lässt sich auch RS485 realisieren oder? Es ist keine Einzelanfertigung aber auch keine großen Stückzahlen. Sollte natürlich günstig sein aber auf jeden Cent geht es auch nicht an. Bei der Größe genau so: soll klein sein aber die kleinsten Abmessungen sind auch nicht die erste Priorität. Hab zugegeben etwas verwirrend erklärt. Die 70 Messungen liegen im Abstand von 75ms voneinander und jede solche Messung besteht aus 4 Spannungsmessungen und 2 Berechnungen pro PSD mit insgesamt 3 PSDs. Also insgesamt 12 Spannungsmessungen und 6 Berechnungen in 75ms und das ganze 70 Mal, dann Werte zur Steuerung übertragen. Ich hoffe dass ich jetzt Klarheit reingebracht habe. Vom AD-Wandler her sind wohl 12 Kanäle nötig und die Auflösung mindestens 10 Bit, besser 12-Bit. Wie ist es mit der Wortbreite? Welche Rolle spielt sie in diesem speziellen Fall?
Witali G. schrieb: > Wie ist es mit der Wortbreite? Welche Rolle spielt sie in diesem > speziellen Fall? Bei diesen geringen Anforderungen: keine. 8bitter sind aber einfacher in der Handhabung als beispielsweise 32bitter. Das bischen Rechnerei schafft jeder. Da würde ich eher auf den Gesamtaufwand schauen. Das Entwicklungssystem mit seinen Kosten und Fähigkeiten könnte ein Kriterium sein. Forensupport auch: hier im Board bist du da bei AVRs besser dran als mit irgendetwas anderem.
Wenn die platzverhältnisse es zulassen würde ich ebenfalls einen atmega640 empfehlen. Der hat 16ADC mit 10 Bit auflösung. Von der Geschwindigkeit her kein Thema. Wird dich zwar etwa 6Euro/stk kosten, wenn du keine Stückzahlen hast, aber dafür gibts mit dem AVRStudio/GCC Compiler eine gratis entwicklungsumgebung in C welche kostenlos und in der einarbeitung easy ist... bei geforderten 12 Bit auflösung wirds schwiriger, aufwändiger und teurer, wäre nur zu empfehlen wenn umbedingt nötig...
Wenn's dennoch 12 Bits sein sollen: Die o.A. 16bit PICs bieten das. Dafür ist die (kommerzielle) Entwicklungsumgebung aber bischen teurer als avr-gcc.
Du könntest auch einen MSP430 verwenden. Dort giebt es Derivata mit 12 Bit ADC Wandler oder 16 Bit Sigmal Delta Wandler.
Damit wir mal alle Prozessoren durchgegangen sind. Die MSP430er sind auch sehr gut :-) 16 Bit, 12 Bit ADC, bis zu 8 Ports. Außerdem äußert stromsparend! Die ARM Prozessoren sind auch net schlecht, aber brauchen dementsprechend auch viel Saft. Du wirst aber bestimmt recht viel Rechenleistung brauchen. Ich würd auch nur n 16 oder 32 Bit µC nehmen, grad wenn du einen AD Wandler benutzen willst, der mehr als 8 Bit Auflösung hat.
Kommt drauf an, was für Rechnungen durchgeführt werden sollen. Für Multiplikation/Division sollte schon ein Hardware-Multiplier vorhanden sein. Reichen Integer aus oder werden Fließpunktzahlen benötigt?
> Für Multiplikation/Division sollte schon ein Hardware-Multiplier > vorhanden sein. Bei der Division bringt dich der Multiplier nicht wirklich weiter. > Du wirst aber bestimmt recht viel Rechenleistung brauchen. Herrje, jetzt kommt bestimmt noch jemand der die paar Rechnungen nicht unterhalb vom Pentium-4 hinbekommt. Leute, bleibt auf dem Teppich. 6 Berechnungen alle 75ms schafft ein AVR mit Links und im Rückwärtsgang. Auch als Fliesskommarechnung.
> aber brauchen dementsprechend auch viel Saft. Dich schon mal bei STM32 (ARM Cortex-M3) umgeschaut haben tun? :-) Vorteil einer ARM Architektur ist, dass du 32Bit Genauigkeit mit 1 Takt abhandeln kannst. Ausserdem kannste wegen der PLL die Taktfrequenz dynamisch halten. Oder durch ausmessen genau an deine Anforderung anpassen. Wäre ne überlegung wert. VG, /th.
Pascal O. schrieb: > Damit wir mal alle Prozessoren durchgegangen sind. Der 8051 fehlt noch. Da hätten wir z.B. den Silabs C8051F330: - 25MHz - 20 Pin (DIP oder QFN) - 16 Analogeingänge 10 Bit. Damit die Rechenleistung für alle Deine float-Berechnungen reicht, kann man ihn noch runtertakten. Sonst langweilt er sich bei 25MHz ja nur. Peter
Random ... schrieb: > Vorteil einer ARM Architektur ist, dass du 32Bit Genauigkeit mit 1 Takt > abhandeln kannst. Nicht wirklich ideal für den Anfänger. Bis er die diversen Handbücher durch hat... Sind mindestens 4 beim STM32: Core, Allgemein, Modell, Errata.
Vielen Dank an euch alle für die Hilfe! In der Firma wo ich bin wurden früher schon MSP430 von Texas Instruments verwendet und daher die Entwiklungstools schon vorhanden. Ich sollte aber nach Alternativen schauen, die evtl. mehr bieten. Daher wäre es wohl von Vorteil einen MSP430 zu verwenden. Der hier müsste doch auch geeignet sein, was sagt ihr dazu? Was ich da nicht verstehe sind die Angaben zu der Kanalzahl des ADC. 12 externe und 4 interne Kanäle, was bedeutet das denn? http://focus.ti.com/docs/prod/folders/print/msp430f5418.html
Witali G. schrieb: > Der hier müsste doch auch geeignet sein, was sagt ihr dazu? Was ich da > nicht verstehe sind die Angaben zu der Kanalzahl des ADC. 12 externe und > 4 interne Kanäle, was bedeutet das denn? Die 12 externen sind diejenigen, die dich interessieren. Interne Kanäle messen beispielsweise Versorgungsspannung, Offsetspannung, Temperatur. Ja, der passt. Und wenn ihr sowieso schon MP430er einsetzt und auch das 80er Gehäuse nicht dagegen spricht, dann bleibt doch dabei. Besser sind die anderen dafür auch nicht, allenfalls kleiner und evtl. billiger. Aber der Preis spielt nur bei grossen Stückzahlen eine Rolle, darunter dominiert der Entwicklungsaufwand.
Es gibt von TI auch noch die 32-bit Familie PICCOLO. Die kann ziemlich schnell rechnen. MAC - (multiply and accumulate) in einem Zyklus. Typischerweise fuer Filteralgorithmen. Ansonsten sind die 12-bit ADCs sehr genau 11.5 ENOB (echte Bits). -> http://www.ti.com/corp/docs/landing/f280xx-piccolo/index.htm
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.