Microcontroller Auswahlhilfe

OP #6600152
Lesenswert?

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:)
#6600160
Lesenswert?

>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
Gast #6600173
Lesenswert?

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.
Gast #6600175
Lesenswert?

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?
#6600198
Lesenswert?

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.
Gast #6600210
Lesenswert?

> 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.
#6600233
Lesenswert?

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.
Gast #6600255
Lesenswert?

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.
#6600268
Lesenswert?

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.
Gast #6600272
Lesenswert?

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.
OP #6600342
Lesenswert?

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
Angehängte Dateien:
#6600450
Lesenswert?

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.
#6600459
Lesenswert?

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.
#6600468
Lesenswert?

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
#6600478
Lesenswert?

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.
#6600581
Lesenswert?

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
Gast #6600611
Lesenswert?

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. ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren