Autor Tema: Salida de Tensión regulada atraves de los pines de un PIC?  (Leído 1965 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Salida de Tensión regulada atraves de los pines de un PIC?
« en: 15 de Abril de 2015, 04:28:59 »
Hola, es una cuestión sobre un proyecto sencillo.
Es saber si puedo estabilizar con el solo uso de el microcontrolador señales de tensión atraves de sus pines de salida, o necesito algun hardware adicional para estabilizar la tensión ya que solo trabaja con 0 a 5 v?

Es decir en mi proyecto busco establecer 2 Señales de tensión de salidas continuas una de 0.8V  y otra de 2V. (independientemente de los mA)

Según la entrada de un PIN del 12f1822 si la entrada es nivel logico 1
Mandar a la salida por otro pin analogico (RN2 por ejemplo) 0.8V y si la entrada nivel logico es un 0
Mandar a salida por el (RN2 por ejemplo) 2V
necesito sacar  una señal estable de 2v y 0.8V. 


Alguien me puede decir si es totalmente factible o necesito algun hardware adicional?
Se haria por el puerto AD cierto?
Algún ejemplo en XC8 o pseudocodigo??

un saludo Muchos gracias

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #1 en: 15 de Abril de 2015, 04:35:24 »
Me temo que no es un AD si no un DA, de digital a analógico.

sin embargo, puedes hacer un apañito mediante modulación de pulso, regulando el duty cycle puedes conseguir tensiones eficaces distintas de 5 voltios, nunca mayores pero si menores.

por ejemplo si tu salida es a 5 voltios, y en un periodo suficientemente rápido estas la mitad del periodo con el pin en alto y la otra mitad en bajo, tendras una tension eficaz de 2,5 voltios, jugando con estos tiempos de apagado encendido puedes ajustar tu tensión de salida

un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #2 en: 15 de Abril de 2015, 04:45:24 »
Veo distintas opciones:

La mas simple es la que dijo juanperser Ya que el PIC que nombras tiene ya un DAC ( aunque sea de 5bits )
Podes poner como referencia positiva el Regulador de voltaje fijo (VRF) en 2.048v asi cuando tenes 0x1F tenes 2.048V y 0x0D como 0.832V
Esto permite la independencia de VDD, ya el que VRF no se encuentra ligado al mismo.

Otra opcion:

Buscar un PIC con un una referencia de voltaje interna, estos permiten las salidas distintos valores. Entre los cuales se encuentran 2.03V y 0.83V ( es diferente a la que tiene tu PIC ya que ese es fija )

http://ww1.microchip.com/downloads/en/DeviceDoc/31019a.pdf

Obviamente no vas a alimentar nada y es solo de referencia, con muy poco consumo.
Lo que si no se es si posee salida al exterior.

Ultima opcion que se me ocurre:

Si no posee nada de nada y aun asi queres hacerlo entonces deberias usar 2 pines de salida, en el que un divisor de resistencias te den los 2V, y al activar una salida y poner la otra en alta impedancia ( entrada) este valor pase a ser 0.8v (formando otro divisor resistivo).
Consumos podrian hacer que cambien estos valores asi que seria bueno un amplificador como seguidor de tension. Para no cargar esa salida. Y es dependiende de VDD

De todas formas siempre deberias tener un AO como seguidor de tension para no cargar el circuito de referencia
« Última modificación: 15 de Abril de 2015, 04:52:52 por KILLERJC »

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #3 en: 15 de Abril de 2015, 05:01:08 »
Voy a mirar la primera Opcion , de poner como referencia el VRF  Muchas gracias.

Otra cuestión que AO me recomiendas para la salida?

un saludo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #4 en: 15 de Abril de 2015, 08:14:28 »
Otra cuestión que AO me recomiendas para la salida?

No tengo la menor idea, pero imagino que no debe ser MUY exacto la salida que queres. Asi que imagino que algo asi deberia bastar:
http://frankshospitalworkshop.com/electronics/data_sheets/analog/OP113.pdf

Al menos creo que cualquier AO se podria usar. Ya que no necesitas velocidad, ese tiene poco offset.

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #5 en: 16 de Abril de 2015, 06:02:59 »
Acá le dejo un codigo ejemplo para ejecutar con el PIC12F1822, me compila perfectamente pero lo he corrido en Proteus y no me hace absolutamente nada.

En teoria hay que jugar con los registros DACCON0 para poner una tension de referencia y con el registro DACCON1 los 5 ultimos bits para poner la resolucón de bit y que te muestre la tensión por RN0 pero no hace su función alguien me puede decir que estoy haciendo mal?

puede ser un problema del simulador de proteus?

un saludo.



#include <xc.h>




#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config FOSC = INTOSC    // (ECH, External Clock, High Power Mode (4-32 MHz); device clock supplied to CLKIN pin)
#pragma config FCMEN = OFF       /// Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disable)
#pragma config IESO = OFF       // Internal/External Switchover (Internal/External Switchover mode is disabled)
#pragma config BOREN = ON      // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config PWRTE = ON       // Power-up Timer Enable (PWRT disabled), Sprut: ON!
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT enabled)
#pragma config MCLRE = OFF         // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Memory Code Protection (Data memory code protection is disabled)

// CONFIG2

#pragma config PLLEN = OFF       // PLL Enable (4x PLL enabled)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config BORV = HI        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = OFF



void main()
{
     OSCCON = 0b01110010 ;  // Funcionando a 8 Mhz
     ANSELA = 0b00000000 ;  // Analogico no se utiliza para asignar todas las IO digitales
     TRISA  = 0b00000000 ;  // Pin se asigna a toda la salida (entrada de sólo RA3)
     PORTA  = 0b00000000 ;  // Inicializacion del pin de salida

     // Conjunto de DAC (a la salida de aproximadamente 2,0 V de RA0)
     DACCON0 = 0b11100000 ;  //  usa VDD / VSS, pin DACOUT (RA0) de salida
     DACCON1 = 13 ;         // Salida sobre 2.0V (5V * (13/2 ^ 5) = 2,03125)

     while(1) {
     }
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Salida de Tensión regulada atraves de los pines de un PIC?
« Respuesta #6 en: 16 de Abril de 2015, 06:37:19 »
Yo lo haria asi:

Pero lo tuyo deberia funcionar tambien.

Código: C
  1. FRVCON = 0x88; //Habilitar el FVR y ponerlo en 2.048V para el DAC
  2.  
  3. DACCON0 = 0x68; //Lo ato a la referencia positiva, el PIN de salida esta activado
  4. DACCON1 = 0x1F; 2V o FVR a la salida
  5. DACCON0 |= 0x80; //Habilito el DAC

Para pasar a 0.8V

Código: C
  1. DACCON1 = 0x0D;

Ahi deberia tener casi 2 V a la salida.

VOUT =  ((VSOURCE+ VSOURCE-) * [DACR 4:0] / 2^5 ) + VSOURCE-

VSOURCE - = GND = 0V
VSOURCE + = FVR = 2.048v

2.048 * 31 / 32 = 1.984v

2.048 * 13 / 32 = 0.832v

Si queres tener los 2.048v deberias poner el DACCON1 a 0x1F y desabilitar el DAC, asi tendrias Vref+ en el pin DACOUT(RA0)
« Última modificación: 16 de Abril de 2015, 06:45:43 por KILLERJC »


 

anything