Hallo zusammen, ich bin momentan dabei mein Abschlussprojekt für die staatlich geprüfte Techniker Weiterbildung zu entwerfen. Für mein Projekt möchte ich zwei Sensoren auslesen, die Daten der Sensoren verarbeiten und anhand dieser Daten einen Schrittmotor ansteuern. Um das ganze noch etwas umfangreicher und schöner zu gestalten habe ich mir überlegt eine kleine Weboberfläche zu basteln, die quasi in Echtzeit meine Sensordaten ect. graphisch visualisiert. Bevor ich jetzt anfange direkt eine Platine selber zu layouten würde ich mir gerne ein Development Kit zulegen um das ganze schon einmal ein wenig zu testen. Mit uC Programmierung kenne ich mich ganz gut aus, Geschichten wie Netzwerkinterface und Weboberflächenprogrammierung sind völliges Neuland für mich. Wer da vllt. einige gute Literaturtipps hat. Immer her damit. Bisher bin ich bei Microchip fündig geworden. Die bieten ein PIC32 Development Board an, welches ein integriertes Netzwerkinterface hat. Meine Frage nun: Hat jemand schon einmal etwas ähnliches gebaut? Kennt ihr andere Hersteller, die Development Boards anbieten, die meinen Verwendungszwecken entsprechen? Ich brauche auf jeden Fall einen Controller mit analogen und digitalen IOs sowie einem integrierten Netzwerkinterface. 32-Bit Auflösung wären auch ganz nett. :-) Danke für eure Hilfe. Lieben Gruß
:
Bearbeitet durch User
Ti M. schrieb: > Für mein Projekt möchte ich zwei Sensoren auslesen, die Daten der > Sensoren verarbeiten und anhand dieser Daten einen Schrittmotor > ansteuern. Um das ganze noch etwas umfangreicher und schöner zu > gestalten habe ich mir überlegt eine kleine Weboberfläche zu basteln, > die quasi in Echtzeit meine Sensordaten ect. graphisch visualisiert. Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... > Bisher bin ich bei Microchip fündig geworden. Die bieten ein PIC32 > Development Board an, welches ein integriertes Netzwerkinterface hat. > > Meine Frage nun: Hat jemand schon einmal etwas ähnliches gebaut? Kennt > ihr andere Hersteller, die Development Boards anbieten, die meinen > Verwendungszwecken entsprechen? Bei ST gibt es die Nucleo-Boards. Da ist dann ein ARM Cortex drauf. Z.B. NUCLEO-F446ZE, kostet ca. 24,- Euro. ST-Link fürs Flashen und Debuggen onBoard. IDEs kostenlos. Oder deutlich leistungsstärker: NUCLEO-F767ZI. Kostet dann 28,- Euro. Ist aber ein bisschen komplexer. Die ARMs sind insofern anzuraten, als dass die Verbreitung in Industrie sowie Hobby deutlich größer ist. > Ich brauche auf jeden Fall einen Controller mit analogen und digitalen > IOs sowie einem integrierten Netzwerkinterface. 32-Bit Auflösung wären > auch ganz nett. :-) 32-Bit Auflösung wofür?
STMler schrieb: > Ti M. schrieb: >> Für mein Projekt möchte ich zwei Sensoren auslesen, die Daten der >> Sensoren verarbeiten und anhand dieser Daten einen Schrittmotor >> ansteuern. Um das ganze noch etwas umfangreicher und schöner zu >> gestalten habe ich mir überlegt eine kleine Weboberfläche zu basteln, >> die quasi in Echtzeit meine Sensordaten ect. graphisch visualisiert. > > > Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... > > >> Bisher bin ich bei Microchip fündig geworden. Die bieten ein PIC32 >> Development Board an, welches ein integriertes Netzwerkinterface hat. >> >> Meine Frage nun: Hat jemand schon einmal etwas ähnliches gebaut? Kennt >> ihr andere Hersteller, die Development Boards anbieten, die meinen >> Verwendungszwecken entsprechen? > > > Bei ST gibt es die Nucleo-Boards. Da ist dann ein ARM Cortex drauf. > Z.B. NUCLEO-F446ZE, kostet ca. 24,- Euro. ST-Link fürs Flashen und > Debuggen onBoard. IDEs kostenlos. > Oder deutlich leistungsstärker: NUCLEO-F767ZI. Kostet dann 28,- Euro. > Ist aber ein bisschen komplexer. > Die ARMs sind insofern anzuraten, als dass die Verbreitung in Industrie > sowie Hobby deutlich größer ist. > >> Ich brauche auf jeden Fall einen Controller mit analogen und digitalen >> IOs sowie einem integrierten Netzwerkinterface. 32-Bit Auflösung wären >> auch ganz nett. :-) > > > 32-Bit Auflösung wofür? Soll auf jeden Fall Echtzeitfähig sein. Das klingt doch schon einmal gut das werde ich mir mal ansehen. 32-Bit Auflösung, weil meine beiden Sensoren einen Spannungsbereich von 10V haben. Bei minimalen Änderungen soll aber schon eine Reaktion meines Motors erfolgen. Ich kann hier nicht zu sehr ins Detail gehen, da ich mein Abschlussprojekt für meine Firma entwickel. 16-Bit würden es vielleicht auch noch tun. Aber son 32 Bit controller kostet ja auch nicht mehr die Welt von daher. Bei 8-Bit wären die Sprünge definitiv zu groß.
STMler schrieb: > Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... Echtzeit auch nicht.
Schau mal auf die Olimex Seite die bieten viele Boards mit ETH an, alle möglichen Varianten. Vermutlich wirst du als TCP/IP Stack den LWIP nehmen, ich würde dir zusätzlich ein OS zB FreeRTOS, ChibiOS, .. empfehlen. für Webseiten empfehle ich dir viel RAM zu nehmen und auch viel Flash.
erbse schrieb: > STMler schrieb: >> Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... > > Echtzeit auch nicht. Denke wir brauchen da jetzt keine Grundsatzdiskussion drüber anfangen. Wird wohl jeder Wissen, was damit gemeint ist ;-)
Die sind doch viel zu überdemensioniert. Ich würde auch nen ARM nehmen um Echtzeit Daten anzuzeigen und Graphisch auszuwerten ist schon etwas Leistung notwendig, wenn nebenbei noch die Steuerung weiterlaufen soll, würde auch was mit einem Cortex M3 entfehlen. z.b. https://www.olimex.com/Products/ARM/ST/STM32-P103/ + https://www.olimex.com/Products/Modules/Ethernet/MOD-ENC28J60/ oder nen esp-8266 Bei dem DEV-Bord ist dann auch gleich nen SD slot mit bei da kannst dann die Daten daraufschaufeln und die Weboberfläche, und der µC hat dann gleich noch nen Boot loder da sparst dir den JTAG zum Proggen.
K. J. schrieb: > Die sind doch viel zu überdemensioniert. > > Ich würde auch nen ARM nehmen um Echtzeit Daten anzuzeigen und Graphisch > auszuwerten ist schon etwas Leistung notwendig, wenn nebenbei noch die > Steuerung weiterlaufen soll, würde auch was mit einem Cortex M3 > entfehlen. > > z.b. > > https://www.olimex.com/Products/ARM/ST/STM32-P103/ > + > https://www.olimex.com/Products/Modules/Ethernet/MOD-ENC28J60/ > > oder nen esp-8266 > > Bei dem DEV-Bord ist dann auch gleich nen SD slot mit bei da kannst dann > die Daten daraufschaufeln und die Weboberfläche, und der µC hat dann > gleich noch nen Boot loder da sparst dir den JTAG zum Proggen. Klingt schonmal sehr interessant. Die Steuerung soll auf jeden Fall nebenbei weiterlaufen. Das Development Board soll auch nur dazu dienen, erstmal die Software zu entwickeln und zu schauen, ob es vom Konzept her so passt. Funktioniert das alles, möchte ich das das ganze dann auf ein eigenes Layout bringen.
K. J. schrieb: > Die sind doch viel zu überdemensioniert. > > Ich würde auch nen ARM nehmen um Echtzeit Daten anzuzeigen und Graphisch > auszuwerten ist schon etwas Leistung notwendig, wenn nebenbei noch die > Steuerung weiterlaufen soll, würde auch was mit einem Cortex M3 > entfehlen. > > z.b. > > https://www.olimex.com/Products/ARM/ST/STM32-P103/ > + > https://www.olimex.com/Products/Modules/Ethernet/M... > > oder nen esp-8266 > > Bei dem DEV-Bord ist dann auch gleich nen SD slot mit bei da kannst dann > die Daten daraufschaufeln und die Weboberfläche. Also vom STM32F103 mit externem Ethernetcontroller würde ich ganz klar abraten. Kostet ja nicht weniger und ist deutlich leistungsschwächer. Von den anderen Nachteilen ganz zu schweigen. Wenn Du viel Flash-Speicher für die GUI brauchst, dann kannst Du ganz simpel einen (billigen) Quad-SPI-Flash an die grossen (die auf den genannten Boards können das) STMs anklemmen und dann sogar Memory-Mapped ansprechen, als wäre es interner Flash. Je nach Frequenz-Einstellung hast Du dann Waitstates mehr, aber in der Software brauchst Du keine Klimmzüge zu machen wie bei einer SD-Karte.
Ok hab nochmal geschaut für nen 10er mehr mit Ethernet, ist dann günstierer als das extra zu kaufen https://www.olimex.com/Products/ARM/ST/STM32-P107/ Sonst selber bei Olimex mal durchklicken kann die Bords entfehlen und die Doku ist sehr gut zudem sind die recht weit verbreitet so das man an Infos recht schnell rankommt.
STMler schrieb: > Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... Echte "Echtzeit" gibt es nicht. Es gibt nur Mindestanforderungen an die maximale Reaktionszeiten. Vergiss das Schwarz-Weiss-Denken
STMler schrieb: > K. J. schrieb: >> Die sind doch viel zu überdemensioniert. >> >> Ich würde auch nen ARM nehmen um Echtzeit Daten anzuzeigen und Graphisch >> auszuwerten ist schon etwas Leistung notwendig, wenn nebenbei noch die >> Steuerung weiterlaufen soll, würde auch was mit einem Cortex M3 >> entfehlen. >> >> z.b. >> >> https://www.olimex.com/Products/ARM/ST/STM32-P103/ >> + >> https://www.olimex.com/Products/Modules/Ethernet/M... >> >> oder nen esp-8266 >> >> Bei dem DEV-Bord ist dann auch gleich nen SD slot mit bei da kannst dann >> die Daten daraufschaufeln und die Weboberfläche. > > > Also vom STM32F103 mit externem Ethernetcontroller würde ich ganz klar > abraten. Kostet ja nicht weniger und ist deutlich leistungsschwächer. > Von den anderen Nachteilen ganz zu schweigen. > > Wenn Du viel Flash-Speicher für die GUI brauchst, dann kannst Du ganz > simpel einen (billigen) Quad-SPI-Flash an die grossen (die auf den > genannten Boards können das) STMs anklemmen und dann sogar Memory-Mapped > ansprechen, als wäre es interner Flash. Je nach Frequenz-Einstellung > hast Du dann Waitstates mehr, aber in der Software brauchst Du keine > Klimmzüge zu machen wie bei einer SD-Karte. Der Aussage mit dem externen Ethernet Controller stimme ich voll und ganz zu. Ich möchte nachher möglichst wenig externe Bauteile auf meinem Board haben. Da müssen sowieso noch 2 Messverstärker und ein Step Direction Treiber + H Bridge drauf mit entsprechen Transistoren und Kühlkörpern. Da will ich mir nicht noch die Arbeit mit einem externen Ethernet Controller machen zumal es mittlerweile ja eine ganze Menge uC mit integriertem gibt. Ich danke euch allen aber auf jeden Fall schonmal für die Tipps. Ist einiges dabei was echt interessant aussieht. Habe auf jeden Fall für heute genug zum einlesen :-)
W.A. schrieb: > STMler schrieb: >> Ja was denn nun: Echtzeit oder nicht? "Quasi" gibt es nicht... > > Echte "Echtzeit" gibt es nicht. Es gibt nur Mindestanforderungen an die > maximale Reaktionszeiten. > > Vergiss das Schwarz-Weiss-Denken Ich glaube jedem hier ist bewusst, dass es keine wirkliche Echtzeitsteuerung gibt, da selbst die schnellste Steuerung immer noch eine Verzögerung drin hat. Trotzdem weiß denke ich jeder, was mit Echtzeit gemeint ist ;-) Und es ist ein gängiger Begriff. Falls es dich beruhigt nenne ich es eben Microcontroller mit kleinstmöglicher Reaktionszeit. Besser?
K. J. schrieb: > Ok hab nochmal geschaut für nen 10er mehr mit Ethernet, ist dann > günstierer als das extra zu kaufen > > https://www.olimex.com/Products/ARM/ST/STM32-P107/ Auch hier wieder ein ST32F1er Controller. Der M7 kann dreimal so hoch takten, hat eine bessere interne Struktur, erheblich mehr Speicher (8mal soviel RAM!) und auch andere Funktionen, wieso also mehr ausgeben für weniger? > Sonst selber bei Olimex mal durchklicken kann die Bords entfehlen und > die Doku ist sehr gut zudem sind die recht weit verbreitet so das man an > Infos recht schnell rankommt. Hmmm, was ausser einem Schaltplan und den ST-Dokus braucht man denn noch?
Ti M. schrieb: > 32-Bit Auflösung, weil meine beiden Sensoren einen Spannungsbereich von > 10V haben. Du willst also zwei analoge Spannungen mit jeweils einem ADC mit 32 Bit abtasten? Extrem praxisfern. awzseddc
awzseddc schrieb: > Ti M. schrieb: >> 32-Bit Auflösung, weil meine beiden Sensoren einen Spannungsbereich von >> 10V haben. > > Du willst also zwei analoge Spannungen mit jeweils einem ADC mit 32 Bit > abtasten? > > Extrem praxisfern. > > awzseddc Ich sehe das Problem nicht. Zwei Spannung, jeweils von einem ADC abgetastet und Softwareseitig bilde ich daraus eine Differenz. Anhand dieser Differenz wird mein Motor geregelt. Was wäre denn besser oder praxisnäher?
Ti M. schrieb: > Ich sehe das Problem nicht. Zwei Spannung, jeweils von einem ADC > abgetastet und Softwareseitig bilde ich daraus eine Differenz. Anhand > dieser Differenz wird mein Motor geregelt. Was wäre denn besser oder > praxisnäher? Das ist schon OK, aber 32 Bit sind extrem praxisfern. awzseddc
awzseddc schrieb: > Ti M. schrieb: >> Ich sehe das Problem nicht. Zwei Spannung, jeweils von einem ADC >> abgetastet und Softwareseitig bilde ich daraus eine Differenz. Anhand >> dieser Differenz wird mein Motor geregelt. Was wäre denn besser oder >> praxisnäher? > > Das ist schon OK, aber 32 Bit sind extrem praxisfern. > > awzseddc Ich habe ja weiter oben erwähnt, dass 16 Bit auch reichen würden. 8-Bit wären definitiv zu wenig. Und mal ehrlich, mag vielleicht nicht nötig sein aber ein 32-Bit Controller kostet nun nicht die Welt. Wieso dann nicht mehr nehmen als man braucht :-P Gibt auch genug Leute die ein 500PS Auto fahren. Brauchen tut man das auch nicht :-)
:
Bearbeitet durch User
Ti M. schrieb: > Wieso dann > nicht mehr nehmen als man braucht :-P Weil ein 32-Bit-ADC Mehraufwand bedeutet, den die Firma am Ende bezahlen muss, wenn das Ding in Serie geht. Das ist verschenktes Geld.
STK500-Besitzer schrieb: > Ti M. schrieb: >> Wieso dann >> nicht mehr nehmen als man braucht :-P > > Weil ein 32-Bit-ADC Mehraufwand bedeutet, den die Firma am Ende bezahlen > muss, wenn das Ding in Serie geht. Das ist verschenktes Geld. Wird eine einzelne Anfertigung bleiben. Von daher ist der finanzielle Mehraufwand doch recht überschaubar. Hab es aber gerade nochmal durchgerechnet. Bei 16 Bit ist man schon bei einer Auflösung im 100uV Bereich. Ist eig. mehr als ausreichend, also ganz unrecht hast du nicht :-P
Ti M. schrieb: > Hab es aber gerade nochmal durchgerechnet. Bei 16 Bit ist man schon bei > einer Auflösung im 100uV Bereich. Ist eig. mehr als ausreichend, also > ganz unrecht hast du nicht :-P Hast du schon mal eine Schaltung mit einem 32Bit-ADC gebaut? Das Drumherum ist auch nicht ohne...
Würfelst du hier etwas? Meinst du - eine int32_t-Operation pro Takt oder - 2.33nV analoge Auflösung ??? Da du eh von 10V auf den uC runter musst, kannst du auch die Subtraktion im Vorfeld per OP durchführen. Dann brauchst du nur noch einen ADC. 16-Bit Auflösung ist auch nicht ohne, wenn es denn auch 16-Bit genau sein soll.
Ti M. schrieb: > awzseddc schrieb: > Ti M. schrieb: > Ich sehe das Problem nicht. Zwei Spannung, jeweils von einem ADC > abgetastet und Softwareseitig bilde ich daraus eine Differenz. Anhand > dieser Differenz wird mein Motor geregelt. Was wäre denn besser oder > praxisnäher? > > Das ist schon OK, aber 32 Bit sind extrem praxisfern. > awzseddc > > Ich habe ja weiter oben erwähnt, dass 16 Bit auch reichen würden. 8-Bit > wären definitiv zu wenig. Und mal ehrlich, mag vielleicht nicht nötig > sein aber ein 32-Bit Controller kostet nun nicht die Welt. Wieso dann > nicht mehr nehmen als man braucht :-P > Gibt auch genug Leute die ein 500PS Auto fahren. Brauchen tut man das > auch nicht :-) Du scheinst Datenwortbreite des Mikrocontrollers (sehr stark vereinfacht die Geschwindigkeit) und die Datenwortbreite des ADC (sehr stark vereinfacht die Auflösung) durcheinander zu bringen. Beide sind unabhängig von einander. - es gibt keine MCU mit integriertem 32 Bit ADC - externer wie AD7177-2 kostet 15 € - 32 Bit Auflösung wären theoretisch 2,5 nV, real sind es aber eher 20 - 24 Bit - selbst das wären noch 10 uV - deine Schrittmotoren erzeugen so viele Störungen das wahrscheinlich alles mit mehr als 12 Bit verschwendet wären
Ti M. schrieb: > Soll auf jeden Fall Echtzeitfähig sein > 16-Bit würden es vielleicht auch noch tun Mit durchdachter Programmierung lässt sich auch auf einem 8-Bit 8051 harte Echtzeit erreichen. Zudem gibt es diese mit höher auflösenden ADC als ARM z.B. http://www.silabs.com/products/mcu/8-bit/efm8-laser-bee/Pages/efm8-laser-bee-starter-kit.aspx Einfacher ist es natürlich mit mehreren Kernen die separat programmiert werden und über gemeinsames RAM Daten austauschen. Ein Ansatz ist hier ein Cortex M4 mit mehreren Cortex M0 z.B. LPC4370: dann macht ein M0 den ADC, ein anderer Schnittstellen, und der M4 die Motorsteuerung. Der integrierte 12-Bit ADC mit 80 MSPS sollte durch Oversampling für Deine Anwendung reichen. http://www.mikrocontroller.net/part/LPC4370 http://www.embeddedartists.com/products/lpcxpresso/lpclink2.php https://community.nxp.com/thread/389142
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.