Hi, Ich arbeite gerade an einem Projekt, in dem ich aus 5 i2c Sensoren mit einem Multiplexer Daten auslese. Diese Daten werden dann verrechnet und mit Hilfe von 5 SPI DACs als Analogspannung ausgegeben. Ich frage mich gerade welche microcontroller sich dafür besonders eignen. Ich habe viel Erfahrung mit dem ESP32, das wäre aber zu viel des Guten. Mit den guten alten Atmel 8 Bit AVRs habe ich auch schon einiges gemacht, aber sind die nicht ein bisschen überholt? Ich brauche eigentlich nur I2C, SPI, 5 Gpio für CS, 3-5 weitere IOs für Einstellschalter und das ganze bei 3V3. Vielleicht doch mal ein STM32? Einfach, günstig und mit so wenig externen Komponenten wie möglich wäre schön... bin gespannt auf Eure Meinungen:)
>Ich habe viel Erfahrung mit dem ESP32, das wäre aber zu viel des >Guten. Hast du den genug Zeit dich einzuarbeiten in eine neue Architektur? Ansonsten Schuster bleib bei deinen Leisten, nehme halt den ESP32. Der langweiligt sich nicht nur in deinem Projekt ;) Gruß J
Daniel S. schrieb: > Einfach, günstig und mit so wenig externen Komponenten wie möglich wäre > schön... bin gespannt auf Eure Meinungen:) Unter 10.000 Stück lohnt die Einarbeitung kaum, wenn es keine weiteren Showstopper gibt: Platz, Strom, etc. Ansonsten ist die Frage eher wie: ich muss 5 Kisten regelmäßig transportieren. Ich weiss nicht, wie groß oder wie weit. Welches Auto ist dafür gut? Ich habe einen VW-Bus, soll ich mir noch ein kleineres Auto kaufen, weil das weniger Benzin braucht.
Daniel S. schrieb: > Einfach, günstig und mit so wenig externen Komponenten wie möglich wäre > schön... bin gespannt auf Eure Meinungen:) Unter 10.000 Stück lohnt die Einarbeitung kaum, wenn es keine weiteren Showstopper gibt: Platz, Strom, etc. Ansonsten ist die Frage eher wie: ich muss 5 Kisten regelmäßig transportieren. Ich weiss nicht, wie groß oder wie weit. Welches Auto ist dafür gut? Ich habe einen VW-Bus, soll ich noch ein Auto kaufen, das weniger Benzin braucht? Ich hab auch einen Smart, aber fährt man noch damit?
Daniel S. schrieb: > Mit den guten alten Atmel 8 Bit AVRs habe ich auch schon einiges > gemacht, aber sind die nicht ein bisschen überholt? Nein, die werden immer noch haufenweise eingesetzt. Für Deinen Zweck genau richtig, da Du ja auch schon Erfahrung damit hast. Was ich eher als Schwachpunkt ansehen würde ist das I2C. Da hakt es schon mal, wenn es nicht richtig programmiert ist, oder unvorhergesehene Dinge auf dem I2C Bus passieren. Ganz speziell beim Einlesen von Daten! Gibt es die Sensoren nicht mit SPI Schnittstelle? Dann wäre auch alles einheitlich. Als Controller kommen in Frage: ATMEGA88PA oder größer (168, bzw. 328). Wenn mehr Pins gebraucht werden ATMEGA644PA, der hat schon 64k Flash Speicher, das sollte reichen.
> alten Atmel 8 Bit AVRs habe ich auch schon einiges > gemacht, aber sind die nicht ein bisschen überholt? Zweifelsfrei. Selbst eine schnurlose Winztastatur beherbergt heute ein 32 Bitter. > Vielleicht doch mal ein STM32? Nur zu! Du solltest dir aber mindestens noch die kleinen ARMs von TI ansehen. Die haben bei seriellen Schnittstellen aller Art, auch bei kleinen Gehaeusen, regelmaessig die Nase vorn. Bzgl. I2C sind allerdings Silabs C8051 und Renesas RX das Mass der Dinge. Die haben fuer jedes moegliche I2C-Event einen extra Interruptvektor. Nie war I2C-Handling einfacher.
A. S. schrieb: > Unter 10.000 Stück lohnt die Einarbeitung kaum, wenn es keine weiteren > Showstopper gibt: Platz, Strom, etc. Du hast Hobby vergessen. ;-) Daniel S. schrieb: > Vielleicht doch mal ein STM32? Das wäre nicht so unangebracht, je nach Zeit und Laune. Wir schreiben ja immerhin schon das Jahr 2021. ;-) Rainer S. schrieb: > Daniel S. schrieb: >> Mit den guten alten Atmel 8 Bit AVRs habe ich auch schon einiges >> gemacht, aber sind die nicht ein bisschen überholt? > > Nein, die werden immer noch haufenweise eingesetzt. > Für Deinen Zweck genau richtig, da Du ja auch schon Erfahrung damit > hast. Sehe ich genauso. Wenn es schnell gehen soll: Auf jeden Fall.
> Du hast Hobby vergessen. ;-)
In dem Falle wuerde ich eine 600Mhz MCU nehmen weil man dann viel mehr
Spass hat und Geld keine besondere Rolle spielt. :)
Olaf
Die einzige Anforderung ist also vielleicht, dass SPI und I2C getrennt vorhanden sind. Keine Angabe ob im Stunden, Sekunden oder ms-Bereich einfache Additionen oder Fourier-transformationen notwendig sind. Und ob SPI und I2C nicht auch gebitbanged werden können.
Daniel S. schrieb: > Ich habe viel Erfahrung mit dem ESP32, das wäre aber zu viel des > Guten Ja wäre es....na und? Er kostet 3-4 Euro und ist einfach zu verarbeiten. Du hast reserven ohne Ende. Du wirst sie nicht brauchen, aber wenn du langeweile hast kannst du deine Daten in einer Blutooth App ansehen oder alles in die Cloud schieben, oder den internen Flash zum speichern nutzen.
Daniel S. schrieb: > Ich arbeite gerade an einem Projekt, in dem ich aus 5 i2c Sensoren mit > einem Multiplexer Daten auslese. Diese Daten werden dann verrechnet und > mit Hilfe von 5 SPI DACs als Analogspannung ausgegeben. Jeder mit I2C und SPI. Also praktisch jede µc-Serie auf der Welt. Also würde ich den nemen, wo dir die Toolchain am ehesten zusagt. Was dann der ESP ist, weil die Toolchain kennst du schon.
Hi, schon mal vielen Dank für Eure Antworten! ich möchte noch etwas präziser auf meine Anforderungen eingehen, vielleicht können wir es dann besser spezifizieren. Es sollen aus 5 x MS5837-30BA die Werte ausgelesen werden. Beim ersten Start soll der Controller die Kalibrierwerte lesen und im EEPROM / NVs o.Ä. speichern. Das sind 5 x 14 Byte = 70 Byte. Im Betrieb soll das System dann die Werte der Sensoren - 2 x 3 Byte pro Sensor - auslesen, und mit Hilfe der Kalibrierwerte die physikalischen Werte berechnen. (Int32 add/sub/div & float sub/div) - siehe Datasheet Diese Werte soll der Controller dann auf einen Range abbilden (bsp. 0-10 bar auf 10% - 90% Vcc) und über die DACs (DAC7311) ausgeben. Bei den Sensoren habe ich leider nichts anderes gefunden, was meine Anforderungen erfüllt. Es gäbe noch den AMS 5915-16000-D-I-N, welcher auch mit verschiedenen I2C Adressen daherkäme - man könnte sich also den Multiplexer (TCA9548ARGER) sparen - dieser ist aber Konstruktiv schwieriger abzudichten und kostet grob das 3-4 Fache. Andere Drucksensoren bis min. 14 bar kosten 40€ und mehr (ich lasse mich gerne eines Bessere belehren) Zusammengefasst: 5 I2C Sensoren lesen = 5x (ID Multiplexer, SDA Multiplexer, SCL Multiplexer, ADR Sensor, CMD Sensor, 3 Byte Data Sensor, ADR Sensor, CMD Sensor, 3 Byte Data Sensor) = 5x 13 Byte = 65 Byte 5 SPI DACs schreiben = 5x 2 Byte Daten Senden = 10 Byte Das ganze am Besten mit min. 10Hz - also quasi im Schneckentempo :D Beim ESP schreckt mich die Größe etwas ab für das Projekt, ansonsten wäre das natürlich verlockend wegen der Toolchain... Wenn Ihr Vorschläge zu den Komponenten habt - nur zu
Da reicht ja ein ATTiny13 dafür. Obwohl ich lieber die Tiny85 dafür nehme, weil die bei mir gewöhnlich in der Bastelkiste liegen.
Statt der zig Multiplexer würde ich hier einfach Bit-Bang I2C machen. gemeinsame SCL Leitung und für jeden Sensor eine eigene SDA Leitung. Je nach belieben dann einfach die Sensoren nacheinander abfragen oder sogar alle parallel. Edit: Zig, ok, ist ja nur einer :-). Ansonsten wäre ich auch für einen ATTiny.
:
Bearbeitet durch User
Andreas B. schrieb: > Da reicht ja ein ATTiny13 dafür. Obwohl ich lieber die Tiny85 dafür > nehme, weil die bei mir gewöhnlich in der Bastelkiste liegen. Dieses Projekt braucht I2C + SPI + 5 CS Pins, also gesamt 10 I/O Pins, wie willst du das mit einem 8-Pin µC machen? Daniel S. schrieb: > Beim ESP schreckt mich die Größe etwas ab für das Projekt, ansonsten > wäre das natürlich verlockend wegen der Toolchain... > Wenn Ihr Vorschläge zu den Komponenten habt - nur zu Wenn es um die Größe des chips geht, ist ein kleiner Microcontroller schon von Vorteil. Hier spricht nichts gegen einen AVR, besonders wenn du damit schon Erfahrung hast. Wenn du dich aber gerne einmal in eine 32bit Mikrocontroller Familie einarbeiten möchtest, spricht nichts dagegen, das mit diesem Projekt zu machen. Ich verwende meistens STM32 und komme damit gut klar, nur mit CubeMX und Cube HAL konnte ich mich nie wirklich anfreunden und mache deshalb alles über direkten Registerzugriff. Ich habe aber noch nicht wirklich mit anderen 32bit µC Familien gearbeitet, kann also nicht sagen, wie diese im Vergleich zu STM32 sind.
Daniel S. schrieb: > Zusammengefasst: > 5 I2C Sensoren lesen = 5x (ID Multiplexer, SDA Multiplexer, SCL > Multiplexer, ADR Sensor, CMD Sensor, 3 Byte Data Sensor, ADR Sensor, CMD > Sensor, 3 Byte Data Sensor) = 5x 13 Byte = 65 Byte Mein Vorschlag: https://www.ti.com/product/TM4C1230H6PM Der hat 6 getrennte I2C-Busse, d.h. ihr könnt Euch die Multiplexer sparen und die Sensoren parallel abfragen. Dazu noch UART, SPI, das Übliche halt fchk
Andreas B. schrieb: > Da reicht ja ein ATTiny13 dafür. Von der Berechnung her schon, von den IOs her nicht... Andreas M. schrieb: > Statt der zig Multiplexer würde ich hier einfach Bit-Bang I2C machen. > gemeinsame SCL Leitung und für jeden Sensor eine eigene SDA Leitung. DAS ist gar keine schlechte Idee...
Alex D. schrieb: > Andreas B. schrieb: >> Da reicht ja ein ATTiny13 dafür. Obwohl ich lieber die Tiny85 dafür >> nehme, weil die bei mir gewöhnlich in der Bastelkiste liegen. > > Dieses Projekt braucht I2C + SPI + 5 CS Pins, also gesamt 10 I/O Pins, > wie willst du das mit einem 8-Pin µC machen? Er will den Multiplexer TCA9548ARGER verwenden. Damit benötigt man nur einen I2C und den SPI. Wenn man den DA Wandler auch noch mit I2C nimmt, geht es mit noch weniger I/O.
:
Bearbeitet durch User
Andreas B. schrieb: > Alex D. schrieb: >> Andreas B. schrieb: >>> Da reicht ja ein ATTiny13 dafür. Obwohl ich lieber die Tiny85 dafür >>> nehme, weil die bei mir gewöhnlich in der Bastelkiste liegen. >> >> Dieses Projekt braucht I2C + SPI + 5 CS Pins, also gesamt 10 I/O Pins, >> wie willst du das mit einem 8-Pin µC machen? > Er will den Multiplexer TCA9548ARGER verwenden. Damit benötigt man nur > einen I2C und den SPI. Wenn man den DA Wandler auch noch mit I2C nimmt, > geht es mit noch weniger I/O. Solange es SPI DACs bleiben, geht es sich nicht mit einem 8-Pinner aus, weil dazu eben 5 CS + MOSI + SCK (+ evtl MISO, wsl bei DAC nicht notwendig) benötigt werden und das sind halt 7 (oder 8) pins nur für die Ansteuerung der DACs. Mit I2C DACs würde es natürlich gehen
Alex D. schrieb: > Solange es SPI DACs bleiben, Ah, sorry, das habe ich übersehen. Ich dachte an einem DAC, wo er alles ausgeben wollte. Dann wird es halt größer....
Daniel S. schrieb: > Ich habe viel Erfahrung mit dem ESP32, das wäre aber zu viel des > Guten. Dann nimm alt ein der Arudino / Atiny-Typen. Ist die selbe Umgebung und ohne Wlan keine schlechte Alternative. Und wenn du Platz hast, kauf dir ne Nano-Fertig Platine dann hast du das Problem mit den Programmer auch schon hinter dir. Für 2.50 Euro das fertige Teil aus China mache ich mir nicht mehr den Aufwand den Chip selbst (und sein Hühnerfutter) ein zulöten. 2 Steckleisten und rein mit der Platine. ESP32 nehme ich nur wenn ich Wlan o. BT brauche. (Neuere Modelle können beides). Vorher kurz an den USB-Port und drauf mit der Software. Und Upgrades sind dann auch nicht wirklich ein Problem. ;)
Für den Aufbau müssten reichen: - 1x Takt (SCL/SCK) - 5x SDA - 5x MOSI (DAC) - 1x CS/SYNC (DAC) Letztere beiden kann man auch drehen, wie mans eben mag. Also summa summarum 12 Pins. Macht mindestens 14 Pins, reset würde ich extra nehmen. Also nen ATTINY806.
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.