PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : µC mit für Regelung möglichst schnell



Stoneman
24.02.2005, 14:03
Hallo,

ich suche einen µC der mir eine Ausgangsspannung regelt. Und zwar soll das ganze so gehen:
Ich habe einen 16bit parallel AD-Wandler, der mir ein Signal liefert, was den Istwert liefert, und einen 16bit parallel DA-Wandler, der die Ausgangsspannung liefern soll. Das ganze soll zweifach geschehen, also zwei Kanäle.

Ich suche nun einen µC, der das möglichst schnell machen kann, der µC soll am besten ISP sein, programmierbar am besten in C oder so etwas.#


MfG
Stoneman

stegr
24.02.2005, 14:18
soweit eigentlich kein Problem...
Du brauchst, sofern du nicht multiplext, dann 64 I/O's. Das sind schon relativ viele, geht aber noch problemlos (sofern du TQFP löten kannst).
Ansonsten solltest du noch kurz sagen, wie schnell für dich "möglichst schnell" ist.
Wenn du einen 16-Bit oder 32-Bit uC nimmst, dann tust du dich prinzipiell einfacher bei der Verarbeitung der Daten, wie wenn du nen 8-BItter nimmst, aber wenn es aufs Geld ankommt, ist ein 8-Bitter evtl. sinnvoller.
Aber das ganze ist hauptsächlich eine Frage des Preises... (und so wären ein paar mehr Details geschickt, damit man dir eine sinnvolle Empfehlung geben kann), z.B. Haben die AD bzw. DA-Wandler ne CS-Leitung? Latchen die intern? usw...

MfG
Stefan

Stoneman
24.02.2005, 17:29
Also, preislich gesehen, günstig sollte es immer sein....
Also der ADC ist ein MAX1162, wobei ich gerade merke, das das ein serieller ist, und der DAC ist ein DAC712 von TI, ach ja schön wäre auch ein anschluss für den PC. Schnell heißt, das der das ganze schon so um 1ms einregeln sollte, d.h. innerhalb von 1ms soll der Wert da sein.

coldfirev3
24.02.2005, 20:50
Willst du gut machen, nimmst du µC der genauso heißt wie mein Nick. :D :D :D

Also auf deutsch Motorola Coldfire, gehandelt unter dem Typ MCF54xx / 55xx / 56xx

Die Teile gibt es hochintegriert und im 3 Stelligen Mips Bereich :shock: :evil:

25.02.2005, 07:21
Du nix gut.
Motorola haben verkaufen Rotz, weil nur machen Miese.
Jetzt Rotz heissen Freescale.
Also auf deutsch Freescale Coldfire.

Und MIPS Angaben sein nix gut, da wertlose Aussage.
(8bit-)8051 auch geben mit 3 stellig MIPS.

stegr
25.02.2005, 10:54
Ich hätte es jetzt etwas schöner ausgedrückt als unser Gast, aber vom Prinzip her trifft das genau... ;)

Geschwindigkeitsmäßig wirst du aber keine solche Monstermaschine brauchen, sondern dir reicht da z.B. irgendein PIC oder AVR mit genügend Port-Pins.

Der DAC hat ein Bus-Interface, bedeutet, dass du erst einmal deine Daten anlegst und dann eine Leitung strobest, so dass die Daten dann übernommen werden. Dafür brauchst du die 16 Pins für den Parallel-In und je DAC eine weitere Leitung zum stroben. Macht bei dir 18 Pins.
Dann brauchst du noch ein paar Pins für den ADC, der hat SPI, also brauchste 3 Pins für...
Dann noch zwei für den UART (serielle Schnittstelle) und damit wärste bei 23 Port-Pins. Das bekommen eigentlich alle kleineren und größeren uC hin, egal welchen du nimmst.

Von der Rechenleistung hängt es davon ab, wie kompliziert dein Regelalgorithmus ist. Vielleicht sagst du einfach mal, was für einen du verwendest, aber für normale PID-Regler reichen rund 2-4 MIPS aus. Wenn du noch etwas mehr Zeit haben willst, dann nimm einen mit 5+ MIPS...
Ich von meiner Position empfehle da die Microchip PICs, in deinem Fall ein 18F452 oder ähnliches, der hat 10 MIPS und sollte dafür locker reichen.

