Sei sulla pagina 1di 23

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Manual para placa Bootloader con el PIC18F4550 y el programa PDFSUSB V1.0.

Desarrollado por el estudiante de la carrera de Ingeniera de Ejecucin en Electrnica Felipe Eduardo Reyes Esparza.

Laboratorio.

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Introduccin. El presente documento tiene por objetivo introducir al lector en el maravilloso e interesante mundo de los microcontroladores de forma prctica y sencilla, sin tener algn tipo de formacin especfica en el rea de la electrnica y la informtica. Toda la informacin necesaria, ya sea terica o prctica, para el desarrollo de las actividades propuestas se entregara a medida que el lector avance en la realizacin de los ejemplos. Siempre, durante el desarrollo de algn proyecto en el que se utilice un microcontrolador, independiente de la familia o fabricante que sea, ser necesario tener un equipo que permita la escritura o lectura de la memoria de programa del uC, a este equipo se le llama grabador. La forma tradicional para escribir o leer la memoria del uC consiste en sacar el chip de la placa de pruebas y colocarlo en el socket del grabador y mediante algn software de control instalado en el computador se envan los datos, correspondientes a la accin que deseamos realizar, al grabador y este se encarga de la escritura o lectura del uC. Esta forma de utilizar el uC, tal como se muestra en la figura 1, resulta un tanto incomoda y tediosa debido a que cuando necesitemos probar otro programa se deber sacar el uC de la placa en donde se encontraba y volverlo a colocar en el grabador para finalmente regresarlo a la tarjeta, tantas veces como programas deseemos probar, provocando un desgaste fsico por parte de las patas del chip.
PC Grabador uC

Figura 1. Sistema tradicional para usar un uC.

Como solucin a este inconveniente se plantea la utilizacin de un sistema basado en un bootloader. El bootloader es un conjunto de elementos que permiten que el uC pueda escribir o leer el mismo su propia memoria de programa. Los elementos que integran el sistema del bootloader son el frimware que es el programa que se encuentra ubicado en las primeras posiciones de la memoria de programa del uC y la interfaz grafica de usuario, que es el programa que debe estar instalado en el computador el cual enva los comandos de escritura o lectura de datos de la memoria del uC y el frimware del uC se encarga de ejecutar la accin correspondiente.
2

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

La implementacin de un sistema basado en un bootloader ofrece grandes y rpidas prestaciones a la hora de llevar a cado un proyecto relacionado con los microcontroladores. El proyecto propuesto por este documento consiste en el desarrollo e implementacin de una tarjeta de entrenamiento, como se indica en la figura 2, con el microcontrolador PIC18F4550, para ser utilizada con la interfaz de usuario PDFSUSB ofrecido de forma gratuita por el fabricante MICROCHIP. Se escogi el uC PIC18F4550 debido a la gran cantidad de informacin dedicada a el y dada la particularidad de que posee un puerto USB, puerto con el cual se realiza la comunicacin con la aplicacin PDFSUSB.
Gui PC Bootloader

Figura 2. Sistema basado en la implementacin del bootloader.

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Esquema elctrico del Bootloader. En la figura 3 se presenta el esquema elctrico para la realizacin de la tarjeta. El botn indicado como sw1 es el botn de reset y el botn indicado como sw2 es el botn de entrada al modo Bootloader. A dems en el esquema no se muestran los conectores pin header que aparecen en la foto de la placa terminada y que estn conectados a cada puerto de salida del uC. El led verde comienza a parpadear e indica que el uC a entrado en modo bootloader. El led rojo seala que el uC se encuentra energizado ya sea por la conexin del puerto usb o por una fuente externa.

Figura 3. Esquema elctrico de la tarjeta.

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Diseo del circuito impreso. Para realizar el diseo de la tarjeta se utilizo el programa CAD (dibujo asistido por computadora) PCBWizard el cual cumpla con la mayora de las herramientas para poder llevar a cabo el diseo y dada su gran facilidad de uso. En la figura numero 4 se muestra una presentacin preeliminar de la tarjeta.

Figura 4. Diseo finalizado de la tarjeta con el programa PCB Wizard.

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Presentacin de la placa y sus puertos. A continuacin se presenta la tarjeta finalizada y se indican algunas de sus caractersticas ms relevantes con respecto al hardware como las formas de conectar la alimentacin y el nombre de cada pin.

