¿Cómo interpretar el módulo ADC del microcontrolador en la hoja de datos? Hoja de datos de sintaxis

3

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?

    
pregunta Recurrsion

1 respuesta

2

Su malentendido radica en el hecho de que "ADCClock" no es la "frecuencia de muestreo", es el reloj interno con el que funciona el módulo ADC en el microcontrolador:

"La conversión de un único valor analógico a datos digitales de 10 bits requiere ciclos de reloj de muestra y retención según se definen en el campo Tiempo de muestra y retención del registro de modo (MR.SHTIM) y 10 ciclos de reloj ADC." (sección 29.6.1, pág. 792)

En otras palabras, para obtener una sola muestra de su ADC se requieren en realidad bastantes (un mínimo de 13 si mi lectura superficial de la hoja de datos es correcta) los ciclos de reloj del ADC, y no solo uno. Su frecuencia de muestreo es simplemente una función de cómo (a menudo) desencadena una conversión (sección 29.6.5). Para ello, es probable que utilice uno de los módulos de temporizador, que probablemente le dará más flexibilidad en los intervalos reales para que pueda alcanzar su tasa objetivo de 8 kHz.

    
respondido por el fm_andreas

Lea otras preguntas en las etiquetas