Autor Tema: PIC12F675 con Pic Basic del Pic Simulator IDE  (Leído 39565 veces)

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

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #15 en: 16 de Diciembre de 2008, 21:54:10 »
La mini-controladora montada:



El esquema de la MiniEbasic:

« Última modificación: 16 de Diciembre de 2008, 22:07:26 por dogflu66 »
Saludos desde Granada, España.

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #16 en: 16 de Diciembre de 2008, 22:01:52 »
Buena iniciativa amigo dogflu66, aprovechando queria preguntarte según el esquema que colocaste, parece que D1 viene despues del puente rectificador por tal ya no seria muy necesario colocarlo no? y en el pin GP2 hay un divisor de tensión partiendo de 12V entonces al pic le llegan 6v?

Este buen hilo será bien acogido por todos los interesados, adelante dogflu66.

Javicho.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #17 en: 16 de Diciembre de 2008, 22:15:44 »
Estamos hablando del primer circuito:

D1 es necesario, permite que se descargue primero C1 antes que C6, esto permite que el PIC siga funcionan durante unos instantes aun que no haya alimentación. "Esto es fundamental para que funcione el circuito"

GP2 esta conectado a un divisor de tensión, en realidad con solo una resistencia en serie es suficiente, ya que el PIC tiene dos diodos internos conectados en antiparalelo que evitan que suba el voltaje por encima de 5.5V

PD. "Cuidado", no todos los pin del pic tienen estos diodos internos.

Otro PD. En la practica se podria conectar este pin a 220V a travéz de una R de 2M.
« Última modificación: 16 de Diciembre de 2008, 22:21:05 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #18 en: 16 de Diciembre de 2008, 22:22:37 »
.Descripción general del circuito:

Comenzaremos con la descripción del circuito, desde la fuente de alimentación. Esta compuesta por un jack de alimentación para circuito impreso J1 por donde entra la alimentación de 9Vdc, pasando en serie por el puente JP1 y D1, JP1 hace de interruptor y D1 nos protege de una posible inversión de polaridad de la misma, los condensadores C2 y C3 ayudan al filtrado de la alimentación, R8 es la resistencia limitadora del LED1  de color verde 3mm trabajando como testigo de la alimentación, seguidamente pasamos al popular estabilizador de 1Amp. LM7805CV (U2) que nos reduce y estabiliza la tensión de entrada a 5Vdc y, estando su salida filtrada por C4 y C5 además C5 igual que C3 ayuda a la demanda de corriente instantánea de nuestra placa. El resto de componentes van asociados directamente al microcontrolador PIC12F675, siendo D1 la protección contra inversión de polaridad proveniente del conector CN2, que es el encargado de dar conexión a nuestro micro con el programador. JP2 permite seleccionar si la alimentación de nuestro circuito será suministrado por el programador o por la fuente interna de nuestra placa. La R3 y R2 polarizan las líneas de Datos y Clock del PIC, podrían eliminarse del esquema, siempre y cuando programásemos como salidas sus respectivos pin del micro en nuestros programas, sin embargo R1 no puede ser eliminada del circuito, porque el pin del Pic asociado a Vpp no puede ser programado como salida digital. Y siempre aplicando la norma de no dejar sin conexión o al aire ninguna entrada CMOS. C1 es el condensador de desacople de la alimentación del PIC. Para trabajar con el ADC usaremos el RAJ2 con el que podremos variar la tensión en el pin asociado, mediante R4 y C7 constituimos un circuito atenuador de las pequeñas variaciones de resistencia inherentes a la película de carbón de RAJ2, hay que tener en cuenta que otra función importante de R4 es la de proteger al micro, en el caso que olvidemos de configurar este pin (GP2) como entrada, ya que si lo configuramos como salida este tendrá que estar en estado alto o bajo y, hay que tener en cuenta que el cursor de RAJ2 puede llegar también a estar en uno de estos dos estados, y si se diera la coincidencia de que el cursor quedara en un estado contrario, habría una lucha de niveles entre RAJ2 y el Pic, llegando seguramente al deterioro de uno de los dos componentes, claro esta que esto llegaría a pasar si no estuviera R4 para impedirlo. S1 es una tecla miniatura para soldar directamente en circuito impreso. Comparte pin con R4 y C7 mediante R10, en este caso la función de R10 es similar a la de R4, tanto para atenuar la lucha de niveles entre GP2 (en caso de ser programada como salida en estado alto y, al mismo tiempo S1 estando pulsado) y, además otra función añadida, la de atenuar la descarga de C7 a través de S1. Otra utilidad de RAJ2 es la de polarizar a estado alto al micropulsador, llevando su cursor a positivo para que de esta forma al ser pulsado S1, pueda variar el estado de su pin asociado y que programaremos como entrada. Pasando a otra parte del circuito tenemos R9 que es la resistencia limitadora del LED2, de color rojo 3mm, al que podremos encender o apagar a voluntad en nuestros experimentos. El pin que lo controla esta compartido con CN1, donde podremos conectar directamente un servomotor Futaba 3003, entre otros dispositivos. C6 nos permitirá atender las demandas instantáneas de corriente del servomotor. Pasando finalmente a la descripción de nuestro adaptador optoacoplado, de señal TTL a niveles de RS232 funcionando solo como Tx. R5 es la resistencia limitadora del led interno al U3 el cual mediante GP5 controla al transistor también interno al U3, que se encarga de acoplar nuestro Pic al puerto serie RS232 de nuestro ordenador. R7 suministra el estado alto RS232 desde el mismo puerto serie (DTR) del ordenador y, R6 suministra el estado bajo RS232 desde GND_RS del ordenador, quedando el puerto total mente aislado de nuestro circuito.
« Última modificación: 30 de Octubre de 2010, 11:11:11 por dogflu66 »
Saludos desde Granada, España.

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #19 en: 16 de Diciembre de 2008, 22:34:54 »
GP2 esta conectado a un divisor de tensión, en realidad con solo una resistencia en serie es suficiente, ya que el PIC tiene dos diodos internos conectados en antiparalelo que evitan que suba el voltaje por encima de 5.5V

