Hallo ich bin relativ neu in der ganzen Microcontrollergeschichte. Ich habe bis jetzt mit Arduino, NODEMCU Boards gearbeitet und ich frage mich wie man es eigentlich handelt, wenn man sehr viel I/O an einen Microcontroller anbinden muss. Nutzt man dann einfach riesige Controller oder nutzt man große I/O Expander oder teilt man einzelne Funktion auf mehrere Microcontroller auf und lässt diese miteinander kommunizieren? Kann mich da jemand aufklären? Lg Nico
Kommt drauf an, ist halt wie immer ne Kosten-Nutzen Frage. Die Lösung, kommt erst mit der Problemstellung!
Wie immer: Kommt drauf an. Alle drei genannten Methoden sind üblich und haben in ihren Anwendungen Vor- und Nachteile.
Thomas Z. schrieb: > utzt man dann einfach riesige Controller > oder nutzt man große I/O Expander oder teilt man einzelne Funktion auf > mehrere Microcontroller auf und lässt diese miteinander kommunizieren? > Kann mich da jemand aufklären? Alles 3: Expander, wenn sonst die Leitungen zu lang werden oder Spezial-Schaltkreise in der Kombination nicht in einem µC verfügbar sind mehrere Microcontroller hingegen nur selten: Meist ist der Abstimmungsaufwand zu groß. Mehrere Microcontroller macht man hingegen, wenn der eine den anderen Lädt (Entwicklungsboards), wenn einer dediziert nur Kommunikation oder Grafik oder so macht, wenn an per zweidraht verbinden will und Standardbausteine nicht reichen, wenn lange Strecken dazwischen liegen, wenn Module Autark sind, ... . Aber in der Regel nicht, um 20 IOs mehr zu haben als maximal vorhanden.
Kommt drauf an was die I/Os können sollen. Komplexe zeitliche Abläufe, oder andere Dinge wo ein MCU alleine überfordert sein könnte würde ich auf mehrer aufteilen. Z.B wenn viele Motoren etwas mit Weg Zeit und Position machen, und dann noch andere zeitkritische Aufgaben erledigt werden müssen. Ist die Zeit egal und alles an einem Ort, dann I/O Expander. Sind die zu Steuernden Objekte, IOs weit von einander entfernt dann auch viele MCUs mit Bustechnik verbunden. Also immer das was für die Situation passender ist.
Darüber hinaus gibbets Möglichkeiten mit wenig µC-Pins viele IN's oder OUT's zu nutzen, indem man geschickt Matrizen und Multiplex einsetzt. https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm https://elektro.turanis.de/html/prj050/index.html
Thomas Z. schrieb: > oder nutzt man große I/O Expander Das ist in vielen Fällen am günstigsten - Riesencontroller haben auch riesige Gehäuse, nicht wegen der Grösse, da wären sie optimal, aber sie haben dann halt 100 Pins und mehr, und alle Leiterbahnen müssen zu diesem IC. Und Multicontroller sind hardwaremässig einfach, aber die Software ist kniffelig. In vielen Fällen tun es auch einfache Latches oder Schieberegister, spezielle I/O-Expander müssen nicht sein. Besonders nicht Exoten die schwer zu beschaffen sind. 74er ICs gibt es schon so etwa ein halbes Jahrhundert. Georg
Da ich mich mehr mit der Theorie als mit der Praxis beschäftigt habe weiß ich es nicht so genau, aber im Prinzip hat man ja nur eine begrenzte Menge an Timer und Interrupt Möglichkeiten welche man in einem Controller gleichzeitig verwenden kann. Deswegen vermute ich dass gerade dort wo man sehr viele verschiedene Timer und Interrupt Möglichkeiten bedingt durch die Aufgaben braucht, man irgendwann gezwungen ist mehrere Controller zu verwenden. Besonders dann wenn die Aufgaben gleichzeitig erledigt werden sollen.
Als High-End-Lösung gibts dann noch FPGAs. Das sind programmierbare Logikbausteine. Du hast dann einfach ein paar tausend Logikgatter, Flipflops, RAM, Addierer und Multiplizierer und kannst Dir daraus alles mögliche bauen, von einfachen Schieberegistern bis zu Prozessoren, Videocontrollern, usw usw. Diese Dinger gibts von ganz klein (16 Pins im 0.35mm BGA) bis ganz groß (einige tausend Pins als Kachel), und jede Größe findet ihren Abnehmer. Wie gesagt: kommt ganz auf Problem an. fchk
Und nebenbei könntest du auch mal bedenken, welche Anwendungen denn wofür "viel" I/O benötigen könnte. Mir kommen 20 I/O schon recht üppig vor und je nach Anwendung wäre ein Expander sicher ausreichend. Aber vielleicht hast du ja andere Ideen. Gruß Rainer
Mit 100 Pins und 8 GPIO-Ports a 8 Bit ist immer noch der C8051F020 mein Favorit. Quadratisch, praktisch, gut! Da kann nun wirklich jede auch noch so verschissene LED ihr eigenes Portpin bekommen. FPGAs wurden ja schon erwaehnt. Da kann man sich "seine" Peripherie selber bauen. Auch sehr praktisch. Mittlerweile bin ich ein grosser Freund der 27 bit Arithmetik. Weil auch da ist man nicht auf fixe Groessen angewiesen.
> ein Expander
Nur Artuinofickler brauchen sowas. Richtige Maenner nehmen
einfach Schieberegister wenns unbedingt ein Controller mit
nur 8 Beinchen sein muss.
xyz schrieb: > Mittlerweile bin ich ein grosser Freund der 27 bit Arithmetik. > Weil auch da ist man nicht auf fixe Groessen angewiesen. Dann bin ich ja froh, dass du nicht auf 8 mal 7 bit-Arithmetik stehst. Ansonsten verstehe ich nicht, was dass mit den I/O-Pins zu tun hat!? Gruß Rainer
Irgendwie vermisse ich eine numerische Definition von: "sehr viel I/O"
> 8 mal 7 bit-Arithmetik Der gute 56002 hatte glaub ich einen 56 bit breiten Akkumulator. > was dass mit den I/O-Pins zu tun hat!? Mit einem 1 Bit-Slice ist es schwierig mehrere IO-Pins zu adressieren, oder nicht? Scheinbar hast du noch keine Signalverarbeitung auf FPGAs gemacht.
Ganz nett sind diese Ansteuer-ICs aus den ersten VFD-Monitoren fürn PC. 80bit Schieberegister + Latch + 80V/4mA open collector im 96 pin SMD. Das ist für mich viele I/O, jedenfalls in einem einzigen Baustein.
Helge schrieb: > Das ist für mich viele I/O, jedenfalls in einem einzigen Baustein. Ein Xilinx Virtex Ultrascale+ VU19P im A3824-Gehäuse hat ca. 2000 I/O (Seite 4): https://www.xilinx.com/support/documentation/selection-guides/ultrascale-plus-fpga-product-selection-guide.pdf Dummerweise ist der gerade nicht am Lager: https://www.digikey.de/product-detail/de/xilinx-inc/XCVU19P-2FSVA3824E/122-XCVU19P-2FSVA3824E-ND/11588539
Helge schrieb: > Was macht man mit 2.000 I/O? Ein LED-Display ansteuern, wenn man das mit einer Matrix nicht rafft. Georg
xyz schrieb: > Richtige Maenner nehmen einfach Schieberegister Wenn sie keine Ahnung haben ;) Es gibt inzwischen I/O Expander, die deutlich mehr können als irgendwie ein paar Bit raus zu takten. Z.B. gibt es PWM Generatoren mit zig Kanälen, High-Side Treiber oder 24V feste Eingänge, die man einfach an den I²C oder SPI Bus hängt. Wenn so ein Baustein zur Anforderung passt, sehe ich kaum einen Grund das heutzutage noch aus Einzelteilen zu basteln.
xyz schrieb: > Scheinbar hast du noch keine Signalverarbeitung auf FPGAs gemacht. Nee hab ich nicht. Und ich mag mich auch nicht schämen, dass mir 1 Bit-Slice nicht sofort eingefallen ist :-) Gruß Rainer
> Wenn so ein Baustein zur Anforderung passt Das ist dann ja auch OK. Ansonsten waeren die 3 ct fuer ein 74HC595 zu unterbieten.
Bernd schrieb: > Ein Xilinx Virtex Ultrascale+ VU19P im A3824-Gehäuse hat ca. 2000 I/O > (Seite 4): > https://www.xilinx.com/support/documentation/selection-guides/ultrascale-plus-fpga-product-selection-guide.pdf Wow, ein (!) IC für fast 72k€, das ist doch mal eine Hausnummer...
Blockwart schrieb: > Wow, ein (!) IC für fast 72k€, das ist doch mal eine Hausnummer... Ich bin mir sicher, dass du das IC in der Realität als Neukunde nicht einfach per Anklicken bei eine Distri bekommen wirst. Ich vermute sehr, dass du nach einer Bestellung statt des FPGAs nur einen Anruf vom FAE bekommst. Thomas Z. schrieb: > sehr viel I/O Definiere I/O. Meinst du damit simple 3,3V-Logik-Ein- und Ausgänge? Oder meinst du I/O im Sinne von Zählern, Zeitmessung, PWM, AD- und DA-Wandlern? Oder meinst du I/O wie in einer SPS üblich von 24V-EA über 230/400V-EA bis hin zur Ansteuerung von "richtigen" Servoachsen mit zig kW? > Kann mich da jemand aufklären? Sieh dir an, wie andere das machen. Du bist nicht der erste, der so ein Problem hat.
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.