La struttura dei 3 VCO è molto simile a quella utilizzata sul FatMan della PAiA, cioè viene usato come comparatore a finestra un NE555. Come detto nella descrizione del MIDI Keyboard Interface, non vengono impiegati convertitori esponenziali per pilotare gli oscillatori, la tensione di controllo viene generata da un microcontrollore con i valori corretti.
Ogni oscillatore può operare nei range:
- 2′
- 4′
- 8′
- 16′
- 32′
Per ogni oscillatore sono presenti le seguenti forme d’ onda:
- Ramp
- Triangle
- PWM
- Sine
- Xor (solo oscillatori 2 e 3)
Per gli oscillatori 2 e 3, è inoltre implementata il controllo di detuning in un range di ± 7 semitoni.
Dimensionamento
Tutta la parte relativa alla progettazione e la scelta dei componenti, l’ ho racchiusa in un documento:
- Germ-VCO (documento in formato PDF)
Schema elettrico
Il documento di seguito è lo schema elettrico del circuito:
- Germ-VCO_SCH (documento in formato PDF)
Realizzazione
Ho implementato il tutto su un circuito stampato, utilizzando la tecnica del press’ n peel, devo dire con pessimi risultati, questo modo di costruire i cs va probabilmente bene per dimensioni contenute, nel mio caso 200×150, ha generato parecchi errori che si possono vedere nella foto:
E’ possibile vedere quante filature ho dovuto usare per ovviare agli errori.
Collaudo
Per verificare il funzionamento della scheda, ho utilizzato il MIDI Keyboard controller, precedentemente sviluppato, per generare le tensioni di controllo, il tutto pilotato da una tastiera MIDI.
La taratura l’ ho fatta sul Do centrale, dopodichè ho misurato il valore in frequenza di tutti i Do, per ogni piedaggio:
Si può notare come all’ aumentare della frequenza aumenta l’ errore, questo è dovuto all’ offset introdotto dal tempo di reset, quello che invece non dovrebbe esserci è un aumento dell’ errore diminuendo di frequenza. Il problema l’ ho individuato nelle correnti di leakage del multiplexer di ottava presente sulla Keyboard Controller come schematizzato nella figura di seguito:
In pratica gli interruttori aperti lasciano comunque passare un piccolissima corrente che si va a sommare a quella del partitore, generando un errore nella tensione di controllo. Ovviamente il caso peggiore è quello in cui viene usata l’ ottava più bassa in quanto si ha la somma di tutte le correnti di perdita. Per ovviare a questo inconveniente è bastato mettere in parallelo alla resistenza in questione (in realtà sono due in parallelo “R41 e R42”) un’ altra resistenza da 47,5k (“RM1”) in modo da fare rientrare il valore di tensione. Questa modifica incide poco o nulla sui valori di tensione delle altre ottave.
Un altro inconveniente è dovuto al disallineamento in frequenza dei tre VCO, dovuta alla differenza tra le tensioni di offset di ingresso dei vari operazionali (piuttosto contenuto comunque). Non è indispensabile avere 0V di offset, piuttosto che siano uguali per i tre oscillatori, li ho selezionati semplicemente misurando la tensione tra i due pin di ingresso con un normalissimo multimetro.
Dopo questi accorgimenti ho rimisurato le frequenze e questi sono i risultati:
Anche la misura di linearità è piuttosto buona in quanto si mantiene sotto lo 0,5% entro tutto il range.
Misure
Di seguito riporto qualche misura presa con la versione dimostrativa di un audio analyzer:
- Rampa
- Triangolare
- Sinusoide
- Modulazione
Un po’ analisi spettrali:
- Rampa
- Triangolare
- Sinusoidale
Si può notare come la seconda armonica sia solo 40dB sotto la fondamentale, come pure la quinta. Non è insomma una sinusoide molto pura ma per il momento la lascio così.