10.07.2015 Views

Embedded Basic - Simposio Argentino de Sistemas Embebidos ...

Embedded Basic - Simposio Argentino de Sistemas Embebidos ...

Embedded Basic - Simposio Argentino de Sistemas Embebidos ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

“e-<strong>Basic</strong>”......Haciendo <strong>de</strong> la Microcomputaciónun mundo más fácil y entretenido!!!


Que es “e-<strong>Basic</strong>”?...Es un módulo Microcontrolado <strong>de</strong> 32 Bits conInterface USB, <strong>Basic</strong> Embebido e interprete On – LineTodo listo para usar y empezar a trabajar en minutos !!!www.edu<strong>de</strong>vices.com.ar


Que es “e-<strong>Basic</strong>”? .....En un módulo <strong>de</strong> hardware se integra:• MCU <strong>de</strong> 32 Bits Flash con interface USB 2.0• Sistema Operativo <strong>de</strong> Tiempo Real (RTOS) embebido en el MCU• Lenguaje BASIC optimizado con interprete “on - Line”• Editor / Compilador interactivo <strong>de</strong>l tipo “línea a línea”• Depuración (Debugger) incorporado en el módulo• Sistema <strong>de</strong> manejo <strong>de</strong> archivos en FLASH <strong>de</strong>l MCU• Asociación <strong>de</strong> Periféricos y Puertos I/O <strong>de</strong>l MCUcomo simples variables BASIC <strong>de</strong> muy fácil control• Circuitos <strong>de</strong> Hardware (Osciladores, Filtros, Protección) Integradoswww.edu<strong>de</strong>vices.com.ar


Características <strong>de</strong> los módulos “e-<strong>Basic</strong>”:Editor <strong>de</strong> línea “BASIC”:Soporta Consolas Terminales tipo “ANSI” o “VT100” (HyperTerminal, RealTerminal, Tera Term, o cualquier programa <strong>de</strong> emulación <strong>de</strong> terminales).No se necesita software especial, ni herramientas externas, para suconexión con la PC Host, solo un Driver USB que es compatible conWindows, OS Mac y Linuxwww.edu<strong>de</strong>vices.com.ar


Compilador BASIC:Compila en forma rápida y segura cada “byte” <strong>de</strong> código.Compilación <strong>de</strong> código línea a línea transparente al usuario.Soporte <strong>de</strong> variables o arreglos (Arrays) enteros.Soporte <strong>de</strong> variables <strong>de</strong>l tipo “String” (ca<strong>de</strong>na <strong>de</strong> caractéres).Soporte <strong>de</strong> programación estructurada por “Blocks” y “Sub - rutinas”. Completa Librería BASIC optimizada p/ manejo <strong>de</strong> Periféricos yPuertos I/O <strong>de</strong>l MCU....www.edu<strong>de</strong>vices.com.ar


Depuración <strong>de</strong> Código Interactiva (Debugger) sinherramientas externas:Permite “BreakPoints” (puntos <strong>de</strong> parada), “Assertions” (BreakPointscondicionales), y “Wathpoints” (puntos <strong>de</strong> observación <strong>de</strong> variables). Observación y manipulación “en – vivo” <strong>de</strong> variables o pines <strong>de</strong>l sistema.Ejecución con seguimiento (Tracing) y paso a paso (single stepping). Permite la “edición en vivo” <strong>de</strong>l código y luego continuar con el programa.Solo se utiliza el “Debug Port” (Puerto USB 2.0 <strong>de</strong>l módulo) !!www.edu<strong>de</strong>vices.com.ar


Control externo <strong>de</strong> Pines I/O <strong>de</strong>l MCU en forma implicita pormedio <strong>de</strong> “pin variables” (variables especiales que permiten elcontrol <strong>de</strong>l pin)Entradas o Salidas Digitales (Input / Output).Entradas o Salidas Analógicas (Input = Conversor A/D, Output = Gen. PWM)Salida tipo “Servo” (Pulsos a una frecuencia <strong>de</strong>terminada)Salida <strong>de</strong> Generación <strong>de</strong> Frecuencia (Onda Cuadrada) Variable.Pines <strong>de</strong> salida y entrada <strong>de</strong> las interfaces UARTs (Serial Asincrónica)Interface Serial Sincrónica “I2C Master” Entrada / Salida.Interface Serial Sincrónica “QSPI Master” Entrada / Salida.Manejo <strong>de</strong> Displays Inteligentes a 4 Bits <strong>de</strong> datos (6 hilos) compatibles concontrolador HD44780 – Hitachi o similares (la gran mayoría <strong>de</strong> los LCDs).Barrido automático <strong>de</strong> teclado matricial <strong>de</strong> 4 x 4 líneas (16 teclas).www.edu<strong>de</strong>vices.com.ar


