ELECTRONIC MEMORIES

Trabajo de investigación (MCP6s22)

Posted by discobolo100 en 6 junio, 2011

MCP6s22

El dispositivo MCP6s92 es un amplificador de ganancia programable con 2 canales configurables. Para mas información hacer click aquí para descargar el datasheet del componente.

Objetivos:

Usando el Pic 18f4550 de gama alta, conseguir configurar un dispositivo,  en un principio era el MCP6s92 pero debido a que en el entorno de Proteus no existe dicho dispositivo, se decidió emplear uno parecido al que se pedía, el MCP6s22 que si estaba en las librerías de Proteus.

Problemas encontrados:

  • Poca información en Internet de cómo poder configurar el amplificador, de hecho la única información sobre él, era un único datasheet.
  • Carencia de librerías para la programación del dispositivo en CCS
  • Dificultades en las simulaciones en el entorno de Proteus.

Debido a los problemas que mencione anteriormente, lo único que conseguir realizar fue una configuración para el cambio de canal. La ganancia debería variar desde 1 hasta 3. A pesar de mandar la trama que según el datasheet tendría que conseguir que cambiase esa ganancia, la ganancia no varia, que configurada en 1 que sería la configuración por defecto del dispositivo.

En la siguiente imagen muestro como se puede configurar el modo de trabajo del PGA.

Para configurar la ganancia simplemente se debería introducir una trama del tipo a “00000xxx” dependiendo del valor que tiene “x” la ganancia debería variar tal y como se muestra en la siguiente imagen.

Para terminar la configuración del dispositivo simplemente se debe configurar el canal a usar. Sólo hay que insertar una trama tal como “00000000” para el canal 0 ò “00000001” para seleccionar el canal 1. En la siguiente imagen se muestra claramente.

El programa que he realizado es el siguiente:

////////////////////////////////////////////////////////////////////////////////////
// AUTOR: Ismael Muriedas Saro ///Marzo/2011///
////////////////////////////////////////////////////////////////////////////////////
// PROGRAMA: Configurar un PGA VERSIÓN: 1.0
// DISPOSITIVO: PIC18F4550 COMPILADOR: CCS vs4.088
// Entorno IDE: SIMULADOR: Proteus 7.7 sp2
// TARJETA DE APLICACIÓN: DEBUGGER: ICD3
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// Programar un PGA
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// CABECERA ////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
#include
#fuses INTHS //Selecciona el oscilador interno
#use delay(internal=8Mhz) // Selecciona la velocidad del oscilador interno
#include

////////////////////////////////////////////////////////////////////////////////////
// VARIABLES GLOBALES //////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// FUNCIONES ///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// PRINCIPAL ///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
void main()
{
setup_spi(spi_MASTER | spi_L_to_H | spi_clk_div_16| SPI_XMIT_L_TO_H);

WHILE(1)
{
if(input(PIN_A1))
{
output_low(PIN_A0);//Pongo a nivel bajo el pin RA0 para comenzar la comunicación con el dispositivo
spi_write(0b01000000);//Escribo el registro de escritura en el dispositivo
delay_ms(10);
spi_write(0b00000111);//Configuro la ganancia del dispositivo
delay_ms(10);
output_high(PIN_A0);//Pongo a nivel alto el pin RA0 para dejar configurado el dispositivo
}
if(input(PIN_A2))
{
output_low(PIN_A0);//Pongo a nivel bajo el pin RA0 para comenzar la comunicación con el dispositivo
spi_write(0b01000001);//Escribo el registro de escritura en el dispositivo
delay_ms(10);
spi_write(0b00000111);//Configuro la ganancia del dispositivo
delay_ms(10);
output_high(PIN_A0); //Pongo a nivel alto el pin RA0 para dejar configurado el dispositivo
}
}
}

Una vez terminado el programa con CCS, pasamos a Proteus para la realización del esquemático.

Antes de pasar a explicar como se realizó el layaut del producto, dejo un video ilustrativo en youtube del funcionamiento del programa, en él se aprecia como a la salida del PGA primero pone 0,6v y al hacer click en uno de los dos botones de la parte inferior del esquemático, entonces el voltaje que hay a la salida del PGA asciende hasta alcanzar los dos voltios.

Una vez termiando el esquemático y haber realizado la simulación pasamos a realizar el PCB. Tiramos la Netlist, colocamos los componentes y trazamos las pistas.

Para descargar el ejercicio hacer click en el siguiente enlace: http://cid-2d81d75b5f40e144.office.live.com/self.aspx/.Public/SPI/PGA%20MCP6s22/AMP.rar

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: