Hallo!
Ich wende mich an dieses Forum weil ich auf der Suche nach einem
Mikrocontroller bin.
Für ein Projekt dessen Vorgaben fix einzuhalten sind, möchten wir (Ich
und zwei weitere Freunde) einen freiwilligen Zusatz realisieren.
Die Vorgaben der Pflichtaufgabe kann sicherlicht fast jeder moderne
Mikrocontroller:
- 3.3V ODER 5V Versorgung
- 1x UART (rs232)
- 1x SPI (min. 8MHz)
- 8 GPIO Pins.
- 2 Analog Inputs
Bei der Aufgabe geht es darum verschiedne Geräte anzusteuern und Befehle
über RS232 zu empfangen und bei Bedarf zu Antworten. Die Befehle sind
meist 3-Stellig wie zb. "AW1" für Analog Wert Pin 1.
Nun zum Zusatz:
Da RS232 via PC heutzutage wohl nicht mehr all zu zeitgemäss sind, darf
man i einer Freiwilligen Aufgabe eine alternative Eingabe/Auslesung
realisieren.
Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit
unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten
wir eine Weboberfläche machen.
Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b.
Android App) zu realisieren. Bei uns wäre es "Geräteunabhänig", also man
gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene
Optionen anwählen kann, und Werte abrufen.
Das benötigt natürlich einen Mikrocontroller der
1.) Viel Speicher für die Website (ca. 1-5MB) hat
2.) Die nötige Rechenleistung
Nun möchten wir hier Nachfragen welcher Mikrocontroller sich dafür
eignen würde?
Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden,
die dann auf der Platine platzfinden. Eine fertige Lösung darf soll
nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die
Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.
Grundsätzlich soll eine moderne, 1-seitige Website realisiert werden auf
der Pins gesetzt bzw. deren Stand ausgelesen werden kann, ebenfalls
sollen Analogwerte (auf "abfrage" oder optional "live) abelesen werden
können.
Welchen Mikrocontroller bzw. welche IC's würded Ihr uns so empfehlen?
Viele Grüsse
Dominik
Dominik L. schrieb:> Die Vorgaben der Pflichtaufgabe kann sicherlicht fast jeder moderne> Mikrocontroller:
Das sagen euch die Datenbätter.
Dominik L. schrieb:> Das benötigt natürlich einen Mikrocontroller der> 1.) Viel Speicher für die Website (ca. 1-5MB) hat> 2.) Die nötige Rechenleistung
Dto. - wobei nicht unbedingt jeder MC Web-Fähigkeiten hat :-)
Dominik L. schrieb:> Das benötigt natürlich einen Mikrocontroller der> 1.) Viel Speicher für die Website (ca. 1-5MB) hat> 2.) Die nötige Rechenleistung
Das benötigt weniger als Du glaubst (es sei denn es sollen fette
Grafiken mit auf die Reise gehen). Für eine einfache HTML-Seite langt
ein einfacher AVR mit wenigen KByte SRAM. Der kann diese dann via
kleinem ESP8266 Modul über den Äther schicken. Klar kann letzteres die
Aufgabe auch ganz allein erledigen.
Dominik L. schrieb:> Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit> unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten> wir eine Weboberfläche machen.>> Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b.> Android App) zu realisieren.
Nicht sehr geschickt. Nicht umsonst gibt es standardisierte
IoT-Protokolle.
> Bei uns wäre es "Geräteunabhänig", also man> gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene> Optionen anwählen kann, und Werte abrufen.
Auch nicht so geschickt im praktischen Gebrauch. Schließlich will man
automatisieren und sich nicht in GUIs einen Wolf zusammenklicken müssen.
Aber egal, für ein bisschen Basteln, Hausaufgaben, Kurspunkte, usw. kann
man das schon machen.
> Das benötigt natürlich einen Mikrocontroller der> 1.) Viel Speicher für die Website (ca. 1-5MB) hat
5MB? Jetzt übertreibt mal nicht. 5MB braucht man wenn man richtig
scheiße Webseiten mit ranzigen JavaSkript-Frameworks zusammenklebt.
> 2.) Die nötige Rechenleistung
Viel wichtiger: Ein vorhandener TCP/IP Stack und das Ethernet-Interface,
zum Beispiel RMII. TCP/IP und Ethernet ist nämlich eine ganz andere
Nummer als RS232.
> Nun möchten wir hier Nachfragen welcher Mikrocontroller sich dafür> eignen würde?
Schon was dickeres, weil man dann mehr "rumsauen" kann, statt die Zeit
mit Optimierungen zu verbringen. Beispielsweise ein Board wie
http://www.st.com/en/evaluation-tools/nucleo-f429zi.html
Kostet so um die 25 Euro.
> Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden,> die dann auf der Platine platzfinden. Eine fertige Lösung darf soll> nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die> Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.
Ok, d.h. das Board dürft ihr eventuell so nicht verwenden. Trotzdem
würde ich mit dem fertigen Board anfangen, denn:
- Parallele SW und HW Entwicklung möglich
- Für das Board gibt es den Schaltplan, BOM, Layout (Gerbers)
- TCP/IP Stack (mehrere) verfügbar
- Kommt mit einem Programmer den man auch für ein eigenes Board
verwenden kann
Momentan bekommt man alternativ zum ATmega328 auch STM32F103C8T6 Module
ungefähr zum selben Preis. Die sind in fast jeder Hinsicht
Leistungsstärker.
Eine andere theoretische Möglichkeit wären Module, die den ESP8285
verwenden. Die können bis zu 6 I/O Pins mehr haben, als der ESP8266.
Leider konnte ich kein Modul finden, wo die zusätzlichen Pins
herausgeführt sind.
Man könnte den ESP8266 auch mit einem I²C Expander oder einen
Schieberegister erweitern. Das hätte den Vorteil, dass man nur einen µC
Programmieren muss.
Vielleicht gefällt Dir dieser Artikel:
https://www.amazon.de/gp/product/B074ZJVL5D/ref=s9u_simh_gw_i1
in Kombination mit einem PCF8574 oder einem 74HC595.
Infos zu den ESP Chips: http://stefanfrings.de/esp8266/index.html
Dominik L. schrieb:> Nun zum Zusatz:> Da RS232 via PC heutzutage wohl nicht mehr all zu zeitgemäss sind, darf> man i einer Freiwilligen Aufgabe eine alternative Eingabe/Auslesung> realisieren.> Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit> unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten> wir eine Weboberfläche machen.
Häh? Wo ist jetzt das Besondere eurer Lösung?
> Das benötigt natürlich einen Mikrocontroller der> 1.) Viel Speicher für die Website (ca. 1-5MB) hat> 2.) Die nötige Rechenleistung
Zur Auslieferung einer Webseite reichen auch sehr kleine µC bezüglich
der Rechenleistung bereits vollkommen aus. Jedenfalls, wenn nicht 200000
Clients gleichzeitig die Seite abrufen, sondern nur eine Zahl im kleinen
einstelligen Bereich. Übrigens: Mit einer hinreichend großen Zahl
gleichzeitiger Abrufe kriegt man JEDE Hardwarebasis dazu, dass sie nix
mehr ausliefert. Oder was glaubst du, was DoS-Angriffe tun?
Und natürlich ist der angegebene Speicherbedarf völlig überzogen. Eine
einfache Webseite passt in sehr wenige kB Speicher. Naja, wenn's etwas
hypsch sein soll, werden wohl ein paar Bitmaps fällig, die kosten
natürlich etwas mehr Speicher, bei sinnvoller Aufbereitung der Grafiken
aber auch nicht so sehr viel mehr. Jedenfalls nix, was nicht auch schon
ein kleiner 8Bitter+SD-Card hinreichend schnell ausliefern könnte...
Wer glaubt, es wäre mehr nötig, kann nur einfach nicht wirklich
programmieren. That's all...
Hannes J. schrieb:> 5MB? Jetzt übertreibt mal nicht. 5MB braucht man wenn man richtig> scheiße Webseiten mit ranzigen JavaSkript-Frameworks zusammenklebt.
Selbst wenn man JQuery verwendet, zieht das nur so um die 100kB in der
minifizierten Version. Das braucht man aber auch nur, wenn man
interaktive, zustandsbehaftete Sachen einbauen will. Ein paar Buttons
(mit Feedback) und sogar kleine Animationen kann man auch mit HTML und
CSS machen.
> Das braucht man aber auch nur, wenn man> interaktive, zustandsbehaftete Sachen einbauen will.
Du meinst, das kann man dafür benutzen.
Die Browser unterscheiden sich nicht mehr so sehr, wie zu IE4 Zeiten.
Damals war jQuery kaum vermeidbar, heute ist es tatsächlich nur noch
nice to have.
Stefan U. schrieb:> Du meinst, das kann man dafür benutzen.
Es ist zumindest bequem, und man bekommt zahllose Anwendungen, die man
nur noch anpassen muß.
> Damals war jQuery kaum vermeidbar, heute ist es tatsächlich nur noch> nice to have.
Du meinst, man solle stattdessen in Javascript direkt programmieren?
Kann man natürlich machen, aber dann ist die eigentliche Anwendung halt
wesentlich mehr Code, den man obendrein auch noch testen und debuggen
muß.
Zumal der eigentliche Grund, wieso Webseiten lahm laden, ja nicht das
bißchen JS und JQuery ist, sondern immer mehr und immer größere Bilder
sowie immer mehr Dateien von zig Domains, die im Wesentlichen dem
Ausspionieren des Nutzers dienen.
Wobei man heute, wenn es nicht zustandsbehaftet sein muß, ja auch sehr
viel mit CSS machen kann, beispielsweise das komplette Layout inklusive
Anpassung auf unterschiedliche Fenstergrößen.
Dominik L. schrieb:> Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b.> Android App) zu realisieren. Bei uns wäre es "Geräteunabhänig", also man> gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene> Optionen anwählen kann, und Werte abrufen.
Ich habe das mal vor Jahren mit einem kleinen PIC18F67J60 gemacht. Der
hat Ethernet eingebaut, 128k Flash, 4k RAM, kostet 3.50€ in 10'er Packs
und die damit realisierte Schaltbox läuft seitdem 24/7 ohne irgendwelche
Probleme. IP-Stack und Webserver gibts von Microchip, das kann man
einfach so benutzen. Die Webseite hat nur wenige kByte.
Heutzutage würde man vielleicht so etwas wählen:
http://www.ti.com/lit/ds/symlink/cc3220moda.pdf
Ist ein Cortex M4 mit WiFi, Antenne, TCP/IP-Stack und allem, was man
dafür so braucht. Und mit ETSI Funkzulassung.
Du kannst Dir ja mal so ein EIntwicklungsboard besorgen, bevor Du Dir
Deine eigene Platine machst.
http://www.ti.com/tool/launchcc3220modasf
fchk
Dominik L. schrieb:> Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden,> die dann auf der Platine platzfinden. Eine fertige Lösung darf soll> nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die> Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.
Hallo Dominik,
wenn ich das richtig lese, fallen damit eigentlich alle fertigen Module
wie z.B. ESP8266 raus. Ich weiß nicht, wie es um eure Fertigkeiten
steht, aber anhand der Aufgabenstellung dürftet ihr gerade erst am
Fußende des Wissensberges "Elektronik" stehen.
Einen Wlan-Chip auf eigenem Board zum laufen zu bekommen dürfte zuviel
für euch sein. Ulrich Radig hat mal ein tolles Projekt gezeigt, in dem
er mit einem Atmel128 einen fertigen Webserver zeigt und eine
Netzwerk-Schnittstelle implementiert. Sein Webserver könnte eure GPIOs
anzeigen und schalten. Zum lernen wäre das sicherlich der beste Ansatz.
http://www.ulrichradig.de/home/index.php/avr/webserver
von Pollin gab es auch mal den passenden Bausatz dazu:
https://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin
Um die Diskussion in die richtige Richtung zu lenken müsstest du
dringend folgendes mitteilen:
Über welche Fähigkeiten verfügt ihr
(Hardware-Layout/Programmiersprachen)
wieviele Mannstunden habt ihr zur Verfügung (Teamgröße und Zeit die ihr
einbringen wollt)
Über welche Technik verfügt ihr (Programmer/Oszi/LA)
Und vor allem, was dürft ihr verwenden und was darf es kosten.
Frank K. schrieb:> Und mit ETSI Funkzulassung.
Die (hoffentlich) erfolgreiche Modulintegration muss trotzdem
nachgewiesen werden...
Dominik L. schrieb:> Eine fertige Lösung darf soll nicht benutzt werden
Definiere das genauer. Auch ein hochintegrierter uC ist eine fast
fertige Lösung...
Und was müsst ihr jetzt eigentlich machen? Software oder Hardware oder
beides? Wann muss das Ganze fertig sein? Und wieviel Zeit habt ihr
dafür?