Forum: Mikrocontroller und Digitale Elektronik MIDI Lighter - Vorstellung und Diskussion Schaltungskonzept


von Chris (Gast)



Lesenswert?

Hallo Zusammen,

ich möchte hier ein Konzept für eine MIDI-to-RGB-Strip Schaltung 
vorstellen. Generell dient die Vorstellung dazu, mir Feedback zu holen 
und ggf. Schwachstellen der Schaltung zu beseitigen. Gerne kann die 
Schaltung aber auch als Vorlage für eigene Projekte verwendet oder 
genauso übernommen werden. Das Projekt ist rein privater Natur und dient 
ausschließlich für mich zum Spaß mit Elektronik basteln haben.

*Ziel und Aufgabe der Schaltung:*
Von einem herkömmlichen Computer sollen programmierte MIDI-Spuren 
abgespielt und mittels der Schaltung als Licht wiedergegeben werden 
können. Man kann sich das so vorstellen, dass eine Note für jede der 
drei Farben Rot, Grün und Blau definiert ist und wenn die Note auf dem 
Computer abgespielt wird, soll die entsprechende Farbe leuchten. Die 
Anschlagstärke der Note bildet dabei die Helligkeit ab. So können auf 
einer MIDI Spur verschiedenste (Misch-)Farben einprogrammiert und als 
Licht wiedergeben werden. Die Ausgabe der MIDI-Signale vom Computer 
erfolgt über einen USB-MIDI-Konverter oder eine dafür geeignete 
Soundkarte. Als Verbindungskabel wird ein herkömmliches 5-poliges 
MIDI-Kabel 
(http://www.thomann.de/de/the_sssnake_sk366-1_blk_midi_kabel.htm) 
verwendet werden.
Dass es dafür bestimmt schon (Selbstbau)Lösungen und Anleitungen im 
Internet gibt, kann ich mir vorstellen. Ich bitte das für diesen Beitrag 
zu ignorieren, da ich aus Spaß an der Sache gerne meine eigene Lösung 
umsetzen möchte.

*Anforderungen an die Schaltung:*
- MIDI Kommandos sollen von der Schaltung erkannt, interpretiert und mit 
geringer Verzögerung (<1ms) als Licht angezeigt werden können
- Mehrere der Schaltungen sollen in Reihe geschaltet werden können (MIDI 
Thru Funktionalität erforderlich)
- Es sollen verschiedene Lichtschläuche unterstützt werden (LPD8806, 
WS2801 und "normale" RGB-Strips, der WS2812 soll aufgrund des 
One-Wire-Protokolls nicht unterstützt werden)
- Zur Unterstützung der verschiedenen Lichtschläuche soll die Schaltung 
mit einem +5V- oder +12V-Netzteil betrieben werden können
- Die Umstellung von einen auf den anderen Lichtschlauch soll ohne 
Lötarbeiten erfolgen können (anderes Netzteil darf verwendet werden)
- Konfiguration von Parametern, wie z.B. der angeschlossene 
Lichtschlauch, soll über USB erfolgen
- Nur wenn der angeschlossene Lichtschlauch für die angelegte 
Versorgungsspannung ausgelegt ist, soll der Lichtschlauch mit Spannung 
versorgt werden

Ich bitte ebenfalls darum, die Anforderungen in eventuellen Diskussionen 
nicht zu vereinfachen. Ich würde gerne alle die Funktionalitäten mit 
einbringen. Sollte was unklar sein, bitte gerne nachfragen.  :)

Ich nenne das Projekt "MIDI Lighter". Angefügt an diesem Beitrag ist das 
Schaltungskonzept auf zwei PNGs.


Dargestellt ist ein Konzept und es entspricht noch nicht einem fertigen 
Schematic, wie man es aus bspw. Eagle oder Altium kennt. Viele 
Anschlüsse wie z.B. der Debug-Connector sind vereinfacht dargestellt. 
Bei den meisten Komponenten sind in Klammern unter dem Namen/der 
Bezeichnung die Reichelt-Bestellnummer, sowie das Package mit angegeben. 
Ist evtl. nicht ganz konsistent.  ;)


*Beschreibung des Konzepts:*
Als zentrale Komponenten wird ein ATmega32u4 eingesetzt. Die 
Programmierung dessen erfolgt über USB mittels des vorprogrammierten DFU 
Bootloaders. Da die Serielle Schnittstelle für die MIDI-Funktionalität 
verwendet werden muss, ist die Kommunikation nicht mittels eines 
FTDI-Chips oder USB-Seriell-Konverters möglich. Eine USB-Schnittstelle 
muss daher in der Firmware ebenfalls implementiert werden.

Angesteuert werden können die Lichtschläuche seriell über die 
SPI-Schnittstelle (für WS2801 und LPD8806) oder mittels PWM über einen 
internen Timer mit drei unabhängigen Output-Compare-Ausgängen.

Die Eingangsspannung wird über einen Spannungsteiler mit einem ATtiny13 
gemessen, welcher abhängig davon, den einen oder anderen Spannungspfad 
zur Versorgung des ATmega32u4 durchschaltet. Welcher Spannungspfad 
verwendet wird, wird über das Signal "SUPPLY_STATE" an der ATmega32u4 
mitgeteilt.

Mehrere LEDs zeigen verschiedene Zustände an bzw. können frei 
programmiert werden.


