Forum: Mikrocontroller und Digitale Elektronik I2C Controller mit Timer und einfacher Logik


von Flash (Gast)


Lesenswert?

Hallo,

ich habe in der Uni ein Messsystem aus drei verschiedenen Beleuchtungen 
(LEDs rot und grün und blau) und einem Temperatursensor.
Dazu verwende ich eine Kamera, die ein externes Sync Signal ausgibt 
(Strobe).

Ich bin nun auf der Suche nach einer möglichst einfachen Variante, die 
drei Beleuchtungen an und aus zu schalten.

Die Beleuchtungen selber werden durch die Kamera ausgelöst, ich möchte 
sie nur deaktivieren oder aktivieren, um sie auch mal abwechselnd 
betreiben zu können.

Ich benötige also ein I2C IC (I2C habe ich in den System zur Verfügung), 
der sich über I2C so konfigurieren lässt, dass ich drei GPIO-out 
umschalten kann (Beleuchtung enable/disable), nachdem ein GPIO-in (sync) 
aktiv war.

Ideal wäre ein autonomer Ablauf, so dass ich nicht nach jedem Frame 
umkonfigurieren muss, zumal ich das sync Signal der Kamera nicht auf dem 
Kamera PC habe. Sonst könnte ich ja einen I2C GPIO expander ständig nach 
dem sync pollen und danach dann umprogrammieren.

Außerdem gut wäre ein ADC Eingang, um einen variablen Widerstand zur 
Temperaturmessung verwenden zu können.

Ich möchte es möglichst einfach lösen.
Lösungen mit einem FPGA/CPLD mit integriertem I2C Slave sind denkbar, 
aber zu krass.
Genauso ein µC incl. Software und ADC wäre denkbar, aber auch zu 
aufwändig.

Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?
Sowas wie ein I2C-FPGA oder sowas, den man erst zu Beginn konfiguriert, 
bevor es losgeht? Keine Ahnung wie ich es noch beschreiben soll...

Vielen Dank!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flash schrieb:
> Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?
die suche mit "I2C IO" ergibt:
https://www.google.com/search?q=i2c+io
Sind solche I2C Port Expander das, was du suchst?

> Außerdem gut wäre ein ADC Eingang
Wenn du einen I2C hast, dann kannst du dort doch auch den ADC 
anschließen.

> I2C habe ich in den System zur Verfügung
Kann nicht das "System", das ja den I2C ansteuern muss, diesen Ablauf 
steuern? Ich glaube, du solltest etwas mehr über das "System" sagen...

: Bearbeitet durch Moderator
von Stefan F. (Gast)


Lesenswert?

Flash schrieb:
> Ich benötige also ein I2C IC (I2C habe ich in den System zur Verfügung),
> der sich über I2C so konfigurieren lässt, dass ich drei GPIO-out
> umschalten kann (Beleuchtung enable/disable), nachdem ein GPIO-in (sync)
> aktiv war.

PCF8574 + irgendein Computer, der ihn über I²C steuert.

> Ideal wäre ein autonomer Ablauf,

Das wäre ein programmierbarer Mikrocontroller. Fast jeder kann I²c. Zum 
Beispiel Arduino Nano Module.

> Genauso ein µC incl. Software und ADC wäre denkbar,
> aber auch zu aufwändig.

Ach so. Was wäre denn aus deiner Sicht weniger Aufwändig als ein 
Mikrocontroller-Modul mit USB und dennoch nach Wunsch programmierbar?

von jo mei (Gast)


Lesenswert?

Flash schrieb:
> Genauso ein µC incl. Software und ADC wäre denkbar, aber auch zu
> aufwändig.

Ja ja, wasch mir den Pelz aber mach mich nicht nass.

Am Besten einen Eierlegenden WollmilchSau-Arduino den man nur
kaufen und scnschliessen muss, gelle?

von Flash (Gast)


Lesenswert?

Lothar M. schrieb:
> Sind solche I2C Port Expander das, was du suchst?

Das wäre eine Möglichkeit, die ich auch im Startpost angesprochen hatte.
Nachteil ist, dass dann alles vom Host System aus gesteuert werden muss. 
Eine einmalige Config und dann autonomes Verhalten wäre besser.
Keine Ahnung wie robust I2C ist, um ein Timing-Regime stabil im Bereich 
von 5-10ms aufrecht erhalten kann?

Stefan ⛄ F. schrieb:
> Das wäre ein programmierbarer Mikrocontroller. Fast jeder kann I²c. Zum
> Beispiel Arduino Nano Module.

Ich habe leider kaum Erfahrungen mit µC, geschweige denn kann ich 
Software (nur Python) :D
Brauche ich für ein autonomes System nicht noch einen EEPROM, auf dem 
die SW abgelegt wird?
Oder kann man den µC und was er tun soll direkt per I2C zum Startup 
beschreiben und spart sich so den EEPROM?

