PSoC5LP Usando el SAR ADC y la señal EoS para manejar una LUT
En esta ocación añadi el LUT ya que nunca habia trabajado con el, sin embargo es fácil de usar, no tiene configuración por software, la configuración por hardware quedo de la siguiente manera:
La LUT tiene dos entradas y dos salidas, cuando en la entrada in0 e in1 hay dos ceros logicos obtenemos en la salida out0 un uno lógico y en out1 otro uno lógico, etc., es decir, cambie el orden de escaneo, comenzando por el canal 3 del AMuxHw y descendiendo hasta el canal 0, pero pudo haber sido cualquier otro orden.
El esquematico final quedo de la siguiente manera:
Y el main quedo igual que el post pasado, solo configuramos el ADC:
En esta captura podemos ver como a la entrada de la LUT a la hora del flanco de subida de la señal EoS tenemos in0 = 0 e in1 = 0, y a las salidas: out0 = 1, out1 = 1, por lo tanto estamos sampleando el canal 3 del AMuxHw.
En la siguiente captura tenemos, in0 = 1 e in1 = 0, y en las salidas out0 = 0, out1 =
1 , es decir estamos sampleando el canal 2 del AMuxHw.
En la siguiente captura tenemos, in0 = 0 e in1 = 1, y en las salidas out0 = 1, out1 = 0
, es decir estamos sampleando el canal 1 del AMuxHw.
En la siguiente captura tenemos, in0 = 1 e in1 = 1, y en las salidas out0 = 0 , out1 = 0
, es decir estamos sampleando el canal 0 del AMuxHw.
TODO:
La LUT tiene dos entradas y dos salidas, cuando en la entrada in0 e in1 hay dos ceros logicos obtenemos en la salida out0 un uno lógico y en out1 otro uno lógico, etc., es decir, cambie el orden de escaneo, comenzando por el canal 3 del AMuxHw y descendiendo hasta el canal 0, pero pudo haber sido cualquier otro orden.
El esquematico final quedo de la siguiente manera:
Y el main quedo igual que el post pasado, solo configuramos el ADC:
/* ======================================== * * PoC: Driving Multiple ADC inputs with no * SW involved. * * ======================================== */ #includeLas capturas del analizador lógico son las siguientes:int main() { CyGlobalIntEnable; /* Enable global interrupts. */ ADC_Start(); for(;;) { /* Place your application code here. */ } }
En esta captura podemos ver como a la entrada de la LUT a la hora del flanco de subida de la señal EoS tenemos in0 = 0 e in1 = 0, y a las salidas: out0 = 1, out1 = 1, por lo tanto estamos sampleando el canal 3 del AMuxHw.
En la siguiente captura tenemos, in0 = 1 e in1 = 0, y en las salidas out0 = 0, out1 =
1 , es decir estamos sampleando el canal 2 del AMuxHw.
En la siguiente captura tenemos, in0 = 0 e in1 = 1, y en las salidas out0 = 1, out1 = 0
, es decir estamos sampleando el canal 1 del AMuxHw.
En la siguiente captura tenemos, in0 = 1 e in1 = 1, y en las salidas out0 = 0 , out1 = 0
, es decir estamos sampleando el canal 0 del AMuxHw.
TODO:
- Cambiar los pines de las entradas analogicas con el Analog Router y mejorar su desempeño.
- Usar la señal EoC como trigger para un canal de DMA y mandar el resultado de la conversión a una locación de memoria, y al finalizar la transferencia de, por ejemplo 200 conversiones, usar la señal nrq del DMA para mandar todos los resultados de la memoria por un bloque UART a cualquier consola serial en nuestra computadora.
Comentarios
Publicar un comentario