Has comprobado con multimetro que efectivamente hay 5.5V ahi?

Javicho.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #20 en: 16 de Diciembre de 2008, 22:45:48 »
Pues esto es un dato de libro, pero creo recordar que si lo he comprobado.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #21 en: 17 de Diciembre de 2008, 19:50:56 »
.Tema

Seguidamente aprenderemos como configurar el puerto serial RS232 (solo Tx) de la entrenadora para de esta forma poder transferir información a nuestro ordenador, como pueden ser datos de temperatura que posteriormente podremos procesar en el PC si lo deseamos. En principio la función principal del puerto RS232 (Tx) de nuestra entrenadora será la utilidad de depurado de nuestros programas. Para poder poner en marcha este puerto antes debemos conocer unos detalles técnicos de este microcontrolador. El PIC12F675 no contiene modulo interno UAR (UAR por Hardware) por lo que el puerto será emulado por Software. La utilización de esta emulación de UAR por “Soft” es muy fácil y rápida de implementar en este lenguaje ya que solo basta con utilizar un par de funciones del propio lenguaje, una para indicar si los datos serán de entrada “Rx” y la otra de salida “Tx” (en este caso) , seguidos del PIN que se utilizará como línea de datos de Tx, velocidad en baudios del puerto y a continuación los datos a ser enviados. Otro punto a tener en cuenta cuando se utiliza la emulación UAR es que se generan BIT  de una duración determinada, esto requiere poder medir tiempo con una precisión que el oscilador interno del PIC  no tiene. Por suerte para nosotros lo ha tenido en cuenta el fabricante del chip que lo a dotado de un registro interno para la compensación del error.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #22 en: 17 de Diciembre de 2008, 19:52:46 »
El error puede llegar a ser de +/-200Khz. El registro que nos permite calibrar el oscilador interno del PIC se llama OSCCAL y, hay que tener presente que para otra familia de PIC el nombre del registro será distinto e incluso puede que no exista. El registro de calibrado OSCCAL tiene una longitud de 8 BIT pero solo utiliza los 6 de mayor peso, siendo el estado de los dos de menor peso indiferente. Microchip, que es el fabricante del microcontrolador que utilizamos, nos suministra el valor de calibrado del registro en el propio “micro”, este valor lo graba en la ultima posición de memoria de la FLASH (memoria de programa) del PIC y es distinto para cada microcontrolador. El valor de calibración no es cargado por el propio “micro”, por lo que si se quiere utilizar el usuario tendrá que ocuparse de esta operación añadiendo una rutina en el programa que realice este trabajo. El propio fabricante indica en el Datasheet del PIC como hacerlo y también indica que el margen de error con este valor queda <2%.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #23 en: 17 de Diciembre de 2008, 19:54:10 »
.Finalizando con el registro OSCCAL
La localización del valor de OSCCAL es guarda por el fabricante en la ultima dirección de la memoria FLASH 0x3FF del PIC, como ya se indico anteriormente pertenece a la memoria de programa y es la ultima dirección que contiene una instrucción ejecutable, la longitud de cada una de las 35 instrucciones que tiene este “micro” es de 14 BIT. Los 6 BIT  más significativos de cada instrucción corresponden al código equivalente en nemotécnico y los 8 restantes menos significativos contienen el valor del dato, en este caso el valor de calibración. La instrucción que nos encontraremos en la posición 0x3FF es “RETLW xx” (34xx Hex.) donde xx es el valor de calibración expresado en hexadecima
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #24 en: 17 de Diciembre de 2008, 19:54:41 »
Si el programa de control de nuestro programador permite configurarlo para que nos salvaguarde este valor cada vez que hacemos una operación que afecte a la memoria de programa, activaremos la opción en él, o en su defecto, hacer como primera operación con el PIC una lectura de su memoria Flash y una vez localizado el valor imprimir y pegarlo en el PIC. Paso seguido visualizaremos un programa en lenguaje Assembler que se encargará de ejecutar la ultima instrucción de la FLASH y guardar el valor en el registro OSCCAL.