Einzige Problem ist der C-Compiler, der ist nämlich nicht frei.
Von dem Gesichtspunkt aus wäre es vielleicht sinvoller einen AVR zu verwenden, da es für den nen GCC-Port gibt (der mehr oder weniger gut funktioniert). Oder aber du beisst in den sauern Apfel und kaufst dir für 125 Euro den CCS-C-Compiler, dann hast du auch was, mit dem du richtig schaffen kannst.

Wenn du sowieso in C programmierst, ist ein 16- oder 32-Bitter nicht nötig, da die ganzen Operationen sowieso vom Compiler erledigt werden. Und Geschwindigkeitsmäßig reicht ein 8-Bitter da völlig aus...

MfG
Stefan

Stoneman
25.02.2005, 11:09
@Stefan, danke ich hatte auch schon zu einem AVR tendiert, nur wollte ich mal hören, was es sonst noch gibt. Ich werds mal ausprobieren

coldfirev3
25.02.2005, 14:44
Nix verkauft sondern ausgegliedert........8 Bit Mips und 32 Bit Mips macht auch nen Unterschied.......abgesehen von der besch... Architektur eines 8051.

Aber es ist Geschmackssache.

26.02.2005, 15:37
Nix verkauft sondern ausgegliedert........

LOL!!!!
Wozu dient denn eine Ausgliederung? Man macht die ja nicht, weil es Spass macht. Sie dient der Vorbereitung des Verkaufs, siehe z.B. Infineon.
Und wie bei Infineon auch ist der Freescale-Teil ein Geldverbrenner gewesen, deshalb wollte Motorola den ja so schnell loswerden...
Und am 2.12.2004 hat Motorola die letzten Aktien den armen Motorola-Aktionären aufs Auge gedrückt und hat mit dem Laden nix mehr am Hut...




8 Bit Mips und 32 Bit Mips macht auch nen Unterschied.......abgesehen von der besch... Architektur eines 8051.


Stimmt, das macht einen Unterschied. Sogar in der gleichen "Bitklasse".
Wie der Name schon sagt, hängt es ja von den Instruktionen ab, ob dieselbe Aufgabe viele Instruktionen bei einem nicht durchdachten Befehlssatz braucht oder eben wenige.

Was die Architektur des 8051 angeht, so ist die gar nicht so beschissen, wie viele denken. Für embedded-Aufgaben ist sie in vielerlei Hinsicht ideal.
Gerade bei Bitmanipulationen auf Ports ist sie unschlagbar: Z.B. "XRL P1,#0A%h" ist bei einem der ach so gelobten AVRs nicht unter vier Instruktionen machbar. Bei den LPCs von Philips sieht das nicht anders aus.
Dann die Tatsache, dass der AVR keine Interruptlevel kennt. Bei komplexeren Projekten muss man das mit Software kompensieren, was ohne Ende Performance kostet.
Beim 8051 kein Thema.
Das ist auch der Grund dafür, dass es mittlerweile ca. 650 8051er-Derivate gibt.

Zum Thema PIC kann man auch viel Negatives sagen. Das Interrupt-System, das Banking, und für Hobbyisten, wie schon gesagt das Fehlen eines kostenlosen Compilers empfehlen sich nicht gerade.
Eine Ausnahme scheint die DSPIC-Familie zu sein, ich kenne sie nicht genauer, aber es gibt den GNU-Compiler dafür, es sind 16Bitter und Microchip gibt auch Samples ab.

Wenn man wenig Erfahrung hat, empfehle ich die AVRs. In der Summe der Kriterien guter und kostenloser Compiler, günstige Erhältlichkeit, Support in Hobbyistenforen sowie Gehäuseformen ist der AVR eine gute Sache.
Für den 8051 gibt es sicherlich auch jede Menge guter Internetseiten und einen kostenlosen Compiler, allerdings sind die interessanten Derivate (100Mips, MAC-Einheiten, superschnelle A/D-Wandler) für Hobbyisten nur teuer in Einzelstückzahlen erhältlich und zudem, da sie nur professionell in Grossserien eingesetzt werden, in sehr ungünstigen SMD-Gehäuseformen erhältlich.

