Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/12/2006 #1


Conversor ADC de 16 bits - AD7715
holas , quisiera saber si alguno de ustedes a manejado este tipo de conversor ya en en la web no he encontrado muchos circuitos para guiarme con su uso, este conversor es
programable la ganacia, filtro etc, he trabajado en balanzas y descubri en unas que llevan este integrado , quiero construir una balanza pero primero quiero aser la parte analoga-digital , tengo el datasheet de este chip , mi duda es como guardar los datos obtenidos del conversor despues de calibrarlo con un sensor ? creo que necesito diagrama de flujo algo parecido porque solo se calibrarlo hasta y nomas llego ops:
26/12/2006 #2


Podés tomar la explicación de este de este libro, como genérica y aplicarla a distintos ADC, fíjate en el experimento # 5; VIN (-) sirve para equilibrar la entrada (puesta 0), VREF sirve para ajustar la ganancia:

http://www.parallax.com/dl/docs/books/edu/ICSpanish.pdf
04/09/2015 #3


Lectura de datos AD7715
He visto que no hay muchas respuestas sin responder en la web acerca de este dispositivo.
Aquí dejo un ejemplo probado con un PIC16F.

Código PHP:
void adc_init()        //inicializacion AD7715
{
    
//escribe primero sobre registro de comunicacion [ ToWrite Now /Status next/write/Normal/Ganancia 1    ]
    
SSPIF=0;
    
SSPBUF=0x10;        //Solicitud de escritura sobre Status Register
    
while(!SSPIF);        //espera transmision de datos

    //escritura sobre Status register 
    
SSPIF=0;
    
SSPBUF=0x54;        //[ AutoCalibracion/1MHz/100 Sps/Unipolar/unBuffe/noSync ]
    
while(!SSPIF);        //espera transmision de datos
}

void read_adc()
{
    
unsigned char byte,upper;
    
    
SSPIF=0;            //limpia flag
    
SSPBUF=0x08;        //solicitud lectura de Status register
    
while(!SSPIF);        //espera escritura y recepcion de dato
    
    
SSPIF=0;
    
SSPBUF=0x00;        //Escribe para activar reloj en modo lectura
    
while(!SSPIF);        //espera recepcion de dato
    
byte=SSPBUF;    //carga dato recivido

    
byte=byte&0x80;    //se queda con bit 7
    
if(byte!=0x00)    //DRDY !=0 aun en espera, 
    
{ return;} 
        
    
//Dato disponible
    
SSPIF=0;            //limpia flag
    
SSPBUF=0x38;    //solicitud lectura de Data register
    
while(!SSPIF);        //espera escritura y recepcion de dato
    
    
SSPIF=0;            //limpia flag
    
SSPBUF=0;
    while(!
SSPIF);        //espera escritura y recepcion de dato
    
upper=SSPBUF;
    
    
SSPIF=0;            //limpia flag
    
SSPBUF=0;         //Escribe para activar reloj en modo lectura
    
while(!SSPIF);        //espera recepcion de dato
    
byte=SSPBUF;

    
Valor.adc=upper*256+byte;    
        

Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.