Alcuni consigli progetto per switch/looper digitale

Salve a tutti.
Sto lavorando da tempo ad un progetto per uno switch digitale/looper da applicare prevalentemente in ambito musicale per la gestione di serie di effetti analogici.

Il progetto è in fase avanzata e attualmente sto valutando alcune migliorie per renderlo davvero solido e professionale. Per questo mi servirebbero alcuni pareri per capire eventualmente dove posso arrivare e dove invece si sta uscendo dal seminato.

La versione esistente del progetto si basa su un ATMega328P standalone, ma sto pensando seriamente di virare su una DUE per la complessità che il progetto sta pian piano assumendo.

Vi descrivo ora brevemente il funzionamento del sistema progettato, specificando poi le parti già disegnate e progettate e quelle ancora da progettare bene.

Il progetto si compone di 3 parti separate:

  • Interfaccia di controllo (input)
  • "Cuore" ovvero la scheda centrale che raccoglie tutti gli input e indirizza gli out
  • Schede di output

Principio: un numero X di generici processori sonori (tanti quante le uscite) sono collegati in send/return a dei relays che ne pilotano l'attivazione o il bypass. Quando premo un tasto in input, questo va a richiamare in memoria un preset (memorizzato in precedenza ovviamente) e va ad ad accendere o spegnere gli output corrispondenti, di fatto attivando selettivamente solo gli effetti che si vogliono attivare e bypassando gli altri.

Il progetto prevede una modalità di richiamo dei valori in memoria e una modalità di memorizzazione dei preset, tramite una seconda superficie di controllo.

L'interfaccia di controllo altro non è che una serie di switch temporanei collegati tramite una serie di shift register (CD4021). In tutto uso tre porte digitali.

Domanda 1: attualmente io sto ragionando su un numero variabile di switch da 4 a 16 (utilizzando il daisy chain) l'utilizzo di tanti switch comporta un maggiore utilizzo di memoria sul micro (io considero 1 shift register = 1 Byte)? Fino a quanti switch idealmente potrei acquisire tramite shift register in daisy chain?

L'interfaccia di output è per certi versi speculare con la differenza che si vanno a pilotare una serie di relays a 12v e che quindi serve un'alimentazione esterna. A tal proposito uso degli shift register in daisy chain (tipici 595) collegati a dei darlington array (di cui al momento non ricordo il codice ma che pubblicherò).

Domanda 2: come sopra, fino a quanti output idealmente potrei gestire tramite shift register in daisy chain?

CONTINUA