Hallo Forum, ich bin auf der Suche nach einem geeigneten Mikrocontroller bzw. einem möglichst kompletten Eval-Board für mein Projekt. Ich habe schon einige Zeit damit verbracht, das Web zu durchforsten und schon einige Ideen, was geeignet sein könnte - und würde gerne eure Meinung dazu einholen. Zum Aufbau: Der Controller soll am Ende einen PID-Regler implementieren, der die Position eines Motors regelt (Motor-Treiber ist extern schon vorhanden) und mit einigen weiteren Sensoren und Schaltern verbunden sein. Zusätzlich sollen die Sensordaten über die serielle Schnitstelle an einen PC gesendet werden und - umgekehrt - soll der PC über die serielle Schnistelle verschiedene Kennfelder an den Controller übergeben können. Kurz gefasst sind Anforderungen: - 4 Analoge Ausgänge, möglichst 12-bit (d.h. evtl über I2C/SPI und externen Baustein?) - 2 Analoge Eingängen, möglichst ebenfalls 12 bit - 3 digitale Eingänge, 3 digitale Ausgänge - serielle Schnittstelle - Genug RAM, um die Stützstellen mehrer Kennfelder zu speichern - Genug Rechenleistung, um die Kennfelder zu interpolieren (linear genügt erstmal) und den Regler mit mindestens 1 kHz zu berechnen Momentan realisiere ich das ganze auf einem normalen PC, der über ein Linux mit RTAI-Realtime-Patch verfügt und mit einer USB-DAQ-Karte verbunden ist. Dort läuft dann direkt der Code, der aus meinem Matlab-Modell heraus erzeugt wurde (beinhaltet eine State Machine, Ein/Ausgabe-Funktionen, ein paar Filter und den Regler selbst). Für erste Experimente war das auch eine ganz gute Lösung, allerdings ist der Aufbau recht fragil und über USB kann man auch kein vernünftiges Realtime-Verhalten erzielen. Deshalb also mein Wunsch, möglichst das komplette Matlab-Modell auf einen Microcontroller zu übertragen. Ich habe mir bislang vor allem die verschiedenen ARM-Typen angeschaut und auch schon einige interessante Demo-Boards gefunden, die eventuell für diese Aufgabe in Frage kommen könnten, z.B. etwas in Richtung des "Embest LPCEB2000" mit einem NXP LCP23xx/24xx. Auf CAN und Ethernet könnte ich jedoch verzichten, wichtiger wären einigermaßen genaue D/A und A/D Wandler. Außerdem bin ich mir sehr unsicher, wie viel RAM mein Code wohl brauchen wird. Welche Ansätze gibt es, das abzuschätzen? Gibt es eine Möglichkeit, das Matlab-Modell "mit einem Click" auf den Controller zu übertragen? :)
Ich würde mal nach Boards mit ATXMega suchen. Alle A1 Versionen haben 4 D/A Ausgänge und reichlich A/D, alle in 12Bit.
Hi Flo, vielleicht findest ja auch Gefallen an meinem XMega-Board: Beitrag "ATxmega-Experimentierplatine in Gold/Schwarz ab 12.04.10 eventuell Bausatz" Als Alternative vielleicht das XPLAIN aber ich weiss nicht ob da alle Pins, die Du brauchst, durch Stiftleisten zugaenglich sind. Gruss, Michael
Danke, der ATXMega sieht wirklich interessant aus. Ob er von Speicher und Geschwindigkeit her passt werde ich wahrscheinlich erst herausfinden, wenn ich das ganze mal getestet habe...
Flo wenn das nich fuer Deine Anwendung reicht wirst in der AVR-Familie auch nicht fuendig, das markiert das Ende der Fahnenstange. Da wirst Du dann auf was groesseres ausweichen muessen. Aber ich behaupte jetzt einfach mal dass es wahrscheinlich nicht der Fall ist ;)
Es gibt eine AppNote mit der implementierung eines PID im AVR, google mal danach, fertigen Code gibts auch! 12bit ADC müsste es geben und 12bit DAC über PWM!
vielleicht sind auch die DSPs von Microchip etwas für dich: http://www.microchip.com/ParamChartSearch/chart.aspx?mid=14&lang=en&branchID=8154 (tipp: oben links gibt's "Parametric Search")
> Gibt es eine Möglichkeit, das Matlab-Modell "mit einem Click" auf > den Controller zu übertragen? http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538347
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.