stegr
26.02.2005, 16:27
Das hier soll kein "dieser Controller ist sch***, meiner ist besser"-Thread werden.
Stoneman hat gefragt, welcher Controller für seine Aufgabe geeignet sei. Diese Frage wurde hier nach bestem Wissen und Gewissen beantwortet, und zwar neutral ohne eigene Vorlieben - und es wäre schön, wenn du dich auch daran halten würdest.

Es bringt niemanden etwas, wenn man gewisse Controller immer nur versucht schlecht zu machen, sondern man sollte bei einer allgemeinen Frage auch eine allgemeine Antwort geben, die nicht nur die Nachteile des einen Controllers beinhaltet, sondern auch die Vorteile dessen - und andersrum genauso.

So ziemlich alle Controller haben ihre Vor- und Nachteile, und wenn jemand eine Empfehlung haben will, dann sollte man ihm nicht nur sagen: Der eine ist ungeeignet, sondern man sollte auch immer begründen warum - und entsprechende Alternativen aufzeigen. Dies fehlt mir hier.

MfG
Stefan

coldfirev3
26.02.2005, 18:26
@stegr
Ich denke man sollte abwägen............

natürlich ist man mental versucht, seinen Liebling zu rühmen, ist auch menschlich.
Ich habe schon mit zig verschiedenen Controllern gearbeitet und jeder hat was für und gegen sich.
Für ne Waschmaschine ist ein 8051 jederzeit gut, Bosch hat auch alten Sch... in neuen Steuerungen und es funktioniert.
Nur bei der Grundsatzfrage "welchen nehm ich denn jetzt" finde ich es fair, das für und wider aufzuzählen, letztendlich kommen Dinge zur Sprache die offenlegen ob der entsprechende µC für den Zweck taugt.
Das grösste Problem ist hierbei, daß nicht die besten sondern die am besten verbreiteten Controller Einzug halten.
Obgleich ich schon einiges mit einem 8051 in verschiedenen Ausführungen gemacht habe, muß einem schlecht werden wenn man die zusammengebastelte Register-Map betrachtet.
Genauso muß der PIC sich gefallen lassen nur für rudimentäre Applikationen gebaut zu sein (Signalumformung, Türgong, externe Fehlerbehebung) aber dafür ist er praktisch.
Der AVR wuchert wie ein Schimmelpilz in der Szene, nicht zuletzt wegen der breitbandigen Unterstützung, deswegen ist es beileibe nicht der ultimative Controller.
Man könnte jetzt noch zig Typen aufzählen und sicherlich gibt es einige die völlig überflüssig sind.............bleibt die Frage : was empfehlen wir Stoneman ?

26.02.2005, 19:36
@stegr
Für ne Waschmaschine ist ein 8051 jederzeit gut, Bosch hat auch alten Sch... in neuen Steuerungen und es funktioniert.


Da stellt sich natürlich berechtigterweise die Frage, wieso sich die 25-100Mipser verkaufen wie geschnitten Brot... Ne Waschmaschine braucht das jedenfalls nicht.
Zu den aktuellen Problemen bei Bosch, z.B. bei den Dieselpumpen, in denen keine 8051er sitzen, wollen wir jetzt mal nichts sagen ;)




Nur bei der Grundsatzfrage "welchen nehm ich denn jetzt" finde ich es fair, das für und wider aufzuzählen, letztendlich kommen Dinge zur Sprache die offenlegen ob der entsprechende µC für den Zweck taugt.
Das grösste Problem ist hierbei, daß nicht die besten sondern die am besten verbreiteten Controller Einzug halten.


Häh? Die am weitesten verbreiteten Controller haben doch schon Einzug gehalten, sonst wären sie nicht so verbreitet...




Obgleich ich schon einiges mit einem 8051 in verschiedenen Ausführungen gemacht habe, muß einem schlecht werden wenn man die zusammengebastelte Register-Map betrachtet.
Genauso muß der PIC sich gefallen lassen nur für rudimentäre Applikationen gebaut zu sein (Signalumformung, Türgong, externe Fehlerbehebung) aber dafür ist er praktisch.
Der AVR wuchert wie ein Schimmelpilz in der Szene, nicht zuletzt wegen der breitbandigen Unterstützung, deswegen ist es beileibe nicht der ultimative Controller.