Control <strong>de</strong> los Periféricos Internos <strong>de</strong>l MCU:Interrupciones <strong>de</strong> los periféricos manejadas por el entorno BASIC!Timers <strong>de</strong> temporización, Timers DMA, Conversores A/D, Generación <strong>de</strong> PWM,Interfaces Seriales UARTs, I2C, QSPI, etc.Acceso directo a los registros <strong>de</strong>l MCU <strong>de</strong>s<strong>de</strong> el entorno BASIC para obtener uncontrol <strong>de</strong> bajo nivel por medio <strong>de</strong> los registros <strong>de</strong>l mismo.www.edu<strong>de</strong>vices.com.ar


Sistema <strong>de</strong> manejo <strong>de</strong> archivos BASIC en el propio módulo:Se pue<strong>de</strong> almacenar y rescatar múltiples programas en memoria Flash <strong>de</strong>forma sencilla y segura.Control Interno <strong>de</strong> la memoria FLASH <strong>de</strong>l MCU:Salvado <strong>de</strong> programas y parámetros en la Flash para operación fuera <strong>de</strong> la PCHost (Stand alone)Prolongación <strong>de</strong> la vida útil <strong>de</strong> la memoria Flash <strong>de</strong>l MCU por medio <strong>de</strong>lalmacenamiento “incremental” <strong>de</strong> actualizaciones en memoria RAM.www.edu<strong>de</strong>vices.com.ar


Con el agregado opcional <strong>de</strong> los módulos inalámbricosZigBee (RF) “ZigData” se obtiene:Comunicación bidireccional inalámbrica a 2,4 Ghz por Inteface QSPI.Control remoto <strong>de</strong> los distintos nodos vía interface “telnet / rlogin”.Acceso a variables remotas en BASIC <strong>de</strong> cada uno <strong>de</strong> los nodos.Actualización <strong>de</strong>l programa en BASIC en forma remota víainalámbrica.www.edu<strong>de</strong>vices.com.ar


Características propias <strong>de</strong>l módulo “e-<strong>Basic</strong>_CFV1”: En modo “autorun” pue<strong>de</strong> ejecutar más <strong>de</strong> 56.000 líneas <strong>de</strong>instrucciones por segundo, lo que lo hace apto para aplicaciones <strong>de</strong> control yautomatización en gral. Disponible al usuario 54 líneas <strong>de</strong> las 64 <strong>de</strong>l MCU en encapsulado QFP 64(todos los puertos I/Os, +VDD, VSS, Vreg (+3V3), I2C, QSPI, UART,PWM y otras señales útiles). 4 conectores verticales Hembras <strong>de</strong> 2 x 8 pines a paso <strong>de</strong> 0,1 <strong>de</strong> pulgada(1 x lado) que permiten utilizar “tira <strong>de</strong> pines” <strong>de</strong> 2 x 8 pines <strong>de</strong> 10 mm <strong>de</strong> alturapara integrar en cualquier placa experimental o placa PCB <strong>de</strong>finitiva, facilitando laremoción y re - utilización <strong>de</strong> la placa “e-<strong>Basic</strong>”.www.edu<strong>de</strong>vices.com.ar