*Diskussionspunkte:*
1. Grobe Fehler im Konzept?? Was habe ich verbockt?
2. Sind die Transistoren hinsichtlich der Schwellspannungen und 
benötigten Ströme korrekt ausgelegt?
3. Könnte es Probleme mit Inrush-Currents geben, wenn Teile der 
Schaltung mit eingeschaltet werden?
4. Overvoltage-Protection notwendig - Ja/Nein?
5. Können die High-Side-Switches beim Anschalten einen unsicheren 
Zustand annehmen und evtl. kurzzeitig durchschalten, bis der jeweilige 
Microcontroller seine Pins final setzt?
6. Sind die Microcontroller richtig geschaltet?
7. Nicht geeignete Komponenten ausgewählt - gibt es bessere/günstigere 
Alternativen?
8. Weitere Ideen für Funktionalitäten, die Sinn machen würden?

Fragen sind gerne willkommen. Wenn Interesse besteht, würde ich mich 
über eine schöne Diskussion freuen.  :)


Viele Grüsse und besten Dank!

von . . (Gast)


Lesenswert?

Die FETs der Spannungswahl sind mit dem Programmierinterface verbunden? 
Das gibt böse Efekte wärend des Updates :D

von Chris (Gast)


Lesenswert?

Hallo,

vielen Dank für die Antwort, dass ist ein guter Hinweis.
Die Idee war, den ATtiny13 zu programmieren, solange die p-MOSFETs noch 
nicht bestückt sind. Dies setzt aber natürlich voraus, dass die Firmware 
bereits einwandfrei funkioniert. ;)

Eine Anpassung macht aber durchaus Sinn.

Grüße.

von . . (Gast)


Lesenswert?

Nja, man könnte die 1k Gatewiderstände zur Diskussion stellen. Braucht 
man die?
Du solltest vielleicht noch eine Diode über den LDO setzen, wenn du ihn 
rückwärtz mit Spannung versogrst

von Michael B. (laberkopp)


Lesenswert?

Chris schrieb:
> - Zur Unterstützung der verschiedenen Lichtschläuche soll die Schaltung
> mit einem +5V- oder +12V-Netzteil betrieben werden können

Hmm, es gibt sicher ganz andere Lichtschläuche als du derzeit kennst.

z.B. welche bei denen RGB eine gemeinsame Masse haben und plus 
geschaltet sehen wollen.

Und eben welche die nur Dauer+12V und Masse haben, und eine oder drei 
Steuerleitungen auf der Steuersignale übertragen werden, als ob es eine 
WS2812 ist.

Warum haben alle MOSFETs einen pull down (von niedrigen 10k, 100k täten 
es auch) nur die RGB MOSFETs nicht ?

Der MIDITreiber 74LS14 liefert nur 3.3V bei high. Ich würde die ganze 
Schaltung aus einem 3.3V Spannungsregler (dein MCP1703) versorgen und 
einem CMOS-Buffer nutzen, dann muss überhaupt kein Klimmzug gemacht 
werden bei der Spannungsumschaltung. Alle Bauteile von PLan2 inkl. 
Attiny entfallen komplett.

Natürlich muss man dann N-MOSFETs nutzen, die bei 2.7V voll 
durchschalten.

Relevant wäre für mich, daß die Schaltung nicht kaputt geht, auch wenn 
der RGB Strip irgendwelche Kurzschlüsse hat. Also eine Strombegrenzung 
auf jedem Ausgang, das kann durch eine Strombgernzung des Netzteils 
erfolgen die jeder MOSFET eingescahltet durchleiten könnte, oder eben 
eine zentrale Strombegrenzung durch einen HighSideSwitch wie ProFET, 
oder in dem jeder Ausgang einzeln eine Strombegrenzung hat.

Dann sind die Flanken auf den Leitungen recht schnell, das verursacht 
EMV Störungen bei langen Lichtschläuchen. Du hast keine Chance durch die 
EMV Prüfung zu kommen. Man müsste bremsen, das macht man normalerweise 
mit kleinen Spulen, die aber als Induktivität deine high speed 
Datenübertragung stören würden.

: Bearbeitet durch User
von Chris (Gast)


Lesenswert?

.                                                . schrieb im Beitrag 
#5474489:
> Nja, man könnte die 1k Gatewiderstände zur Diskussion stellen.
> Braucht man die?

Es gab einen Grund, warum ich diese hinzugefügt habe, weiß es leider 
gerade nicht mehr. Schaue das mal nach und paste es dann.


> Du solltest vielleicht noch eine Diode über den LDO setzen, wenn du ihn
> rückwärtz mit Spannung versogrst

Da stimme ich dir zu, eine Diode sollte noch hinzugefügt werden.


Michael B. schrieb:
> Chris schrieb:
>> - Zur Unterstützung der verschiedenen Lichtschläuche soll die Schaltung
>> mit einem +5V- oder +12V-Netzteil betrieben werden können
>
> Hmm, es gibt sicher ganz andere Lichtschläuche als du derzeit kennst.
>
> z.B. welche bei denen RGB eine gemeinsame Masse haben und plus
> geschaltet sehen wollen.
>
> Und eben welche die nur Dauer+12V und Masse haben, und eine oder drei
> Steuerleitungen auf der Steuersignale übertragen werden, als ob es eine
> WS2812 ist.

Muss ich recherchieren. Die Lichtschläuche, die ich bisher verwendet 
habe können damit betrieben werden. Natürlich kann es noch weitere 
geben. Etwas außer acht gelassen habe ich auch, dass bei dem WS2801 die 
Anschlüsse für Clock und Data je nach Schlauch unterschiedlich 
beschaltet sein können. Dies wird ebenfalls nicht unterstützt - zur Not 
muss man aktuell einen Adapter verwenden.


