Encoder AS5145 e programmazione OTP

Ciao a tutti, sto scrivendo un programma (arduino mega) per implementare in un classico servo modificato per avere la rotazione continua (eliminazione stop meccanico e sostituzione del potenziometro con un trimmer/resistenze) la rilevazione della posizione assoluta, ho sviluppato il tutto con un encoder magnetico as5040 con 10 bit di risoluzione (1024 step) leggendone la quadratura, ora ho sostituito questo con un as5145 che ha 12 bit di risoluzione.
Per l'as5040 la risoluzione di 10 bit era gia attivata di standard senza dover programmare nulla mentre per l'as5145 lo standard rimane di 10bit e per attivare quella a12bit è necessario modificare il registro OTP dell'encoder e non ho la minima idea di come farlo e volevo chiedere se qualcuno avesse la pazienza di darmi qualche dritta.

datasheet AS5145: Sensor Solutions | ams

A pagina 19-36 c'è il paragrafo riguardante la modifica del registro OTP, e a pagina 14-36 c'è la tabella dei valori da modificare per ottenere le varie modalità

Inoltre da quanto ho capito questo registro è modificabile una volta sola e dopo la modifica si possono cambiare i valori solo richiamando la scrittura ad ogni accensione, ho capito bene?

Spero ci sia qualche volenteroso che abbia voglia di aiutarmi, grazie, ciao!

Ho appena visto che c'è la possibilità di ordinare gli as5145/b che sono pre-programmati per i 12 bit e ho risolto così! se comunque qualcuno sa come programmarli ben venga!:slight_smile:

Dove li compri?
Ciao Uwe

Per selezionare la risoluzione per giro :

With the OTP bits OutputMd0 and OutputMd1 a specific mode can be selected. For the available pre-programmed incremental versions (10bit and 12bit), these bits are set during test at austriamicrosystems. These settings are permanent and can not be recovered.

Lo interpreto cosí che la versione normale puoi selezionarlo a piacimento. Nelle versioni A o B sono settati in fabbrica e in questo caso non modificabili. consider anche questo:

A change of the incremental mode (WRITE command) during operation could cause problems. A power-on-reset in between is recommended. During operation in incremental mode it is recommended setting CSn = High, to disable the SSI-Interface.

Ciao Uwe

Basta richiedere i campioni sul sito, spedizione immediata in 2 giorni sono a casa!

Comunque spulciando bene il sito ho trovato il loro programmatore per i chip, comunque praticamente esistono le 2 versioni a/b se prendi la a hai i dieci bit ma la possibilità di programmarlo in 12 bit, mentre se prendi la A hai i 12 bit ma essendo l’OTP permamente per i bit 1 non puoi portarlo ai 10 bit quindì se hai OutputMd0 = 0 e OutputMd1 = 1 non potrai tornare a 0/0, però è interessante la parte in cui dicono che volendo si possono scrivere i valori temporaneamente per ogni ciclo ma non ho idea di come farlo e per il momento mi sono accontentato di ordinarne altri versione B.
Per il momento il csn lo tengo sempre low dopo l’inizializzazione così da avere a disposizione anche la SSI e non mi hanno dato nessun problema!