Conociendo al módulo “e-<strong>Basic</strong>”......... Manos a la obra !!!• Conectamos el módulo a un Puerto USB 2.0 <strong>de</strong> una PC• COM Virtual ..... 9600 / 8 / N / 2 / Xon / Xoff (config. <strong>de</strong> Fábrica)• La primera vez nos pedirá el archivo “e.<strong>Basic</strong>.inf” para reconocer al módulocomo un COM Virtual.• Abrimos cualquier programa <strong>de</strong> emulación<strong>de</strong> Terminal y lo configuramos al COMxxVirtual con los parámetros <strong>de</strong> fábrica.www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Comando “info”:for more information:info aboutinfo commandsinfo mo<strong>de</strong>sinfo statementsinfo blocksinfo <strong>de</strong>vicesinfo expressionsinfo stringsinfo variablesinfo pinsinfo zigdatasee also:"e-<strong>Basic</strong>" User Manual>Información “on_line” <strong>de</strong>l sistema !!!www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Algunos comandos básicos ....• CLS (Clear Screen) (limpieza <strong>de</strong> pantalla)• Auto (auto number - auto numeración)• List (lista el programa o subrutina)• Edit• In<strong>de</strong>nt (auto In<strong>de</strong>ntado)•Numbers• Delete• Save• Renumber• Newwww.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Comandos básicos ....• Run• Cont• Autorun• Load• PurgeModos <strong>de</strong>l e-<strong>Basic</strong> .....• Modo Inmediato• Modo Debug (<strong>de</strong>puración)• Modo AutoRun (stand alone)• Modo Slave (esclavo)Otros comandos ...• memory• reset• uptime• Baudwww.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Sentencias BASIC ....Variables <strong>de</strong>l tipo “registros <strong>de</strong>l MCU”.Variables Simples en RAM.Variables Tipo Arreglo (Array) en RAM.Variables tipo Ca<strong>de</strong>na (string) en RAM.10 dim d_puertoD as byte at address 0xffff800720 dim puertoD as byte at address 0xffff800630 let d_puertoD = 0x140 let puertoD = 0x1www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos como variables ....10 dim led2 as pin ptd0 for digital output20 dim sw1 as ptb1 for digital input <strong>de</strong>bounced30 dim pwm1 as ptf1 for analog output40 dim bz1 as ptf4 for frequency output50 dim temp as ptb6 for analog input60 dim pt1 as ptb0 for analog input <strong>de</strong>bouncedSe “asocia” una variable a un Puerto I/O y sele asigna una función al mismo ...De esta forma se pue<strong>de</strong>n controlar los Puertos I/Ocon gran flexibilidad y sencillezwww.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Asignación <strong>de</strong> Variables10 dim led3 as ptd1 for digital output20 let led3 = 1www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Sentencia “input” (entrada x Consola)...Sentencia “print” ....10 dim sw1 as ptb1 for digital input <strong>de</strong>bouncedprint sw1www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Sentencias Read / Data ...Útil para inicializar periféricos oconstantes <strong>de</strong> un sistema ....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Sentencias Condicionales .. Sentencias Condicionales en lazo ..www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Subrutinas...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Periféricos Integrados en el MCU <strong>de</strong>l Módulo ...Timers4 Timers disponibles !!Timer 0 a Timer 3 ..www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos I/O Digitales..Puertos I/O Analógicos ..10 dim potenciometro as pin ptb0 for analog input20 dim pwm1 as pin ptf1 for analog output30 print "la V <strong>de</strong>l potenciometro es", potenciometro40 let pwm1 = potenciometro50 runla V <strong>de</strong>l potenciometro es 1500www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos <strong>de</strong> Generación <strong>de</strong> Frecuencia ...10 dim buzzer as pin ptf4 for frequency output20 dim salto, frecuencia30 let salto = 1040 while frecuencia < 5000 do50 let frecuencia = frecuencia + salto60 sleep 200ms70 let buzzer = frecuencia80 endwhilewww.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos <strong>de</strong> Generación <strong>de</strong> señal Servo ...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos <strong>de</strong> Generación <strong>de</strong> señal Servo ...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puertos Seriales UARTsx pooling ...300 a 115200 BPS !!2 UARTs in<strong>de</strong>pendientes !!!www.edu<strong>de</strong>vices.com.ar


Puertos Seriales UARTsx interrupciones ....Conociendo al “e-<strong>Basic</strong>”....www.edu<strong>de</strong>vices.com.ar


10 configure uart 1 for 9600 baud 8 data no parity20 dim tx as pin pte0 for uart output30 dim rx as pin pte1 for uart input40 on uart 1 input do gosub text_tx50 halt60 sub text_tx70 dim drx80 dim puntero90 let drx = rx100 dim data$[15]110 let data$ = "hola gente"120 if drx== 0x61 then130 while puntero


Conociendo al “e-<strong>Basic</strong>”....Puerto Serial QSPI..Interface serial sincrónica a4 hilos <strong>de</strong> 200KBPS <strong>de</strong>l tipo“Master - Slave”...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puerto Serial QSPI..www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Puerto Serial I2C...Interface serial sincrónica a2 hilos <strong>de</strong> 100KBPS <strong>de</strong>l tipo“Master - Slave”...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Pines <strong>de</strong> Interrupción ....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Manejo <strong>de</strong> Display LCD Inteligente ...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Manejo <strong>de</strong> Teclado Matricial <strong>de</strong> 4 x 4 ...www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Comunicación Remota Inalámbrica “ZigData” ...Cada nodo se i<strong>de</strong>ntificacon un número <strong>de</strong>s<strong>de</strong> 0 a65534www.edu<strong>de</strong>vices.com.ar


Conociendo al “e-<strong>Basic</strong>”....Hasta 32 Nodos simultáneosen la red wireless .....www.edu<strong>de</strong>vices.com.ar


Contactos:Gracias por su presencia !!!Sitio Web: www.edu<strong>de</strong>vices.com.ar• info@edu<strong>de</strong>vices.com.ar• educacion@edu<strong>de</strong>vices.com.ar• soporte@edu<strong>de</strong>vices.com.arIng. Roberto Simone / Ing. Daniel Di Lellawww.edu<strong>de</strong>vices.com.ar

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!