Download pdf - Proteus PIC

Transcript
Page 1: Proteus PIC

Proteus es un entorno integrado diseñado para la realización completa de proyectos de

construcción de equipos electrónicos en todas sus etapas: diseño, simulación, depuración y

construcción. Desarrollado por Labcenter Electronics que consta de los dos programas

principales: Ares e Isis, y los módulos VSM y Electra. Sus reconocidas prestaciones lo han

convertido en el más popular simulador software para microcontroladores PIC.

ISIS

El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas

Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar con

componentes muy variados, desde simples resistencias, hasta alguno que otro

microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de

señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en

Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente

con ISIS.

ARES es la herramienta de la suite Proteus dedicada al diseño de placas de circuito impreso

(PCB). Está plenamente integrada con la herramienta ISIS.

Una vez diseñado en ISIS el esquema electrónico, se genera automáticamente la lista de redes

(NETLIST). Una red es un grupo de pines interconectados entre sí y la lista de redes es una lista

con todas las redes que forman nuestro diseño. ARES es capaz de recibir esta lista de redes

para diseñar, a partir de ella, nuestra placa de circuito impreso. De esta forma nos aseguramos

que nuestra placa tendrá unidos entre sí los pines de forma idéntica a como los hemos

definido en nuestro esquema electrónico.

Cualquier modificación que realicemos en nuestro esquema, podrá ser reenviado desde ISIS a

ARES donde aparecerán resaltados los cambios que se hayan producido. De esta forma la

modificación y rediseño de nuestra placa se realizará de forma mucho más simple y segura.

Zona de Trabajo

Ventana de

Vista Completa

Barra de

Componentes

de Dibujo

Barra de Control

de Simulación

Barra de Ficheros

Visualización

Edición

Herramientas de

Diseño

Page 2: Proteus PIC

Selección de componentes:

Se pueden realizar distintos tipo de análisis:

Y exportar los datos, que se pueden pasar a Matlab por ejemplo para analizarlos de una forma

más precisa:

Búsqueda

Categorías

Familias

Compañias

Modelo

Esquemático

Modelo PCB

Encapsulado

Indica que se

puede simular

Componentes

Modelo PCB

Page 3: Proteus PIC

Una vez montado el circuito:

Cargamos el código al PIC, para ello pulsado doble click sobre el componente. Es necesario

tener generado el código en un archivo .hex (hexadecimal).

Page 4: Proteus PIC

ARES:

Podemos diseñar el circuito desde cero o importarlo desde ISIS.

Archivo con el código

Frecuencia del Reloj

Zona de

Trabajo

Barra de

Estado

Barra de

selección

Componentes

Barra de

herramientas

de dibujo

Barras de

herramientas

Page 5: Proteus PIC

Podemos usar la herramienta Auto-Router o el módulo Electra para realizar las conexiones de

los distintos compontes.

Podemos visualizar el diseño en 3D:

El microcontrolador ejecuta el

programa cargado en la memoria

Flash. Esto se denomina el código

ejecutable y está compuesto por

una serie de ceros y unos,

aparentemente sin significado.

Dependiendo de la arquitectura

del microcontrolador, el código

binario está compuesto por

palabras de 12, 14 o 16 bits de

anchura. Cada palabra se

interpreta por la CPU como una

instrucción a ser ejecutada

durante el funcionamiento del microcontrolador. Todas las instrucciones que el

microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de

instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal, el código

ejecutable se representa con frecuencia como una serie de los números hexadecimales

denominada código Hex. En los microcontroladores PIC con las palabras de programa de 14

bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

Page 6: Proteus PIC

LENGUAJE ENSAMBLADOR (http://www.mikroe.com/chapters/view/80/capitulo-2-

programacion-de-los-microcontroladores/)

Programación de microcontroladores - Ensamblador

Como el proceso de

escribir un código

ejecutable era

considerablemente

arduo, en

consecuencia fue

creado el primer

lenguaje de

programación

denominado

ensamblador (ASM).

Siguiendo la sintaxis

básica del

ensamblador, era más fácil escribir y comprender el código. Las instrucciones en ensamblador

consisten en las abreviaturas con significado y a cada instrucción corresponde una localidad de

memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del

lenguaje ensamblador a código máquina (código binario).

HEste programa compila instrucción a instrucción sin optimización. Como permite controlar en

detalle todos los procesos puestos en marcha dentro del chip, este lenguaje de programación

todavía sigue siendo popular.

Ventajas de lenguajes de programación de alto nivel

A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas desventajas:

