Mis pequeñas prácticas con microcontroladores

Iniciado por Tokes, 25 Agosto 2010, 01:48 AM

0 Miembros y 4 Visitantes están viendo este tema.

Tokes

Mi buen amigo andres_5, me parece que malinterpretaste las cosas (o tal vez no): el microcontrolador que te recomendé (PIC12F510) cuesta 35 pesos mexicanos, aproximadamente 3 dólares de US. Lo que sí cuesta caro es el grabador (300 pesos mexicanos, aprox.), pero ese te sirve para programar casi todos los microcontroladores de Microchip.

Claro, el PIC12F510 te lo recomendé por barato, pero sin duda, el más popular de todos los PIC es el famosísimo PIC16F84A, que cuesta aproximadamente 100 pesos mexicanos (10 dólares). Te dejo un enlace a mercado libre, chécalo:

http://articulo.mercadolibre.com.pe/MPE-11780541-_JM

Mi estimado Sr. Blanco, voy a estar ocupado durante 1 hora, más o menos, y regreso para comentarle algo.

          Saludos y muchas gracias por participar.

Tokes

#11
Ahora sí Sr Blanco:

He probado su primer programa, "Encender un led", y sí funciona, pero lo mejor es que cuando un programa realiza un determinado proceso y después ya no tiene nada más que hacer (como es el caso de tu primer programa) entre en un ciclo infinito o entre en modo de bajo consumo.

Aquí le dejo su primer programa, pero con el final modificado:

Código (asm) [Seleccionar]
;ejercico 1
;encender un led en rb0
;pic 16f84
;oscilador 4MHz (Xtal)
;TTP Montaje
;10/09/2007
;Autor: Sr.blanco

status equ 03
porta equ 05
portb equ 06
trisa equ 85
trisb equ 86

list p= pic 16f84

reset org 0 ;saltar vector de ingreso
goto inicio

org 5
inicio bsf status,5 ;pasar a banco de memoria 1
movlw b'00000' ;cargar en W palabra de configuracion trisa
movwf trisa ;carga el trisa con el contenido de W.
movlw b'00000000' ;cargar en W palabra de configuracion trisb
movwf trisb ;cargar en trisb el contenido de W.
bcf status,5 ;pasar a banco de memoria 0.

limpio clrf porta ;limpio puerto a
clrf portb ;limpio puerto b

comenzar                 movlw       b'00000001'
movwf portb
duerme sleep ; Entra en modo de bajo consumo.
goto          duerme

end


       Gracias por tu aporte. Estaré echándole un vistazo a tus otros proramas.
       ¡¡Buen día!!

andres_5

Creo que empezasteis un poco lento, pero acabais de dar un aceleron que casi casi me he perdio :S.
Aun no tengo el pic pero sabiendo que no es tan caro en unos dias me lo pillo en alguna tiendo de electronica...
mas o menos comprendo que eso que estais publicando es el codigo fuente para programar un PIC, hace 2 dias empece C, y eso no me parece que sea C, aunque lo puede ser... que lenguaje de programacion es?, ahora para linux que programa permite programar un pic.
Bueno en breves me comprare un PIC supongo el de $35, al menos para empezar, y ya os ire comentando aqui mismo las dudas que me vallan surgiendo.
Saludos Y muy util este POST ;)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Meta

Los programadores de USB son caros, y eso que cada vez sacan algunos nuevos. Este es el más nuevo que han sacado.



Citar
Ingeniería de Microsistemas Programados presenta el nuevo grabador Universal USB-Pic'Burner. Consiste en un grabador de última generación y bajo coste que admite los dispositivos PIC mas representativos de 8, 18, 28 y 40 patillas, de las familias 12F, 16F, 18F, que se insertan sobre un zócalo ZIF de fuerza de inserción nula.

Su interface con el PC (de sobremesa o portátil) se realiza a través de un puerto USB desde donde también se toma la alimentación. Se trata por tanto de un grabador de reducidas dimensiones, potente, económico y totalmente portátil que se controla directamente desde el conocido entorno de desarrollo MPLAB-IDE y/o desde el software
de grabación PICKit-2. Ambas herramientas software son originales de Microchip y se pueden descargar sin costo alguno desde www.microchip.com