Figura 3. Tarjeta finalizada.

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Funcionamiento del bootloader. El sistema del bootloader consiste en la utilizacin de un programa instalado en el computador que se encarga de realiza la comunicacin del PC con el frimware que se encuentra grabado en el microcontrolador, siendo el frimware un programa residente en las primeras posiciones de memoria del microcontrolador que permite grabar el resto de la memoria con los datos provenientes del computador.

Figura 4. Ubicacin del frimware en la memoria del uC y ubicacin del espacio de memoria reservado para el usuario.

Proteccin de la zona de memoria del bootloader. Para poder utilizar la placa con el bootloader se ase uso del compilador de c CSS en su versin 4.084 (se utiliza esta versin del programa debido a que es la nica que presenta la funcin de redireccionar el origen del programa sin errores y complicaciones), dada por la facilidad y comodidad que brinda a la hora de realizar alguna aplicacin, especialmente con los microcontroladores de 8 bits. Para evitar escribir en las zonas de memoria en donde se encuentra cargado el frimware, el programa del usuario se debe iniciar siempre con las siguientes lneas de comandos:
#include <18F4550.h> #use delay(clock=48000000) #fuses HSPLL, NOWDT, NOBROWNOUT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN, MCLR, NOPBADEN, WRTB, CPB #build(reset=0x000800,interrupt=0x000808:0x000818) #ORG 0x0000,0x07ff {}

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Con el fin de no sobrescribir el programa del bootloader y perder la capacidad de auto grabado del PIC. Otro punto importante a destacar es que la placa siempre debe trabajar a 48MHz (12 millones de instrucciones por segundo) debido a que as estn configurados los fuses (palabra de configuracin del uC.) con los que funciona el frimware y permite la comunicacin por el puerto USB. Funcionamiento de la placa en modo bootloader. Cuando se energiza la tarjeta o sufre algn reset, automticamente comienza a correr el programa del usuario, pero para hacer correr el programa bootloader se debe tener conectado el cable usb al computador y a la placa, para luego realizar la siguiente maniobra con los pulsadores: primero, mantener presionado el botn de reset, luego presionar el botn de entrada al modo bootloader (RB4) a continuacin soltar el botn de reset y por ultimo soltar el botn de modo bootloader, si realizamos con xito esta operacin el led verde que se encuentra en la placa conectado al pin RD0 del uC comenzara a parpadear . Programa para usar con la placa. El programa que se utiliza para cargar los programas de usuario al microcontrolador de la placa es el PDFSUSB.exe (PICDEM FS USB DEMO TOOL) que se encuentra en las libreras de aplicacin que ofrece MICROCHIP, las cuales se pueden descargar en el siguiente enlace: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&n odeId=2680&dDocName=en547784. Una vez finalizada la descarga e instalacin de las libreras, se crea en el disco c el directorio C:/Microchip Solutions v2010-10-19/USB Tools/USB Tools/Pdfsusb, en donde se encuentra el programa PDFSUSB.exe. En la figura 5 se muestra la ventana principal del programa.

Figura 5. Programa para cargar el .HEX al uC. 8

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Uso del programa PDFSUSB. Una vez teniendo conectada la tarjeta al computador y habiendo realizado la operacin para que esta entrara en modo bootloader (el led verde comienza a parpadear), la tarjeta esta reconocida por el programa, si al pinchar en la pestaa aparece el tem de seleccin PICDEM FS USB 0 (boot), tal como se puede apreciar en la figura 6.

Figura 6. Reconocimiento de la tarjeta por el programa.

Al tener conectada y reconocida la tarjeta se activan los botones de Load HEX File, Read Device, Execute y Erase Device como se indica en la figura 7.

Figura 7. Programa listo para se utilizado con la tarjeta. 9

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Para gravar el uC primero se debe cargar un fichero.HEX en el programa para hacer esto se debe seleccionar el botn Load HEX File y buscar la direccin en donde se encuentra nuestro fichero.hex que deseamos cargar como lo indica la figura 8. Cuando el fichero este cargado con xito se activara el botn Program Device.

Figura 8. Directorio para buscar el fichero .HEX.

Una vez encontrado el fichero que deseamos cargar se pincha el botn Aceptar, si el fichero que acabamos de cargar no tiene los FUSES iguales a los que tiene el frimware del uC nos aparece la advertencia que se muestra en la figura 9. En la ventana de advertencia nos dice que los datos de configuracin contenidos en este archivo.HEX son diferentes a los datos por defecto que tiene el uC. Usar una configuracin distinta puede ocasionar interferencia con el funcionamiento normal del uC. A continuacin del mensaje aparecen las opciones de si, si queremos cambiar los datos de configuracin, no, si deseamos mantener los datos de configuracin por defecto y la opcin cancelar para no cargar el fichero.hex. Pulsamos la opcin NO.