So gesehen, muss einem bei jeder Architektur schlecht werden. Die Registermap beim AVR sieht auch nicht besser aus (unterschiedliche Addressierungsarten).
Allerdings sollte man bedenken, dass der PIC eine sehr alte Architektur hat und der 8051 auch nicht sehr viel jünger ist. Der AVR dagegen ist eine relativ neue Architektur und hat dafür zu viele Kompromisse und Haken.




Man könnte jetzt noch zig Typen aufzählen und sicherlich gibt es einige die völlig überflüssig sind.............bleibt die Frage : was empfehlen wir Stoneman ?

Um die Auswahl vernünftig eingerenzen zu können, muss Stoneman noch einige Informationen geben:
Ist das Ganze kommerziell oder nur Hobby?
Welche Stückzahlen sind geplant?
Soll das Ganze mal erweitert werden und braucht dann eventuell auch mehr Leistung?

Wenn es für das Hobby ist, empfehle ich trotz der unschönen Einschränkungen den AVR, vor allem wegen des GNU-C und der Foren-Unterstützung.
Falls professionell und auch grössere Stückzahlen in Aussicht stehen, dann tendiere ich zum 8051 in Verbindung mit dem Keil-Compiler - besseren C-Code gibt es im 8bit-Bereich wohl nicht.

coldfirev3
26.02.2005, 20:02
Da stellt sich natürlich berechtigterweise die Frage, wieso sich die 25-100Mipser verkaufen wie geschnitten Brot...
weil zuviele Leute einfach "bequem" weitermachen und nicht dazulernen wollen oder können.




Häh? Die am weitesten verbreiteten Controller haben doch schon Einzug gehalten, sonst wären sie nicht so verbreitet...
selber hä ? ich schrieb ja auch : nicht die besten, sondern..........

Stoneman
26.02.2005, 23:29
Momentan mache ich das ganze "nur" als Hobby, aber vielleicht kommt da noch mehr *g*,
Naja ich glaube für jeden ist der Controller der beste, den er sich finanziell leisten und programmieren kann. Und dazu noch den eigenen Ansprüchen gerecht wird.

Klaus_0168
27.02.2005, 01:15
Hi Stoneman,
mich würde mal interressieren, was Du regeln willst.

Als hauptberuflicher Programmierer in einem Chemieunternehmen arbeite ich in unserem PLS (Freelance 2000 von ABB) mit einem Standartzyklus von 500ms. In einem Sonderfall mussten wir mal auf 50ms tunen, weil ein mechanischer Greifer ein punktgenaues Ansteuern erforderte.
Die Auflösung der von uns verwendeten AD/DA-Wandler beträgt 12Bit.
Selbst SPS'en haben Zykluszeiten von mehr als 10ms (Siemens, HIMA).
Mit dieser Hardware haben wir einige tausend MSR- Stellen seit vielen Jahren problemlos unter Kontrolle.
Zugegeben, in unseren Regelkreisen sind immer mechanische Komponenten (Ventile, Motoren) enthalten, die den gesamten Prozess etwas träger machen.
Zykluszeiten von 1ms sind für Regelungen ziemlich heftig und machen, meiner Meinung nach, nur bei rein elektrischen Regelkreisen Sinn.

Grüße Klaus

27.02.2005, 06:24
Momentan mache ich das ganze "nur" als Hobby, aber vielleicht kommt da noch mehr *g*,
Naja ich glaube für jeden ist der Controller der beste, den er sich finanziell leisten und programmieren kann. Und dazu noch den eigenen Ansprüchen gerecht wird.

Naja, das ist aber auch der Punkt.
Wenn es für das Hobby ist, dann ist es meistens egal, ob der Controller nun 3 oder 8 Euro kostet, selbst wenn man nun ein paar braucht.
Andere Punkte spielen da eine grössere Rolle.

In Deinem Fall denke ich, dass Du ruhig den Atmel AVR nehmen kannst.
Er ist für Dich leicht zu beschaffen, es gibt mit dem Gnu-C einen prima kostenlosen Compiler und es gibt exzellente Foren dafür, z.B.
http://www.mikrocontroller.net (auf deutsch)
http://www.avrfreaks.net