Connessione e controllo IC controllo volume digitale ed EEPROM.

Ciao a tutti, vorrei pilotare attraverso l'atmega328p l'IC preamplificatore con controllo digitale del volume MAS6116 (http://www.mas-oy.com/en/products/audio/mas6116-digital-volume-controler/).
Come vedete sia nello schema che nel datasheet parla di DATA, CCLK, XCS e XMUTE.
Eccetto XCS e XMUTE (che potrebbero essere degli stati HIGH/LOW) sembrerebbe trattarsi di un tristate (citato anche nel datasheet) I2C.
Secondo voi in che modo dovrei collegarlo all'atmega e con che libreria controllare i regisri di questo IC attraverso I2C bus?
Invece per quanto riguarda la EEPROM dovrei salvare gli stati di volume, stati che vengono variati ad ogni cambio volume, mi consigliate di utilizzare un chip EEPROM?
Grazie a tutti! :slight_smile:

Non so aiutarti per quanto riguarda la comunicazione col chip, non so se la libreria Wire è capace di comunicare con quel chip.
Sulla EEPROM, credo ti basti quella interna all'Atmega328P: sono 1024 byte, quindi 1024 valori da 0 a 255 oppure 512 valori da 0 a 1023. Non ti bastano?

Certo, in realtà mi servono solo 5 byte.
La mia paura è il numero di riscritture supportate dalla EEPROM interna al MCU.
Considersa che ogni volta che viene variato un input, il livello di volume e qualsiasi altra funzione dovrebbe storare il valore nella EEPROM, per poter essere letto qualora ci fosse lo spegnimento del dispositivo.
Cosa dici, posso rischiare?

Se hai paura che l' EEprom non sopravvive puoi usare un EEprom esterno (Che regge piú scritture) un FRAM che (quasi) non ha limiti di riscritture oppure la RAM di un RTC com il DS1307 (56 byte dovrebbero bastare).

Ciao Uwe

L'RTC però necessita di una batteria tampone altrimenti la RAM viene azzerata in assenza di tensione, giusto?
Invece un chip FRAM mantiene nelle celle i dati anche ad alimentazione non attiva?
Che genere di chip posso procurarmi FRAM e che bus utilizza per il collegamento con il micro atmel?
Correggo quanto scritto nel primo post: non si tratta di I2C ma di SPI tristate, quindi con MISO/MOSI sullo stesso canale.
Qualcuno può confermarmi questa ipotesi ed aiutarmi nell'interfacciamento di questo chip con l'atmega328p?
Grazie a tutti!

Ok ho scelto un chip FRAM che, secondo datasheet, supporta 10^14 cicli di read/write :slight_smile:
Ho optato per un i2c, così da lasciare libero il bus SPI del MCU, sul quale dovrò realizzare la comunicazione bidirezionale su un solo canale (tristate sul MOSI?).
Qualcuno mi può aiutare?

I chip FRAM ormai sono tutti SMD: hai le capacità per saldarli?

leo72:
I chip FRAM ormai sono tutti SMD: hai le capacità per saldarli?

Ho già fatto in passato delle saldature di componenti smd usando stazione saldante ad aria calda, non dovrebbe essere un problema!
Anche il MAS6116 è smd, il problema si presenterà nella progettazione del pcb.
In prima battuta l'ho fatto su fidocad, poi sono passato ad eagle, in modo da avere, all'interno del progetto, sia lo schema che il disegno del pcb.
Pensavo, lato componenti, di allungare le piazzole dei pin dei componenti smd, terminarle con una piazzola forata che sarà parallela alla stessa piazzola forata lato saldature.
In modo da rivettare e saldare le due piazzole (lato componenti e lato saldature) ed avere i segnali del chip smd lato saldature.
Che ne dici?
E' un metodo efficace?!

Non faccio PCB in casa però da quel che leggo i vias sono croce e delizia dei maker perché devi esser sicuro di farli bene altrimenti non ti passa il segnale.

Ho optato per un i2c, così da lasciare libero il bus SPI del MCU, sul quale dovrò realizzare la comunicazione bidirezionale su un solo canale (tristate sul MOSI?).

Le 3 linee devi collegarle, sta poi alla periferica cambiarne lo stato a seconda della direzione che prendono i dati. Qui un pò di documentazione ripresa dalla pagina della libreria SPI: