Page 1 of 1

Voltaje Referencia

Posted: Wed Jun 20, 2012 3:40 pm
by electron67
Hola,
Estoy probando un programa que utiliza el VRef del pic, consegui uno que utiliza esta funcion, este ejemplo esta configurado para el PIC16F877A funciona correctamente en flowcode y en el hardware; configure el programa para el PIC18F4620 pero cuando comienza el programa se detiene en la instruccion "C", cabe comentar que en flowcode el programa funciona correctamente, pero en el hardware no; lamentablemente para mi, no entiendo el lenguaje "C", es por eso que uso flowcode; creo que el problema esta en la configuracion del block que tiene la instruccion en "C". El programa esta excelente si tienes un sensor que te entregue por decir 1.5 volt maximo, ajustas el VRef con un pot de 10k a ese mismo voltaje, de esta forma vas a ajustar de 0 a 1.5 volt el rango o sea de 0 a 255 (byte) quedando mas exacta la medicion realizada por el sensor. El VRef es conectado en el puerto A3 por medio del pot de 10k (4.5 volt max) y la señal del sensor al puerto A0.
Envio el programa para el PIC18F877A y para el PIC18F4620.
Podria alguien ayudarme en esto ?

Saludos y gracias

Re: Voltaje Referencia

Posted: Wed Jun 20, 2012 4:15 pm
by Benj
Hola,

Para el 18F4620 el comienzo ADC bits de conversión es de 1 bit en vez de 2 bits por lo que el código para iniciar y esperar a que la conversión debe tener este aspecto.

Code: Select all

adcon0 = adcon0 | 0x02;
while (adcon0 & 0x02) ;
Puede haber otras diferencias también, lo cual significa que se escribe en los registros ADCON0 y ADCON1 puede no ser del todo correcto. La hoja de datos del dispositivo 18F4620 explica completamente los registros de ADC en el artículo 19.

¿Por lo menos necesita el bloque de código C en su programa? El ADC se lea como función de bytes se utiliza la configuración de las propiedades de los componentes primordiales de ADC de todas formas los valores que se ponen en el ADCON registra.


Hello,

For the 18F4620 the ADC start conversion bit is bit 1 rather then bit 2 so the code to start and wait for the conversion should look like this.

Code: Select all

adcon0 = adcon0 | 0x02;
while (adcon0 & 0x02) ;
There may be other differences too which means that your writes to the adcon0 and adcon1 registers may not be quite correct. The 18F4620 device datasheet fully explains the ADC registers in section 19.

Do you even need the C code block in your program? The ADC read as byte function will use the settings from the ADC component properties anyway overriding the values you are putting into the adcon registers.

Re: Voltaje Referencia

Posted: Wed Jun 20, 2012 4:52 pm
by electron67
hize una prueba anteriormente eliminanado el codigo "C" pero no funciono; tendran un ejemplo de como usar el VRef del pic ? o que cambio le podria hacer al programa Vref18f4620 para no utilizar el codigo C.

Re: Voltaje Referencia

Posted: Wed Jun 20, 2012 5:01 pm
by Benj
Hola,

Debe ser capaz de seleccionar el componente ADC en el panel. Haga clic en el componente en el panel y seleccione Propiedades EXT. A continuación, establezca la opción de Vref a VREF +.



Hello,

You should be able to select the ADC component on the panel. Right click the component on the panel and select EXT properties. Then set the Vref option to VREF+.

Re: Voltaje Referencia

Posted: Wed Jun 20, 2012 6:14 pm
by electron67
Seleccione adc(0) y adc(1) con los puertos A0 y A3; A3 lo seleccione en propiedades ext.
Vref+ y A0 seleccione prop. ext. Vdd. Ajusto VRef a 2.5 volt, y cuando activo el sensor al llegar a 2.5 volt deberia marcar 255(byte) pero marca 100

Re: Voltaje Referencia

Posted: Wed Jun 20, 2012 9:18 pm
by electron67
He tratado muchas opciones para que funcione correctamente el VRef en el PIC18F4620
(llevo varios dias haciendo pruebas). Elimine el bloque C del programa, en el PIC16F877A funciono correctamente en el hardware, pero al configurar el chip 18f4620 este no trabaja.

Agradeceria si es posible que chequen el programa en el hardware, para verificar en donde esta el problema.

Re: Voltaje Referencia

Posted: Mon Jun 25, 2012 4:03 pm
by electron67
Parece ser que la funcion VRef no funciona con Flow 5, con Flow 4 si funciona.