Hallo an alle! Ich bin neu hier im Forum und habe im Rahmen eines Uni-Projektes einige Fragen. Wie bereits erwähnt, geht es um ein Projekt für die Uni. Es soll ein System entwickelt werden, welches - 1-2 digitale Signale einlesen soll (DI) - Ein externes Gerät mittels eines analogen Signals (0-10V, 20mA) schalten soll (AO) - Eine analogen Wert 0-5V einlesen kann (AI) - ein LCD Display ansteuern soll (3-4 Zeilen) - Messdaten auf einer SD-Karte (ö.ä -> es sind nur max. 500kB an Daten) speichert. Die Daten sollen dann per USB-Kabel wieder am PC ausgelesen werden können (Prinzip eines Wechseldatenträgers) Welchen Mikrocontroller könnt ihr mir hier empfehlen? Das Produkt soll sozusagen ein Prototyp werden, aber in Zukunft EVTL auch in Serienproduktion (max. 100Stk im Monat) gehen. Ich bin noch ziemlich am Anfang meiner Arbeit, möchte jedoch beim Auswahl der Komponenten (besonders beim Mikrocontroller) keine Fehler begehen. Arduino ist ja eine ganz nette Sache, aber für die Serienproduktion und industriellen Einsatz wohl nicht geeignet oder? Was wird stattdessen in der Industrie so verwendet? Gibt es sowas ähnliches wie Arduino für industrielle Anwendungen? Weiters soll die Programmierung nicht allzu komplex werden. Ich habe gut Kenntnisse in C/C++ und Grundkenntnisse in Assembler. LG
My Mikrocontroller schrieb: > Arduino ist ja eine ganz nette Sache, aber für die Serienproduktion und > industriellen Einsatz wohl nicht geeignet oder? Nein. Zu Teuer. My Mikrocontroller schrieb: > Weiters soll die Programmierung nicht allzu komplex werden. Ich habe gut > Kenntnisse in C/C++ und Grundkenntnisse in Assembler. Programmier in C, ist am weitesten verbreitet. My Mikrocontroller schrieb: > Welchen Mikrocontroller könnt ihr mir hier empfehlen? Jeder USB fähige Mikrocontroller. Den rest der Anwendungen kann eigentlich jeder Standard uC. My Mikrocontroller schrieb: > Das Produkt soll > sozusagen ein Prototyp werden, aber in Zukunft EVTL auch in > Serienproduktion (max. 100Stk im Monat) gehen Auch hier erinnert man sich an die X-Tausend Diskussionen was es denn nun alles braucht um ein Produkt auf den Markt zu bringen. Aber dazu wird hier bestimmt wieder jemand einen Kommentar abgeben, vielleicht findet sich da ja auch ein Link. ;)
My Mikrocontroller schrieb: > Ich habe gut Kenntnisse in C/C++ Das hilft dir ein wenig. Aber du brauchst für eine effiziente Programmierung eines uC die entsprechende Denkweise. Fließkommaberechnungen sollten vermieden werden. Und vergiss den Befehl delay(). Diese aktive rechenzeitvernichtung braucht man bestenfalls ganz am Anfang oder zur Fehlersuche... > und Grundkenntnisse in Assembler. In welchem Assembler?
Lothar Miller schrieb: > My Mikrocontroller schrieb: >> Ich habe gut Kenntnisse in C/C++ > Das hilft dir ein wenig. Aber du brauchst für eine effiziente > Programmierung eines uC die entsprechende Denkweise. > Fließkommaberechnungen sollten vermieden werden. Und vergiss den Befehl > delay(). Diese aktive rechenzeitvernichtung braucht man bestenfalls ganz > am Anfang oder zur Fehlersuche... > >> und Grundkenntnisse in Assembler. > In welchem Assembler? Nur in so einem "virtuellen" Assembler. Auch im Rahmen eines Uni-Projektes (http://introcs.cs.princeton.edu/xtoy/).
Als Anfaenger schafft man es nicht einen Prototypen fuer eine Serienproduktion zusammenzukloppen. Also mach mal ein Stueck.
Der Laberer schrieb: > Als Anfaenger schafft man es nicht einen Prototypen fuer eine > Serienproduktion zusammenzukloppen. Also mach mal ein Stueck. Das ist auch so der Plan. Sollte es aber dennoch einmal in Serie gehen, egal ob von mir oder von einem anderen entwicklerteam, sollten möglichst geringe Umbauarbeiten bzw. Änderungen von Komponenten erforderlich sein.
My Mikrocontroller schrieb: > - 1-2 digitale Signale einlesen soll (DI) > - Ein externes Gerät mittels eines analogen Signals (0-10V, 20mA) > schalten soll (AO) > - Eine analogen Wert 0-5V einlesen kann (AI) Das ist Alles zu ungenau. Welche Auflösung, Geschwindigkeit, ... > möchte jedoch beim Auswahl der Komponenten > (besonders beim Mikrocontroller) keine Fehler begehen. Damit machts Du bereits den größten Fehler. Ohne Bereitschaft, auch Fehler zu machen, brauchst Du garnicht erst anzufangen. > Weiters soll die Programmierung nicht allzu komplex werden. Dann mußt Du etwas Fertiges kaufen. Lothar Miller schrieb: > Fließkommaberechnungen sollten vermieden werden. Wenn man Fließkommaberechnungen braucht, dann muß man sie auch nehmen. Wenn es sein muß, auch in Interruptroutinen ;-)
My Mikrocontroller schrieb: > Welchen Mikrocontroller könnt ihr mir hier empfehlen? Den billigsten der der Aufgabe gewachsen ist.
@ My Mikrocontroller (oachkatzlschwaf) >Das ist auch so der Plan. Sollte es aber dennoch einmal in Serie gehen, >egal ob von mir oder von einem anderen entwicklerteam, sollten möglichst >geringe Umbauarbeiten bzw. Änderungen von Komponenten erforderlich sein. Dann NIMM Arduino, Launchpad & Co. Alles von der Pike auf selber machen lohnt sich nicht und kostet MASSIV Zeit und Resourcen! Deina Anforderungen sind einfach, das kann praktisch jeder uC heute. Wenn man die passenen Libs dazu hat (SD-Karte), ist der Rest recht einfach.
My Mikrocontroller schrieb: > Welchen Mikrocontroller könnt ihr mir hier empfehlen? Es tut ein ATmega8, wenn die Messdaten nicht aufwändug zwischengespeichert werden müssen. Natürlich tut es auch der im Arduino eingesetzte grössere AVR. Der ist teurer, lässt sich aber einfacher (USB, C) programmieren.
ADCler schrieb: >> Weiters soll die Programmierung nicht allzu komplex werden. > > Dann mußt Du etwas Fertiges kaufen. Was ist das für ne Aussage? Digitale & Analoge Eingänge schreiben/lesen ist nun wirklich nicht komplex. Ein LCD ansteuern kriegt man hin. Die SD Karte dürfte auch nicht das riesige Problem sein, findet man viele Beispiele. Das mit dem Daten per USB rausholen weiss ich nicht wie schwer es ist, denke ist aber machbar... und ich meine, er ist an der Uni. Ein bisschen war können tut er bestimmt auch. ;) Falk Brunner schrieb: > Dann NIMM Arduino, Launchpad & Co. Alles von der Pike auf selber machen > lohnt sich nicht und kostet MASSIV Zeit und Resourcen! > Deina Anforderungen sind einfach, das kann praktisch jeder uC heute. > Wenn man die passenen Libs dazu hat (SD-Karte), ist der Rest recht > einfach. Einerseits stimme ich dir da zu. Wenn es aber sein Ziel ist einen Prototypen zu fertigen, welchen man später einfach zu einem Produktionsfertigen Produkt umbauen kann, weiss ich nicht ob es so ein schlauer Ansatz ist. Ich meine klar, ein Prototyp wäre mit Arduino bestimmt um einiges schneller aufgebaut, allerdings kommt dann die ganze Arbeit ein zweites mal.
Wenn es ein Uni Projekt ist, dann ist vor allem eines anzustreben: Den Professor glücklich stellen. Und bei Uni Projekten denk ich da eigentlich weniger an Serienreife. Der Professor will sehen, ob Du einen Mikrocontroller auswählst, der die Kriterien erfüllt und deine Planung zu deinem Projekt passt. Gibt es eine Anwendung für dieses "Board"? Alternativ kann man statt einem fertigen Board auch selbst eines entwickeln / bauen. My Mikrocontroller schrieb: > - 1-2 digitale Signale einlesen soll (DI) > - Ein externes Gerät mittels eines analogen Signals (0-10V, 20mA) > schalten soll (AO) > - Eine analogen Wert 0-5V einlesen kann (AI) > - ein LCD Display ansteuern soll (3-4 Zeilen) > - Messdaten auf einer SD-Karte (ö.ä -> es sind nur max. 500kB an Daten) > speichert. Die Daten sollen dann per USB-Kabel wieder am PC ausgelesen > werden können (Prinzip eines Wechseldatenträgers) Kann man alles bspw. mit einem Atmega von AVR machen. Evtl.ist das noch abhängig von der Frequenz die über die digitalen Eingänge eingelesen wird. Für alles über 5V oder in manchen Fällen auch 3,3V wirst Du externe Beschaltung benötigen und musst etwas passendes suchen. Mit einem eigenen Board wäre das relativ einfach...
My Mikrocontroller schrieb: > Die Daten sollen dann per USB-Kabel wieder am PC ausgelesen > werden können (Prinzip eines Wechseldatenträgers) Richtig USB HID konform? Oder kann es auch ein selbst geschriebenes Programm zum Auslesen sein? Wenn das Erste zutrift, dann viel Spaß. Dann brauchst du einen größeren USB fähigen µC und es wird um einiges aufwändiger. Wenn nicht reicht eigentl. jeder beliebiger 8Bit µC und dazu noch ein RS232 -> USB Wandler IC.
Nimm einfach ein STM32F4 Discovery Board mit der IDE Coocox. Da kriegst du viel fürs Geld und kannst recht einfach in die Programmierung starten. C-Kenntnisse reichen für 99% der Aufgaben aus, Assembler wirst du für das Projekt wahrscheinlich nicht brauchen. Eine eigene Platine für den uC entwerfen ist auch nicht so schwierig. Liebe Grüße, Jan
Da sonst wohl einer was konkretes schreiben will werfe ich mal als Tipp zum ansehen den ATMega32U4 in die Diskussion. http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Summary.pdf Warum? Der ist auf dem Arduinos Leonardo und Micro drauf, gibt auch Clones davon, damit kann man erstmal loslegen und entweder mit der Arduino Software was schnitzen oder direkt in C auf dem Controller programmieren. Preise? Völlig uninteressant bei den Stückzahlen. Die Entwicklung wird das teuerste und da hilft es einen Controller zu benutzen über den man auch Informationen finden kann. Solange den Stückzahlen entsprechend die Hardware-kosten egal sind, bleibt man auch bei dem was man schon kennt.
Bin auch für das stm32f4 Bei Uwe (http://mikrocontroller.bplaced.net/wordpress/ ) findest du sogar libs, die dir das zusammenklicken all deiner Vorgabe ermöglichen. Selbst ohne Einarbeitung kann man das in einem Arbeitstag schaffen. Sdkarte und USB ebenfalls. Das ganze gibts für um die 20€ fertig ohne zu löten.
Gerald G. schrieb: > Bin auch für das stm32f4 Das Problem ist noch nicht beschrieben, aber die Lösung steht schon fest. Ich kann nur staunen!
ADCler schrieb: > Das Problem ist noch nicht beschrieben, aber die Lösung steht schon > fest. > Ich kann nur staunen! Indirekt. Wieso ist das Problem noch nicht beschrieben? Weil er noch nicht geschrieben hat, welche Auflösung / Geschwindigkeit sein Projekt braucht? Ich wage es mal zu behaupten, wer ein Zeitkritisches Projekt angeht hat sich bestimmt schon om Vorfeld wesentlich mehr mit Elektornik beschäftigt und würde kaum in einem Forum fragen, welcher uC sich dafür eignet. Ein normaler Mikrocontroller reicht für extrem vieles in der heutigen Zeit. Denke kaum, dass ein Uni-Student welcher sich nicht einmal sicher bei der uC Auswahl ist ein Projekt aufgetragen bekommt, in welchem extrem Zeitkritische Anwendungen ablaufen müssen.
@ Gerald G. (gerald_g) >Bin auch für das stm32f4 Warum nicht gleich QuadCore Pentium? Mein Gott, bei der Aufgabe wird sich selbst ein 8051 mit 1 MHz langweilen. >Bei Uwe (http://mikrocontroller.bplaced.net/wordpress/ ) findest du >sogar libs, die dir das zusammenklicken all deiner Vorgabe ermöglichen. >Selbst ohne Einarbeitung kann man das in einem Arbeitstag schaffen. >Sdkarte und USB ebenfalls. >Das ganze gibts für um die 20€ fertig ohne zu löten. Ok, das wäre ein Argument.
Zuerst möchte ich mich einmal bei allen für die vielen und sehr schnellen Antworten bedanken. Ich möchte bei dem Uni-Projekt nicht nur den Professor zufrieden stellen, sondern ich persönlich möchte mit dem Endergebnis zufrieden sein (Die Note ist dabei nebensächlich). Wie einige von euch bereits vermutet haben, ist die Anwendung überhaupt nicht zeitkritisch. Es geht darum von einem Gerät ein GO-Signal auszulesen und innerhalb von einer 1sec ein anderes Gerät zu starten.
My Mikrocontroller schrieb: > Ich möchte bei dem Uni-Projekt nicht nur den Professor zufrieden > stellen, sondern ich persönlich möchte mit dem Endergebnis zufrieden > sein (Die Note ist dabei nebensächlich). Respekt für die Einstellung. My Mikrocontroller schrieb: > Wie einige von euch bereits vermutet haben, ist die Anwendung überhaupt > nicht zeitkritisch. Es geht darum von einem Gerät ein GO-Signal > auszulesen und innerhalb von einer 1sec ein anderes Gerät zu starten. Dann dürfte das mit dem STM Teil wirklich am billigsten und einfachsten gehen, zumindest für den Anfang. Wenn dein Produkt irgendwann verkauft werden soll, kommen da natürlich rechtliche Probleme hinzu. Aber für einen ersten Versuch, wieso nicht.
Ich empfehle für Deine Aufgabe ebenfalls einen STM32F4xx µC. Der hat bis zu 2MB Flash schon drin, also genügend um deine 500Kb Daten + Programm speichern zu können. Damit könntest du problemlos auf die SD-Card verzichten. Auch genügend AD-Wandler und DA-Wandler und sonstige Schnittstellen. Falk sieht für diese Aufgabe natürlich immer nur "Kanonen" und "Spatzen". Wobei man mit einem STM32F4 sogar noch günstiger davon kommt wenn man kein SD-Kartenslot + Karte kaufen muss. Abgesehen vom Platzbedarf. Außerdem hat der STM32F4xx eine FPU drin, was das Rechnen mit Analogwerten (FLOAT) vereinfachen sollte. Sowie genügend RAM. Lese mal hier, Artikel: STM32 Um die andere auch zufrieden zu stellen: NXP, Freescale, Atmel usw. bieten auch µC mit Cortex-M3 Kern, es muss somit nicht unbedingt ein STM32 sein. Der Compiler ist der gleiche, geht alles mit Coocox. Auch ein PIC32 hat viel Flash und RAM und könnte das auch. Ich persönlich favorisiere den STM32 da es von dem über 370 verschiedene Ausführungen gibt - je nach Anwendungsfall von super Günstig bis Super Leistung und jede Menge Peripherie schon mit im Chip hat.
San Lue schrieb: > Dann dürfte das mit dem STM Teil wirklich am billigsten und einfachsten > gehen, zumindest für den Anfang. Wenn dein Produkt irgendwann verkauft > werden soll, kommen da natürlich rechtliche Probleme hinzu. Aber für > einen ersten Versuch, wieso nicht. Absoluter Overkill, aber am billigsten und einfachsten könnte zutreffen... Diesmal bin ich auch dabei mit "Kanonen" und "Spatzen"... :-P
:
Bearbeitet durch User
Ein Paar Punkte über die du direkt nachdenken solltest: Willst du dich in einem ARM, AVR, PIC oder 8051 einarbeiten ? (oder mit was willst du dich in Zukunft beschäftigen ?) Soll jemand das Projekt noch in 20 Jahren nachbauen können ? Nach was für Standards soll das Projekt konform sein ? (CE, ROHS) Wie soll die Datenübertragung zum PC funktionieren ? My Mikrocontroller schrieb: > Ich möchte bei dem Uni-Projekt nicht nur den Professor zufrieden > stellen, sondern ich persönlich möchte mit dem Endergebnis zufrieden > sein (Die Note ist dabei nebensächlich). Gute Einstellung, es geht ja schließlich auch um deine Ausbildung :)
Dennis K. schrieb: > San Lue schrieb: >> Dann dürfte das mit dem STM Teil wirklich am billigsten und einfachsten >> gehen, zumindest für den Anfang. Wenn dein Produkt irgendwann verkauft >> werden soll, kommen da natürlich rechtliche Probleme hinzu. Aber für >> einen ersten Versuch, wieso nicht. > > Absoluter Overkill, aber am billigsten und einfachsten könnte > zutreffen... Absolute Zustimmung. Nur falls das Teil dann tatsächlich in Serie gehen sollte, wars das mit dem "am billigsten", denn dann wirds richtig teuer. Das sollte der TO wissen.
TriHexagon schrieb: > Absolute Zustimmung. Nur falls das Teil dann tatsächlich in Serie gehen > sollte, wars das mit dem "am billigsten", denn dann wirds richtig teuer. > Das sollte der TO wissen. Ist so. Genau deshalb weiss ich nicht ob es gut ist ihm zu dem STM Board anzuraten. Denn schlussendlich wird ihm das Board zwar schnell zu einem ersten Prototypen verhelfen, will er allerdings das Produkt später einmal vermarkten, werden Materialkosten schnell wieder zu einem entscheidenden Punkt. Und da ich mal vermute, dass man ein STM Board nicht einfach so ohne weiteres weiterverkaufen kann (Kenne mich mit dem Rechtskram nichts o aus, ist aber eigenltich das einzige was sinn ergibt), wird er um das selber entwickeln kaum drum herum kommen. Und spätestens dann bringt ihm der STM Prototyp nichtmehr wirklich viel..
USB auf dem µC ist doch gar nicht notwendig. Er will die SD Card nur als Wechseldatenträger benutzen. Wenn der TO sich grob auf eine Prozessorfamilie festlegt, kann er doch ein beliebiges Entwicklerboard mit LCD und Programmer aus dieser Familie benutzen. Ist die SW fertig, kann man immer noch ein abgerüstetes µC-Board entwickeln. Blackbird
Blackbird schrieb: > USB auf dem µC ist doch gar nicht notwendig. > Er will die SD Card nur als Wechseldatenträger benutzen. Das hört sich aber anders an: My Mikrocontroller schrieb: > Die Daten sollen dann per USB-Kabel wieder am PC ausgelesen > werden können (Prinzip eines Wechseldatenträgers) Das sollte der TO genauer erklären. Könnte man interpretieren, dass das Board sich als USB HID Massenspeicher melden soll.
Ein SD Card-Adapter, in den die vom µC beschriebenen SD Card gesteckt wird, wird auch per USB vom PC bedient. So habe ich das verstanden. Blackbird
Blackbird schrieb: > USB auf dem µC ist doch gar nicht notwendig Jedoch zum übertragen des Programms von der IDE auf dem PC in den uC, schliesslich haben die wenigsten PC noch einen brauchbaren parallel oder seriell Port.
MaWin schrieb: > Jedoch zum übertragen des Programms von der IDE auf dem PC in den uC, > schliesslich haben die wenigsten PC noch einen brauchbaren parallel oder > seriell Port. Es gibt da auch ganz nette USB ISP-Programmer.
Markus Müller schrieb: > Der hat bis zu 2MB Flash schon drin, also genügend um deine 500Kb Daten > + Programm speichern zu können. Damit könntest du problemlos auf die > SD-Card verzichten. SD Karten kann man aber wechseln wenn die voll sind und problemlos auslesen. Du bräuchtest noch eine Ausleseschnittstelle und das passende Programm dafür (USB mit Massenspeicheremulation), die 10 mal mehr Arbeit ist als der Rest.
Max H. schrieb: > Es gibt da auch ganz nette USB ISP-Programmer Deswegen sind die Arduinos so beliebt, da ist das schon drauf.
Markus Müller schrieb: > Ich persönlich favorisiere den STM32 da es von dem über 370 > verschiedene Ausführungen gibt - je nach Anwendungsfall von super > Günstig bis Super Leistung Na klasse, da gibt es dann bestimmt auch einen mit einem 0-10V/20mA DAC. Einfach nur zusammenstecken, ohne zu löten!
ADCler schrieb: > Na klasse, da gibt es dann bestimmt auch einen mit einem 0-10V/20mA DAC. > Einfach nur zusammenstecken, ohne zu löten! Ja, genau. Von Analog gibt es massig 0..10V/20mA Chips. Nur anstecken auf einem Steckbrett. 0..10V / 0..20mA sind standardisierte Industrieschnittstellen für z.B. Sollwert/Istwert Übermittlung. Und das schon seit mindestens 40 Jahren. Oder hast Du schon mal einen anderen µC gesehen der das direkt kann???
:
Bearbeitet durch User
Markus Müller schrieb: > Von Analog gibt es massig 0..10V/20mA Chips. Nur anstecken > auf einem Steckbrett. 0..10V / 0..20mA sind standardisierte > Industrieschnittstellen für z.B. Sollwert/Istwert Übermittlung. > Und das schon seit mindestens 40 Jahren. Dann solltest Du doch diese vorschlagen und nicht die STM32.
ADCler schrieb: > Dann solltest Du doch diese vorschlagen und nicht die STM32. Ober der der STM32 ist doch momentan in Mode...
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.