Incluso una sola operación en el programa escrito en ensamblador consiste en muchas

instrucciones, haciéndolo muy largo y difícil de manejar.

Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un programador

tiene que conocer para escribir un programa

Un programador tiene que conocer el hardware del microcontrolador para escribir un

programa

Programa escrito en C (El mismo programa compilado al código ensamblador):

Page 7: Proteus PIC

Programa escrito en C

Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron creados con el

propósito de superar las desventajas del ensamblador. En lenguajes de programación de alto

nivel varias instrucciones en ensamblador se sustituyen por una sentencia. El programador ya

no tiene que conocer el conjunto de instrucciones o características del hardware del

microcontrolador utilizado. Ya no es posible conocer exactamente cómo se ejecuta cada

sentencia, de todas formas ya no importa. Aunque siempre se puede insertar en el programa

una secuencia escrita en ensamblador.

Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje ensamblador,

probablemente sepa que la arquitectura RISC carece de algunas instrucciones. Por ejemplo, no

hay instrucción apropiada para multiplicar dos números. Por supuesto, para cada problema

hay una solución y éste no es una excepción gracias a la aritmética que permite realizar las

operaciones complejas al descomponerlas en un gran número operaciones más simples. En

este caso, la multiplicación se puede sustituir con facilidad por adición sucesiva (a x b = a + a +

a + ... + a). Ya estamos en el comienzo de una historia muy larga... No hay que preocuparse al

utilizar uno de estos lenguajes de programación de alto nivel como es C, porque el compilador

encontrará automáticamente la solución a éste problema y otros similares. Para multiplicar los

números a y b, basta con escribir a*b.

Lenguaje C

Page 8: Proteus PIC

El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel

(anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como

sobre los bits (operaciones lógicas, desplazamiento etc.). Las características de C pueden ser

muy útiles al programar los microcontroladores. Además, C está estandarizado (el estándar

ANSI), es muy portable, así que el mismo código se puede utilizar muchas veces en diferentes

proyectos. Lo que lo hace accesible para cualquiera que conozca este lenguaje sin reparar en el

propósito de uso del microcontrolador. C es un lenguaje compilado, lo que significa que los

archivos fuentes que contienen el código C se traducen a lenguaje máquina por el compilador.

Todas estas características hicieron al C uno de los lenguajes de programación más populares.

Programming microcontroller - C programming language

La figura anterior es un ejemplo general de lo que sucede durante la compilación de programa

de un lenguaje de programación de alto nivel a bajo nivel

Para generar el código existen varios programas:

MPLAB: (Wikipedia http://es.wikipedia.org/wiki/MPLAB): MPLAB es un editor IDE gratuito,

destinado a productos de la marca Microchip. Este editor es modular, permite seleccionar los

distintos microcontroladores soportados, además de permitir la grabación de estos circuitos

integrados directamente al programador. Permite programar en C o en ensambrador a través

de distintas

Ahora se va a llamar MPLABX (eXperimental), tiene cosas nuevas como:

La primera y gran ventaja de Mplab X es que es multiplataforma. Hay tanto versiones para

Windows, Mac y Linux. Mplab 8 solo se podía instalar en Windows, por lo que gente como yo,

con Ubuntu instalado tenía que usar máquinas virtuales o particiones con Windows.

Otra de las funcionalidades nuevas que me encanta de Mplab X es su método de

autocompletado del código. Heredado de NetBeans puedes autocompletar código de registros

o variables. También cuenta con hiperlinks para saltar rápidamente a definiciones o funciones.

Page 9: Proteus PIC

Incluso pasando el ratón por encima del código podrás ver el estado bit a bit de un registro o

variable. Por último, cuenta con un editor que contiene esqueletos de códigos para insertar.

Todo esto hace de Mplab X una herramienta mucho más eficiente para escribir código que su

antecesor.

MPLAB X IDE v3.00 is based on the latest Netbeans open source IDE v8.01 and will be released

in early April. This brings many new features that have been added to the open source IDE as

well as bug fixes.

Tambien podemos simular el código y cargarlo a través de distintos programadores:

(AÑADIR TOOLS)

MPLABX:

Page 10: Proteus PIC

Existen otros programas como:

PIC C Compiler:

El compilador PCW CSS, se trata de un compilador de alto nivel, muy eficiente, el cual nos

ayudara para depurar el código, ya que nos avisa de los diferentes errores que podamos haber

cometido. Contienen bibliotecas muy completas, como se ve en el vídeo, permite una

combinación del lenguaje de alto nivel y Ensamblador, por si deseamos ajustar el código y

muchas otras características.

CCS PCW,PCB,PCH C compiler (http://www.ccsinfo.com/picc.shtml). Es el compilador ideal

para aquellos que quieren empezar a realizar proyectos en C con una mínima idea de este

lenguaje. Proporciona muchas funciones para los proyectos. El entorno de trabajo es bajo

Page 11: Proteus PIC

Windows. Ofrece un metódo de trabajo a base de "wizards" o plantillas prediseñadas que nos

facilitan enormente la ardua tarea de empezar a programar. Ultimamente ha tomado fuerza y

renueva constamente el soporte de nuevos PIC. Posse versión Linux. En su pagina disponemos

de un foro de ayuda muy activo.

MikroC PRO for pic: El mikroC PRO for PIC es una poderosa herramienta de desarrollo rica en

características para los microcontroladores PIC. Está diseñado para proporcionar al

programador la solución más fácil posible de desarrollo de aplicaciones para sistemas

empotrados, sin comprometer el rendimiento o el control.

A continuación vamos a presentar a los elementos principales del lenguaje mikroC

desarrollado por Mikroelektronika. Este lenguaje es muy similar al C estándar, no obstante en

determinados aspectos difiere del ANSI estándar en algunas características. Algunas de estas

diferencias se refieren a las mejoras, destinadas a facilitar la programación de los

microcontroladores PIC, mientras que las demás son la consecuencia de la limitación de la

arquitectura del hardware de los PIC. Aquí vamos a presentar características específicas del

lenguaje mikroC en la programación de los microcontroladores PIC. El término C se utilizará

para referirse a las características comunes de los lenguajes C y mikroC.

FASES DE COMPILACIÓN

El proceso de compilación consiste en varios pasos y se ejecuta automáticamente por el

compilador. Por con, un conocimiento básico del funcionamiento puede ser útil para entender

el concepto del lenguaje mikroC.

El archivo fuente contiene el código en mikroC que usted escribe para programar el

microcontrolador. El preprocesador se utiliza automáticamente por el compilador al iniciarse el

proceso de la compilación. El compilador busca las directivas del preprocesador (que siempre

empiezan por ‘#’) dentro del código y modifica el código fuente de acuerdo con las directivas.

En esta fase se llevan a cabo inclusión de archivos, definición de constantes y macros etc, lo

que facilita el proceso. Más tarde vamos a describir estas directivas en detalle. El analizador

sintáctico (parser) elimina toda la información inútil del código (comentarios, espacios en

blanco). Luego, elcompilador traduce el código a un archivo binario denominado archivo .mcl.

Page 12: Proteus PIC

El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los

archivos externos y la agrupa en un solo archivo (.dbg). Además, un proyecto puede contener

más de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas

dentro de los archivos denominados librerías. Por último, el generador .hex produce un

archivo .hex. Es el archivo que se va a cargar en el microcontrolador.

El proceso entero de la compilación que incluye todos los pasos anteriormente descritos se le

denomina “building”.

PIC y C concuerdan entre sí: PIC es el chip de 8 bits más popular en el mundo, que se utiliza en

una amplia variedad de aplicaciones, y C, muy apreciado por su eficiencia, es la elección

natural para el desarrollo de sistemas embebidos. mikroC PRO for PIC ofrece una conexión

exitosa entre una IDE muy avanzada, ANSI compilador compatible, amplio conjunto de

bibliotecas de hardware y documentación completa.

Menú Principal

Archivo

Compilar

Herramientas

Apariencia

Ayuda

Zona de

Trabajo

Librerías

Mensajes

Page 13: Proteus PIC

Ventajas:

Entorno amigable.

Asistente de código.

Autocorrección.

Librerías.

Fácil de usar.

Herramientas:

Algunas de las más interesantes son:

Editor de siete segmentos: El siete segmentos Converter es un panel visual que devuelve valor

decimal / hexadecimal para cualquier combinación que se puede mostrar en 7SEG. Haga clic

en las piezas de la imagen segmento 7 de obtener el valor deseado en los cuadros de edición.

Page 14: Proteus PIC

Caracteres personalizados de LDC: nos permite crear caracteres personalizados para después

usarlos en una pantalla LCD. La salida es mikroC PRO para PIC código compatible.

Page 15: Proteus PIC

Es fácil configurar el Pic elegido ya que se puede hacer sin necesidad de escribir código.

Podemos seleccionar el tipo de oscilador, watchdog o la frecuencia del reloj de forma sencilla.

PROGRAMADORES:

PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology.

They are used to program and debug microcontrollers, as well as program EEPROM. Some

models also feature logic analyzer and serial communications (UART) tool.

PICkit 1

The PICkit 1 — introduced on March 31, 2003 for US$36[2] — was a rudimentary USB

programmer for PIC microcontrollers, produced by Microchip Technology, the manufacturers

of the PIC series of microcontrollers. It was integrated into a demoonstrator board, featuring

eight LEDs, a switch, and a potentiometer. Its default program, explained in the

documentation, rotates the LEDs in series. The light display's direction and speed of rotation

can be changed with the button and potentiometer on the PICkit board.

PICkit 2

The PICkit 2 — introduced in May 2005[3] — replaced the PICkit 1. The most notable

difference between the two is that the PICkit 2 has a separate programmer/debugger unit

which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 was a

single unit. This makes it possible to use the programmer with a custom circuit board via an In

Circuit Serial Programming (ICSP) header. This feature is not intended[3] for so-called

"production" programming, however.

Page 16: Proteus PIC

The PICkit 2 uses an internal PIC18F2550 with FullSpeed USB. The latest PICkit 2 firmware

allows the user to program and debug most of the 8 and 16 bit PICmicro and dsPIC members of

the Microchip product line.

The PICkit 2 is open to the public, including its hardware schematic, firmware source code (in C

language) and application programs (in C# language). End users and third parties can easily

modify both the hardware and software for enhanced features. e.g. GNU/Linux version of

PICkit 2 application software, DOS style CMD support, etc.

The PICkit 2 has a programmer-to-go (PTG) feature, which can download the hex file and

programming instructions into on-board memory (128K byte I2C EEPROM or 256K byte I2C

EEPROM), so that no PC is required at the end application.

The Microchip version of PICkit 2 has a standard 128K byte memory. 256K byte memory can be

achieved by modifying the hardware or from third party.

Additionally, a 500 kHz three-channel logic analyser and a UART tool are built into the PICkit 2.

These features are missing from the PICkit 3.

Since release of V2.61, PICkit 2 PC software now supports a maximum 4 megabytes of memory

for the programmer-to-go feature. This modification makes the PICkit 2 support eight times as

much memory as the PICkit 3. This enhancement has been contributed by Au Group

Electronics and the PICkit 2 firmware is also reported to be submitted to Microchip PICkit 2

team in the middle of March 2009. This enhancement may be integrated into future firmware

releases, too.

PICkit 3

Microchip has gone on to manufacture the PICkit 3, a variation of the PICkit 2 with the same

form factor and a new translucent case. It features a faster 16-bit PIC24F processor and a

wider voltage regulation range. There are some complaints of it not being as reliable as the

Pickit 2.

Both PICkit 2 and PICkit 3 have internal, switch-mode voltage regulators. This allows them, in

the case of the PICkit 2, to generate voltages from 2.5 to 5 volts, or in the case of the PICkit 3,

2.5 to 5.5 volts, from a 5V USB supply, at around 100mA. Both have options for calibrating the

output with a multimeter, for increased accuracy. Additionally, for some PICs, the MCLR

programming voltage can be generated, at around 13 to 14 volts. This voltage is required to

reprogram the flash memory.

Page 17: Proteus PIC

MAS PICKIT3: http://www.sagitron.com/productos/activos/microchip/203-pickit3-

programador-de-pic-sin-necesidad-de-ordenador

El PICKit 3 es la herramienta de depuración y programación más sencilla y de menor coste de

Microchip. Está totalmente soportado por el MPLAB IDE, y tiene una sencilla conexión USB Full

Speed con el ordenador que no solo permite programar y depurar sino también hacer update

del firmware interno del PICKIT3.

Tiene circuitos para protección de sobre tensión y de corto circuito, permite ejecución en

tiempo real y soporta tensiones desde 2.0V.

Respectando la norma USB puede dar 100mA al circuito donde esta conectado y tiene LEDs de

información rápida para el usuario.

microchip pickit3

Además de estas funcionalidades, hay una que es muy interesante y en algunos entornos

bastante útil del PICKIT3 que es la funcionalidad “Programmer-To-Go”.

La funcionalidad “Programmer-To-Go” permite de una forma muy sencilla programar cualquier

microcontrolador de las familias PIC16, PIC18, PIC24, dsPIC33F y PIC32 de Microchip sin

necesitar de un ordenador, lo que es muy útil si estamos en un entorno donde llevar un

ordenador no es practico o es del todo imposible.

El PICKit3 permite guardar un código de hasta 512KB en su Flash, esto se hace desde el MPLAB

y después llevar el PICKIT 3 y de forma autónoma sólo alimentando el PICKit3 desde el USB

(puede ser un cargador con salida usb como ya tenemos para algunos móviles o para baterías

de grabadores de video) programar “In Situ” nuestro dispositivo.

Podemos hacer uso de 4 tipos diferentes de osciladores

(http://riqooberto.blogspot.com.es/2009/02/tipos-de-osciladores.html)

Page 18: Proteus PIC

Oscilador tipo "XT" (XTal) para frecuencias no mayores de 4 Mhz.

Oscilador tipo "LP" (Low Power) para frecuencias entre 32 y 200 Khz.Este oscilador es igual que

el anterior, con la diferencia de que el PIC trabaja de una manera distinta. Este modo está

destinado para trabajar con un cristal de menor frecuencia, que, como consecuencia, hará que

el PIC consuma menos corriente.

Oscilador tipo "HS" (High Speed) para frecuencias comprendidas entre 4 y 20 MHz.Habremos

de usar esta configuración cuando usemos cristales mayores de 4 MHz. La conexión es la

misma que la de un cristal normal, a no ser que usemos un circuito oscilador como el relatado

unas líneas más abajo, en la sección de Otras configuración

Oscilador tipo "RC" (Resistor/Capacitor) para frecuencias no mayores de 5.5 Mhz. Por último

tenemos el oscilador tipo RC que es el más económico por que tan solo se utiliza un

condensador no polarizado y una resistencia. Este tipo de oscilador proporciona una

estabilidad mediocre en la frecuencia generada y podrá ser utilizado para aquellos proyectos

que no requieran precisión

En ciertas ocasiones disponemos una fuente de reloj que proviene de una fuente externa

como puede ser un oscilador TTL o CMOS. La onda generada por esta fuente externa puede

Page 19: Proteus PIC

servir para poner en funcionamiento el PIC. En la siguiente figura tenemos la forma de

conexionar la entrada digital a traves de un inversor lógico.

Como se puede observar, todos los circuitos oscilatorios que se conectan al PIC a través de una

sola patilla, van conectadas a la entrada OSC1, dejando la entrada OSC2 abierta.

Oscilador TTL

Este tipo de oscilador está basado en un cristal que contiene toda la circuitería para generar

una onda cuadrada. Este ha de ser conectado como si de un generador de señal externa se

tratase. Al incluir toda la circuitería esto lo convierte en la opción más costosa; pero resulta

una forma interesante por la precisión en la señal de reloj emitida.

Estos tipos de cristales están diseñados especialmente para tecnologías TTL. La frecuencias

disponibles para esta versión de cristal son muy amplias y las mas usuales son 1 - 1.8432 - 2 - 4

- 8 - 10 - 11.059 - 12 - 14.31818 - 16 - 20 - 25 - 32 - 33 - 40 - 50 - 80 y 100 Mhz.

En la imagen siguiente se muestra como debe conectarse al microcontrolador y las

características del cristal.

Page 20: Proteus PIC

RESET, INTERRUPCIONES??? http://perso.wanadoo.es/pictob/micropic16f84_3.htm

COMPARACION CON DIGITAL I.

En la imagen se puede ver un circuito cuya finalidad es contar a través de dos pulsadores, uno

para incrementar el contador y otro para disminuir el contador.

Para llevar a cabo el circuito hemos usado el circuito integrado 74192. El 74LS192 es un

contador de décadas Up/Dw en BCD y es el 74LS193 es un contador binario de 4 bits Up/Dw.

También hemos usado dos decodificadores para siete segmentos de cátodo común, el 74LS48.

Los pulsadores están conectado a una parte de lógica combinacional necesaria para el correcto

funcionamiento del circuito.

A continuación se muestra como sería el circuito si se montara con un PIC sustituyendo a los

contadores:

Page 21: Proteus PIC

En este circuito se han sustituido los dos contadores por un PIC, y se han usado dos

decodificadores para siete segmentos.

Con esta configuración no es necesaria la lógica combinacional, solo necesitamos colocar dos

resistencias pull-down para asegurar que siempre estamos midiendo un estado alto o bajo en

los pines.

También podríamos prescindir de los decodificadores si elegimos un PIC con más salidas

digitales.

Con esta configuración es mucho más sencillo controlar la cuenta, es muy sencillo modificar el

código para incrementar la cuenta de dos en dos en lugar de uno en uno. También es sencillo

poner un límite al contador, para que no aumente aunque se pulse el pulsador cuando

hayamos llegado a un valor determinado.

Page 22: Proteus PIC

El código usado ha sido el siguiente:


Recommended