> Warum haben alle MOSFETs einen pull down (von niedrigen 10k, 100k täten
> es auch) nur die RGB MOSFETs nicht ?

Die RGB MOSFETs haben keinen Pull-Down, da die Schaltung bei denen 
garantieren kann, dass ein unsicherer Zustand beim Einschalten keine 
Probleme verursacht (Keine Spannung auf Lichtschlauch wegen des 
vorgeschaltetem High-Side-Switch). Oder ist hier ein Denkfehler 
vorhanden?

> Der MIDITreiber 74LS14 liefert nur 3.3V bei high.

Ist ausreichend für die Anwendung und wurde im Vorfeld erfolgreich 
getestet.

> Ich würde die ganze
> Schaltung aus einem 3.3V Spannungsregler (dein MCP1703) versorgen und
> einem CMOS-Buffer nutzen, dann muss überhaupt kein Klimmzug gemacht
> werden bei der Spannungsumschaltung. Alle Bauteile von PLan2 inkl.
> Attiny entfallen komplett.

Vollkommen richtig. Entscheidung dagagen war, dass bei 3,3V der 
ATmega32u4 max. mit 8 MHz bertrieben werden kann. Muss ich mit meiner 
Firmware checken, ob das ausreichen würde.

> Natürlich muss man dann N-MOSFETs nutzen, die bei 2.7V voll
> durchschalten.

Wäre bei den gewählten IRLML 0040 sogar gegeben (V_Threshold_max = 2,3V)

> Relevant wäre für mich, daß die Schaltung nicht kaputt geht, auch wenn
> der RGB Strip irgendwelche Kurzschlüsse hat. Also eine Strombegrenzung
> auf jedem Ausgang, das kann durch eine Strombgernzung des Netzteils
> erfolgen die jeder MOSFET eingescahltet durchleiten könnte, oder eben
> eine zentrale Strombegrenzung durch einen HighSideSwitch wie ProFET,
> oder in dem jeder Ausgang einzeln eine Strombegrenzung hat.

Gute Idee! Muss ich schauen, dass ich geeignete Komponenten finde. Bei 
den ProFETs habe ich keine Ahnung, wo ich die privat bekommen könnte. 
Als Alternative gibt es von Infineon  noch die BTS-Reihe.


> Dann sind die Flanken auf den Leitungen recht schnell, das verursacht
> EMV Störungen bei langen Lichtschläuchen. Du hast keine Chance durch die
> EMV Prüfung zu kommen. Man müsste bremsen, das macht man normalerweise
> mit kleinen Spulen, die aber als Induktivität deine high speed
> Datenübertragung stören würden.

Wie gesagt, dass Projekt ist rein privater Natur und wird nie vermarktet 
werden ohne ähnliches. Ich wüsste jetzt spontan auch nicht, wo ich so 
eine Prüfung machen (lassen) könnte.
Aber klar, bei langen Lichtschläuchen (ab 2m schätze ich) wird es bei 
seriellen Protokollen Probleme geben.


Vielen Dank für die ganzen Anmerkungen, die sind sehr hilfreich. :)

von Besserwisser (Gast)


Lesenswert?

Lighter = Feuerzeug

Warum nicht gleich auf Deutsch :)

MIDI Feuerzeug

Ich glaube jetzt verstehe ich es... die Tantals sorgen für 
Pyro-Spezialeffekte?

von Thomas E. (picalic)


Lesenswert?

Servus,

kleiner Hinweis zu MIDI I/O: ein normgerechter MIDI IN Anschluß hat 
keine Masse-Verbindung!
Und der Ausgang bzw. Thru sollte Open Collector sein (z.B. 74LS07).

Chris schrieb:
> Die Idee war, den ATtiny13 zu programmieren, solange die p-MOSFETs noch
> nicht bestückt sind. Dies setzt aber natürlich voraus, dass die Firmware
> bereits einwandfrei funkioniert. ;)

Wie wäre es mit einem Bootloader? Dann könnte man ggf. ein Update 
nachher z.B. über die MIDI-Schnittstelle machen. Evtl. wäre es dafür 
sinnvoll, die MIDI Thru Schaltung so zu modifizieren, daß diese auch als 
MIDI OUT nutzbar ist (TXD1).
Oder über USB - da wird der Bootloader aber wohl etwas mehr Speicher 
beanspruchen.

von Chris (Gast)


Lesenswert?

.                                                . schrieb im Beitrag 
#5474489:
> Nja, man könnte die 1k Gatewiderstände zur Diskussion stellen. Braucht
> man die?

Ich habe diesbzgl. nochmal nachgeschaut. Die Gate-Widerstände dienen 
dazu, den Aufladestrom der Gate-Kapazitäten zu limitieren. Der 
ATmega32u4 kann pro Pin max. 20 mA treiben. Ein Widerstandswert von 1k 
ist vermutlich zu übertrieben, 100 Ohm sollten es auch tun.

Thomas E. schrieb:
> Servus,
>
> kleiner Hinweis zu MIDI I/O: ein normgerechter MIDI IN Anschluß hat
> keine Masse-Verbindung!
> Und der Ausgang bzw. Thru sollte Open Collector sein (z.B. 74LS07).

Hallo Thomas, vielen Dank für deinen Beitrag. Hast du einen Link dazu, 
wo ich mir das einmal genauer anschauen könnte?
Ich habe mich für die aktuelle Schaltung hieran orientiert: 
http://www.personal.kent.edu/~sbirch/Music_Production/MP-II/MIDI/midi_physical_layer.htm

