|
|||
IL MODULO NCO: OSCILLATORE A CONTROLLO NUMERICO |
|||
|
|||
ACCUMULATORE L'accumulatore e' un registro a 20bit che può avere come valore massimo 2^10= 1,048,575. Questo registro può essere letto e scritto attraverso tre registri a 8 bit: • NCOxACCL
Del registro NCOxACCU pur essendo a 8bi si usano solo i 4 bit LSB. Quando l'accumulatore raggiunge u suo valore massimo ( overflow condition), l'uscita del moduo NCO cambia stato. Questo registro e' caricato con i valore che deriva dalla operazione di somma tra il suo valore attuale e il valore caricato nei registri di incremento. IL SOMMATORE (ADDER) Il NCOx Adder è un sommatore, che opera indipendentemente dal clock di sistema. Si aggiunge il valore del valore di incremento all'accumulatore ad ogni impulso di clock NCO. Il sommatore prende il valore nell'accumulatore e aggiunge il valore di incremento. Il risultato viene rimesso nell'accumulatore. Il valore accumulatore viene rollover e qualsiasi valore al di là della 1.048.575 otterrà posto come valore di partenza nelle accumulator.This può essere resettato se lo si desidera, scrivendo uno zero per l'accumulatore. Questo è in genere fatto all'interno della routine di servizio interrupt se questo è abilitato sul modulo NCO.
REGISTRI DI INCREMENTO Il valore di incremento che va sommato al valore attuale dell'accumulatore, e' una parola a 16 bit memorizzata su 2 registri a 8 bit. Gli 8 bit meno significativi sono caricati nel registro NCOxINCL mentre i rimanenti 8 bit piu significativi nel registro NCOxINCH. L'incremento massimo e' dunque pari a 2^16-1=65535 • NCOxINCL Entrambi i registri di incremento si possono scrivere e leggere. The Increment registers are double-buffered to allow for value changes to be made without first disabling the NCOx module. The buffer loads are immediate when the module is disabled. Writing to the NCOxINCH register first is necessary because then the buffer is loaded synchronously with the NCOx operation after the write is executed on the NCOxINCL register.
|
|
||
|
|||