jo mei schrieb:
> Am Besten einen Eierlegenden WollmilchSau-Arduino den man nur
> kaufen und scnschliessen muss, gelle?

Ich habe expliziet nach einem general purpose IC gefragt und nicht nach 
einem µC.
Es gibt 100000 verschiedene IC, die manchmal schwer zu finden sind, weil 
sich in der Suche immer ein IC vordrängelt, den man nicht finden möchte.

Wenn ein µC mit 4-5 GPIO und ADC die einzige Möglichkeit ist, sowas zu 
realisieren, dann werde ich diese Möglichkeit umsetzen.
Bevor ich aber mir Unbekanntes anfange dachte ich, nachfragen kann nicht 
schaden... nass werden darf ich schon. Aber eine Dusche reicht und kein 
Vollbad ;)

von Peter D. (peda)


Lesenswert?

Flash schrieb:
> Ideal wäre ein autonomer Ablauf

Ein Programm kann nur ein MC ausführen und kein dummer IO-IC.
FPGA/CPLD sind viel zu schnell, hätten also keinerlei Vorteile.

von Flash (Gast)


Lesenswert?

Zum System:

Ich möchte Objekte getrennt in RGB aufnehmen und die Beleuchtung eben 
steuern.
Getriggert werden die LED-flash durch den Sync der Kamera.
Ob ich nun den sync auf die drei LEDs multiplexe, oder die LEDs separat 
via GPIO aktiviere, muss ich mir noch überlegen.

Ich werde auch nochmal prüfen, ob ein I2C Expander und ein I2C ADC 
getrennt Sinn ergeben und Platz dafür ist. Vielleicht kann das Host 
System dann alles übernehmen.

von Peter D. (peda)


Lesenswert?

Flash schrieb:
> Oder kann man den µC und was er tun soll direkt per I2C zum Startup
> beschreiben und spart sich so den EEPROM?

MCs mit I2C-Bootloader sind mir nicht bekannt, UART-Bootloader sind aber 
häufig zu finden.

von Flash (Gast)


Lesenswert?

Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst 
wenig Gemüse drum herum (Takt, flash usw intern) und günstig?
Speicher und Performance sollten ja bei den Aufgaben nahezu in jedem MCU 
ausreichend sein.

Habe gerade den ATTINY auf dem Schirm, da muss ich mal die externe 
Beschaltung prüfen. Ich habe nämlich nur sehr wenig Platz im System.

Danke!

von Stefan F. (Gast)


Lesenswert?

Peter D. schrieb:
> MCs mit I2C-Bootloader sind mir nicht bekannt

Der STM32L071 kann das

von Stefan F. (Gast)


Lesenswert?

Flash schrieb:
> Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst
> wenig Gemüse drum herum (Takt, flash usw intern) und günstig?

Kriegst du ab 1,50€ als Modul.

Ich habe Dir bereits Arduino Nano empfohlen.
https://de.aliexpress.com/popular/arduino-nano.html

von m.n. (Gast)


Lesenswert?

Flash schrieb:
> Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?

Ich glaube nicht, daß jemand Deine Aufgabe verstanden hat. Wie soll man 
dann eine Empfehlung abgeben?
Wenn Du sie verstanden hast, dann müßtest Du sie auch beschreiben 
können.

von c-hater (Gast)


Lesenswert?

Flash schrieb:
> Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst
> wenig Gemüse drum herum (Takt, flash usw intern) und günstig?

ATtiny 2313A. Z.Z. z.B. bei Reichelt als Einzelstück in SO-20 für 0,97 
€.

> Habe gerade den ATTINY auf dem Schirm, da muss ich mal die externe
> Beschaltung prüfen. Ich habe nämlich nur sehr wenig Platz im System.

Externe Beschaltung für den Controller selber ist minimal ein 
100n-Bypass-Kondensator. Dazu kommt natürlich das, was du für deine 
Anwendung brauchst...

von Amateur (Gast)


Lesenswert?

Das kannst Du mit einem einfachen µC von Atmel machen.
Ein Arduino sollte reichen. Der sollte auch 3-Kanalig PWM können. Hat 
auch mehrere Analoge Eingänge.

Allerdings werde ich das Gefühl nicht los, dass Dein Konzept so vage 
ist, dass Du die Sache mit Waschen und Bügeln mal außen vor lassen 
solltest. Oder was Dir sonst noch einfällt.

Ursprünglich wolltest Du ja 3 LEDs ein- und ausschalten und die 
Temperatur begutachten.
Mittlerweile willst Du die Beleuchtung steuern und ganze, recht komplexe 
Sequenzen ablaufen lassen. Mit einem simplen Chip, der wohl 
hellseherische Fähigkeiten hat.

Ich liebe Salami.

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
Noch kein Account? Hier anmelden.