Die Masse-Verbindung dient lediglich als Schirm innerhalb des Kabels, da 
so ein MIDI-Kabel bei "normaler" Anwendung auch schon mal über mehrere 
Meter verlegt werden kann.


Thomas E. schrieb:
> Wie wäre es mit einem Bootloader? Dann könnte man ggf. ein Update
> nachher z.B. über die MIDI-Schnittstelle machen. Evtl. wäre es dafür
> sinnvoll, die MIDI Thru Schaltung so zu modifizieren, daß diese auch als
> MIDI OUT nutzbar ist (TXD1).
> Oder über USB - da wird der Bootloader aber wohl etwas mehr Speicher
> beanspruchen.

Die ATmega32u4 werden mit einem vorprogrammierten DFU Bootloader 
ausgeliefert - dieser soll auch genutzt werden.

Den ATtiny13 kann man laut Datasheet über zwei Wege programmieren: 
seriell (ISP) oder über "High-Voltage serial programming". Mit der 
zweiten Methode hab ich bisher keinerlei Erfahrung, warum ich die 
Programmierung über ISP gewählt habe.
Ich hatte überlegt, den ATtiny13 über den ATmega32u4 zu programmieren. 
Dies ist aber eine Art Heene-Ei-Problem. Der ATtiny13 muss die 
Betriebsspannung für den ATmega32u4 aktivieren, damit dieser den 
ATtiny13 programmieren kann. Dies kann der ATtiny13 aber nicht tun, ohne 
vorher programmiert worden zu sein.
Wie dem auch sei, da sich die Funktion des ATtiny13 voraussichtlich nie 
ändern wird, habe ich mich dazu entschlossen, diesen ein Mal beim 
Bestücken der Leiterplatte über ISP zu programmieren. :)

von Clemens L. (c_l)


Lesenswert?

Die Diode vor dem Optokoppler sollte man nicht einsparen; schon beim 
Einstöpseln des MIDI-Kabels könnte die LED durch ESD gebraten werden.

Thomas E. schrieb:
> ein normgerechter MIDI IN Anschluß hat keine Masse-Verbindung!

Oder besser: einen Kondensator (100 nF) zwischen Pin 2 und Masse (siehe 
"Electrical Specification Update [2014]" auf 
https://www.midi.org/specifications-old/item/the-midi-1-0-specification).

> Und der Ausgang bzw. Thru sollte Open Collector sein (z.B. 74LS07).

Und der H11L1 ist dafür stark genug; den Treiber kann man sich komplett 
sparen.

(Und die I/O-Pins des ATmega32U4 würden auch 5 mA ausgeben können.)

von Chris (Gast)


Lesenswert?

Clemens L. schrieb:
> Die Diode vor dem Optokoppler sollte man nicht einsparen; schon beim
> Einstöpseln des MIDI-Kabels könnte die LED durch ESD gebraten werden.

Guter Punkt, vielen Dank. Diese Diode habe ich in der Tat einfach 
vergessen. :)

von Michael B. (laberkopp)


Lesenswert?

Chris schrieb:
>> Natürlich muss man dann N-MOSFETs nutzen, die bei 2.7V voll
>> durchschalten.
>
> Wäre bei den gewählten IRLML 0040 sogar gegeben (V_Threshold_max = 2,3V)

NEIN, warum gibt es diesen Fehler beim Lesen eines Datenblatts zu 
hundertausenden ?
Unter V_Threshold ist ein MOSEFT garantiert AUS, da steht ja nicht ohne 
Grund 25uA dahinter.

Ein IRLML0040 ist ausschliesslich bei VGS = 4.5V garantiert EIN, mit ID 
bis 2.9A wie es bei RDS(on) im Datenblatt steht.

Nimm besser einen AO3400A.

von Thomas E. (picalic)


Lesenswert?

Chris schrieb:
> Hast du einen Link dazu,

Im Zweifelsfall das Original (www.midi.org). Das von Clemens genannte 
Update mit dem Kondensator kannte ich noch nicht, macht aber Sinn. 
Ebenso wie die Diode, deren Fehlen mir schlicht entgangen ist.

Einen Treiber (aber eben einen mit OC) würde ich aber trotzdem 
empfehlen, einfach, um die OC Eigenschaft zu erhalten. So ist man auch 
sicher, daß nichts unerwartetes passiert, wenn man mal versehentlich 
einen Ausgang auf den MIDI OUT/THRU stöpselt (z.B. Rückspeisung ATMegas 
über seine IO-Schutzdioden). Und einen ESD-Blitz würde ich ggf. auch 
lieber in einen Treiber-Ausgang schicken, als direkt in den IO-Pin des 
Controllers.

von Chris (Gast)


Lesenswert?

Michael B. schrieb:
> NEIN, warum gibt es diesen Fehler beim Lesen eines Datenblatts zu
> hundertausenden ?
> Unter V_Threshold ist ein MOSEFT garantiert AUS, da steht ja nicht ohne
> Grund 25uA dahinter.
>
> Ein IRLML0040 ist ausschliesslich bei VGS = 4.5V garantiert EIN, mit ID
> bis 2.9A wie es bei RDS(on) im Datenblatt steht.

Super, danke für die Erklärung. Das ist verständlich und 
nachvollziehbar. Wieder was gelernt. :)


Michael B. schrieb:
> Nimm besser einen AO3400A.

