Gate to Trigger

Kann man immer mal brauchen: Ein Baustein, der ein beliebig breites Gate-Signal in einen kurzen Trigger-Impuls umwandelt (Besonders, wenn man bei billigen Drum-Modulen keine zwei Schläge hören will, weil die abfallende Flanke nur ungenügend oder gar nicht rausgefiltert wird …)

Hier auch gleich das Schaltbild des kleinen Rackers. Die Impulsbreite lässt sich mittels eines Jumpers auf der Platine (oder mittels eines kleinen Umschalters mit Mittelstellung AUS) zwischen 5, 10, 15 Millisekunden umschalten. Mehr als einen ATTiny 45/85 braucht es dafür nicht. Der Code für den ATTiny ist wie immer überschaubar und findet sich hier. Wie funktioniert es: Ein Gate-Impuls (ansteigende Flanke, idealerweise mit TTL-Pegel) löst einen Interrupt aus, der an Pin 5 und 6 Triggerimpulse ausgibt – einmal Positiv und einmal negiert, je nach weiterer Verwendung. Das Widerstandsnetzwerk an Pin 3 des ATTiny ist so berechnet, dass die Variable impulseLength je nach Stellung des Jumpers/ Schalters 1, 2 oder 3 ergibt und als Multiplikator mit 5000 (µs) besagte 5, 10, 15 Millisekunden breite Trigger-Impulse erzeugt. Damit das genau so funktionieren kann, sollte die Versorgungsspannung ziemlich genau 5 Volt betragen und die Toleranz der Widerstände 1% nicht überschreiten. Natürlich sind auch andere Impulsbreiten vorprogrammierbar.

Leider ist der Trigger-Impuls kleiner als 5 Volt und wird somit nicht von allen nachgeschalteten Modulen als solcher erkannt. In diesen Fällen muss der HIGH-Level bei Bedarf mit einem Pegelwandler entsprechenden angehoben werden. Dies lässt sich mit wenigen zusätzlichen Bauteilen unter Zuhilfenahme der +12 Volt auf dem Systembus einfach bewerkstelligen.

Nachtrag 2020-05-07: Gestern habe ich mir ein Clock-Modul gebaut, dass via AD9850 und Encoder quartzgenaue Trigger-Impulse zwischen 10-240 BPM generiert. Und weil ich gleich auch Takte mit doppelter und vierfacher Taktfrequenz haben wollte, habe ich den Binärteiler 74HCT4040 genommen und an jeden der entsprechenden Ausgänge einen kleinen Gate2Trigger-Baustein geschaltet. Jetzt hatte ich erwartet, dass die LEDs im Takte eines Binärteilers ticken. Aber Pustekuchen: Wildes, scheinbar unsynchrones Rumgeblinke, als Clock mit Divider nicht zu gebrauchen. Ein Blick ins Datenblatt des 74HCT4040, genauer gesagt ins Ablaufdiagramm desselben, brachte nach längerer Fehlersuche und Nachdenken schließlich die Erleuchtung. FlipFlops in TTL-Logik schalten auf die negative, die absteigende Flanke eines Impulses, nicht auf die ansteigende. Auf der abfallenden Flanke sind auch alle Ausgänge des Bausteins snychron. Ende vom Lied: Eine Zeile im Sketch des ATTiny85 muss geändert werden. Einfach die Zeile

attachPCINT(digitalPinToPCINT(gateInPin), ratio, RISING);

ersetzen durch

attachPCINT(digitalPinToPCINT(gateInPin), ratio, FALLING);

und alles läuft wie gewünscht …

Hinterlasse einen Kommentar

Du kannst diese HTML tags benutzen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.