Sus características más relevantes son:

    * Reducidas dimensiones de 77x 62mm
    * Interface USB con el PC mediante cable USB tipo A a tipo B (incluido)
    * Alimentación desde el propio puerto USB del PC; consumo de 35mA en standby y 55mA en actividad
    * Compatible a nievel de hardware con el PICkit-2 de Microchip
    * Compatible a nivel de software con MPLAB-IDE y PICkit-2 de Microchip.
    * Se puede configurar para proceder automáticamente a la grabación cada vez que se realiza el ensamblado/compilado de un programa
    * Zócalo ZIF de inserción nula que admite dispositivos PICde 0.3" y 0.6" de 8, 18, 28 y 40 patillas de las familias PIC12, PIC16 y PIC18
    * Selección mediante jumper del dispositivo de 8, 18, 28/40 patillas a grabar
    * Dispone de conexión ICSP compatible con PICKit-2 que transporta las señales de grabación
    * Esas señales ICSP es posible conectarlas a múltiples dispositivos PIC de otras familias y encapsulados soportados por MPLAB-IDE y PICkit-2


Ver el programdor y sus características en PDF.

Fuente:
http://www.msebilbao.com/tienda/product_info.php?products_id=582
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Mr.Blue

#14
Hola a todos, bueno, creo q adelante y tire codigo muy rapido jaja, pero son algunos ejemplos muy sencillos como veran, los pic se programan en lenguaje assambler para pic, diferente al assembler de maquina, si quieren puedo subir una pequeña introduccion, a lo largo del dia ya que en estos momentos no puedo.


Pd: Ahi en mi anterior post subi a megaupload un quemado barato de armar alrededor de unos 30 a 40$ (Argentina) dependiendo de donde vivan. En dolares seran 10dolares masomenos.

Edit.
Un ejemplo de un pic seria el siguiente 16f84

RA0 a RA4 RA es un puerto bidireccional. Eso quiere decir que puede ser configurado como entrada o como salida. El número que hay después de RA indica el numero de bit (0 a 4). Por tanto, tenemos un puerto bidireccional de 5 bits donde cada bit puede ser configurado como entrada o como salida.

RB0 a RB7 RB es un segundo puerto bidireccional. Se comporta exactamente de la misma manera que RA, excepto que este tiene 8 bits.

VSS y VDD Estos son los pins de alimentación. VDD es la alimentación positiva, y VSS es el negativo de la alimentación, o 0 Voltios. La tensión máxima de alimentación que puedes utilizar son 6 Voltios, y el mínimo son 2 Voltios.


OSC1/CLK IN y OSC2/CLKOUT
Estos pines son donde conectaremos el reloj externo, para que el microcontrolador disponga de algún tipo de temporización.

MCLR  Este pin se utiliza para borrar las posiciones de memoria dentro del PIC (p.ej. cuando quiero reprogramarlo). Durante el funcionamiento normal está conectado a la alimentación positiva.


INT Este es un pin de entrada que puede ser monitorizado. Si el pin se pone a nivel alto, podemos hacer que el programa se reinicie, se pare o cualquier otra función de deseemos. No lo utilizaremos mucho.


TOCK1 Esta es otra entrada de reloj, que opera con un temporizador interno. Opera aisladamente del reloj principal. De nuevo, este tampoco lo utilizaremos mucho.


Como programar


Comentario: Esta imagen creo que lo dice todo


Bueno en primer lugar se programa en assembler el programa que queremos realizar, existen editores o simplemente un bloc de notas con una extensión .asm.
El paso siguiente es tomar ese fichero .asm y pasarlo a .Hex para poder grabarlo en el pic y que este entienda las intrucciones que debe realizar, para esto podemos usar el MASN para dar el mismo ejemplo, pero existen otros.
Cuando tenemos el  fichero .ASM lo que resta es quemarlo en el pic, para esto utilizamos el IC-Prog, en este programa debemos indicar que pic vamos a usar de una lista que tenemos en el mismo. Y listo ya tenemos el pic programado.

Circuito Con un pic


Aca tenemos un circuito sencillo con un pic

Fuente: http://wiki.webdearde.com/index.php/Tutorial:_Programaci%C3%B3n_de_PICs_en_Ensamblador

PD: De esta misma fuente, se explica como programar en en assembler para pic.

Ahi pueden encontrar como programar un pic explicado detalladamente, cualquier duda pregunten, no doy una explicacion propia porq hay mucha info en internet que seguramente lo expliquien mejor que yo. Esta web que paso es una. :xD


Tokes

Hola nuevamente:

CitarOSC1/CLK IN y OSC2/CLKOUT Estos pines son donde conectaremos el reloj externo, para que el microcontrolador disponga de algún tipo de temporización.

Bueno, debido a que Sr.Blanco mencionó algo sobre las terminales OSC1 y OSC2 daré un breve resumen sobre los osciladores más usados en los microcontroladores.

Tema: Osciladores típicos de los microcontroladores.

Estos son:

-   Oscilador RC. Este oscilador está compuesto por una red RC simple. Su ventaja es que es económico. Su desventaja es que no tiene mucha precisión en su temporizado.


Figura 2. Ejemplo de oscilador RC.