Als Alternative dazu habe ich den IRLML6346 rausgesucht. Dieser ist für 
mich einfacher verfügbar. Was den RDS_on-Wert angeht, ist dieser nicht 
so gut wieder der AO3400A, sollte aber für den Einsatz genügen.

von Clemens L. (c_l)


Lesenswert?

Thomas E. schrieb:
> Einen Treiber (aber eben einen mit OC) würde ich aber trotzdem
> empfehlen, einfach, um die OC Eigenschaft zu erhalten.

Der H11L1-Ausgang ist schon OC; das wäre nur notwendig, wenn der Ausgang 
vom µC kommt (und der µC-Pin nicht als OC konfiguriert werden kann).

von Chris (Gast)



Lesenswert?

Hallo Zusammen,

ich bedanke mich noch einmal bei allen für die hilfreichen Kommentare 
und Anmerkungen. Ich habe daraufhin das Konzept ein angepasst. Die 
aktuellen Bilder sind diesem Beitrag noch einmal beigefügt.

Die Änderungen belaufen sich hauptsächlich auf:
1. IRLML0040 ersetzt durch IRLML6346
2. ATtiny13 Pinning angepasst
3. Gate-Widerstände auf 100 Ohm reduziert
4. Dioden hinzugefügt am LDO und MIDI In
5. Schaltung abgeglichen mit dem Electrical Specification Update [2014] 
von MIDI.org
6. Idee für Messung der Stromaufnahme von Lichtschlauch hinzugefügt 
(Short Circuit Protection) sollte sich damit realisieren lassen

Falls jemanden noch weitere Punkte oder Ideen zu Schaltung einfallen, 
sind diese hier weiterhin sehr willkommen. :)

Beste Grüße.

von Clemens L. (c_l)


Lesenswert?

Das Electrical Specification Update hat Anpassungen für RF und 3,3 V, 
aber die anderen Bauteilvorschläge sind über 30 Jahre alt. Von der 1N914 
gibt es eine neuere Version, die 1N4148, mit niedrigerem Leckstrom. Und 
weil das heutzutage herstellungstechnisch kein Problem ist, bekommst du 
als "1N914" eine umgelabelte 1N4148, mit Aufpreis fürs Umlabeln. Das 
kannst du dir sparen. :)

Und um mich zu wiederholen:
> The buffer shown in the MIDI Out circuit driving Rc is optional and
> system-dependent

Vor 30 Jahren wäre ein 8051 nicht in der Lage gewesen, 5 mA zu treiben. 
Aber in deiner Schaltung ist der 74LS14 überflüssig.

: Bearbeitet durch User
von Äxl (geloescht) (Gast)


Lesenswert?

den IRF7416 gibt es als DoppelConfig alá IRF7343 als NP 
Pärchen.(nebenbei uralt das Teil, so wie die 1N914)
Ob deine FETs nun 20 oder 100milliohm RDS_on haben ist total egal.
ich würde lieber auf Typen zurückgreifen, die mehr als 20V Uds_max 
haben.
Auch würde ich nicht auf SOT23 setzen, sondern etweder altbacken auf SO8 
oder auf eben auf die neueren, 'coolen', aber trotzdem etwas größeren 
Packages. denn: bissl warm wirds dann doch immer. Muss man aber nicht.
Viel wichtiger ist das Bewustsein, das so ein FET kein Bipolartransistor 
ist, sonder wirklich blitzschnell jedwedem, auch noch so kurzem 
Nadelimpuls 'folgt'. und die Spannung am Knoten (also am Drain 
meinetwegen) ergibt sich nicht nur aus deiner VCC (12V-24V?), sondern 
aus der Stromanstiegsgeschwindigkeit (fallende Flanke PWM und der 
parasitären Induktivität). Hier würde ich auf jeden Fall 55Volt-Typen 
einsetzen oder die Stromänderungsgeschwindigkeit herabsetzen.
Auf Seite1 hast du eben den IRF7416 eingesetzt und auf Seite2 für 
gleichen Zweck etwas anders. Das hab ich nicht verstanden. Du?
Benenne bitte deine Bauteile mit Q1-Qn, R1-Rn, C1-Cn usw. damit man sich 
darauf berufen kann.
Pull-Downs direkt ans Gate nach Source. Überall. Gatewiderstände 100R 
(oder größer) überall, um die Schaltflanken im Griff zu haben. Null Ohm 
kann man immernoch einsetzen. ich würde mir sogar überlegen, parallel zu 
den "RGB-Fets" je eine Supressordiode und oder ein Snubber-Glied 
einzupflegen.

Viel Spass weiterhin.

von Äxl (geloescht) (Gast)


Lesenswert?

Achso: V_REF vom AtMegaXYZ niemals an VCC. 100nF gegen GND ist besser.
Jedes VCC-GND Pärchen am µC mit 100nF beschalten. Zusätzlich ne 5.1V 
Z-Diode. Falls da doch mal deine 12Volt andere Wege gehen, als Du Dir 
wünscht...

von A. (Gast)


Lesenswert?

Wo sind deine Koppelkondensatoren? AREF auf 5V, das macht man so 
eigentlich nicht oder?

von Thomas E. (picalic)


Lesenswert?

Clemens L. schrieb:
> Vor 30 Jahren wäre ein 8051 nicht in der Lage gewesen, 5 mA zu treiben.