Lenguaje en código maquina que recomienda Microchip en el Datasheet del PIC12F675:

BSF STATUS, RP0 ;Selecciona Banco 1.
CALL 0x3FF ;Leer el valor de calibración.
MOVWF OSCCAL ;Mover el valor al registro de calibración.
BCF STATUS, RP0 ;Retornamos al Banc
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #25 en: 17 de Diciembre de 2008, 19:55:17 »
.PERIFERICO (comparador de tensión)

Como ya dijo alguien en alguna ocasión “No solo de PIC vive el hombre”, y para seguir con el carácter didáctico de la revista supondremos que hemos perdido el valor de calibración del oscilador y construiremos un periférico que nos permitirá recuperar el valor con una desviación aproximada del 0.15% inferior a la de Microchip. En este caso construiremos un generador de onda cuadrada de frecuencia conocida, basado en la red eléctrica española a 50Hz. Al utilizar la red no necesitaremos ajuste alguno en nuestro generador. Por supuesto se puede utilizar cualquier otro dispositivo que tengamos ya sea un generador comercial o simplemente un circuito astable basado en el popular 555, pero en este ultimo necesitaremos un instrumento para su calibrado.
« Última modificación: 08 de Marzo de 2011, 22:51:08 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #26 en: 17 de Diciembre de 2008, 19:55:59 »
.Medición  del ancho de pulso de una señal de onda cuadrada de 50Hz

Mediante un comparador construido con un amplificador operacional (lo nombraremos como OP) CA3140 que permite operar con simple tensión. La señal se extrae de la red domestica 220VAC aislada y reducida mediante un pequeño transformador 220VAC a 12VAC. La tensión es convertida y acondicionada por el OP siendo suministrada por este a la entrada del PIC con valores TTL.

El comparador de tensión es un detector, estos circuitos se suelen usar para detectar una determinada tensión. Esta tensión es fijada por nosotros. La señal de salida solamente tiene dos valores posibles según el voltaje que se compare sea mayor o menor al de referencia. En este caso la referencia es masa o cero, y al estar el OP trabajando con simple tensión los dos valores de tensión suministrados serán de 0V y <+5V.
« Última modificación: 08 de Marzo de 2011, 22:52:58 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #27 en: 17 de Diciembre de 2008, 19:56:29 »
En este caso la finalidad del comparador es tan solo la de convertir una senoidal en onda cuadrada con niveles TTL. Como se ha mencionado el circuito es simplemente un detector. Así que el terminal negativo del OP se conecta a través de una resistencia de 100K a un pin del secundario del transformador y el otro pin del Transf. será conectado a masa, quedando la señal de 50Hz unida a nuestro circuito. La entrada positiva del OP se unirá directamente a masa o negativo. Siempre que la señal de entrada sea mayor que masa, la salida será el voltaje de saturación negativo (en este caso 0V). Si la entrada es cero o menor, la salida es la saturación positiva del amplificador (en este caso <+5V). De igual forma se puede transformar cualquier tipo de señal periódica en una onda cuadrada de la misma frecuencia. Como este tipo de transformadores tienden a dar un nivel de tensión mucho más elevado del indicado por el fabricante cuando trabajan en vacío y, teniendo en cuenta que el consumo de la entrada del OP es despreciable, R1 limita la corriente y los diodos D1 y D2 limitan el voltaje quedando el pin 2 del OP protegido de sobretensiones provenientes del transformador.
« Última modificación: 08 de Marzo de 2011, 22:54:15 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #28 en: 17 de Diciembre de 2008, 20:07:09 »
Recreación 3D del generador de frecuencia 50Hz:

Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 con Pic Basic del Pic Simulator IDE
« Respuesta #29 en: 17 de Diciembre de 2008, 20:15:38 »
El esquema del circuito:

Saludos desde Granada, España.


 

anything