-   Oscilador basado en cristal de cuarzo o en resonador cerámico. Son muy estables y pueden ser de baja potencia (32 KHz) o de alta velocidad (4 MHz, 8 MHz, 12 MHz, etc.).


Figura 3. Conexión de un cristal de cuarzo a un microcontrolador.

-   Reloj externo. De este modo, la señal de sincronía del microcontrolador es brindada por un dispositivo externo (por ejemplo, un ne555).


Figura 4. Ejemplo de reloj externo.

Cabe aclarar que algunos microcontroladores tienen su oscilador interno integrado, además de la posibilidad de conectarles un oscilador externo.

Para el caso de los PIC, los osciladores a cristal de cuarzo y los resonadores cerámicos adquieren un determinado nombre según la frecuencia a la que se trabaje, de la siguiente manera:

Oscilador LP --> 32 KHz – 200 kHz
Oscilador XT --> 100 KHz – 4 MHz
Oscilador HS --> 4 MHz – 20 MHz

Y algo que también es muy importante aclarar es que la frecuencia de oscilación no es la misma que la frecuencia de las instrucciones. Para los PIC de la gama base y la gama media, y algunos de la gama alta, cada instrucción se ejecuta en 4 ciclos de reloj. Es decir, la frecuencia de las instrucciones es igual a ¼ de la frecuencia del oscilador. Así, si utilizamos un cristal de 4 MHz, la frecuencia de las instrucciones será igual a 1 MHz, por lo cual el ciclo de máquina es igual a 1 / 1 MHz = 1 microsegundo. Cada instrucción se ejecuta en 1 microsegundo.

Para lograr que el dispositivo a grabar trabaje con un determinado oscilador, hay que especificar dicho oscilador en la palabra de configuración. En lenguaje ensamblador esto se hace así:

   __CONFIG  _XT

Noten que __CONFIG lleva dos guiones bajos consecutivos. Esta directiva le indica al software ensamblador que debe grabarse una palabra en la zona de configuración del dispositivo. El argumento _XT indica que el microcontrolador va a trabajar con un oscilador de tipo XT (4 MHz). De manera similar para los otros tipos de osciladores.

En el compilador PCWH, de la compañía CCS, esto se especifica así:

   #fuses    XT

La directiva #fuses es equivalente a __config del ensamblador. En este caso también se indica un oscilador XT (noten que XT ya no lleva guión bajo).

Por el momento es todo. Saludos.

andres_5

Hola de nuevo, acabo de comprarme el (pic16f84A-04/P), pero el programador mas barato me sale a 35€ desmontado :S, sabeis si es posible hacerlo manualmente, osea comprar los materiales por separado y crear yo mismo el circuito, Claro con un patron ...
saludos y espero vuestras respuestas ;)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Tokes

#17
Para el buen andres_5:

Lamentablemente, las herramientas que yo conozco para programar microcontroladores trabajan en SO Windows.

Aquí un enlace a Microchip.com para descargar MPLAB IDE:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Te dejo un link de taringa que trae buenas descargas:

http://www.taringa.net/posts/downloads/833909/Ccs-PCWH-Compiler---Programar-PICs-en-C.html

Allí puedes descargar:

- PCWH - Es un compilador en lenguaje C para PICs. Aquí se editan los programas para PIC en lenguaje C y, para simularlos, se establece una conexión con MPLAB IDE a través del CCS ADDON.

- CCS ADDON - Este software establece una conexión entre MPLAB IDE y PCWH.

Con respecto a tu petición del grabador (la construcción) déjame ver si puedo conseguirte algo.

       Espero que te sirva. Nos vemos.

andres_5

Ok no importa, tambien tengo windows 7, pero me siento mas comodo en ubuntu... ;)
Muchas Gracias, tanta ayuda se agradece ;)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Mr.Blue

#19
@andres_5

Quemador PIC Circuito

http://www.megaupload.com/?d=NRBHEVYM

Ahi habia dejado uno, el circuito es completamente funcicional, no es muy caro armarlo si no me equivoco 10dolares saldra o menos.
Solo necesitas un par de transistores, diodos, diodo zener, algunas resistencias, dos leds, y socalos para pic de 8; 18; 28, y 40 a y un conector hembra DB-9

El circuito es sencillo y facil de armar.

hasta ahi el hardware, abria que ver ahora el software, no conozco ninguno para linux, pero estoy seguro de debe haber, habria que buscar en google haber q hay, cualquier cosa te aviso si encuentro algo.
Si no podes en una maquina virtual instalar un SO para hacer el quemado.

Saludos

Pegate una vuelta por esa pag no lei muy bien pero creo q es un quemador (software) para linux
http://pikdev.free.fr/

Sino aca podes ver que onda tmb
http://pic-linux.foroactivo.net/programadores-f12/enlaces-a-paginas-de-programadores-t4.htm