wieviel der µC treiben kann, ist hier eh wurscht, weil es um MIDI THRU 
geht - und der µC ist hier nur Eingang.
BTW, die Optokoppler (wie z.B. PC900) konnten auch vor 30 Jahren schon 
deutlich mehr als 5mA. Da hätte man den THRU-Ausgang auch schon direkt 
anschließen können.

Um mich auch nochmal zu wiederholen:
Wenn es sich vermeiden lässt, sollte man keine direkte Verbindung von 
externen Steckern für lange Kabel zum µC führen. Eine Steckung im 
Betrieb mit ein bisschen statischer Aufladung und der Controller geht in 
den Latchup. Den OC-Treibertransistor lässt das i.d.R. kalt - und wenn's 
ihn doch dabei himmelt, muss man zur Reparatur bloß den Treiber 
austauschen.
Ersatzweise kann man natürlich in der Schaltung auch eine ordentliche 
ESD-Protektion vorsehen.
Und unter Open Collector verstehe ich auch etwas anderes, als einen 1k 
Pullup und die interne Diode nach VCC im Microcontroller. Klar, kann man 
auch so machen und wird wohl auch funktionionieren, entspricht aber nach 
meinem Verständnis nicht der MIDI Norm. Wenn einen das sowieso nicht 
interessirt, kann man genau genommen eher auf die galvanische Trennung 
verzichten und den Optokoppler weglassen - ist billiger und funktioniert 
auch, und Brummschleifen sind bei der Verwendung als Lichtsteuerung wohl 
kaum störend.

: Bearbeitet durch User
von Chris (Gast)


Lesenswert?

Vielen Dank für die Kommentare.
Meine Antworten stehen unter den entsprechenden Zitaten. :)

Äxl (geloescht) schrieb:
> den IRF7416 gibt es als DoppelConfig alá IRF7343 als NP
> Pärchen.(nebenbei uralt das Teil, so wie die 1N914)
> Ob deine FETs nun 20 oder 100milliohm RDS_on haben ist total egal.
> ich würde lieber auf Typen zurückgreifen, die mehr als 20V Uds_max
> haben.

Vielen Dank für die Info. Den IRF7416 habe ich hauptsächlich gewählt, da 
ich davon noch mehr als genug verfügbar habe. Den IRLML müsste man ggf. 
austauschen bzgl. der 20V Uds_max.. Alle sonstigen Transistoren haben 
30V Uds_max..

> Auch würde ich nicht auf SOT23 setzen, sondern etweder altbacken auf SO8
> oder auf eben auf die neueren, 'coolen', aber trotzdem etwas größeren
> Packages. denn: bissl warm wirds dann doch immer. Muss man aber nicht.

Durch die IRLML2246 sollte (hoffentlich) ein Strom von max. 200mA 
fließen. Hauptsächlich belastet mit voraussichtlich 3A wird der IRF7416. 
Dieser ist in einem SO-8 Gehäuse geplant.


> Viel wichtiger ist das Bewustsein, das so ein FET kein Bipolartransistor
> ist, sonder wirklich blitzschnell jedwedem, auch noch so kurzem
> Nadelimpuls 'folgt'. und die Spannung am Knoten (also am Drain
> meinetwegen) ergibt sich nicht nur aus deiner VCC (12V-24V?), sondern
> aus der Stromanstiegsgeschwindigkeit (fallende Flanke PWM und der
> parasitären Induktivität). Hier würde ich auf jeden Fall 55Volt-Typen
> einsetzen oder die Stromänderungsgeschwindigkeit herabsetzen.
> Auf Seite1 hast du eben den IRF7416 eingesetzt und auf Seite2 für
> gleichen Zweck etwas anders. Das hab ich nicht verstanden. Du?

Siehe oben. Auf Seite 2, die IRLML2246 werden nicht so stark belastat, 
wobei die Last sich nur gering ändern sollte. LEDs, die die ganze Zeit 
An-und-Aus gehen hängen hinter dem IRF7416.

Die Betriebsspannung für die Schaltung soll 5V oder 12V betragen. Für 
den privaten Gebrauch kenne ich keine Lichtschläuche, die man damit 
nicht betreiben könnte.

> Benenne bitte deine Bauteile mit Q1-Qn, R1-Rn, C1-Cn usw. damit man sich
> darauf berufen kann.

Ja, vollkommen richtig. Das Konzept ist meinem Zeichenprogramm 
entstanden. Da die Nummerierung dabei nicht automatisiert erzeugt wird 
habe ich die hier weggelssen. Im Schematic wird dies er Fall sein - 
finde ich aber lange nicht so übersichtlich. :)

> Pull-Downs direkt ans Gate nach Source. Überall. Gatewiderstände 100R
> (oder größer) überall, um die Schaltflanken im Griff zu haben. Null Ohm
> kann man immernoch einsetzen. ich würde mir sogar überlegen, parallel zu
> den "RGB-Fets" je eine Supressordiode und oder ein Snubber-Glied
> einzupflegen.

Danke für den Hinweis. Ich werde mir dies genauer anschauen.

Äxl (geloescht) schrieb:
> Achso: V_REF vom AtMegaXYZ niemals an VCC. 100nF gegen GND ist besser.
> Jedes VCC-GND Pärchen am µC mit 100nF beschalten. Zusätzlich ne 5.1V
> Z-Diode. Falls da doch mal deine 12Volt andere Wege gehen, als Du Dir
> wünscht...

Vollkommen richtig. Ist in den Konzept nicht eingezeichnet.

A. schrieb:
> Wo sind deine Koppelkondensatoren? AREF auf 5V, das macht man so
> eigentlich nicht oder?

