Vielleicht ist die Idee völliger Blödsinn und ich kann deshalb nichts
dazu finden, aber ich frag mich, ob sich nicht ein relativ simpler
ADSR-Generator realisieren ließe, bei dem die einzelnen Phasen durch
Laden und Entladen mit Potis und einem Kondensator stattfinden, aber ein
Controller sozusagen eine State Machine darstellt, die zwischen den
Phasen umschaltet.
Was ich finde, sind entweder rein analoge Schaltungen, die einigermaßen
aufwändig sind, meist auf 7555er Basis oder rein digitale mit
DA-Wandler.
Hab noch keine präzise Vorstellung, aber ich dachte grob, ein attiny 85
oder sowas müsste gehen, bei dem der ADC das Spannungslevel auf dem
Kondensator misst und entprechend auf die anderen Potis umschaltet um
die Spannungzu halten bzw. auf Entladung umzuschalten.
Meine Befürchtung ist, dass ich soviel Puffern muss um die IO-Pins zu
schützen und jede Menge Dioden brauche, dass es am Ende genauso
aufwändig wird wie die rein analogen Schaltungen.
Ok...vielleicht besser als Frage formuliert :)
Ist es total abwegig so etwas zu bauen? Falls nicht, gibt es irgendwo
vergleichbare Schaltungen, an denen man sich orientieren könnte?
lois schrieb:> Was ich finde, sind entweder rein analoge Schaltungen, die einigermaßen> aufwändig sind, meist auf 7555er Basis oder rein digitale mit DA-Wandler.
Und was ist jetzt dein Plan? Warum meinst du, dass etwas, was mit einem
555 nach deinem Gefühl schon kompliziert ist, dann mit einem µC
einfacher sein könnte?
Und wenn schon ein µC in der Schaltung drin ist, dann ist der
eigentliche Witz, dass man mit diesem beliebige zeitliche Abläufe
generieren, speichern und auf Knopfdruck exakt gleich wieder abrufen
kann.
So einen ADSR-Generator hätte sich Robert Moog gewünscht...
> Hab noch keine präzise Vorstellung> ...> Meine Befürchtung ist
Ich würde mal sagen, du solltest deine Vorstellung konkretisieren und
dann können wir auf mögliche Probleme eingehen.
Aber derzeit ist es, wie wenn du befüchtest überfahren zu werden, obwohl
dein Plan eigenlich nur ist, beim Bäcker gegenüber Brötchen zu holen.
mir ist schon klar, dass ich mit dem Ansatz nicht wirklich die Vorteile
eines µC ausnutze und "sooooo kompliziert" finde ich die
555er-Schaltungen jetzt auch nicht. Ich will auch nicht irgendwas
überlegenes bauen. Es ist nur so ein Gedanke der mir kam (unausgereift
und naiv) und ich hab noch nix dazu gefunden.
lois schrieb:> bei dem die einzelnen Phasen durch> Laden und Entladen mit Potis und einem Kondensator stattfinden, aber ein> Controller sozusagen eine State Machine darstellt, die zwischen den> Phasen umschaltet.
Was soll denn dann der MC machen, wenn doch alles wieder analog sein
soll?
Wie willst Du den MC steuern, d.h. die einzelnen Zeiten eingeben?
Moin,
So ausm Bauch raus wuerd' ich mal mutmassen, dass es mittels eines
Attiny, oder vergleichbarem, locker moeglich sein sollte, den kompletten
Huellkurvengenerator nachzubilden. Ausgang halt ueber was PWM artiges,
mit noch 1-2 RCs als Tiefpassfilter. Einstellen der Parameter z.b. ueber
seriell oder i2c-artig oder spi-artig.
Also:
1 Pin Eingang; Taste gedrueckt oder nicht
2 Pins I/O: Config interface
1 Pin PWM Ausgang
Fertsch.
Gruss
WK
Peter D. schrieb:> lois schrieb:>> bei dem die einzelnen Phasen durch>> Laden und Entladen mit Potis und einem Kondensator stattfinden, aber ein>> Controller sozusagen eine State Machine darstellt, die zwischen den>> Phasen umschaltet.>> Was soll denn dann der MC machen, wenn doch alles wieder analog sein> soll?> Wie willst Du den MC steuern, d.h. die einzelnen Zeiten eingeben?
die Zeiten werden schon analog durch 4 Potis gesetzt, die den Ladestrom
des Kondensators steuern. Der Controller soll zwischen verschiedenen
Lade-/Enladekreisen hin und her schalten. Und an seinem ADC soll er die
Spannungen messen um zu wissen, wann er umschaltet. Außerdem geht das
Gatesignal an den Controller um ihn entsprechend anzuweisen, wann attack
beginnt und sustain endet.
Dergute W. schrieb:> Moin,>> So ausm Bauch raus wuerd' ich mal mutmassen, dass es mittels eines> Attiny, oder vergleichbarem, locker moeglich sein sollte, den kompletten> Huellkurvengenerator nachzubilden. Ausgang halt ueber was PWM artiges,> mit noch 1-2 RCs als Tiefpassfilter. Einstellen der Parameter z.b. ueber> seriell oder i2c-artig oder spi-artig.> Also:> 1 Pin Eingang; Taste gedrueckt oder nicht> 2 Pins I/O: Config interface> 1 Pin PWM Ausgang> Fertsch.>> Gruss> WK
ok, wenn das geht. Hat immerhin genug ADC-Ports um 4 Potis zu messen.
Ich war davon ausgegangen, dass ich schon mindestens einen DAC-IC
gebraucht hätte und auch einen Quarz.
Moin,
lois schrieb:> Hat immerhin genug ADC-Ports um 4 Potis zu messen.
Das hatte ich jetzt nicht mal aufm Schirm, ich ging davon aus, die Werte
ueber das Config interface in den Baustein zu schreiben. Dann wuerde das
mit so'nem 8-Fuessler gehen. Wenn du wirklich 4 Potis anschliessen
willst, muss es wahrscheinlich ein Baustein mit mehr als 8 Beinchen
sein.
> Ich war davon ausgegangen, dass ich schon mindestens einen DAC-IC> gebraucht hätte und auch einen Quarz.
Quarz nur, wenn die Zeiten wirklich quarzstabil sein muessen. Und DAC -
naja, klar kann man machen, ich wuerd' davon ausgehen, dass es per
SigmaDelta oder von mir aus auch PWM ausreichend gut werden koennte.
Also ohne extra DAC.
Aber ich schwaetz grad nur dumm daher, hab sowas noch nicht tatsaechlich
gebaut.
Gruss
WK
lois schrieb:> dass ich schon mindestens einen DAC-IC gebraucht hätte
Ja, so einer mit 6 Pins für nen Euro vom Schlage eines MCP4726 reicht da
locker aus. Mit PWM würde ich das nicht machen, weil die unnötig
hochfrequent sein muss, damit nicht irgendwelche Modulationseffekte
auftreten.
> und auch einen Quarz.
Wozu? Das Timing wird ja eh "nach Gehör" eingestellt.
Dergute W. schrieb:> Moin,>> lois schrieb:>> Hat immerhin genug ADC-Ports um 4 Potis zu messen.> Das hatte ich jetzt nicht mal aufm Schirm, ich ging davon aus, die Werte> ueber das Config interface in den Baustein zu schreiben. Dann wuerde das> mit so'nem 8-Fuessler gehen. Wenn du wirklich 4 Potis anschliessen> willst, muss es wahrscheinlich ein Baustein mit mehr als 8 Beinchen> sein.
ADC0-ADC3 für die Potis und PB0 und PB1 für Gate-Input und PWM-output.
Oder was überseh ich? Klar, einen DAC krieg ich dann mit dem 8-Beiner
natürlich nicht mehr angesteuert.
lois schrieb:> ADC0-ADC3 für die Potis und PB0 und PB1 für Gate-Input und PWM-output.> Oder was überseh ich? Klar, einen DAC krieg ich dann mit dem 8-Beiner> natürlich nicht mehr angesteuert.
Wo war jetzt die Anforderung, dass das mit einem 8-beinigen µC gehen
muss.
Oder andersrum: wer Platz für 4 Potis hat, der hat auch Platz für z.B.
einen Tiny84 im 14er-SO Gehäuse. Das ist kleiner als ein alter 555 im
DIL-Gehäuse. Und die "ich hab zu wenig Ports" Diskussion ist unnötig.
Lothar M. schrieb:> lois schrieb:>> ADC0-ADC3 für die Potis und PB0 und PB1 für Gate-Input und PWM-output.>> Oder was überseh ich? Klar, einen DAC krieg ich dann mit dem 8-Beiner>> natürlich nicht mehr angesteuert.> Wo war jetzt die Anforderung, dass das mit einem 8-beinigen µC gehen> muss.
hatte eingangs den Attiny 85 erwähnt. Harte Anforderung ist das nicht,
aber ich hab davon ein paar rumliegen.
lois schrieb:> mir ist schon klar, dass ich mit dem Ansatz nicht wirklich die> Vorteile eines µC ausnutze und "sooooo kompliziert" finde ich die> 555er-Schaltungen jetzt auch nicht. Ich will auch nicht irgendwas> überlegenes bauen. Es ist nur so ein Gedanke der mir kam (unausgereift> und naiv) und ich hab noch nix dazu gefunden.
Ah ja. Dir war also langweilig und du dachtest dir, uns wäre auch allen
langweilig und hast deswegen deine unausgegorene Idee ins Forum gerotzt.
Habe ich das so richtig verstanden?
lois schrieb:> hatte eingangs den Attiny 85 erwähnt. Harte Anforderung ist das nicht,> aber ich hab davon ein paar rumliegen.
Ja, das paßt ins Bild.
Axel S. schrieb:> lois schrieb:>> mir ist schon klar, dass ich mit dem Ansatz nicht wirklich die>> Vorteile eines µC ausnutze und "sooooo kompliziert" finde ich die>> 555er-Schaltungen jetzt auch nicht. Ich will auch nicht irgendwas>> überlegenes bauen. Es ist nur so ein Gedanke der mir kam (unausgereift>> und naiv) und ich hab noch nix dazu gefunden.>> Ah ja. Dir war also langweilig und du dachtest dir, uns wäre auch allen> langweilig und hast deswegen deine unausgegorene Idee ins Forum gerotzt.>> Habe ich das so richtig verstanden?
Ganz genau! Und du bestätigst die Annahme vollkommen, wie man sieht.
Er koennte ja einen Z80 nehmen. Da kann er dann mit einer CTC
einen Systimer laufen lassen, und mit einigen PIOs und DACs
die ADSR-Werte ausgeben.
So hat das z.B. Korg in seinen fruehen polyphonen Synthies auch
gemacht. Kann also nicht ganz verkehrt sein.
... schrieb:> Er koennte ja einen Z80 nehmen. Da kann er dann mit einer CTC> einen Systimer laufen lassen, und mit einigen PIOs und DACs> die ADSR-Werte ausgeben.
Und waehrend Villabajo noch Busse routet und loetet, dudelt Villariba
schon ein Liedchen...
SCNR,
WK
> SCNR
Immerhin hatte ich schon ganz am Anfang auf ein paar
gut ausgewaehlte 4000er verwiesen.
Damit waere das, inklusive Schaltungsentwurf, bereits
fertig gewesen.
Aber das scheint ja heute wohl zu einfach zu sein.
lois schrieb:> Hab noch keine präzise Vorstellung, aber ich dachte grob, ein attiny 85> oder sowas müsste gehen, bei dem der ADC das Spannungslevel auf dem> Kondensator misst und entprechend auf die anderen Potis umschaltet um> die Spannungzu halten bzw. auf Entladung umzuschalten.
Klar geht das irgendwie. Man könnte alle digitalen Komponenten sowie die
Komparatoren (einen uC vorausgesetzt, der welche hat - den ADC würde ich
dazu nicht bemühen) könnten vom uC erschlagen werden. Man bräuchte
ausserdem immer noch einen OP und drei Analogschalter.
Ergänzung zu meinem Beitrag:
nach kurzem Blick ins Datenblatt hätte mir der attiny85 genau einen
IO-Pin zu wenig. Schade, einen Komparator hat er, bei dem man den
N-Eingang muxen kann, daran wäre es nicht gescheitert.
Sven D. schrieb:> Hallo TO> hast du dir schon https://github.com/m0xpd/ADSRduino angeschaut?
das genau nicht, aber was ähnliches. Mit dem MCP 4822 hab ich mal einen
LFO gebaut, mit so 'ner Art wavetable. Das Prinzip ließe sich vmtl. auch
auf einen ADSR übertragen. Aber ich wollte eigentlich ohne DAC-Chip
auskommen. Aber vielleicht lass ich's mit meiner Schnappsidee lieber und
bleib konventionell unterwegs.
> signal-processing-on-arduino
Die besten ADSRs lassen sich mit FPGAs bauen.
Wenn es sein muss, auch einige hundert davon (oder noch ein paar mehr).
Und präzise bis auf die Nanosekunde und das letzte Bit!
Warum sollte man sich mit weniger zufriedengeben.
Axel R. schrieb:> http://m0xpd.blogspot.com/2017/02/signal-processing-on-arduino.html> Bau das doch. Ist total einfach und funktioniert. Erfüllt alles, was du> wolltest, wenn auch anders, als du es bauen wolltest.
ist ähnlich wie von Sven vorgeschlagen. Das Prinzip hatte ich aber auch
schon selbst auf dem Schirm. Wird wohl auch drauf hinauslaufen. Nur mit
dem 8-Beinigen AVR wird es dann leider nix mit DAC ansteuern und
gleichzeitig die Potis auslesen.
Lothar M. schrieb:> lois schrieb:>> dass ich schon mindestens einen DAC-IC gebraucht hätte> Ja, so einer mit 6 Pins für nen Euro vom Schlage eines MCP4726 reicht da> locker aus. Mit PWM würde ich das nicht machen, weil die unnötig> hochfrequent sein muss, damit nicht irgendwelche Modulationseffekte> auftreten.
wenn's nötig ist um Modulationseffekte zu vermeiden ist es ja nicht
unnötig :-D. Ist das denn so ein Problem hier?