2020/05/24

Soluzioni e dubbi (e correzioni)

Il progetto prevedeva sedici potenziometri: due ADSR (4 parametri ciscuno), due LFO (due parametri ciascuno), più altri 4 parametri: in uno degli schemi, vicino a due potenziometri si legge PITCH e VEL2.

Ma sulla breadboard ci sono solo 7 trimmer (e solo due circuiti integrati: il µC e un 4051, 8-channel analog multiplexer/demultiplexer).

I 7 trimmer

Come già detto, quello che c’è sulla breadboard non corrisponde esattamente a nessuno degli schemi trovati: deve essere la versione “ridotta”1 di uno di essi, ma non sono riuscito a identificare esattamente quale.

In alcuni schemi compare un multiplexer/demultiplexer a 16 canali, quindi selezionabili con 4 ingressi, ma in altri sembra che avesse preferito l’uso di due 4051; personalmente non vedo il vantaggio: servono sempre 4 ingressi, 3 per selezionare i canali e uno per scegliere quale 4051. Ciò tra l’altro negli schemi viene fatto tramite un transistor a mo’ di inverter (quando l’INH di un 4051 è 0 l’altro è 1 e viceversa)… Quindi perché non usare direttamente un multiplexer a 16 canali?

Forse perché aveva già a disposizione un paio di 4051: è l’arte di “arrangiarsi” con quel che si ha o, meglio, l’arte di non sprecare ciò che si ha già.

L’ultimo codice toccato mi sembra che fosse della “linea I”, e nello “schema 8” c’è scritto [funziona] Con Mysinth-I_5,6,7,82. Nello “schema 8” ci sono due 4051 ma anche un 74HC273 (8 flip-flop D con reset).

Il problema era come poter accendere e spegnere dei LED e leggere i potenziometri e scandire la tastiera e… L’idea base per i LED, se non ho malcompreso gli schemi, credo che fosse questa: il multiplexer seleziona i flip-flop, un certo valore (acceso o spento) per il LED viene “agganciato”, e a quel punto si è liberi di selezionare i potenziometri per leggerli.

Sulla breadboard mancano i LED di stato, e mancano più della metà dei potenziometri. Ci sono dei LED, ma sono per il clone simil-Nano nella fase della programmazione. Quindi ci sta che ci sia un solo 4051.

Non mi torna però la mia trascrizione:

Il 328P, il 4051 e l’oscillatore

Probabilmente ci sono degli errori e delle mancanze, specie per la parte di alimentazione, tensione di riferimento e condensatori di disaccoppiamento o quel che sono. Comunque non è quello su cui mi stavo concentrando adesso.

Il 4051 è “attaccato” agli 8 potenziometri. L’INH ci sta che sia fisso basso (visto che c’è un solo 4051, questo deve essere sempre attivo, cioè mai inibito)3, il che significa che il codice, se suppone la possibilità di selezionare 16 canali, per 8 volte in realtà rileggerà gli stessi valori dagli stessi potenziometri.

Ma c’è qualcosa che non mi torna; sicuramente è un problema nella mia trascrizione: anche C va a massa, e quindi? Quindi sono selezionabili solo 4 canali su otto?

Devo aver fatto diversi errori, anche deducibile dal fatto che PB0 e PB5 non sono connessi (nella mia trascrizione). Seguire le connessioni di una breadboard montata e affollata senza poter o voler smontare niente non è facile come pensavo!4

Anche PB7/XTAL2 non mi convince tanto che non sia connesso a niente, ma forse questo è giusto. A naso direi che PB5 va al C (cioè il C del 4051 va al PB5 del 328P, non a massa).

Verificando sullo “schema 8” (che ha due 4051 ma comunque A, B e C di ciascun 4051 devono essere connessi agli stessi pin) vedo che A → PB3, B → PB4, C → PB5, che mi sembra più logico di quello che c’è sulla BB e (ho verificato) sulla BB c’è quanto riportato nello schema dell’immagine mostrata prima.

Perché questo errore?

Mi sono ricordato che uno dei giorni in cui avevo preso la BB per analizzarla, avevo trovato un jumper nero semisfilato: forse spostando i fili per contare i pin per capire le connessioni l’avevo un po’ allentato. Perciò l’avevo rinfilato per bene nel buco dove sembrava già poggiare, ma forse era quello sbagliato. Quindi forse ho introdotto io quell’errore.

Adesso l’ho sistemato sul 19 (uno di quelli che poi viene usato per la programmazione quando si va in modalità programmazione). Poi dovrò verificare nel codice che effettivamente vengano usati PB3, PB4 e PB5 per A, B e C (PB7 è usato per INH ma, come detto, essendoci un solo 4051 fisso, ci sta che questo bit della porta B sia inusato nella BB. Nel codice, quando lo guarderò, mi aspetto di trovare tutto come se ci fossero due 4051 e tutto il resto.

Lo schema corretto (forse!), ma sempre con il PB0 non connesso:


  1. Tanto per iniziare, per funzionare non c’è bisogno che siano messi tutti i potenziometri: significa solo che nel prototipo alcuni parametri non sono modificabili, ma non significa che non ci siano dei valori impostabili e di fatto impostati (nei preset).↩︎

  2. Come già detto mio padre scriveva consistentemente «sinth». E nel codice, «attak» invece di «attack».↩︎

  3. Su qualche datasheet avevo visto che l’INH si chiamava Ē, per ENABLE, suppongo, giustamente indicato come attivo basso (0 → abilitato, 1 → disabilitato); ma se lo chiamano invece INHIBIT, ritorna con logica “dritta”: 0 → non inibito, 1 → inibito.↩︎

  4. Fritznig mi sembra un bel progetto simpatico che potrebbe essere più adatto allo scopo. Magari fa rabbrividire un professionista (electronics made easy??), ma comunque…↩︎

Nessun commento:

Posta un commento

Commenta solo per dare un contributo utile, una critica costruttiva o fare un'osservazione acuta. Non commentare solo per dire che esisti anche tu o che ti piace o dispiace quello che hai letto e visto su questo blog.