Auch hier vollkommen richtig. Wie gesagt, einige Sachen sind nicht 
eingezeichnet. Der ATmega32u4 hat z.B. auch keinen Masseschluss.


Thomas E. schrieb:
> Um mich auch nochmal zu wiederholen:
> Wenn es sich vermeiden lässt, sollte man keine direkte Verbindung von
> externen Steckern für lange Kabel zum µC führen. Eine Steckung im
> Betrieb mit ein bisschen statischer Aufladung und der Controller geht in
> den Latchup. Den OC-Treibertransistor lässt das i.d.R. kalt - und wenn's
> ihn doch dabei himmelt, muss man zur Reparatur bloß den Treiber
> austauschen.
> Ersatzweise kann man natürlich in der Schaltung auch eine ordentliche
> ESD-Protektion vorsehen.

Muss ich mir anschauen. Habe ich bisher nichts mit gemacht - wie gesagt, 
ist alles für den privaten Bereich. :)


> Und unter Open Collector verstehe ich auch etwas anderes, als einen 1k
> Pullup und die interne Diode nach VCC im Microcontroller. Klar, kann man
> auch so machen und wird wohl auch funktionionieren, entspricht aber nach
> meinem Verständnis nicht der MIDI Norm.

Nein, den MIDI-Norm entspricht es nicht vollkommen. Ich weiß aber aus 
vorherigen Tests, dass die Schaltung so funktionieren wird - zuverlässig 
über längere Zeiten von einigen Stunden hinweg. Für meine Anwendung 
vollkommen ausreichend.


> Wenn einen das sowieso nicht interessirt, kann man genau genommen eher
> auf die galvanische Trennung verzichten und den Optokoppler weglassen -
> ist billiger und funktioniert auch, und Brummschleifen sind bei der
> Verwendung als Lichtsteuerung wohl kaum störend.

Interessieren tut es mich schon, darum habe ich das Konzept hier 
gepostet und bin allen Kommentaren und Anerkungen sehr dankbar und 
versuche diese umzusetzten.
Einige er Bauteile aus dem MIDI-Norm kann ich aber nur sehr schwer 
beziehen, was es für mich sehr kompliziert macht, die Schaltung nach 
Norm als Privat-Anwender umzusetzen. Einige Abstriche muss ich daher 
machen.

Mein Ziel ist es aber, die Schaltung so robust und sicher wie möglich 
auszulegen. Daher lese ich mich in die Sachen ein und versuche zu 
verstehen, was wie wofür gut ist. :)

von Thomas E. (picalic)


Angehängte Dateien:

Lesenswert?

Servus Chris,

Chris schrieb:
> Einige er Bauteile aus dem MIDI-Norm kann ich aber nur sehr schwer
> beziehen,

es ist ja auch ok, andere (ggf. auch modernere) Bauteiletypen zu nehmen, 
als in der alten MIDI Norm angegeben waren, solange die Funktion 
äußerlich gleich ist. Den 74LS07 kannst Du mit "schwer zu beziehen" aber 
wohl eher nicht meinen, oder? Den gibt's bei Reichelt für 66 Cent. Aber 
man braucht davon ja nur einen der 6 Treiber, da könnte man auch 
ersatzweise zwei NPN-Transistoren nehmen. Oder Du lässt den LS14 (falls 
Du disen teilweise noch für andere Zwecke brauchst) und schaltest nur 
einen NPN als OC-Treiber hinter ein LS14-Gate.

von Chris (Gast)


Lesenswert?

Thomas E. schrieb:
> es ist ja auch ok, andere (ggf. auch modernere) Bauteiletypen zu nehmen,
> als in der alten MIDI Norm angegeben waren, solange die Funktion
> äußerlich gleich ist. Den 74LS07 kannst Du mit "schwer zu beziehen" aber
> wohl eher nicht meinen, oder? Den gibt's bei Reichelt für 66 Cent.

Hallo Thomas,

danke für deine, den 74LS07 meine ich in der Tat nicht. :)
Ich meinte dies bzgl. Ferrit-Dämpfungsglieder oder ähnliches.

> Aber man braucht davon ja nur einen der 6 Treiber, da könnte man auch
> ersatzweise zwei NPN-Transistoren nehmen. Oder Du lässt den LS14 (falls
> Du disen teilweise noch für andere Zwecke brauchst) und schaltest nur
> einen NPN als OC-Treiber hinter ein LS14-Gate.

Danke auch für den Schaltungshinweis. Finde ich super und schaue ich mir 
genauer an.
Hast du diese Schaltung für einen ähnlichen Zweck schon einmal 
eingesetzt oder für diesen Beitrag frisch ausgedacht? :)

von Thomas E. (picalic)


Lesenswert?

Chris schrieb:
> oder für diesen Beitrag frisch ausgedacht?

Na, viel ausdenken muss man sich für diese primitive Schaltung ja nicht 
:)
Um es bildlich darzustellen habe ich die Schaltung aus zwei Transistoren 
und zwei Widerständen schnell mal im LTSpice zusammengeklickt, und (da 
es nun  schon im Sim eingegeben war) auch gleich mal simuliert. Die 
verlängerte Ausschaltzeit durch die Sättigung von Q2 hat mich dabei 
etwas gestört, weshalb dann noch die Schottky-Diode dazukam.

von Clemens L. (c_l)


Lesenswert?

Chris schrieb:
> Ich meinte dies bzgl. Ferrit-Dämpfungsglieder oder ähnliches.