Figura 9. Advertencia durante la carga del fichero .HEX cuando los fuses del programa usuario NO coinciden con los del frimware.

10

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

En la figura 10 se aprecia una imagen del fichero cargado exitosamente en el programa PDFSUSB.

Figura 10. Fichero .HEX cargado exitosamente.

Para grabar el uC se debe presionar el botn Program Device, y aparecer un registro del funcionamiento de esta operacin como se muestra en la figura 11.

Figura 11. Fichero .HEX programado satisfactoriamente en la memoria del uC.

11

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Instalacin del driver en Windows 7. Si se esta trabajando con el sistema operativo Windows 7, el driver que permite la comunicacin va el puerto usb puede no ser instalado automticamente cuando se conecta la tarjeta, para instalarlo se debern realizar las instrucciones que se presentan a continuacin. 1. Ir al men inicio y en la pestaa de ejecutar escribir hdwwiz y pulsar el botn Aceptar.

Figura 12. 2. Con esto aparecer la ventana de Agregar hardware, pulsar el botn Siguiente.

Figura 13.

12

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

3. Pinchar el botn de buscar e instalar el hardware automticamente y luego pulsar el botn de siguiente.

Figura 14. 4. El programa asistente buscara si hay algn driver para instalar y si NO lo encuentra aparecer la siguiente ventana. Presionar el botn siguiente.

Figura 15.

13

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

5. Presionar el botn Siguiente.

Figura 16.
6. A continuacin aparece la ventana de seleccionar el controlador de

dispositivo que desea instalar para este hardware. Presionar botn Usar disco.

Figura 17.

14

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

7. En la ventana que aparece buscar el driver en la direccin: C:/Microchip Solutions v2010-10-19/USB Tools/USB Tools/MCHPUSB Custom Driver/MCHPUSB Driver/Release/ mchpusb.inf

Figura 18. 8. Finalmente pulsar en el botn aceptar y se dar inicio a la instalacin del driver.

Figura 19.

15

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Sistema basado en una microcomputadora. Al igual que un computador personal como se indica en la figura xx procesa los datos provenientes de los perifricos de entrada como el Mouse, teclado, micrfono la unidad lectora de CD etc. para generar algn tipo de control sobre los perifricos de salida como el monitor la impresora y los parlantes, una microcomputadora es un sistema electrnico que hace uso de un microcontrolador o microprocesador, dependiendo de la capacidad de procesamiento que se requiera para ejecutar la tarea, para procesar seales de entrada provenientes de los sensores y efectuar alguna accin de control en un dispositivo de salida, comnmente denominado actuador. La accin de control es un programa que se encuentra grabado en la memoria de programa del uC.

Figura 20. Esquema general de un computador personal.

Figura 21. Esquema de un sistema usando un uControlador.

16

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Dispositivos de salida. Los dispositivos de salida o actuadores son los elementos encargados de realizar las funciones y/o tareas concretas que el microcontrolador les indica, por lo general en los proyectos relacionados con la robtica los principales actuadores son los dispositivos que pueden transformar la energa elctrica en una fuerza mecnica como los motores paso a paso o servo motores para crear una maquina capaz de desplazarse. Adems de los dispositivos que pueden transformar la energa elctrica en energa mecnica existen otro tipo de actuadores como los reles que permiten realizar una accin de control sobre una carga elctrica de gran potencia como una ampolleta o un motor monofsico y por ultimo los actuadores que permiten la visualizacin de alguna variable de control o seal de salida o entrada como las pantallas LCD, displays numricos, alfanumricos y los leds. Servomotor: Es un dispositivo que tiene la capacidad de ubicarse en cualquier posicin dentro de su rango de operacin, y de mantenerse estable en dicha posicin. Est formado por un motor de corriente continua, una caja reductora y un circuito de control, y su margen de funcionamiento generalmente es de menos de una vuelta completa. Dependiendo del modelo del servo, la tensin de alimentacin puede estar comprendida entre los 4 y 8 voltios. El control de un servo se reduce a indicar su posicin mediante una seal cuadrada de voltaje donde el ngulo de ubicacin del motor depende de la duracin del nivel alto de la seal. Cada servo, dependiendo de la marca y modelo utilizado, tiene sus propios mrgenes de operacin. Por ejemplo, para algunos servos los valores de tiempo de la seal en alto estn entre 1 y 2 ms, que posicionan al motor en ambos extremos de giro (0 y 180, respectivamente). Los valores de tiempo de alto para ubicar el motor en otras posiciones se halla mediante una relacin completamente lineal donde el valor 1,5 ms indica la posicin central, y otros valores de duracin del pulso dejaran al motor en la posicin proporcional a dicha duracin.

