miércoles, 31 de octubre de 2012

FILTROS ANÁLOGOS CON PSoC

Como ya se ha recalcado bastante en ocasiones anteriores, uno de los mayores atractivos que tienen los microcontroladores PSoC es la posibilidad de trabajar con algunos elementos análogos (amplificadores operacionales) y la mejor manera de aprovechar al máximo esta cualidad es desarrollando aplicaciones en las que se utilicen estos amplificadores operaciones y en especial los bloques de capacitancias conmutadas, aplicaciones que no sería posible desarrollar con microcontroladores netamente digitales y que de querer hacerlos de manera convencional con amplificadores operacionales, condensadores y resistencias requerirían un espacio físico mayor en su implementación. Un ejemplo que permitiría explotar estos recursos mencionados anteriormente es la implementación de filtros análogos en PSoC y es precisamente este tema el que se va a desarrollar en esta entrada del blog.

Los filtros análogos en PSoC se pueden implementar de distintas maneras, una de estas es la manipulación y configuración directa de los bloques de capacitancias conmutadas que se encuentran dentro de la matriz de bloques análogos y la otra es utilizando los módulos de usuario que ya vienen pre-configurados para tan fin en PSoC Designer. En esta ocasión se van a utilizar los módulos de usuario ya que es la manera más sencilla para configurar los filtros en un comienzo.

PSoC Designer ofrece los siguientes módulos de usuario para implementar filtros análogos:

• BPF2 (Filtro pasa-banda de orden 2)
• BPF4 (Filtro pasa-banda de orden 4)
• ELPF2 (Filtro pasa-bajos elíptico de orden 2)
• ELPF4 (Filtro pasa-bajos elíptico de orden 4)
• LPF2 (Filtro pasa-bajos de orden 2)
• LPF4 (Filtro pasa-bajos de orden 4)

Para el ejemplo de esta entrada del blog se van a utilizar un filtro pasa-bajos y un pasa-banda ambos de segundo orden (LPF2 y BPF2), la frecuencia con la que pueden trabajar estos filtros depende directamente de la potencia con la que se configuren los mismos, llegando a ser hasta de 4MHz en el caso del filtro pasa-bajos configurado como High Power. 

Parámetros de configuración:

Estos módulos de usuario cuentan con alrededor de once parámetros para configurar, sin embargo en un principio solo hay que preocuparse por configurar cuatro de ellos los cuales son:

Input: configura el bloque o pin que se va a utilizar como entrada de señal del filtro.
AnalogBus: habilita o deshabilita el bus de salida análoga, de esta manera se puede sacar del PSoC la señal resultante del filtro.
CompBus: habilita o deshabilita la conexión con el bus del comparador y de esta manera permite la conexión con el sistema digital de PSoC.
Polarity: configura la inversión o no inversión de la señal de la salida del filtro con respecto a la polaridad de la señal de entrada.

Los parámetros de configuración restantes son utilizados para definir las frecuencias de trabajo del filtro, para la configuración de estos se va a utilizar una herramienta muy útil y sencilla llamada wizard (figuras 1 y 2) que se puede encontrar haciendo click derecho sobre el bloque de los filtros, esta herramienta permite seleccionar la clase del filtro que se quiere utilizar (butterworth, chebyshev), la frecuencia de muestreo, la ganancia, la frecuencia de corte para el caso de los pasa-bajos o la frecuencia central y el ancho de banda para el caso de los pasa-banda.

(Figura 1. Wizard del filtro pasa-bajos)

(Figura 2. Wizard del filtro pasa-banda)

Luego de llenar las casillas disponibles en el wizard, se puede observar como cambian los valores de los condensadores los cuales eran los parámetros de configuración restantes, además de esto también se puede ver la gráfica que representa la respuesta esperada con esos valores de configuración.

Para visualizar los resultados ofrecidos por estos filtros, se implementaron un filtro pasa-bajos y un filtro pasa-banda con las especificaciones que se pudieron observar en los wizard presentándonos anteriormente (Figuras 1 y 2). A continuación se presentan una serie de imágenes con los resultados obtenidos para cada filtro donde la señal de color amarillo es la de entrada y la de color azul es la señal de salida del filtro.

Filtro Pasa-bajos:

• Frecuencia de corte = 14 KHz
• Frecuencia de muestreo = 1MHz
• Ganancia (db) = 0
• Clase de filtro = butterworth

(Figura 3. Frecuencia 1 KHz)
(Figura 4. Frecuencia 5 KHz)
(Figura 5. Frecuencia 10 KHz)
(Figura 6. Frecuencia 14 KHz)
(Figura 7. Frecuencia 20 KHz)


Filtro Pasa-banda:

• Frecuencia central = 14 KHz
• Ancho de banda = 6 KHz
• Frecuencia de muestreo = 400 KHz
• Ganancia (db) = 0

(Figura 8. Frecuencia 1 KHz)
(Figura 9. Frecuencia 5 KHz)
(Figura 10. Frecuencia 10 KHz)
(Figura 11. Frecuencia 14 KHz)
(Figura 12. Frecuencia 20 KHz)
(Figura 13. Frecuencia 30 KHz)

Observando los resultados se puede decir que teniendo en cuenta la sencillez de su implementación estos módulos son bastante eficientes, además si se quieren mejorar los resultados se pueden utilizar los módulos de filtros de cuarto orden.

NOTA: No hay que olvidar inicializar los módulos de usuario con los comandos:

LPF2_Start(X);
BPF2_Start(X);

Donde “X” es el valor de configuración de la potencia del modulo.