Ferrite mit 1 kΩ @ 100 MHz gibt es viele (allerdings nicht bei Händlern, 
die sich mehr auf Hobbyisten konzentrieren):
https://www.digikey.de/products/en/filters/ferrite-beads-and-chips/841?pv2280=u1+kOhms+%40+100MHz&FV=1c0002%2Cffe00349&ColumnSort=1000011&stock=1
https://www.mouser.de/Passive-Components/EMI-Filters-EMI-Suppression/Ferrites/Ferrite-Beads/_/N-bw7paZ1yzvvqx?P=1yzgm13Z1z0wped&Ns=Pricing%7c0

Allerdings ist MIDI aber eher unempfindlich; EMI-Probleme sind bei den 
hohen Strömen zum RGB-Strip wahrscheinlicher.

von Chris (Gast)


Lesenswert?

Thomas E. schrieb:
> Na, viel ausdenken muss man sich für diese primitive Schaltung ja nicht
> :)
> Um es bildlich darzustellen habe ich die Schaltung aus zwei Transistoren
> und zwei Widerständen schnell mal im LTSpice zusammengeklickt, und (da
> es nun  schon im Sim eingegeben war) auch gleich mal simuliert. Die
> verlängerte Ausschaltzeit durch die Sättigung von Q2 hat mich dabei
> etwas gestört, weshalb dann noch die Schottky-Diode dazukam.

Super, vielen Dank. Ich habe die Schaltung mal mit eingeplant und werde 
diese ausprobieren und vermessen. Bis zu einem PCB wird es von meiner 
Seite aus noch etwas dauern, da ich es halt noch machen muss. :)


Clemens L. schrieb:
> Ferrite mit 1 kΩ @ 100 MHz gibt es viele (allerdings nicht bei Händlern,
> die sich mehr auf Hobbyisten konzentrieren):
> 
https://www.digikey.de/products/en/filters/ferrite-beads-and-chips/841?pv2280=u1+kOhms+%40+100MHz&FV=1c0002%2Cffe00349&ColumnSort=1000011&stock=1
> 
https://www.mouser.de/Passive-Components/EMI-Filters-EMI-Suppression/Ferrites/Ferrite-Beads/_/N-bw7paZ1yzvvqx?P=1yzgm13Z1z0wped&Ns=Pricing%7c0

Ja genau. Die genannten Händler liefern halt nicht an Privatpersonen. 
Ich brauche halt auch nur eine Anzahl in der Größenordnung von 10 Stück 
voraussichtlich.


> Allerdings ist MIDI aber eher unempfindlich; EMI-Probleme sind bei den
> hohen Strömen zum RGB-Strip wahrscheinlicher.

Da hast du vermutlich recht. Ich habe verschiedene LED-Strips in anderen 
Hobby-Projekten verwendet - meist auf Lochraster. Laufen tun die 
Schaltugen wohl. Wie das etwas kompakter auf einem PCB sein wird, muss 
ich schauen. Sollte es garnicht funkionieren, kann man zumindest wieder 
was lernen. :)

von Äxl (geloescht) (Gast)


Lesenswert?

Chris schrieb:
> wobei die Last sich nur gering ändern sollte. LEDs, die die ganze Zeit
> An-und-Aus gehen hängen hinter dem IRF7416.

Hmm - naja. Die R, G und B Stränge werden sicherlich über PWM (OC4A, B, 
D) angesteuert. Bei JEDER fallenden Flanke hast Du eine Laständerung von 
Null auf Hundert. Es geht ja nicht um die paar Milliampere, sondern um 
die maximale Spannung, die hier in jenem Moment am Drain der IRLML6346 
entsteht. Das geht schnell weit über die maximale U_ds hinaus. Viele der 
FETs sind zwar für den Avalachebetrieb zugelassen, aber hier hilft es 
wirklich die Schaltflanken nicht "zackiger" zu machen, als unbedingt 
nötig.

von Chris (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Chris schrieb:
>> wobei die Last sich nur gering ändern sollte. LEDs, die die ganze Zeit
>> An-und-Aus gehen hängen hinter dem IRF7416.
>
> Hmm - naja. Die R, G und B Stränge werden sicherlich über PWM (OC4A, B,
> D) angesteuert.

Vollkommen richtig.

> Bei JEDER fallenden Flanke hast Du eine Laständerung von Null auf Hundert.
> Es geht ja nicht um die paar Milliampere, sondern um die maximale Spannung,
> die hier in jenem Moment am Drain der IRLML6346 entsteht. Das geht schnell
> weit über die maximale U_ds hinaus. Viele der FETs sind zwar für den
> Avalachebetrieb zugelassen, aber hier hilft es wirklich die Schaltflanken
> nicht "zackiger" zu machen, als unbedingt nötig.

Da gebe ich dir recht. Was würdest du vorschlagen? Die PWM-Signale 
mittels eines Kondensators etwas zu glätten, bspw.? :)

von Clemens L. (c_l)


Lesenswert?

Chris schrieb:
> Die genannten Händler liefern halt nicht an Privatpersonen.

Doch, das tun sie (auch Farnell, und RS auf 
https://www.rsonline-privat.de/).  Aber die Versandkosten werden dir 
nicht gefallen. Deshalb gibt es auch 
Beitrag "[Biete] Sammelbestellung de.Mouser.com 2018".

> Was würdest du vorschlagen? Die PWM-Signale
> mittels eines Kondensators etwas zu glätten, bspw.?

[X] Niedrige Impedanz -> Ferrit
[ ] Hohe Impedanz     -> Kondensator

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.