17

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Rele: El rel o relevador es un dispositivo electromecnico que funciona como un interruptor controlado por un circuito elctrico o electrnico en el que, por medio de un electroimn, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos elctricos independientes. La gran ventaja de usar los rels es la completa separacin elctrica entre la corriente de accionamiento, la que circula por la bobina del electroimn, y los circuitos controlados por los contactos, lo que hace que se puedan manejar altos voltajes o elevadas potencias con pequeas tensiones de control. Para poder usar un rele (rele de 5 V) con la tarjeta de ensayos se debe implementar un circuito buffer de corriente con un transistor como el de la figura para no sobre exigir la capacidad de corriente que puede entregar el pin del uC para no causar ningn dao al puerto.

18

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Indicadores visuales: Los dispositivos de indicacin son utilizados principalmente para hacer una funcin llamada debugging que consiste en la correccin de algn posible error en el programa. Los indicadores visuales tambin se utilizan para mostrar alguna variable de entrada como por ejemplo visualizar la medicin de alguna temperatura, la medicin de distancia por medio de los sensores de ultrasonido etc.

Pantalla LCD 16x2

Displays numrico y display alfa numrico.

Leds.

19

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Dispositivos de entrada. Los dispositivos de entrada son sensores compuestos por elementos capases de convertir alguna variable fsica como la temperatura, presin, fuerza y humedad por mencionar algunas, en seales elctricas seguido de alguna etapa amplificadora para que la seal que entrega el sensor sea adecuada para que puedan ser interpretadas por el microcontrolador. Sensores de ultrasonido: Los sensores de ultrasonido estn formados por dos elementos piezoelctricos uno encargado de transformar las diferencias de presin en el aire en seales elctricas de pequea amplitud y el otro realiza el proceso contrario, las seales elctricas que se le apliquen las convierte en diferencias de presin, con una frecuencia que se encuentra entre los 38 y 42 KHz, siendo un valor tpico los 40KHz. Este tipo de sensores permiten la deteccin de obstculos que se encuentran a una determinada distancia mediante el envi de un tren de pulsos de ultrasonido y la espera del eco de esos pulsos. En el proceso de espera el sensor determina el tiempo que se tarda en llegar el pulso del eco, una ves conocido el tiempo que se demora en llegar el eco el sensor procede a calcular la distancia a la cual se encuentra el objeto que esta al frente del sensor mediante la siguiente relacin: dObjeto = VSonido * t 2

Sensor de ultrasonido.

Esquema de la medicion de distancia con ultrasonido.

20

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Sensores infrarrojos:

21

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

Practicas de ejemplo. 1. Programa para girar eje del servomotor de 0 a 180, para el desarrollo de la prctica se utilizo el servomotor Standard HS-311 de la marca Hitec. #include <18F4550.h> #use delay(clock=48000000) #build(reset=0x000800,interrupt=0x000808:0x000818) #ORG 0x0000,0x07ff {} #use standard_io(b) int8 i; void main(void){ do{ for(i=0;i<40;i++){ output_high(pin_b0); delay_us(800); output_low(pin_b0); delay_us(19200); } for(i=0;i<40;i++){ output_high(pin_b0); delay_us(2200); output_low(pin_b0); delay_us(17800); } }while(1); }

22

Universidad del BIO-BIO Laboratorio CimUBB Grupo de Robtica

2. Programa que mueve de un extremo a otro el eje de salida de un servomotor Standard, el HS-311 de la marca Hitec con un potencimetro conectado a la pata RA0 (AN0). #include <18F4550.h> #device adc=10 #use delay(clock=48000000) #build(reset=0x000800,interrupt=0x000808:0x000818) #ORG 0x0000,0x07ff {} #use standard_io(a) #use standard_io(b) int16 q; int16 p; int8 i; void main(void){ setup_adc_ports(an0); setup_adc(adc_clock_internal); do{ set_adc_channel(0); delay_us(20); q=read_adc(); p=q*1.5625; output_high(pin_b0); delay_us(700+p); output_low(pin_b0); delay_us(18200-p); }while(1); }

23

Potrebbero piacerti anche