Download El PICAXE - fc
Document related concepts
no text concepts found
Transcript
EL PICAXE Microcontroladores El PICAXE Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE ¿Qué es un microcontrolador PICAXE? Un PICAXE es un microcontrolador estándar de Microchip PICmicro™ que ha sido pre-programado con el código de bootstrap PICAXE( de Revolution Education). El código bootstrap habilita al microcontrolador PICAXE para que pueda ser re-programado directamente vía una simple conexión serie. Esto elimina la necesidad de un (costoso) programador convencional, haciendo el sistema total de descarga un simple cable serie de muy bajo costo. Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE ¿Qué es un microcontrolador PICAXE? El programa de descarga también contiene rutinas comunes (tales como generar un retardo o un sonido de salida), tal que cada descarga no tiene que perder tiempo descargando estos datos comúnmente requeridos. Esto hace que el tiempo de descarga sea mucho más corto. El programa de descarga PICAXE no está disponible para programarse en microcontroladores en blanco. Se debe comprar el microcontrolador PICAXE (más que microcontroladores en blanco, no programados ) para usar en el sistema PICAXE. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores ¿ Cúal chip PICAXE ? El sistema PICAXE puede ser usado con 4 tamaños de chips PICAXE (8, 18, 28 y 40 pines). La principal diferencia entre los tamaños de chips es el número de pines disponibles para entradas /salidas – mientras más grande el chip un poco más alto es el costo pero se tienen más pines disponibles de entrada/salida. Se programa en lenguaje Basic que es común para todos los tamaños de chips. Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Tabla que muestra las principales diferencias funcionales entre los microcontroladores PICAXE. Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Distribución de terminales de los PICAXE Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Diagramas de terminales para los dispositivos de 28 pines Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Circuito de descarga Serial El circuito de descarga Serial es idéntico para todos los chips PICAXE . Consiste de 3 alambres del chip PICAXE al puerto serial de la PC. Un alambre envía datos de la PC a la entrada serial del PICAXE, un alambre transmite datos de la salida serial del PICAXE a la computadora , y el tercer alambre proporciona la tierra común. Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE El circuito mínimo para descarga Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE El circuito mínimo para descarga Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Circuito mínimo de descarga Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Circuito de descarga Serial Construcción del cable serial usando un jack estereo PICAXE PC Rx Serial out Serial In PC Tx GND 10kW 22kW 0V Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Circuito mejorado de Descarga Serial (1) (2) (3) Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE El circuito mínimo de operación de los dispositivos de 8 pines •Ninguno de los PICAXE de 8 terminales tienen terminal de RESET por lo tanto para resetear el microcontrolador la fuente de poder debe ser desconectada y después reconectada . Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE El circuito mínimo de operación de los dispositivos de 18 pines •Todos los PICAXE de 18,28 y 40 tienen una terminal para “reset”. Esta terminal debe estar en alto para que el microcontrolador PICAXE funcione, si la terminal se deja sin conectar el microcontrolador no funciona . Para conectar este pin a alto, conecte una resistencia de pull-up entre el pin y V+. Un Push button conectado entre la terminal de reset y tierra, nos proporciona un reset manual. Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE El circuito mínimo de operación de los dispositivos de 28 pines Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores PICAXE FAQ: ¿ Es necesario conectar las entradas o salidas no usadas ? No, las entradas o salidas no usadas pueden mantenerse sin conectar en forma segura, siempre y cuando no se usen como referencia dentro del programa de control !Compré unos PICs en blanco y no trabajan con el sistema PICAXE ! El microcontrolador PICAXE no es un PIC en blanco. Es un microcontrolador que ha sido pregrabado con un programa “BOOTSTRAP” que lo habilita para descargar directamente vía un cable ( el programa bootstrap le dice al microcontrolador como interpretar los comandos de programación del cable directo). Por eso es que se debe comprar microcontroladores PICAXE , más que microcntroladores en blanco, para usar con el sistema PICAXE. He programado un micrcontrolador PICAXE usando un programador convencional y ahora no trabaja con el sistema PICAXE¡ Se ha sobreescrito , y por lo tanto se borró el programa bootstrap del PICAXE . El micrcontrolador ya no podrá se usado como un microcontrlador PICAXE, pero naturalmente se puede continuar usando con el programador convencional. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores PICAXE FAQ: ¿Se necesita borrar el dispositivo? ¿ Cómo paro el programa que está corriendo en el microcontrolador PICAXE? Cada descarga automáticamente sobreescribe la totalidad del programa previo. Por lo general no es necesario borrar la memoria en mingún punto. Sin embargo si se desea parar un programa corriendo se puede seleccionar el menú “Clear Hardware Memory” para descargar un programa “vacío” a la memoria del PICAXE. ¿Hasta cuántas veces puede ser programado el PICAXE? La hoja de datos del fabricante establece que el dispositivo puede ser reprogramado al menos 10,000 veces . En la práctica el número puede ser mucho mayor. ¿Qué tan rápido opera el PICAXE? Los microcontroladores PICAXE-08/18 tienen un resonador interno de 4 Mhz, y el PICAXE-28 usa un resonador cerámico externo de de 4 MHz. Esto significa que el microcontrolador procesa 1 millón de comandos en ensamblador por segundo, lo cual equivale a aproximadamente 10,000 comandos BASIC por segundo. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores PICAXE FAQ: ¿Se pueden controlar servos usando el PICAXE? Si, el sistema PICAXE-28tiene un comando “servo” que permite controlara hasta 8 servos (uno en cada salida). ¿ Se puede controlara un display LCD? Si, el PICAXE soporta módulos seriales LCD (como el módulo Serial LCD/Clock AXE033) viá el comando “serout”. Note que el el AXE033 también puede ser preprogramado hasta con 8 mensajes para reducir el uso de la memoria del microcontrolador PICAXE. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Arquitectura del PICAXE Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Procesadores usados Variante PICmicro Flash PICAXE-08 PICAXE-08M PICAXE-18 PICAXE-18A PICAXE-18X PICAXE-28 PICAXE-28A PICAXE-28X PICAXE-40X 12F629 12F683 16F627 16F819 16F88 16F872 16F872 16F873A 16F874A 1K 2K 1K 2K 4K 2K 2K 4K 4K RAM [1] EEPROM None [2] 48 : $50-$7F 96 : $50-$7F / $C0-$EF [4] 48 : $50-$7F 96 : $50-$7F / $C0-$EF 48 : $50-$7F 48 : $50-$7F 112 : $50-$7F / $C0-$FF 112 : $50-$7F / $C0-$FF 128 [3] 256 [3] 128 [3] 256 [3] 256 [5] 64+256 [5][6] 64+256 [5][6] 128 [5] 128 [5] [1] SFR disponible para el usuario usando los comandos PEEK y POKE [2] No soporta los comandos PEEK y POKE [3] El programa del usuario almacenado en EEPROM, comparte la EEPROM de datos [4] No se recomienda usar $C0--$FF para retener compatibilidad hacia arriba. [5] EEPROM de datos separada del programa del usuario [6] 64 bytes usan READ/WRITE, más 256 bytes que usan READMEM/WRITEMEM Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Interfase Básica Variante Entrada Digital Salida Digital Entrada Análoga PWM SERVO PICAXE-08 1-4 [1] 1-4 [1] 0-1 Low Res [2] 0-4 Burst [3] No PICAXE-08M 1-4 [1] 1-4 [1][4] 0-3 [2] 0-1 Continuous 0-4 PICAXE-18 2-5 [2] 8 0-3 Low Res [2] No No PICAXE-18 2-5 [2] 8 0-3 [2] No 0-8 PICAXE-18X 2-5 [2] 8 [4] 0-3 [2] 0-1 Continuous 0-8 PICAXE-288 8 4 No 0-8 PICAXE-28 8 8 4 No PICAXE-28X 0-12 [1][2] 8-16 [1][4] 0-4 [2] 0-2 Continuous 0-8 PICAXE-40X 8-16 [1] 8-16 [1][4] 3-7 [2] 0-2 Continuous 0-8 0-8 Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Interfase Avanzada Variante I2C [1] PICAXE-08 PICAXE-08M PICAXE-18 PICAXE-18A PICAXE-18X PICAXE-28 PICAXE-28A PICAXE-28X PICAXE-40X Yes Yes Yes Temp [2] Serial Num [3] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes IR [4] Yes [6] Yes Yes Yes Yes Yes Yes Keyboard [5] Yes Yes Yes Yes [1] General Purpose I2C / DS1307 Clock - I2CSLAVE, READI2C, WRITEI2C [2] DS18B20 One-Wire Temperature Sensor - READTEMP, READTEMP12 [3] One-Wire Serial Number - READOWSN [4] IR Input Sensor - INFRAIN, IF INFRA [5] PC keyboard Interface - KEYIN, IF KEYVALUE, KEYLED [6] IR Input and Output Interfaces - INFRAIN2, INFRAOUT Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Entendiendo la memoria del PICAXE. La memoria del PICAXE consiste de tres diferentes áreas. La cantidad de memoria varía entre los tipos de PICAXE. RAM Memoria de datos Memoria de programa Variables: -de propósito Gral. -Almacén -de Función Especial (SFR) MEMORIA FLASH Bootstrap Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Entendiendo la memoria del PICAXE. Memoria de Programa. La memoria de programa es donde el programa es almacenado después de una nueva descarga . Esta es una memoria FLASH reescribible que puede ser reprogramada hasta ( típicamente) 100,000 veces. . Generalmente no se requiere borrar un programa, ya que en cada descarga automáticamente se sobre escribe la totalidad del último programa . En un chip PICAXE estándar se pude descargar alrededor de 40 líneas de código en Basic. En partes revisión A o M se pueden descargar alrededor de 80 líneas y en partes X alrededor de 600 líneas. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Memoria de Datos • La memoria de datos es un espacio adicional de almacén dentro del microcontrolador. el dato tampoco se pierde cuando se quita la energía. • En cada descarga se resetean todo los bytes de datos a 0, al menos que un comando EEPROM haya sido usado para “precargar”el dato en memoria de datos. • En el PICAXE-08/08M/18 la memoria de datos es “compartida” con la memoria de programa . En consecuencia, programas más largos producirá una memoria de datos más pequeña. • En todos los demás chips PICAXE la memoria de datos y de programa están completamente separados. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores RAM (Variables) La memoria RAM es usada para almacenar datos temporalmente, datos que adoptan las variables conforme corre el programa. Esta pierde todos los datos cuando se quita la potencia. Hay tres tipos de variables De propósito general, De Almacén, y De función especial. Las variables son localidades de memoria dentro del PICAXE que almacena los datos mientras el programa está corriendo. Toda esta información se pierde cuando se “resetea” el microcontrolador. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Variables de propósito General. Hay 14 bytes para variables de propósito General. Estos bytes variables son etiquetados como b0 a b13. Los bytes variables pueden almacenar números enteros entre 0 y 255. Los bytes variable no pueden usar números negativos o fracciones, y se “rebasan” sin aviso si se excede los valores límites 0 ó 255 ( por ejemplo. 254+3=1, 2-3=255) Sin embargo para números grandes se pueden combinar dos bytes variables para crear una variable word, la cual es capaz de de almacenar números enteros entre 0 y 65,535. Estas variables word son etiquetadas w0 a w6, y se construyen como sigue: w0 w1 w2 w3 w4 w5 w6 = = = = = = = b1 : b0 b3 : b2 b5 : b4 b7 : b6 b9 : b8 b11 : b10 b13 : b12 Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Variables de propósito General. Además los bytes b0 y b1 (w0) son desmembrados en variables individuales de 1 bit. Estas variables de bit pueden ser usadas donde se requiera la capacidad de almacenaje de un bit solo. b0 = bit7: bit6: bit5: bit4: bit3: bit2: bit1: bit0 b1 = bit15: bit14: bit13: bit12: bit11: bit10: bit9: bit8 Se pueden usar cualquier variable word, byte o bit en cualquier asignación matemática o comando que soprte variables. Todas las variables de propósito general se resetean a 0 con un reset del programa. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Variables de almacenaje Las variables de almacenaje son localidades adicionales de memoria para almacén temporalmente bytes de datos. No se pueden usar en cálculos matemáticos, pero se pueden usar para almacenar temporalmente valores de byte usando los comandos peek y poke El número de localidades disponibles para almacenaje varía dependiendo del tipo de PICAXE. Estas direcciones varían de acuerdo a las especificaciones técnicas del microcontrolador. Carlos E. Canto Quintal M.C. Microcontroladores PICAXE-08 PICAXE-08M PICAXE-18 PICAXE-18A PICAXE-18X PICAXE-28A PICAXE-28X PICAXE-08M EL PICAXE no tiene 48 bytes de 80 a 127 ($50 to $7F) 48 bytes de 80 a 127 ($50 to $7F) 48 bytes de 80 a 127 ($50 to $7F) 96 bytes de 80 a 127 ($50 to $7F), 192 to 239 ($C0 to $EF) 48 bytes de 80 a 127 ($50 to $7F) 112 bytes de 80 a 127 ($50 to $7F), 192 to 239 ($C0 to $FF) 112 bytes de 80 a 127 ($50 to $7F), 192 to 239 ($C0 to $FF Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Variables de Función Especial (SFR: Special Function Variables) El uso de las variables de función especial depende del tipo de PICAXE Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE Special Function Variables (SFR) pins = el puerto de entrada cuando se leen del puerto pins = El puerto de salida cuando se escribe al puerto infra = una variable separada usada con el comando infrain Dirs = registro de drección de datos (indica cuando las terminales son entradas o salidas) keyvalue = otro nombre para infra, usado con el comando keyin La variable pins se subdivide en variables de bits individuales para leer de entradas individuales con el comando if…then. Solo son implementadas terminales válidas de entrada. pins = x : x : x : pin4 : pin3 : pin2 : pin1 : x Las variables dirs también se subdividen en bits individuales . Solo se implementan configuración de bits de pines bidireccionales válidos. dirs = x : x : x : dir4 : x : dir2 : dir1 : x Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Special Function Variables (SFR) Note que pins es una “pseudo” variable que puede ser aplicada tanto al puerto de entrada como al puerto de salida. Cuando se usa a la izquierda del estatuto pins se aplica al puerto de salida por ejemplo let pins = %11000011 Conmutará las salidas 7,6,1,0 a alto y los otros a bajo. Cuando se usa a la derecha de un estatuto pins aplica al puerto de entrada. Por ejemplo. let b1 = pins Cargará b1 con el estado actual del puerto de entrada. Además, note que: let pins = pins Significa “haz el puerto de salida igual al puerto de entrada Carlos E. Canto Quintal M.C. Microcontroladores EL PICAXE . Entradas y Salidas en el PICAXE Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Entradas Digitales Se pueden conectar interruptores digitales de entrada con una resistencia de 10K pull down. La resistencia es esencial porque previene que la estrada “flote” cuando el interruptor esté en posición abierto. Lo cual daría una operación poco confiable. Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Entradas Analógicas Las entradas análogas pueden conectarse en un arreglo divisor de voltaje entre V+ y 0V. La referencia análoga es la fuente de poder y la señal análoga no debe exceder la fuente de poder . Carlos E. Canto Quintal M.C. EL PICAXE Microcontroladores Salidas Digitales El microcontrolador puede drenar y suministrar 20mA en las terminales de salida. Por lo tanto dispositivos de baja corriente simples tales como los LEDs pueden conectarse directamente a las terminales de salida . Dispositivos de más alta corriente pueden conectarse vía un transistor (como el BC548B), FET o manejador Darlington Carlos E. Canto Quintal M.C.