Actualmente estoy trabajando en un microcontrolador Atmel, EVK1104S , que tiene la Hoja de datos de UC32. De hecho, hemos colocado este chip en una PCB personalizada y estamos en el proceso de escribir más firmware.
Actualmente, necesito indicarle al ADC en la unidad de microcontrolador (MCU) que muestre a 8k muestras / segundo. En realidad esto es para muestrear un micrófono. De cualquier manera, la documentación no está muy clara (desde mi perspectiva) y estaba buscando alguna aclaración.
Sé que para cambiar la frecuencia de muestreo necesito cambiar lo que se llama el registro de modo, el registro que se usa para configurar el ADC para su uso (pág. 799 en el enlace de arriba). Este es el registro que me permite modificar el ADCclock
.
Ejemplo (de la pág. 799):
ADCClock = CLK_ADC / ( (PRESCAL+1) * 2 )
De lo que he recopilado, solo tendré que cambiar el PRESCAL
para que el ADCClock
opere a 8Khz. El problema es que PRESCAL
está limitado a 8 bits de resolución.
Por ejemplo, si el controlador está configurado a 12Mhz / x = 8Khz, entonces x debería ser 1500. Debido a que x está limitado a 8 bits, como dije antes, esto parecería imposible, porque el máximo es 255.
Siento que estoy haciendo algo mal aquí o que no entiendo lo que la hoja de datos quiere que haga. ¿Puede alguien confirmar lo que acabo de hablar o ayudarme a dirigirme?
Básicamente, ¿cómo puedo especificar que ADCclock
se ejecute a 8 KHz si el PRESCAL
es solo un valor de 8 bits suponiendo que la CPU está funcionando a 12MHz?