Tags
 
 
Soporte Técnico Cika
Library

InfoBase/AppNotes

Contents

CAN-001_LCD-Rabbit.pdf

CAN-001_LCD-Rabbit.pdf

Nota de Aplicación: CAN-001
Título: Utilización de displays LCD inteligentes con Rabbit 2000


Analizaremos a continuación las posibilidades de conexión de un display LCD inteligente a un módulo Rabbit Core RCM2xxx. Este tipo de conexión es muy similar a la que se emplea con cualquier microcontrolador del mercado. La única variante es que el Rabbit 2000 tiene ports bidireccionales, de entrada, y de salida. Para mantener compatibilidad con los módulos con puerto Ethernet, se recomienda utilizar sólo aquellos que se hallen libres en esos módulos. El port A, bidireccional, se encarga de los datos, y el port E nos servirá para generar las señales de control mediante software. Este tipo de conexión es la tradicional para un microprocesador, y nos permite aprovechar mejor el espacio de direccionamiento y los ports del Rabbit 2000. Un inconveniente común, en el caso de los displays con interfaz del tipo 6800 (la gran mayoría de los

CAN-002_LCDalpha-Rabbit.pdf

CAN-002_LCDalpha-Rabbit.pdf

Nota de Aplicación: CAN-002
Título: Utilización de displays LCD alfanuméricos con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD alfanumérico inteligente a un módulo Rabbit utilizando ports de I/O, como se haría con la mayoría de los microcontroladores. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware No es necesario ningún tipo de glue-logic, hacemos una conexión directa entre los ports del Rabbit y el LCD, al igual que con la gran mayoría de los microcontroladores, como puede apreciarse en la tabla a la derecha:

Software de soporte CAN-002:

CAN-002_Software.zip

CAN-003_LCDgraphHD61202-Rabbit.pdf

CAN-003_LCDgraphHD61202-Rabbit.pdf

Nota de Aplicación: CAN-003
Título: Utilización de displays LCD gráficos (HD61202) con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente a un módulo Rabbit utilizando ports de I/O, como se haría con la mayoría de los microcontroladores. Utilizaremos un módulo Powertip PG12864, de 128x64 pixels, basado en chips controladores compatibles con el HD61202, de Hitachi, y su clon: el KS0108, de Samsung. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades gráficas. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware Dado que el controlador utilizado en estos módulos sólo es capaz de direccionar izquierda y otro para la parte derecha del display. El hardware de conexión resulta

Software de soporte CAN-003:

CAN-003_Software.zip

CAN-004_LCDgraphHD61202-Rabbit-HTTP.pdf

CAN-004_LCDgraphHD61202-Rabbit-HTTP.pdf

Nota de Aplicación: CAN-004
Título: Pizarra remota via HTTP con Rabbit 2000 y LCD gráfico (HD61202)


Desarrollamos una simple aplicación de un módulo LCD gráfico inteligente y un módulo Rabbit conectado a una red Ethernet. Se trata de una “pizarra remota†que puede escribirse via HTTP. El módulo Rabbit funciona como un servidor web y con cualquier navegador podemos escribir un simple mensaje en la pizarra. Más allá de su posible utilidad en la vida real, esta aplicación nos permite ejemplificar el uso de las capacidades de TCP/IP de Dynamic C. Como display, utilizaremos un módulo Powertip PG12864, de 128x64 pixels, basado en chips controladores compatibles con el HD61202, de Hitachi, y su clon: el KS0108, de Samsung. No se darán demasiados detalles acerca del display y su software de control, dado que este tema se ha desarrollado en la CAN-003. El lector puede remitirse a dicha nota de aplicación para mayor información. Hardware

Software de soporte CAN-004:

CAN-004_Software.zip

CAN-005_LCDgraphSED1335-Rabbit.pdf

CAN-005_LCDgraphSED1335-Rabbit.pdf

Nota de Aplicación: CAN-005
Título: Utilización de displays LCD gráficos (SED1335) con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG320240FRS, a un módulo Rabbit 2000. Se trata de un display de 320x240 pixels basado en chips controladores compatibles con el SED1335, de S-MOS, y su clon de Epson. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware El SED1335 presenta una interfaz con dos posibles modos de trabajo: tipo Motorola (E, RS, R/W) o tipo Intel (RD, WR, A0). El PG320240FRS de Powertip lo utiliza en esta última modalidad.

Software de soporte CAN-005:

CAN-005_Software.zip

CAN-006_LCDgraphSED1335-Rabbit-HTTP.pdf

CAN-006_LCDgraphSED1335-Rabbit-HTTP.pdf

Nota de Aplicación: CAN-006
Título: Pizarra remota via HTTP con Rabbit 2000 y LCD gráfico (SED1335)


Desarrollamos una simple aplicación de un módulo LCD gráfico inteligente y un módulo Rabbit conectado a una red Ethernet. Se trata de una “pizarra remota†que puede escribirse via HTTP. El módulo Rabbit funciona como un servidor web y con cualquier navegador podemos escribir un simple mensaje en la pizarra. Más allá de su posible utilidad en la vida real, esta aplicación nos permite ejemplificar el uso de las capacidades de TCP/IP de Dynamic C y aportar algo más sobre el display. Como display, utilizaremos un módulo Powertip PG320240, de 320x240 pixels, basado en chips controladores compatibles con el SED1335, de S-MOS, y su clon de EPSON. No se darán demasiados detalles acerca del display y su software de control, dado que este tema se ha desarrollado en la CAN-005. El lector puede remitirse a dicha nota de aplicación para mayor información. El código de la pizarra en sí, resulta muy similar al desarrollado en la CAN-004 para el display de 128x64;

Software de soporte CAN-006:

CAN-006_Software.zip

CAN-007_LCDgraphLC7981-Rabbit.pdf

CAN-007_LCDgraphLC7981-Rabbit.pdf

Nota de Aplicación: CAN-007
Título: Utilización de displays LCD gráficos (LC7981) con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG24064FRM-A, a un módulo Rabbit 2000. Se trata de un display de 240x64 pixels basado en chips controladores compatibles con el LC7981, de Sanyo. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware El LC7981 presenta una interfaz tipo Motorola (E, RS, R/W), como el HD44780 de los displays alfanuméricos, por lo que el hardware no nos presenta ninguna novedad.

Software de soporte CAN-007:

CAN-007_Software.zip

CAN-008_LCDgraphHD61202TEXT-Rabbit.pdf

CAN-008_LCDgraphHD61202TEXT-Rabbit.pdf

Nota de Aplicación: CAN-008
Título: Display de textos en LCD gráficos (HD61202) con Rabbit 2000


Complementamos el desarrollo de la CAN-003 ampliando la forma de mostrar textos en módulos LCD gráficos inteligentes Powertip PG12864, con Rabbit 2000. Se recomienda al lector el estudio de la CAN-003 para mayor información sobre la estructura de memoria de los displays basados en HD61202 y/o KS0108 y su utilización para aplicaciones puramente gráficas. Hardware El hardware de conexión tiene una pequeña diferencia respecto de la CAN-003, dado que preferimos mantener el esquema de la CAN-005. Para la interfaz con el micro no es necesario ningún tipo de glue-logic, hacemos una conexión directa entre los ports del Rabbit y el LCD, al igual que con la gran mayoría de los microcontroladores, como puede apreciarse en la tabla a la derecha:

Software de soporte CAN-008:

CAN-008_Software.zip

CAN-009_VERSA1-MACFIR.pdf

CAN-009_VERSA1-MACFIR.pdf

Nota de Aplicación: CAN-009
Título: Filtrado de entradas analógicas con VERSA1


Desarrollamos una aplicación de filtrado de entradas analógicas aprovechando la MAC presente en los VERSA1 de Goal Semiconductor. La nota se basa en la medición de la señal proveniente de un termistor, vinculado al microcontrolador mediante un cable cuya longitud y tendido lo hacen propenso a captar ruidos. Para la polarización del termistor, utilizaremos la fuente de corriente controlada. Descripción En muchas aplicaciones, el ruido es un grave problema a considerar, especialmente si las señales son de poca amplitud o el sistema está ubicado en un ambiente de alto ruido electromagnético. Un ejemplo podría ser un sistema de medición de temperatura ambiente mediante un termistor, conectado al sistema por un par de metros de cable que pasa cerca de equipos de alta potencia. En este caso, es probable que el cable permita una gran inducción de la señal alterna de línea. La forma tradicional de resolver el problema es blindar los cables e

Software de soporte CAN-009:

CAN-009_Software.zip

CAN-010_MCP3204-Rabbit.pdf

CAN-010_MCP3204-Rabbit.pdf

Nota de Aplicación: CAN-010
Título: Conexión de un conversor A/D MCP3204 a módulos Rabbit


Con el fin de proporcionar entradas analógicas a los módulos Rabbit; introducimos el MCP3204 de Microchip (conversor analógico-digital de 12 bits), y desarrollamos su conexión con estos módulos mediante la interfaz SPI. Desarrollamos además un simple driver para obtener los datos del conversor, con un modesto ejemplo. Descripción del MCP3204 El MCP3204 de Microchip es un conversor analógico-digital de 12 bits por aproximaciones sucesivas (SAR) con interfaz SPI. Dispone de cuatro entradas que puede configurar como 4 canales single-ended ó 2 canales pseudo-diferenciales (el potencial de la entrada IN- no debe alejarse más de unos 100mV del potencial de GND). La referencia de tensión debe ser externa, funciona a 3 ó 5V y su velocidad

Software de soporte CAN-010:

CAN-010_Software.zip

CAN-011_LCDgraphT6963-Rabbit.pdf

CAN-011_LCDgraphT6963-Rabbit.pdf

Nota de Aplicación: CAN-011
Título: Utilización de displays LCD gráficos (T6963) con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG24064FRM-E, a un módulo Rabbit 2000. Se trata de un display de 240x64 pixels basado en chips controladores compatibles con el T6963, de Toshiba. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware El T6963 presenta una interfaz tipo Intel, es decir, con líneas de RD y WR separadas. Posee además la línea de selección, CE, y otra para determinar si lo que se escribe es un dato o un comando: C/D. Existe además otro pin que determina el

Software de soporte CAN-011:

CAN-011_Software.zip

CAN-012_LCDgraphSED1335-Rabbit_bus.pdf

CAN-012_LCDgraphSED1335-Rabbit_bus.pdf

Nota de Aplicación: CAN-012
Título: Utilización de displays LCD gráficos (SED1335) con Rabbit (bus)


Desarrollamos una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG320240FRS, a un módulo Rabbit 2000, pero esta vez al bus, dejando libres los ports de I/O para otra aplicación. Dado que ya hemos desarrollado software para este display, solamente comentaremos sobre la conexión al bus y su software asociado. Se recomienda al lector consultar la CAN-005 para una descripción completa de la aplicación. Hardware El SED1335 presenta una interfaz con dos posibles modos de trabajo: tipo Motorola (E, RS, R/W) o tipo Intel (RD, WR, A0). El PG320240FRS de Powertip lo utiliza en esta última modalidad. Para la interfaz con el micro no es necesario ningún tipo de glue-logic, hacemos una conexión directa entre el bus del Rabbit y el LCD, como puede apreciarse en la

Software de soporte CAN-012:

CAN-012_Software.zip

CAN-013_LCDgraph-DynamicC8.pdf

CAN-013_LCDgraph-DynamicC8.pdf

Nota de Aplicación: CAN-013
Título: Utilización de displays gráficos con Dynamic C 8


Analizamos las bibliotecas de funciones con soporte para displays gráficos que incluye Dynamic C en su versión 8, y la forma de aprovechar la mayor cantidad posible de este código para acortar nuestros tiempos de desarrollo. A partir de la versión 8, Dynamic C provee como standard muchas de las prestaciones que antes estaban reservadas para la distribución Premier. Entre estas encontramos muchas bibliotecas de funciones desarrolladas como demo de las placas de Z-World; pero fundamentalmente queremos destacar un set de bibliotecas de funciones orientadas a la utilización de displays gráficos. No vamos a detallar cada una de las funciones que cada biblioteca incluye, pero sí haremos una somera enumeración, antes de analizar la forma de desarrollar drivers para el controlador del display que vamos a utilizar.

Software de soporte CAN-013:

CAN-013_Software.zip

CAN-014_TouchScreen-DynamicC8.pdf

CAN-014_TouchScreen-DynamicC8.pdf

Nota de Aplicación: CAN-014
Título: Utilización de Touch Screens con Dynamic C 8


Analizamos las bibliotecas de funciones con soporte para pantallas sensibles al tacto o touch screens, que incluye Dynamic C en su versión 8, y la forma de aprovechar la mayor cantidad posible de este código para acortar nuestros tiempos de desarrollo. A partir de la versión 8, Dynamic C provee como standard muchas de las prestaciones que antes estaban reservadas para la distribución Premier. Entre estas encontramos muchas bibliotecas de funciones desarrolladas como demo de las placas de Z-World; pero fundamentalmente queremos destacar un set de bibliotecas de funciones orientadas a la utilización de touch screen. No vamos a detallar cada una de las funciones que cada biblioteca incluye, pero sí haremos una somera enumeración, antes de analizar la forma de desarrollar drivers para el controlador que vamos a utilizar. Bibliotecas de funciones

Software de soporte CAN-014:

CAN-014_Software.zip

CAN-015_TouchScreen.pdf

CAN-015_TouchScreen.pdf

Nota de Aplicación: CAN-015
Título: Lectura de Touch Screen resistivo


Desarrollamos una de las formas posibles de leer una pantalla sensible al tacto o touch screen de tipo resistivo, como la que incluye el display LCD de powertip PG320240FRST, mediante el empleo de un conversor analógico-digital de 12-bits con interfaz SPI de Microchip, el MCP3204. Encontrará una descripción del MCP3204 y ejemplos de utilización con procesadores Rabbit en la CAN-010, y una descripción de las bibliotecas de funciones asociadas a estas pantallas en Dynamic C versión 8 en la CAN-014. Breve descripción de la pantalla resistiva La touch screen que utilizamos corresponde al tipo resistivo de 4-terminales. Se trata de una membrana relativamente rígida, adherida al display, y una membrana flexible encima de ésta. La cara interna de ambas

CAN-016_PG320240FRST-DynamicC8.pdf

CAN-016_PG320240FRST-DynamicC8.pdf

Nota de Aplicación: CAN-016
Título: Display PG320240FRST (Touch Screen) con Dynamic C 8


Portamos las bibliotecas de funciones con soporte para displays gráficos y pantallas sensibles al tacto o touch screens, que incluye Dynamic C en su versión 8, para su utilización con el display PG320240FRST de Powertip, de modo de aprovechar la mayor cantidad posible de este código para acortar nuestros tiempos de desarrollo. Aprovechamos el análisis de estas bibliotecas de funciones desarrollado en las notas de aplicación CAN-013 y CAN-014, el hardware para conexión del display en la CAN-012, y el hardware de lectura de touch screen desarrollado en la CAN-015; desarrollando nuestra propia biblioteca de funciones: Cika320240FRST.lib, donde alojaremos las funciones que portamos. Display SED1335F.LIB Vimos en la CAN-013 que esta biblioteca contiene las funciones de bajo nivel para el controlador de displays

Software de soporte CAN-016:

CAN-016_Software.zip

CAN-017_GP8F-12F629_ControlAcceso.pdf

CAN-017_GP8F-12F629_ControlAcceso.pdf

Nota de Aplicación: CAN-017
Título: Control de Acceso de muy bajo costo


Presentamos un control de acceso de muy bajo costo realizado con tarjetas o tags RFID. Utilizamos como lector al módulo GP8F-R2, de muy bajo costo, el que conectamos a un PIC12F629 para validar los RFID. Sin modificaciones, el sistema emplea el módulo, un LED, una resistencia, y el microcontrolador; más el disparo de triac o relé que utilicemos para control directo de la cerradura. Dada la capacidad de memoria EEPROM del Descripción del GP8F-R2 El módulo GP8F-R2 lee tarjetas o tags RFID read-only de 64-bits, código Manchester a 125KHz. Posee una salida para conectar un LED, que permanece encendido y aumenta su intensidad al aproximar un RFID. El ID correspondiente se entrega por un terminal en formato 8 bits serie asincrónico, a 9600 bps, sin paridad, a nivel lógico. El usuario puede optar por conectarlo a algun driver RS-232 para leerlo desde una PC, o conectarlo directamente a un microcontrolador o UART. El formato lógico responde al siguiente esquema, en ASCII:

Software de soporte CAN-017:

CAN-017_Software.zip

CAN-018_Demo_TouchScreen-DynamicC8-Ethernet.pdf

CAN-018_Demo_TouchScreen-DynamicC8-Ethernet.pdf

Nota de Aplicación: CAN-018
Título: Demo Rabbit + Touch Screen + Dynamic C 8


Aprovechamos el desarrollo de la nota de aplicación CAN-016 y agregamos funciones con soporte Ethernet, a fin de obtener un demo de las capacidades de manejo de displays gráficos y TCP/IP que nos brinda la combinación Rabbit-Dynamic C 8. Desarrollaremos un ejemplo de un control sensible al tacto, que muestra el estado de dos salidas. Puede operarse sobre las mismas tanto mediante el panel frontal como via HTTP, a través de una interfaz similar visualizada en forma remota como una página web. Agregamos además dos controles: uno de ellos enviará un email a una direción prefijada, simulando una condición excepcional que debe ser tenida en cuenta por un operador, sin que sea necesario que éste esté observando la pantalla, ni se halle cerca del equipo para escuchar una alarma auditiva. El segundo control, nos permitirá visualizar los emails que el equipo reciba, simulando posibles intervenciones remotas sobre el equipo.

Software de soporte CAN-018:

CAN-018_Software.zip

CAN-019_Serial-DynamicC8.pdf

CAN-019_Serial-DynamicC8.pdf

Nota de Aplicación: CAN-019
Título: Aplicaciones de comunicaciones con interfaz serie asincrónica en Dynamic C 8


Analizamos las bibliotecas de funciones con soporte para comunicaciones via interfaz serie asincrónica que incluye Dynamic C, y la forma de aprovechar la mayor cantidad posible de este código para acortar nuestros tiempos de desarrollo. No vamos a detallar cada una de las funciones que cada biblioteca incluye, pero sí haremos una enumeración de las más importantes, para luego ver unos sencillos ejemplos de su uso. Consulte el manual de referencia de Dynamic C para una descripción detallada de cada función en particular. Bibliotecas de funciones RS232.LIB Está orientada a las comunicaciones full duplex, proveyendo un conjunto de funciones que envían y reciben bloques de datos de forma buffereada. Tanto transmisión como recepción incorporan buffers circulares,

Software de soporte CAN-019:

CAN-019_Software.zip

CAN-020_TouchScreen-ADS7846.pdf

CAN-020_TouchScreen-ADS7846.pdf

Nota de Aplicación: CAN-020
Título: Controlador de Touch Screen ADS7846


Desarrollamos una de las formas posibles de leer una pantalla sensible al tacto o touch screen de tipo resistivo, como la que incluye el display LCD de powertip PG320240FRST, mediante el empleo de un controlador dedicado de 12-bits con interfaz serie de TI/Burr Brown, el ADS7846. Encontrará una descripción de las pantallas sensibles al tacto y su calibración en la CAN-015, y una descripción de las bibliotecas de funciones asociadas a estas pantallas en Dynamic C versión 8 en la CAN-014. Breve descripción del ADS7846 Este controlador posee todo el hardware requerido para polarizar la pantalla resistiva y leerla: matriz de conmutación con transistores MOS y conversor A/D de 12bits. Incorpora además algunas funciones extra como ser:   Entrada auxiliar, para tomar muestras de señales analógicas

CAN-021_PG320240FRST-ADS7846-DynamicC8.pdf

CAN-021_PG320240FRST-ADS7846-DynamicC8.pdf

Nota de Aplicación: CAN-021
Título: Display PG320240FRST con ADS7846 y Dynamic C 8


En la CAN-016, portamos las bibliotecas de funciones con soporte para displays gráficos y pantallas sensibles al tacto o touch screens, que incluye Dynamic C en su versión 8, para su utilización con el display PG320240FRST de Powertip. Aprovechamos el hardware de lectura de touch screen desarrollado en la CAN- las funciones para aprovechar el controlador ADS7846. Hardware El hardware es el desarrollado en la CAN-020, simplemente asignamos los pines de la interfaz serie a pines del Rabbit, e implementaremos la interfaz por software. Desarrollo del driver Como vimos en la CAN-014, debemos portar las funciones de más bajo nivel:   _adcTouchScreen(): es la que realiza la lectura del chip controlador de la touchscreen

Software de soporte CAN-021:

CAN-021_Software.zip

CAN-022_LCDgraphHD61202-bitmaps.pdf

CAN-022_LCDgraphHD61202-bitmaps.pdf

Nota de Aplicación: CAN-022
Título: Conversión de bitmaps para LCD gráficos con HD61202


Nos interiorizaremos ahora en el desarrollo de un algoritmo para convertir imágenes al formato utilizado por los chips controladores compatibles con el HD61202, de Hitachi, y su clon: el KS0108, de Samsung; presentes en los módulos Powertip PG12864, de 128x64 pixels. Si bien hemos ya presentado la estructura de memoria de estos displays en la CAN-004, la repetimos aquí por claridad. La estructura de memoria de estos módulos gráficos es algo caprichosa, la misma se halla agrupada en bytes en sentido vertical, divididos a su vez en páginas. Debido al hecho de que, además, se necesitan dos controladores, la pantalla resulta dividida a la mitad, y cada mitad es atendida por un controlador. El bit menos significativo del primer byte de memoria del primer controlador corresponde al punto situado en la pantalla arriba a la izquierda, y el bit más significativo del último byte de memoria del segundo controlador

Software de soporte CAN-022:

CAN-022_Software.zip

CAN-023_Osciloscopio-TouchScreen-ADS7846-DC8.pdf

CAN-023_Osciloscopio-TouchScreen-ADS7846-DC8.pdf

Nota de Aplicación: CAN-023
Título: Osciloscopio de almacenamiento con PG320240FRST, ADS7846 y Dynamic C 8


Basándonos en hardware y software ya desarrollados, utilizamos las entradas libres del controlador ADS7846 para emplearlo como conversor AD y poder hacer una suerte de osciloscopio de almacenamiento (storage scope), principalmente orientado a procesos, dada su baja velocidad de muestreo y carencia de circuito de disparo. Esta nota de aplicación hace uso de software y hardware desarrollado en las siguientes notas de aplicación: CAN-016: portamos las bibliotecas de funciones con soporte para displays gráficos y pantallas sensibles al tacto (touch screens), que incluye Dynamic C en su versión 8, para su utilización con el display PG320240FRST de Powertip. CAN-020: hardware de lectura de touch screen con ADS7846. CAN-021: agregado de funciones de soporte del controlador ADS7846 en nuestra biblioteca de funciones:

Software de soporte CAN-023:

CAN-023_Software.zip

CAN-024_ControlPersonalEthernet-Rabbit-GP8F.pdf

CAN-024_ControlPersonalEthernet-Rabbit-GP8F.pdf

Nota de Aplicación: CAN-024
Título: Control de Personal monitoreable Ethernet con Rabbit


Nos encontramos esta vez para desarrollar una herramienta de control de personal, destinada a registrar el horario de ingreso y egreso mediante la identificación por elementos RFID, es decir, las conocidas tarjetas de proximidad y los modernos llaveros. El empleado recibe confirmación visual y auditiva, oyendo una chicharra y observando en un display alfanumérico su nombre y la hora y fecha en la cual se registra su tarjeta. El interesado en controlar al empleado, puede observar los horarios en orden decreciente en una página web, recibir un email con un log de accesos, y recibir un archivo en un servidor FTP, en formato CSV (Comma Separated Values), el cual puede procesar y filtrar automáticamente con cualquier herramienta orientada a procesar registros (awk, por ejemplo en ambiente Unix), o incluso manualmente con cualquier planilla de cálculo. Aprovechamos el desarrollo de la nota de aplicación CAN-002 para conectar nuestro display; como lector

Software de soporte CAN-024:

CAN-024_Software.zip

CAN-025_InterfazUSB_FT232.pdf

CAN-025_InterfazUSB_FT232.pdf

Nota de Aplicación: CAN-025
Título: FT232: interfaz USB genérica


Les presentamos una novedosa interfaz USB que permite a los equipos con posibilidad de comunicación serie asincrónica, conectarse via USB. Descripción del FT232 El FT232, de FTDI, resuelve toda la comunicación en el bus USB, presentándose al usuario como un puerto serie asincrónico. Conectando los pines del FT232 directamente a los pines de la UART, ya está comunicado via USB. El chip maneja todos los aspectos USB, incluso la identificación. En el caso más común y económico, en que el usuario no necesita una identificación particular, el FT232 se identifica de forma genérica como un dispositivo de conversión serie a USB. Si el usuario necesita identificar su producto, puede conectar una EEPROM (la cual será programada por un software provisto por el fabricante), en la cual residirán sus datos de identificación.

Archivos adicionales CAN-025:

CAN-025_Archivos.zip

CAN-026_FingerprintBFS-2S-Rabbit.pdf

CAN-026_FingerprintBFS-2S-Rabbit.pdf

Nota de Aplicación: CAN-026
Título: BFS-2S Módulo de reconocimiento de huellas dactilares


Les presentamos un novedoso módulo de reconocimiento de huellas dactilares, con capacidad de verificación lo que es posible hacer verificación 1:N, siempre y cuando se identifique por otro medio, claro está. Descripción del BFS-2S El BFS-2S, de Aimgene, resuelve todo el problema de la captura, enrollment y verificación o identificación de las huellas dactilares. Se trata de un módulo en caja cerrada, con un par de LEDs bicolor, un sensor semiconductor de huellas dactilares, y un switch que se habilita al presionar con el dedo el área del sensor. La interfaz con el host es un port serie a 115200bps, a 3,3V, pero 5V-tolerant. El switch puede leerse en uno de los cinco cables que forman parte de la interfaz. Los comandos y respuestas del BFS-2S son ASCII, legibles por el usuario. El comando es en sí un caracter imprimible, y la obtención del resultado de la operación se realiza mediante parsing de la respuesta, ubicando

Software de soporte CAN-026:

CAN-026_Software.zip

CAN-027_QuadratureEncoders.pdf

CAN-027_QuadratureEncoders.pdf

Nota de Aplicación: CAN-027
Título: Codificadores en cuadratura


Ya sea como alternativa interesante para la interfaz con el usuario, o como eficaz solución al problema de la detección del movimiento y sentido de giro, les proponemos en esta oportunidad la utilización de encoders rotativos, codificadores en cuadratura. Un encoder rotativo codificador en cuadratura produce, a partir de su giro, un par de señales en cuadratura. La frecuencia de ambas depende de la velocidad de giro, y el sentido se identifica observando el signo de la diferencia de fase. Si bien existen varios tipos de encoders de esta clase, los que proponemos tienen una característica interesante que simplifica notablemente la detección: estos encoders producen un pulso en ambas salidas a cada movimiento del eje entre los descansos, según puede observarse en la hoja de datos. De este modo, podemos utilizar una de las señales como disparador y la otra para detectar el sentido de giro. La técnica convencional consiste en incrementar un contador con el giro en un sentido y decrementarlo con el giro en el

Software de soporte CAN-027:

CAN-027_Software.zip

CAN-028_SHT-71.pdf

CAN-028_SHT-71.pdf

Nota de Aplicación: CAN-028
Título: Sensores de Humedad y Temperatura SHT-71


Si bien existen numerosas alternativas para la medición de temperatura ambiente, la medición de la humedad relativa ambiente resulta ser algo complicada. En ambos casos, lograr una determinada precisión implica disponer de sensores caros y mucho cuidado en la sección analógica y la placa de circuito impreso; hecho que se ve potenciado si el sensor debe estar a una cierta distancia del circuito de procesamiento, y/o en ambientes hostiles. Les presentamos en esta oportunidad unos sensores combinados de humedad y temperatura ambiente: SHT-71, desarrollados por la firma Sensirion. Los mismos constan de un par de sensores y

Software de soporte CAN-028:

CAN-028_Software.zip

CAN-029_OLEDcolorSSD1332-Rabbit.pdf

CAN-029_OLEDcolorSSD1332-Rabbit.pdf

Nota de Aplicación: CAN-029
Título: Utilización de displays colorOLED (SSD1332) con Rabbit


Les presentamos los nuevos displays gráficos color con tecnología OLED. En este caso, nos referimos al UG9664GFD, display de 96x64 pixels, basado en chips controladores SSD1332. Analizaremos más tarde el software de control y un simple programa demostración. Hardware El SSD1332 presenta una interfaz con tres modos posibles de trabajo: tipo Motorola (E, R/W, D/C), tipo Intel (RD, WR, D/C), y serie. El usuario tiene la libertad de elegir cual utilizar, y nosotros hemos elegido la modalidad Intel, que corresponde al funcionamiento del bus de Rabbit, y nos permite tener máxima velocidad de transferencia de datos. Como estos displays funcionan a 3V, utilizaremos la familia 3000 de Rabbit

Software de soporte CAN-029:

CAN-029_Software.zip

CAN-030_OLEDcolorSSD1332-bitmap.pdf

CAN-030_OLEDcolorSSD1332-bitmap.pdf

Nota de Aplicación: CAN-030
Título: Generación de bitmaps para SSD1332 y similares


Les presentamos ahora una forma rápida de generar bitmaps para los nuevos displays gráficos color con tecnología OLED. En este caso, nos referimos al UG9664GFD, display de 96x64 pixels, basado en chips controladores SSD1332. Software Recordemos que la estructura interna de memoria del SSD1332 asigna un formato 3:3:2 para 8bpp y 5:6:5 para 16bpp. En este caso, utilizaremos solamente 16bpp, dado que la granularidad de color de 8bpp resulta muy limitada para bitmaps, ya que no se trata de 256 colores tomados de una paleta de 24-bits, como en VGA (8 bits para R, 8 para G, y 8 para B), sino de 256 colores fijos, con 3 bits para B y G y 2 para R. Como adelantáramos en la CAN-029, si comparamos la estructura de memoria del display con la forma de guardar imágenes de 24 bits en formato BMP, veríamos que son muy similares, por ejemplo: BMP va de abajo

Software de soporte CAN-030:

CAN-030_Software.zip

CAN-031_LCDcolor.pdf

CAN-031_LCDcolor.pdf

Nota de Aplicación: CAN-031
Título: Utilización de displays LCD color


Les presentamos los nuevos displays color LCD de 320x240. Se trata de displays con o sin touch screen y sin controlador, por lo que su utilización dentro de un sistema requiere de un controlador externo, o de la generación de todas las señales de control por parte del usuario. El display color presenta una interfaz relativamente simple desde el punto de vista del hardware, con 8 bits de datos y tres señales de control. La nomenclatura es algo confusa y varía con el fabricante, por lo que intentaremos generalizar. Las señales de control se encargan de indicar los instantes de comienzo de trama vertical (FPFRAME o FRM) y línea horizontal (FPLINE, LOAD, o CL1), mientras que la información para cada pixel es leída a cada intervalo de clock (FPSHIFT, DP, o CL2), 8-bits a la vez (FPDAT0 a FPDAT7). La correspondencia entre estos 8-bits y la información de R, G y B de pantalla es algo compleja, y puede observarse mejor en el

CAN-032_LCDcolor-S1D13705-Rabbit.pdf

CAN-032_LCDcolor-S1D13705-Rabbit.pdf

Nota de Aplicación: CAN-032
Título: Utilización de displays LCD color con controladores S1D13705 y Rabbit


En la CAN-031 les presentamos los nuevos displays color LCD de 320x240. Dijimos que se trata de displays sin controlador, por lo que su utilización dentro de un sistema requiere de un controlador externo, o de la generación de todas las señales de control por parte del usuario. Veremos en esta nota la forma de utilizar un controlador de Epson, el S1D13705, para que se encargue de todo lo relacionado con el manejo del display, mientras que nosotros nos limitaremos a decirle cómo lo tiene que hacer, y darle la información a mostrar. Breve descripción del S1D13705 Hardware El S1D13705 es un controlador inteligente para displays LCD de alta resolución, permitiendo no sólo displays color pasivos sino también blanco y negro y TFT. El S1D13705 se encarga de generar las señales que necesita el display, como viéramos en la CAN-031, tanto para este tipo de display como para los otros

Software de soporte CAN-032:

CAN-032_Software.zip

CAN-033_LCDcolor-S1D13705-Rabbit.pdf

CAN-033_LCDcolor-S1D13705-Rabbit.pdf

Nota de Aplicación: CAN-033
Título: Utilización de displays LCD color con controladores S1D13705 y Rabbit


Modificamos levemente el desarrollo de la CAN-032, para trabajar en modo 8bpp, es decir 256 colores de una paleta de 4096 Algoritmos Para ubicar un punto en pantalla, calculamos su posición en memoria sabiendo que alojamos un pixel por byte, es decir: mem   x ¡ 320 ¢ y . Para graficar funciones, debemos tener en cuenta que la coordenada (0;0) se halla en el extremo superior izquierdo de la pantalla. Para mostrar pantallas, deberemos agrupar los datos de modo tal de poder enviarlos de forma que aproveche de manera eficiente la estructura de memoria. Si comparamos la estructura de memoria del display con la

Software de soporte CAN-033:

CAN-033_Software.zip

CAN-034_LCDcolor-S1D13705-Rabbit.pdf

CAN-034_LCDcolor-S1D13705-Rabbit.pdf

Nota de Aplicación: CAN-034
Título: Generación de textos en displays LCD color con controladores S1D13705 y


Revisiones Fecha Comentarios Veremos en esta nota una forma de generar caracteres al utilizar un controlador de Epson, el S1D13705, para que se encargue de todo lo relacionado con el manejo del display. Para una descripción, conexionado y rutinas de soporte del controlador, remítase a las Notas de Aplicación CAN-032 y CAN-033. Algoritmo Si trabajamos en 8bpp, para ubicar un punto en pantalla, calculamos su posición en memoria sabiendo que alojamos un pixel por byte, es decir: mem   x ¡ 320 ¢ y . Si en cambio trabajamos en 4bpp, para ubicar un punto en pantalla, calculamos su posición en memoria sabiendo que alojamos dos pixels por byte, es decir: mem   x ¡ 320 ¢ y

Software de soporte CAN-034:

CAN-034_Software.zip

CAN-035_LCDcolor-S1D13706-Rabbit.pdf

CAN-035_LCDcolor-S1D13706-Rabbit.pdf

Nota de Aplicación: CAN-035
Título: Utilización de displays LCD color con controladores S1D13706 y Rabbit


En la CAN-031 les presentamos los nuevos displays color LCD de 320x240. Dijimos que se trata de displays sin controlador, por lo que su utilización dentro de un sistema requiere de un controlador externo, o de la generación de todas las señales de control por parte del usuario. Veremos en esta nota la forma de utilizar un controlador de Epson, el S1D13706, para que se encargue de todo lo relacionado con el manejo del display, mientras que nosotros nos limitaremos a decirle cómo lo tiene que hacer, y darle la información a mostrar. Breve descripción del S1D13706 Hardware El S1D13706 es un controlador inteligente para displays LCD de alta resolución, permitiendo no sólo displays color pasivos sino también blanco y negro y TFT. El S1D13706 se encarga de generar las señales que necesita el display, como viéramos en la CAN-031, tanto para este tipo de display como para los otros

Software de soporte CAN-035:

CAN-035_Software.zip

CAN-036_LCDcolor-S1D13706-Rabbit.pdf

CAN-036_LCDcolor-S1D13706-Rabbit.pdf

Nota de Aplicación: CAN-036
Título: Utilización de displays LCD color con controladores S1D13706 y Rabbit


Modificamos levemente el desarrollo de la CAN-035, para trabajar en modo 8bpp, es decir 256 colores de una paleta de 256K Algoritmos Para ubicar un punto en pantalla, calculamos su posición en memoria sabiendo que alojamos un pixel por byte, es decir: mem   x ¡ 320 ¢ y . Para graficar funciones, debemos tener en cuenta que la coordenada (0;0) se halla en el extremo superior izquierdo de la pantalla. Para mostrar pantallas, deberemos agrupar los datos de modo tal de poder enviarlos de forma que aproveche de manera eficiente la estructura de memoria. Si comparamos la estructura de memoria del display con la

Software de soporte CAN-036:

CAN-036_Software.zip

CAN-037_LCDcolor-S1D13706-Rabbit.pdf

CAN-037_LCDcolor-S1D13706-Rabbit.pdf

Nota de Aplicación: CAN-037
Título: Utilización de displays LCD color con controladores S1D13706 y Rabbit


Modificamos levemente el desarrollo de las CAN-035 y CAN-036, para trabajar con osciladores de 50MHz, comercializados por Cika. Esto nos permite tener un ciclo de acceso más corto, con menos wait-states, y lograr frecuencias de barrido que logran mayor calidad de imagen. Configuración del S1D13706 Los valores a setear en cada uno de los registros se obtienen de idéntica forma que en la CAN-035 y CAN- de tipo C header file (s1d13706.h), el cual podremos editar e incluir en el código para Rabbit A continuación, la inicialización del chip para 8bpp y 141Hz de frecuencia de actualización de trama. Los valores los obtuvimos utilizando el software de configuración provisto por el fabricante, según comentáramos. typedef unsigned short S1D_INDEX; typedef unsigned char S1D_VALUE;

CAN-038_LCDcolor-S1D13706-bitmaps.pdf

CAN-038_LCDcolor-S1D13706-bitmaps.pdf

Nota de Aplicación: CAN-038
Título: Generación de bitmaps color para controladores S1D13706


Si bien las CAN-035 y CAN-036 describen el procedimiento para procesar imágenes para enviarlas fácilmente al controlador S1D13706, les presentamos un pequeño y sencillo programa de tipo Q&D1 para resolver la tarea en 8bpp, fácilmente modificable para 4bpp. Software Para mostrar pantallas, deberemos agrupar los datos de modo tal de poder enviarlos de forma que aproveche de manera eficiente la estructura de memoria. Nada quita que guardemos el BMP en memoria y hagamos un programa para nuestro querido procesador que lo decodifique y envíe los datos al display, pero resulta que por lo general nuestro sistema tiene otras cosas más importantes que hacer, y resulta preferible minimizar el tiempo perdido y los preciosos bytes de memoria. Si comparamos la estructura de memoria del display con la forma de guardar imágenes en 256 colores en

Software de soporte CAN-038:

CAN-038_Software.zip

CAN-039_ControlSHT-71_S1D13706_Rabbit.pdf

CAN-039_ControlSHT-71_S1D13706_Rabbit.pdf

Nota de Aplicación: CAN-039
Título: Control de temperatura/humedad con display color, SHT-71 y Rabbit


En esta nota, les proponemos un simple y vistoso controlador industrial/campestre, el cual permite graficar en un display color en tiempo real el avance de las muestras de temperatura y humedad entregadas por un SHT-71, a la vez que monitorea que éstas no excedan determinados límites. De excederse esos límites, el controlador encenderá un ventilador o un calefactor, según corresponda, cuya velocidad o intensidad serán proporcionales a la magnitud del exceso. Tanto la medición actual como un pequeño histórico, pueden observarse en una página web, donde además pueden cambiarse los valores de los límites fijados de temperatura y humedad. Historia:   En la CAN-031 les presentamos los nuevos displays color LCD de 320x240.   En las CAN-035 y CAN-036 vimos la forma de utilizar un controlador de Epson, el S1D13706, para que se

Software de soporte CAN-039:

CAN-039_Software.zip

CAN-040_PIC10F206.pdf

CAN-040_PIC10F206.pdf

Nota de Aplicación: CAN-040
Título: Ejemplo de aplicación de PIC10F206


Presentamos un sencillo ejemplo de aplicación de PIC10F206, un integrante de la nueva línea PIC10F de Microchip. Estos dispositivos son micros de 6 patitas en encapsulado SOT-23, de muy bajo costo, tendientes a eliminar la utilización de varios chips de lógica o proveer funciones adicionales sin por ello incrementar el espacio ocupado. En este caso, reemplazamos una típica aplicación de 555 y/o algunas compuertas lógicas con sus capacitores y resistencias asociadas para la generación de ondas cuadradas. Breve descripción del PIC10F206 El PIC10F206 es sumamente simple, se trata de un microcontrolador con 512 words de flash y 24 bytes de RAM, sin interrupciones, con un timer de 8-bits (TMR0), un comparador, tres entradas/salidas, y una entrada; todo en seis pines. Posee además un oscilador interno de 4MHz al 1%, lo que le permite operar a 1MIPS pico. El core es de 12-bits, y las instrucciones son similares al 12C508, es decir, incluye TRIS y OPTION. Todos los

Software de soporte CAN-040:

CAN-040_Software.zip

CAN-041_LCDgraphHD61202-fonts.pdf

CAN-041_LCDgraphHD61202-fonts.pdf

Nota de Aplicación: CAN-041
Título: Conversión de tipografías para LCD gráficos con HD61202


A pedido del público, publicamos el pequeño programita Q&D1 desarrollado oportunamente para convertir tipografías "standard" al formato de memoria utilizado por los chips controladores compatibles con el HD61202, de Hitachi, y su clon: el KS0108, de Samsung; presentes en los módulos Powertip PG12864, de Hemos ya presentado la estructura de memoria de estos displays en la CAN-003, CAN-008 y CAN022, por respeto a la redundancia sugerimos a los lectores interesados remitirse a dichas notas. Según comentáramos en la CAN-008, para generar los sets de caracteres tomamos tipografías de dominio público disponibles en Internet y las rotamos al formato de los controladores utilizados. Generalmente, los sets de caracteres se hallan definidos a un byte por línea horizontal, n líneas de arriba a abajo, caracter por caracter. La tarea a realizar consiste en transferir esa información, caracter por caracter, al formato del HD61202: un byte por línea vertical, n líneas de izquierda a derecha, caracter por caracter.

Software de soporte CAN-041:

CAN-041_Software.zip

CAN-042_LCDgraphHD61202-Rabbit3000.pdf

CAN-042_LCDgraphHD61202-Rabbit3000.pdf

Nota de Aplicación: CAN-042
Título: Conexión de módulos LCD con interfaz tipo Motorola a Rabbit 3000A


El objeto de esta nota es demostrar una aplicación de una novedosa característica del Rabbit 3000A: IOSTROBE con CS activo en alto. La misma permite, entre otras cosas, controlar displays alfanuméricos inteligentes y displays gráficos inteligentes basados en chips controladores compatibles con el HD61202, de Hitachi; como por ejemplo Powertip PG12864, de 128x64 pixels. Hardware Vamos a aprovechar varias características del R3000A:   Conexión al bus: el display mapea dentro del espacio de I/O del procesador. Mediante las líneas de address seleccionamos la operación a realizar   Bus Auxiliar de I/O: el Port A oficia de bus de datos, mientras que el Port B provee 6 líneas de address (PB.2 a PB.7 = A0 a A5), más que suficiente para

Software de soporte CAN-042:

CAN-042_Software.zip

CAN-043_LCDgraph-Rabbit-HTTP.pdf

CAN-043_LCDgraph-Rabbit-HTTP.pdf

Nota de Aplicación: CAN-043
Título: Pizarra remota via HTTP con Rabbit 3000 y LCD gráfico (HD61202)


Presentamos en esta oportunidad una nueva encarnación de la conocida “pizarra remotaâ€, una simple aplicación de un módulo LCD gráfico inteligente y un módulo Rabbit conectado a una red Ethernet. Esta vez, agregamos la posibilidad de escribirla tanto vía HTTP como por email o interfaz serie/USB. El módulo Rabbit funciona como un servidor web y con cualquier navegador podemos escribir un simple mensaje en la pizarra; además, periódicamente revisa el correo en un servidor y si ve un mensaje muestra la primera línea en la pizarra; y por último, al recibir un retorno de carro (Enter) por un puerto serie, presenta un prompt que permite al usuario ingresar una línea de texto a ser mostrada en la pizarra. Empleando el conversor serie-USB descripto en la CAN-025, es posible además acceder a la pizarra vía USB. Más allá de su posible utilidad en la vida real, esta aplicación nos permite ejemplificar el uso de las capacidades de TCP/IP de Dynamic C. No se darán demasiados detalles acerca del display y su software de

Software de soporte CAN-043:

CAN-043_Software.zip

CAN-044_Rabbit-SIM200-PPP-GPRS.pdf

CAN-044_Rabbit-SIM200-PPP-GPRS.pdf

Nota de Aplicación: CAN-044
Título: Conexión a Internet mediante PPP sobre GPRS con un módulo SIM200


Comentamos en esta oportunidad una forma de conexión a Internet mediante un módulo GSM, el SIMCOM SIM200. Gracias a la posibilidad de correr PPP en el Rabbit, podemos seguir manteniendo el stack TCP/IP en el Rabbit, con todas sus ventajas, y conectarnos mediante PPP sobre GPRS. La conexión es simple, en este aso utilizaremos el port serie B del rabbit, que conectaremos al port serie del SIM200. Dada la elevada velocidad, para evitar sorpresas, utilizaremos control de flujo por hardware, lo que realizamos conectando PC.2 como RTS y PC.3 como CTS. Usamos para este ejemplo un kit de RCM2100 y el kit del SIM200, PC.2 y PC.3 están disponibles como TXC y RXC respectivamente. La conexión es la siguiente: Deberá además forzarse la señal DTR del SIM200 en modo activo, lo cual puede hacerse conectándola a DSR (unir pines 4 y 6 en el conector del kit del SIM200).

Software de soporte CAN-044:

CAN-044_Software.zip

CAN-045_TRW24G-Rabbit.pdf

CAN-045_TRW24G-Rabbit.pdf

Nota de Aplicación: CAN-045
Título: Wenshing TRW-2.4G, con Rabbit 3000


Les presentamos los módulos transceptores TRW-2.4G de Wenshing. Se trata de transceivers que operan en la banda de 2.4GHz, con capacidad de direccionamiento y selección de canal de comunicaciones. Descripción del TRW-2.4G Estos módulos poseen una potencia de salida de 0dBm, lo que permite un alcance algo más reducido que una red Wi-Fi. Funcionan a 3,3V, y su consumo es bastante reducido; pero lo realmente interesante está en su interfaz. La interfaz del módulo es netamente digital, si bien nada impide su utilización en la forma tradicional (entra bit - sale bit), estos módulos pueden trabajar con un sistema denominado ShockBurst, que es algo así como un store and forward que permite emplear micros sin UART, y/o con relojes de baja frecuencia y/o poca precisión, comunicándose a una velocidad baja, sin por ello mantener ocupado el canal de comunicaciones. El micro y el módulo se comunican mediante una interfaz de cinco pines, al ritmo que el micro marca en la

Software de soporte CAN-045:

CAN-045_Software.zip

CAN-046_TRW24G-PIC.pdf

CAN-046_TRW24G-PIC.pdf

Nota de Aplicación: CAN-046
Título: Wenshing TRW-2.4G, con PIC


En la CAN-045 les presentamos los módulos transceptores TRW-2.4G de Wenshing, transceivers que operan en la banda de 2.4GHz, con capacidad de direccionamiento y selección de canal de comunicaciones. En esta oportunidad, portamos el código a PIC, con lo cual podemos emplearlos para implementar económicos remotos que se encargan de tomar una medición y reportarla al master cuando éste lo requiere, por ejemplo. Desarrollo propuesto Vamos a implementar una pequeña especie de biblioteca de funciones que se ocupe de enviar y recibir mensajes utilizando estos módulos, para lo cual comenzaremos por desarrollar rutinas para escribir y leer un byte en el módulo: ; Envía un byte ; Dato en W

Software de soporte CAN-046:

CAN-046_Software.zip

CAN-047_SHT71-PIC.pdf

CAN-047_SHT71-PIC.pdf

Nota de Aplicación: CAN-047
Título: Sensores de Humedad y Temperatura SHT-71 con PIC


Si bien existen numerosas alternativas para la medición de temperatura ambiente, la medición de la humedad relativa ambiente resulta ser algo complicada. En ambos casos, lograr una determinada precisión implica disponer de sensores caros y mucho cuidado en la sección analógica y la placa de circuito impreso; hecho que se ve potenciado si el sensor debe estar a una cierta distancia del circuito de procesamiento, y/o en ambientes hostiles. Los sensores combinados de humedad y temperatura ambiente SHT-71, desarrollados por la firma Sensirion, constan de un par de sensores y conversores A/D, circuitería de calibración, y compensación. La información es presentada por una interfaz serie, de modo que el sistema de medición se desentiende del tema ruidos, linealización analógica, calibración, e impedancias. Para más detalles, y código ejemplo en C, le recomendamos referirse a la CAN-028. En esta oportunidad, desarrollamos código para poder leer los sensores con PIC, bajando notablemente el costo para aplicaciones que requieran gran cantidad de sensores remotos.

Software de soporte CAN-047:

CAN-047_Software.zip

CAN-048_SHT71-TRW24G-PIC.pdf

CAN-048_SHT71-TRW24G-PIC.pdf

Nota de Aplicación: CAN-048
Título: Sensores remotos de Humedad y Temperatura SHT-71 con TRW-2.4G


En esta oportunidad, desarrollamos código para poder emplear los SHT-71 como sensores remotos de temperatura y humedad. Los mismos reportarán a un sistema central mediante transceptores TRW-2.4G. Los remotos operan sobre PIC16F630, empleando lo desarrollado en CAN-046 y CAN-047. El master, opera sobre un módulo Rabbit, aprovechando el desarrollo de la CAN-045. Para detalles sobre hardware y las rutinas de bajo nivel de SHT-71 y/o TRW-2.4G, remítase a las notas de aplicación mencionadas. El contenido de esta nota se refiere a la operación del sistema en sí, y al código necesario para poder realizar la tarea mencionada. Desarrollo propuesto El sistema central, basado en Rabbit, se ocupará de interrogar a cada uno de sus remotos y realizar la linealización de los sensores, a fin de obtener una mayor precisión. Cada sensor remoto obtiene el resultado de

Software de soporte CAN-048:

CAN-048_Software.zip

CAN-049_LCDgraphT6963-Rabbit.pdf

CAN-049_LCDgraphT6963-Rabbit.pdf

Nota de Aplicación: CAN-049
Título: Utilización de displays LCD gráficos (T6963) con Rabbit 2000


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG240128xxx-A, a un módulo Rabbit 2000. Se trata de un display de 240x128 pixels basado en chips controladores compatibles con el T6963, de Toshiba. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware El T6963 presenta una interfaz tipo Intel, es decir, con líneas de RD y WR separadas. Posee además la línea de selección, CE, y otra para determinar si lo que se escribe es un dato o un comando: C/D. Existe además otro pin que determina el

Software de soporte CAN-049:

CAN-049_Software.zip

CAN-050_RabbitExtInt-ABA(TrackII).pdf

CAN-050_RabbitExtInt-ABA(TrackII).pdf

Nota de Aplicación: CAN-050
Título: Interrupciones externas en Rabbit 2000, lector ABA (Track II)


Desarrollamos aquí un simple ejemplo de uso de las interrupciones externas en un Rabbit 2000. La aplicación en cuestión es tomar los datos de una lectora de tarjetas RFID con interfaz ABA (Track II). La interfaz en sí es muy simple, sólo consta de dos líneas: una de clock y una de datos. Los datos son considerados válidos durante el flanco descendente del reloj, por lo que utilizaremos esta señal para generar una interrupción al Rabbit y así observar la señal de datos mediante la lectura de un port de I/O (PE.0 en este caso). Las interrupciones externas en el Rabbit 2000 vienen de la mano del port E. Si nuestro procesador es R2000C (IQ5T), lo cual es lo más probable debido a que hace ya algunos años que está en el mercado, la forma de seleccionar el puerto de interrupciones es la siguiente: WrPortI(PEDDR, &PEDDRShadow, 0xEE); // PE0,4=input

CAN-051_Holtek-LCDalfa.pdf

CAN-051_Holtek-LCDalfa.pdf

Nota de Aplicación: CAN-051
Título: Manejo de displays LCD alfanuméricos inteligentes con Holtek


La presente nota de aplicación está basada en la nota de aplicación HA0013E de Holtek. El objetivo es interiorizarnos en el desarrollo de una interfaz para conectar un módulo LCD alfanumérico inteligente a un microcontrolador Holtek. Analizaremos más tarde el software de control y un simple programa demostración. La interfaz que utilizamos es de 8 bits con lectura y escritura del controlador LCD. La nota de aplicación original es algo más completa, permitiendo compilado condicional para 4-bits ú 8-bits. A los fines de hacer de ésta una nota introductoria, decidimos simplificarla. Hardware Utilizaremos el port B completo para los datos, y algunos pines del port C para las señales de control. Como la gran mayoría de los microcontroladores, los ports de I/O son bidireccionales. Ambos puertos están presentes con todas las líneas necesarias desde 48R10/48E10 en adelante.

Software de soporte CAN-051:

CAN-051_Software.zip

CAN-052_FingerprintBFS-2S-imagen-web.pdf

CAN-052_FingerprintBFS-2S-imagen-web.pdf

Nota de Aplicación: CAN-052
Título: BFS-2S, cómo ver la imagen sin display gráfico


Les presentamos un rápido truco para poder visualizar la imagen de la huella dactilar tomada por el módulo de reconocimiento de huellas dactilares BFS-2S, para aquéllos que no disponen de un display gráfico. El truco utiliza un Rabbit como servidor web, el cual toma la imagen del módulo y la ofrece en una página web, para así poder verla. Para una descripción del BFS-2S y sus comandos, consulte la CAN-026. Para como servir páginas web desde Rabbit, consulte la gran cantidad de otras notas de aplicación al respecto. Generamos la imagen en formato BMP sin compresión. Como ya sabemos de antemano el tamaño y resolución de color que vamos a utilizar, simplemente generamos con cualquier software una imagen en dicho formato, y extraemos la cabecera y la paleta, las cuales podemos guardar en flash mediante #ximport, y luego copiarlas a RAM, reservando un área al final del tamaño de la imagen. A continuación, modificamos el campo

Software de soporte CAN-052:

CAN-052_Software.zip

CAN-053_SIM200-KC111-Rabbit.pdf

CAN-053_SIM200-KC111-Rabbit.pdf

Nota de Aplicación: CAN-053
Título: Pizarra remota con SMS y Bluetooth con SIM200 y KC-111


Una vez más, nuestra conocida “pizarra remota†vuelve a evolucionar. Esta vez, agregamos la posibilidad de escribirla mediante mensajes de texto (SMS) empleando un módulo GSM SIM200. Modificamos además el código de la interfaz serie para poder, mediante un módulo Bluetooth, conectarnos desde (por ejemplo) una PDA. La descripción y desarrollo del código para Bluetooth se encuentra en el Comentario Técnico CTC-036. La descripción de cómo enviar y recibir mensajes de texto con un SIM200 se encuentra en el Comentario Técnico CTC-037. La Nota de Aplicación CAN-043 explica cómo recibir emails y hace una descripción de la pizarra en sí, brindando además numerosos punteros a notas de aplicación anteriores que cubren la recepción de mensajes por HTTP, el hardware de display, y conceptos más básicos de Rabbit. En síntesis: el módulo Rabbit funciona como un servidor web y con cualquier navegador podemos escribir un simple mensaje en la pizarra; además, periódicamente revisa el correo en un servidor y si ve un mensaje

CAN-054_MMC-Rabbit.pdf

CAN-054_MMC-Rabbit.pdf

Nota de Aplicación: CAN-054
Título: Utilización de tarjetas MMC en bajo nivel


Una opción interesante y económica a la hora de almacenar grandes cantidades de datos, son las tarjetas flash. Entre ellas, las MMC y SD presentan la particularidad de poder ser controladas mediante una interfaz SPI, característica que explotaremos en esta oportunidad. Información de las tarjetas MMC Tanto SD como MMC son standards de las respectivas organizaciones que definen su funcionamiento y lo documentan. El developer o fabricante de productos puede adquirir dicha documentación directamente de estas organizaciones. En este caso en particular, utilizamos información disponible de forma gratuita en Internet, la cual puede no ser del todo correcta. Sin embargo, el código de la presente nota de aplicación ha funcionado correctamente con las tarjetas MMC que hemos probado. Debido a que dicha información no nos pertenece, no podemos publicarla junto a esta nota ni tampoco distribuirla, se recomienda al lector conseguir y leer la

Software de soporte CAN-054:

CAN-054_Software.zip

CAN-055_MMC-Rabbit-leeFAT16.pdf

CAN-055_MMC-Rabbit-leeFAT16.pdf

Nota de Aplicación: CAN-055
Título: Lectura de datos externos de tarjetas MMC


En la CAN-054 vimos la forma de acceder a estas interesantes y económicas tarjetas flash mediante una interfaz SPI. En esta oportunidad, mostraremos una forma fácil de leer información de éstas, que puede haber sido grabada en cualquier otro sistema si están formateadas utilizando el sistema de archivos FAT16. Información de las tarjetas MMC y de FAT16 Tanto SD como MMC, FAT y FAT16, son standards de las respectivas organizaciones que definen su funcionamiento y lo documentan. El developer o fabricante de productos puede adquirir dicha documentación directamente de estas organizaciones. En este caso en particular, utilizamos información disponible de forma gratuita en Internet, la cual puede no ser del todo correcta. Sin embargo, el código de la presente nota de aplicación ha funcionado correctamente con las tarjetas MMC que hemos probado. Debido a que dicha información no nos pertenece, no podemos publicarla junto a esta nota ni tampoco

Software de soporte CAN-055:

CAN-055_Software.zip

CAN-056_TRW24G-Holtek.pdf

CAN-056_TRW24G-Holtek.pdf

Nota de Aplicación: CAN-056
Título: Wenshing TRW-2.4G, con Holtek


En la CAN-045 les presentamos los módulos transceptores TRW-2.4G de Wenshing, transceivers que operan en la banda de 2.4GHz, con capacidad de direccionamiento y selección de canal de comunicaciones. En esta oportunidad, portamos el código a Holtek, con lo cual podemos emplearlos para implementar económicos remotos que se encargan de tomar una medición y reportarla al master cuando éste lo requiere, por ejemplo. Desarrollo propuesto Vamos a implementar una pequeña especie de biblioteca de funciones que se ocupe de enviar y recibir mensajes utilizando estos módulos, para lo cual comenzaremos por desarrollar rutinas para escribir y leer un byte en el módulo: ; Envía un byte ; dato en A

Software de soporte CAN-056:

CAN-056_Software.zip

CAN-057_SHT71-Holtek.pdf

CAN-057_SHT71-Holtek.pdf

Nota de Aplicación: CAN-057
Título: Sensores de Humedad y Temperatura SHT-71 con Holtek


Si bien existen numerosas alternativas para la medición de temperatura ambiente, la medición de la humedad relativa ambiente resulta ser algo complicada. En ambos casos, lograr una determinada precisión implica disponer de sensores caros y mucho cuidado en la sección analógica y la placa de circuito impreso; hecho que se ve potenciado si el sensor debe estar a una cierta distancia del circuito de procesamiento, y/o en ambientes hostiles. Los sensores combinados de humedad y temperatura ambiente SHT-71, desarrollados por la firma Sensirion, constan de un par de sensores y conversores A/D, circuitería de calibración, y compensación. La información es presentada por una interfaz serie, de modo que el sistema de medición se desentiende del tema ruidos, linealización analógica, calibración, e impedancias. Para más detalles, y código ejemplo en C, le recomendamos referirse a la CAN-028. En esta oportunidad, desarrollamos código para poder leer los sensores con los micros de Holtek, bajando notablemente el costo para aplicaciones que requieran gran cantidad de

Software de soporte CAN-057:

CAN-057_Software.zip

CAN-058_SHT71-TRW24G-Holtek.pdf

CAN-058_SHT71-TRW24G-Holtek.pdf

Nota de Aplicación: CAN-058
Título: Sensores remotos de Humedad y Temperatura SHT-71 con TRW-2.4G


En esta oportunidad, desarrollamos código para poder emplear los SHT-71 como sensores remotos de temperatura y humedad. Los mismos reportarán a un sistema central mediante transceptores TRW-2.4G. Los remotos operan sobre HT48E30, empleando lo desarrollado en CAN-056 y CAN-057. El master, opera sobre un módulo Rabbit, aprovechando el desarrollo de la CAN-045. Para detalles sobre hardware y las rutinas de bajo nivel de SHT-71 y/o TRW-2.4G, remítase a las notas de aplicación mencionadas. El contenido de esta nota se refiere a la operación del sistema en sí, y al código necesario para poder realizar la tarea mencionada. Desarrollo propuesto El sistema central, basado en Rabbit, se ocupará de interrogar a cada uno de sus remotos y realizar la linealización de los sensores, a fin de obtener una mayor precisión. Cada sensor remoto obtiene el resultado de

Software de soporte CAN-058:

CAN-058_Software.zip

CAN-059_LCDgraphHD61202-RamtronVRS51L3074.pdf

CAN-059_LCDgraphHD61202-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-059
Título: Utilización de displays LCD gráficos (HD61202) con Ramtron VRS51L3074


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente a un microcontrolador Ramtron VRS51L3074. Utilizaremos un módulo Powertip PG12864, de 128x64 pixels, basado en chips controladores compatibles con el HD61202, de Hitachi, y su clon: el KS0108, de Samsung. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades gráficas. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware Dado que el controlador utilizado en estos módulos sólo es capaz de direccionar izquierda y otro para la parte derecha del display. El hardware de conexión resulta

Software de soporte CAN-059:

CAN-059_Software.zip

CAN-060_LCDgraphHD61202TEXT-RamtronVRS51L3074.pdf

CAN-060_LCDgraphHD61202TEXT-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-060
Título: Display de textos en LCD gráficos (HD61202) con Ramtron VRS51L3074


Complementamos el desarrollo de la CAN-059 ampliando la forma de mostrar textos en módulos LCD gráficos inteligentes Powertip PG12864, con Ramtron VRS51L3074. Se recomienda al lector el estudio de la CAN-059 para mayor información sobre la estructura de memoria de los displays basados en HD61202 y/o KS0108 y su utilización para aplicaciones puramente gráficas. Hardware El hardware de conexión es el mismo que viéramos en la CAN-059 Software Mantenemos el software de soporte desarrollado en la CAN-059, necesitará de parte del software de esta nota de aplicación si desea compilar los archivos que acompañan a la presente. Recordemos que la estructura de memoria de estos módulos gráficos se halla agrupada en bytes en sentido

Software de soporte CAN-060:

CAN-060_Software.zip

CAN-061_MCP3204-RamtronVRS51L3074.pdf

CAN-061_MCP3204-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-061
Título: Conexión de un conversor A/D MCP3204 a micros Ramtron VRS51L3074


Con el fin de proporcionar entradas analógicas a los micros Ramtron VRS51L3074; introducimos el MCP3204 de Microchip (conversor analógico-digital de 12 bits), y desarrollamos su conexión con éstos mediante la interfaz SPI. Desarrollamos además un simple driver para obtener los datos del conversor, con un modesto ejemplo. Descripción del MCP3204 El MCP3204 de Microchip es un conversor analógico-digital de 12 bits por aproximaciones sucesivas (SAR) con interfaz SPI. Dispone de cuatro entradas que puede configurar como 4 canales single-ended ó 2 canales pseudo-diferenciales (el potencial de la entrada IN- no debe alejarse más de unos 100mV del potencial de GND). La referencia de tensión debe ser externa, funciona a 3 ó 5V y su velocidad

Software de soporte CAN-061:

CAN-061_Software.zip

CAN-062_ProcessorCompanionRTC_RamtronVRS51L3074.pdf

CAN-062_ProcessorCompanionRTC_RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-062
Título: Uso del RTC de un Processor Companion FM31xx con Ramtron VRS51L3074


En el comentario técnico CTC-045 vimos la forma de utilizar la interfaz I2C en los Ramtron VRS51L3074. En esta oportunidad, accederemos al RTC de un Processor Companion FM31xx utilizando dichas rutinas. El código fue tomado de lo provisto por el fabricante, con modificaciones menores. Para compilarlo es necesario disponer del código que acompaña a CTC-045 Hardware En el kit de desarrollo del VRS51L3074 disponemos de un FM31256 y una FM24CL64, con un pequeño bus I2C. todo lo que tenemos que hacer es conectarlos a los pines SCL y SDA del micro. El FM31256 no tiene alimentación de backup, la cual deberá proveerse por un conector adicional. el circuito esquemático figura en el manual del usuario del kit. Para aquellos lectores que no disponen de un kit y desean experimentar, el siguiente es un circuito típico de

Software de soporte CAN-062:

CAN-062_Software.zip

CAN-063_ReprodAudioRamtronVRS51L3074.pdf

CAN-063_ReprodAudioRamtronVRS51L3074.pdf

Nota de Aplicación: CAN-063
Título: Reproducción de audio en microcontroladores: Ramtron VRS51L3074


En el comentario técnico CTC-046 vimos la forma de aprovechar los generadores de PWM para reproducir audio. En esta nota de aplicación veremos un caso práctico con los Ramtron VRS51L3074. Análisis El VRS51L3074 dispone de un clock interno de 40MHz. Intentamos reproducir una señal de audio con un ancho de banda cercano al del oído, con una resolución de 8-bits. Para disponer de 8-bits de resolución, necesitamos de una frecuencia de operación de   156,25 KHz . Para bajar la frecuencia de procesamiento y los requerimientos de filtrado, utilizaremos una frecuencia de muestreo cuatro veces inferior: 39062,5 Hz, esto nos permite un ancho de banda de audio de poco más de 19KHz Hardware

Software de soporte CAN-063:

CAN-063_Software.zip

CAN-064_ReprodAudioRabbit4000.pdf

CAN-064_ReprodAudioRabbit4000.pdf

Nota de Aplicación: CAN-064
Título: Reproducción de audio en microcontroladores: Rabbit 4000


En el comentario técnico CTC-046 vimos la forma de aprovechar los generadores de PWM para reproducir audio. En esta nota de aplicación veremos un caso práctico con Rabbit 4000. Análisis El módulo RCM4000 dispone de un clock de 59MHz. Intentamos reproducir una señal de audio con un ancho de banda cercano al del oído, con una resolución de 8-bits. El generador de PWM de Rabbit funciona a 10-bits, y toma reloj del clock de periféricos, por lo que la máxima frecuencia de trabajo es de 59 MHz ¡ 28800 Hz . Para bajar los requerimientos de filtrado, habilitaremos el modo SPREAD, lo que elevará la frecuencia de la señal de salida a 115200Hz. Nuestra frecuencia de muestreo será 28800 Hz y esto nos permite un ancho de banda de audio de poco más de 14KHz.

Software de soporte CAN-064:

CAN-064_Software.zip

CAN-065_DSP_FIR_RamtronVRS51L3074.pdf

CAN-065_DSP_FIR_RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-065
Título: DSP con Ramtron VRS51L3074: filtro FIR


En esta nota de aplicación veremos un caso práctico de filtrado de señales con los Ramtron VRS51L3074. Si bien el fabricante provee una excelente nota de aplicación al respecto, consideramos necesario desarrollar un marco más flexible. En la nota de aplicación CAN-063 vimos una forma de aprovechar los generadores de PWM para reproducir audio y utilizar el MCP3204 para obtenerlo, según lo desarrollado en CAN-061; lo utilizaremos para entrada y salida de la señal. Introducción Si bien un filtro de tipo FIR de 16 etapas como el desarrollado requiere mucho de la CPU, gracias al esquema desarrollado en la CAN-063 podemos minimizar el tiempo ocioso y procesar en tiempo real una señal con un ancho de banda de poco más de 19KHz, quedándonos algo de tiempo para atender otras tareas Filtros FIR

Software de soporte CAN-065:

CAN-065_Software.zip

CAN-066_DSP_Flanger_RamtronVRS51L3074.pdf

CAN-066_DSP_Flanger_RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-066
Título: DSP con Ramtron VRS51L3074: efecto de sonido: flanger


En esta nota de aplicación veremos un caso práctico de efectos de sonido con los Ramtron VRS51L3074. El marco de trabajo utilizado es el mismo de la CAN-065, y la aritmética es bastante compleja, por lo que se recomienda a los lectores no experimentados comenzar por dicha nota de aplicación. Introducción Gracias al esquema desarrollado en la CAN-063 podemos minimizar el tiempo ocioso y procesar en tiempo real una señal con un ancho de banda de poco más de 19KHz, quedándonos algo de tiempo para atender otras tareas. Un efecto de sonido como el flanger responde a un diagrama en bloques como el siguiente: Se trata de un retardo continuamente variable, controlado por un LFO que suele ser una señal triangular. Una parte de la señal así demorada se reinyecta a la entrada y otra se combina con la señal original para lograr un

Software de soporte CAN-066:

CAN-066_Software.zip

CAN-067_Holtek-SoftADC.pdf

CAN-067_Holtek-SoftADC.pdf

Nota de Aplicación: CAN-067
Título: Conversor AD por software con Holtek


La presente nota de aplicación muestra una forma rápida, sencilla y económica de agregar conversión AD a las familias HT48 de Holtek. Introducción Vamos a desarrollar un conversor analógico-digital del tipo integrador. Sumamente simplificado, intentaremos generar una señal digital cuyo valor medio sea igual al de la señal analógica a convertir. Para ello, luego de cargar el capacitor de un circuito integrador al valor de la señal a medir, aplicamos sobre el mismo una serie de pulsos iguales de carga y descarga dentro de un intervalo de tiempo; la relación entre la cantidad de pulsos de carga aplicados y el total de pulsos posibles nos da el valor medio de la señal generada, que debe ser igual al de la señal a medir: V x   V g   1

Software de soporte CAN-067:

CAN-067_Software.zip

CAN-068_FRAM_VRS51L3074.pdf

CAN-068_FRAM_VRS51L3074.pdf

Nota de Aplicación: CAN-068
Título: Logging en FRAM y con Ramtron VRS51L3074


En esta nota, analizamos cuestiones de performance y durabilidad en algunas implementaciones de sistemas de logging, para luego desarrollar un ejemplo de uso de la FRAM interna del VRS51L3074.   ¡ ¢ £ ¤ ¢ ¥ £ ¦ § ¨ © ¢ £ ¦ § ¢ ¢ £ ¡ ¦ ¤ ¡ § ¤ ¡ § ¦ ¦ §   ¡ ¢ £ ¤ ¢ ¥ £ ¦ § ¨ © ¢ £ ¦ § ¢ ¢ £ ¡ ¦ ¤ ¡ § ¤ ¡ § ¦ ¦ §   ¡ ¢ £ ¤ ¢ ¥ £ ¦ § ¨ © ¢ £ ¦ § ¢ ¢ £ ¡ ¦ ¤ ¡ § ¤ ¡ § ¦ ¦ §   ¡ ¢ £ ¤ ¢ ¥ £ ¦ § ¨ © ¢ £ ¦ § ¢ ¢ £ ¡ ¦ ¤ ¡ § ¤ ¡ § ¦ ¦ § Supongamos por ejemplo tener un totalizador de caudal. El mismo toma mediciones y totaliza cada un determinado tiempo, digamos un segundo. Dicho totalizador se alimenta del lazo de corriente 4-20mA que genera el transmisor de caudal, por lo que está sujeto a ser pateado y desconectado por operadores y otras personas que no deberían pero transitan por esa zona. Si bien podemos darnos el lujo de perder alguna que otra

Software de soporte CAN-068:

CAN-068_Software.zip

CAN-069_SoftTimers_RamtronVRS51L3074.pdf

CAN-069_SoftTimers_RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-069
Título: Software timers con Ramtron VRS51L3074


Si bien el VRS51L3074 dispone de tres timers y sus ocho canales PWM pueden configurarse cada uno para funcionar como timers, en algunos casos la cantidad de eventos simultáneos, de salidas a controlar, o el tipo de aplicación misma, requieren de un sistema de software timers sincronizados para controlar eventos en tiempos más relajados, del orden de las decenas de milisegundos hasta las decenas de segundos. Para estos casos, presentamos un sencillo y eficiente esquema de software timers de 8-bits controlados por uno de los hardware timers del micro. La idea es muy simple: el Timer2 interrumpe cada 10ms; su rutina de interrupción se encarga de llevar la cuenta para contar segundos y decrementar los timers en uso. A fin de dejar libre la memoria interna para asuntos que requieran mayor velocidad, utilizamos la RAM on-chip mapeada en el área de memoria de datos externa:

Software de soporte CAN-069:

CAN-069_Software.zip

CAN-070_Serials_RamtronVRS51L3074.pdf

CAN-070_Serials_RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-070
Título: Comunicación serie asincrónica con Ramtron VRS51L3074


En esta nota de aplicación desarrollaremos un simple y práctico sistema para utilizar comunicación serie asincrónica por las UARTs del VRS51L3074. Dado que la mayoría de las veces la comunicación con un dispositivo de orden superior o inferior es del tipo comando-respuesta, y generalmente se trata de mensajes cortos con una longitud medianamente predecible y un funcionamiento pausado, desarrollaremos un esquema con buffers lineales, muy simple, que nos permita esperar un comando y contestar, o enviar un comando y esperar una respuesta. El esquema a desarrollar presenta al usuario las siguientes funciones:   serXpeek(): devuelve el último caracter en el buffer (o -1 si el buffer está vacío), y sirve para detectar fin de mensaje en protocolos de comunicaciones con señalización por caracter especial.   serXflush(): borra el buffer de recepción, se utiliza luego de procesado el mensaje, para hacer lugar para el

Software de soporte CAN-070:

CAN-070_Software.zip

CAN-071_SoftTimers_Holtek.pdf

CAN-071_SoftTimers_Holtek.pdf

Nota de Aplicación: CAN-071
Título: Software timers en Holtek


Los micros de la familia HT48 de Holtek incorporan entre uno y tres hardware timers. Particularmente en los que disponen de uno solo, algunos tipos de aplicación requieren de un sistema de software timers para controlar eventos en tiempos del orden de las decenas de milisegundos hasta las decenas de segundos. Presentamos aquí un sencillo y eficiente esquema de software timers de 8-bits, controlados por un hardware timer del micro. La idea es muy simple: el timer de 8-bits (el único para dispositivos menores a HT48E50) interrumpe cada en uso: T0HND: mov softstack,A ; salva A mov A,STATUS mov softstack[1],A ; salva STATUS

Software de soporte CAN-071:

CAN-071_Software.zip

CAN-072_GP8F-Holtek_ControlAcceso.pdf

CAN-072_GP8F-Holtek_ControlAcceso.pdf

Nota de Aplicación: CAN-072
Título: Control de Acceso de muy bajo costo


Presentamos un control de acceso de muy bajo costo realizado con tarjetas o tags RFID. Utilizamos como lector al módulo GP8F-R2, de muy bajo costo, el que conectamos a un micro de la serie HT48E de Holtek para validar los RFID. Dada la capacidad de memoria EEPROM de estos micros, podemos almacenar hasta 24 RFIDs en memoria con el más pequeño. Descripción del GP8F-R2 El módulo GP8F-R2 lee tarjetas o tags RFID read-only de 64-bits, código Manchester a 125KHz. Posee una salida para conectar un LED, que permanece encendido y aumenta su intensidad al aproximar un RFID. El ID correspondiente se entrega por un terminal en formato 8 bits serie asincrónico, a 9600 bps, sin paridad, a nivel lógico. El usuario puede optar por conectarlo a algun driver RS-232 para leerlo desde una PC, o conectarlo directamente a un microcontrolador o UART. El formato lógico responde al siguiente esquema, en ASCII:

Software de soporte CAN-072:

CAN-072_Software.zip

CAN-073_ControlPersonal-RamtronVRS51L3074.pdf

CAN-073_ControlPersonal-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-073
Título: Control de Personal con Ramtron VRS51L3074


Nos encontramos esta vez para desarrollar una herramienta de control de personal, destinada a registrar el horario de ingreso y egreso mediante la identificación por elementos RFID, es decir, las conocidas tarjetas de proximidad y los modernos llaveros. El empleado recibe confirmación visual y auditiva, oyendo una chicharra (o un mensaje de voz mediante un chip de Aplus) y observando en un display gráfico su nombre y la hora y fecha en la cual se registra su tarjeta. El interesado en controlar al empleado, puede observar los horarios en orden decreciente en el mismo display, u obtener un listado con los campos separados por TABs, el cual puede procesar y filtrar automáticamente con cualquier herramienta orientada a procesar registros (awk, por ejemplo en ambiente Unix), o incluso manualmente con cualquier planilla de cálculo. Aprovechamos el desarrollo de las notas de aplicación CAN-059 y CAN-060 para conectar nuestro display, CAN-068 para el manejo de la memoria no-volátil FRAM, CAN-069 para la implementación de software

Software de soporte CAN-073:

CAN-073_Software.zip

CAN-074_Holtek-LCDalfa.pdf

CAN-074_Holtek-LCDalfa.pdf

Nota de Aplicación: CAN-074
Título: Manejo de displays LCD alfanuméricos inteligentes con Holtek


La presente nota de aplicación desarrolla un esquema de control para displays LCD alfanuméricos, basada en la serie HT48E de Holtek. El código desarrollado es assembler, pero se proveen ejemplos de uso del mismo tanto desde C como desde assembler. Aquellos lectores no interesados en el funcionamiento interno del código, pueden saltear dicha parte y acceder directamente a los ejemplos de uso. Para una explicación detallada de los requisitos a cumplir para utilizar C y assembler simultáneamente, se recomienda la lectura del tutorial CTU- Hardware Utilizaremos el port A completo para los datos, y algunos pines del port C para las señales de control. Como la gran mayoría de los microcontroladores, los ports de I/O son bidireccionales. Ambos puertos están presentes con todas las líneas necesarias desde 48E30 en adelante. Software

Software de soporte CAN-074:

CAN-074_Software.zip

CAN-075_Holtek-LCDgraph.pdf

CAN-075_Holtek-LCDgraph.pdf

Nota de Aplicación: CAN-075
Título: Manejo de displays LCD gráficos basados en T6963 con Holtek


La presente nota de aplicación desarrolla un esquema de control para displays LCD gráficos de 128x64 puntos, basados en el controlador T6963C de Toshiba. La razón de la elección de este controlador es que el mismo incluye un generador de caracteres interno, liberándonos de dicha tarea y fundamentalmente del espacio de memoria asociado para almacenar los caracteres. El código desarrollado es assembler, pero se proveen ejemplos de uso del mismo tanto desde C como desde assembler. Aquellos lectores no interesados en el funcionamiento interno del código, pueden saltear dicha parte y acceder directamente a los ejemplos de uso. Para una explicación detallada de los requisitos a cumplir para utilizar C y assembler simultáneamente, se recomienda la lectura del tutorial CTU-010. Breve descripción del display gráfico La memoria del display puede ser dividida en dos áreas: gráfica y de texto, las cuales pueden, a su vez,

Software de soporte CAN-075:

CAN-075_Software.zip

CAN-076_LCDgraphSED1335-RamtronVRS51L3074.pdf

CAN-076_LCDgraphSED1335-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-076
Título: Utilización de displays LCD gráficos (SED1335) con Ramtron VRS51L3074


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente Powertip PG320240, a un módulo Rabbit 2000. Se trata de un display de 320x240 pixels basado en chips controladores compatibles con el SED1335, de S-MOS, y su clon de Epson. Analizaremos más tarde el software de control y un simple programa demostración, que sirve para comprobar el correcto funcionamiento de los módulos LCD que tengamos en stock, y de paso, demostrar sus capacidades. A fin de probar la mayor parte posible del hardware, la interfaz será de 8 bits y realizará lectura y escritura del controlador LCD. Hardware El SED1335 presenta una interfaz con dos posibles modos de trabajo: tipo Motorola (E, RS, R/W) o tipo Intel (RD, WR, A0). El PG320240FRS de Powertip lo utiliza en esta última modalidad.

Software de soporte CAN-076:

CAN-076_Software.zip

CAN-077_LCDgraphSED1335-RamtronVRS51L3074.pdf

CAN-077_LCDgraphSED1335-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-077
Título: Tipografías en displays LCD gráficos (SED1335) con Ramtron VRS51L3074


Si bien el SED1335 incorpora un set de caracteres de 5x7, muchas aplicaciones requieren de caracteres más grandes o de diferentes tipografías para indicar o resaltar. En esta nota de aplicación, cuyo hardware y soporte se basan en lo desarrollado en CAN-076, desarrollamos una simple rutina, fácilmente extensible, para soportar varias tipografías. Software Para mostrar texto en el display, lo armaremos sobre la pantalla gráfica. Para esto, cada tipografía se alojará en flash como una sucesión de bytes en el formato del display, es decir, de arriba hacia abajo. Si bien el código tal como está no soporta caracteres de más de 8 pixels, es fácil extenderla a 16 pixels tomando de a dos por fila. La rutina desarrollada ubica el inicio del caracter a imprimir en la flash, tomando luego la cantidad de bytes necesarios según la altura de la tipografía, y repitiendo el procedimiento para cada caracter del string.

Software de soporte CAN-077:

CAN-077_Software.zip

CAN-078_LCDgraphHD61202icons-RamtronVRS51L3074.pdf

CAN-078_LCDgraphHD61202icons-RamtronVRS51L3074.pdf

Nota de Aplicación: CAN-078
Título: Display de íconos en LCD gráficos (HD61202) con Ramtron VRS51L3074


Complementamos el desarrollo de CAN-059 y CAN-060 agregando la forma de mostrar íconos y resaltar textos en módulos LCD gráficos inteligentes Powertip PG12864, con Ramtron VRS51L3074. Se recomienda al lector el estudio de la CAN-059 para mayor información sobre la estructura de memoria de los displays basados en HD61202 y/o KS0108 y su utilización. Software Mantenemos el software de soporte desarrollado en CAN-059 y CAN-060, necesitará de parte del software de estas nota de aplicación si desea compilar los archivos que acompañan a la presente. Ãconos Hemos visto en CAN-059 la forma de enviar una pantalla completa al display. En este caso, necesitamos imprimir un ícono, que requiere recordar la posición de inicio (superior izquierda) y luego ir avanzando:

Software de soporte CAN-078:

CAN-078_Software.zip

CAN-079_Holtek-7seg.pdf

CAN-079_Holtek-7seg.pdf

Nota de Aplicación: CAN-079
Título: Manejo de displays de 7 segmentos con Holtek


La presente nota de aplicación desarrolla un esquema de control para displays de 7 segmentos, basada en la serie HT48E de Holtek. Todo el multiplexado es desarrollado por el micro, mediante software, con soporte para realizar parpadeo individual de los dígitos. El código desarrollado es assembler, pero se proveen ejemplos de uso del mismo tanto desde C como desde assembler. Aquellos lectores no interesados en el funcionamiento interno del código, pueden saltear dicha parte y acceder directamente a los ejemplos de uso. Para una explicación detallada de los requisitos a cumplir para utilizar C y assembler simultáneamente, se recomienda la lectura del tutorial CTU-010. Hardware Utilizaremos el port A completo para los segmentos, y algunos pines del port C para la selección de los dígitos. La parte alta del port B la utilizaremos para retorno del teclado, el cual escaneamos aprovechando el

Software de soporte CAN-079:

CAN-079_Software.zip

CAN-080_HoltekHT48E-EEPROM.pdf

CAN-080_HoltekHT48E-EEPROM.pdf

Nota de Aplicación: CAN-080
Título: Utilización de la EEPROM en HT48E


Los micros de la serie HT48E de Holtek incorporan una EEPROM equivalente a las memorias de la serie la EEPROM tanto desde C como assembler, aprovechando código desarrollado por Holtek. El código original en assembler ha sido modificado para soportar acceso desde C y assembler de manera indistinta, y la posibilidad de que el compilador modifique los registros BP y MP1, lo cual ocurre al acceder variables declaradas como externas en C. Utilización desde C Incluimos dos header files, E93LC46.h y E93LC56.h, de modo que el compilador pueda chequear la sintaxis y el usuario conozca las funciones que debe llamar. Lectura Para leer en una posición de la EEPROM, utilizamos la siguiente función:

Software de soporte CAN-080:

CAN-080_Software.zip

CAN-081_7seg+softtimers_Holtek.pdf

CAN-081_7seg+softtimers_Holtek.pdf

Nota de Aplicación: CAN-081
Título: Software timers y displays de 7-segmentos en Holtek


Dado que tanto la implementación de multiplexado para displays de 7-segmentos como la de software timers utilizan el timer de 8-bits, en aplicaciones que requieran ambos conceptos, éstos utilizan dicho timer de forma diferente. La presente nota de aplicación se basa en CAN-079, proveyendo un esquema de multiplexado para hasta cuatro dígitos de 7-segmentos, y agregando a la misma el esquema desarrollado en CAN-071, que provee un sencillo y eficiente esquema de software timers de 8-bits. La frecuencia de interrupción del timer viene dada por la cantidad de dígitos del display. No lo desarrollamos en CAN-079, pero la idea es tener una cantidad de parpadeos superior a la mínima detectada por el ojo. Si tomamos esta frecuencia como de 50Hz, entonces, para un display de cuatro dígitos el timer de 8-bits interrumpe cada 5ms. Esta interrupción nos controla los timers cortos, que cuentan 'ticks' en vez de centésimas de segundos como en CAN-071. Estos 'ticks' se dividen por software hasta lograr un segundo, base de los

Software de soporte CAN-081:

CAN-081_Software.zip

CAN-082_Holtek-KBDmux.pdf

CAN-082_Holtek-KBDmux.pdf

Nota de Aplicación: CAN-082
Título: Teclado matricial con Holtek


En la nota de aplicación CAN-079 desarrollamos un esquema de control para displays de 7 segmentos, que incluía lectura de un teclado matricial. Para aquellas aplicaciones en las cuales no se utilizan displays de 7- segmentos pero se requiere la lectura del teclado, presentamos aquí un pequeño esquema de scan que puede utilizarse a demanda (como muestra la nota de aplicación) o incluirse en un handler de interrupciones, si se toman los recaudos necesarios de stack como viéramos en CAN-079. El código desarrollado es assembler, pero se proveen ejemplos de uso del mismo tanto desde C como desde assembler. Aquellos lectores no interesados en el funcionamiento interno del código, pueden saltear dicha parte y acceder directamente a los ejemplos de uso. Para una explicación detallada de los requisitos a cumplir para utilizar C y assembler simultáneamente, se recomienda la lectura del tutorial CTU-010. Hardware

Software de soporte CAN-082:

CAN-082_Software.zip

CAN-087_TFT640x480-Rabbit.pdf

CAN-087_TFT640x480-Rabbit.pdf

Nota de Aplicación: CAN-087
Título: Utilización de displays LCD color con controladores S1D13706 y Rabbit


Modificamos levemente el desarrollo de las CAN-035, CAN-036 y CAN-037, para trabajar con displays TFT de 640x480 en formato VGA, como por ejemplo el PD064VT4 presentado en CTC-053. Limitaciones Dadas las características de memoria del controlador, no es posible tener más de cuatro colores simultáneamente en pantalla. Sin embargo, cada uno de estos colores se puede obtener de una paleta de 18-bits y ser modificado en tiempo real. Hardware de display La conexión al display se realiza mediante las líneas analizadas en CTC-053, como indica el diagrama a continuación: Es fundamental mantener conexiones cortas, no olvidemos que estamos trabajando con un bus de dieciocho

Software de soporte CAN-087:

CAN-087_Software.zip

CAN-088_XBee802.15.4_API.pdf

CAN-088_XBee802.15.4_API.pdf

Nota de Aplicación: CAN-088
Título: Utilización del modo API en módulos XBee 802.15.4


En esta Nota de Aplicación veremos la forma de utilizar el modo API en módulos XBee (o XBee-PRO) Introducción Comentamos en varios Comentarios Técnicos la existencia de un modo de comunicación denominado API. En este modo de trabajo, el módulo XBee sigue respondiendo a la secuencia de escape y el envío de comandos AT, pero la información de y hacia otros módulos respeta un framing particular, el cual permite simplificar la operatoria con varios módulos remotos, dado que es posible identificar el origen y seleccionar el destino de la información dentro del mismo paquete de datos. Breve descripción del framing API El framing y los distintos tipos de tramas se hallan descriptas en el manual del usuario de los módulos, por lo que nos centraremos aquí en los conceptos fundamentales.

Software de soporte CAN-088:

CAN-088_Software.zip

CAN-089_XBeeZB_API.pdf

CAN-089_XBeeZB_API.pdf

Nota de Aplicación: CAN-089
Título: Utilización del modo API en módulos XBee ZB


En esta Nota de Aplicación veremos la forma de utilizar el modo API en módulos XBee (o XBee-PRO) ZB. Introducción Comentamos en varios Comentarios Técnicos la existencia de un modo de comunicación denominado API. En este modo de trabajo, el módulo XBee ZB ya no funciona en modo transparente y no posee comandos AT. La comunicación con el módulo respeta un framing particular, el cual permite simplificar la operatoria con varios módulos remotos, dado que es posible identificar el origen y seleccionar el destino de la información dentro del mismo paquete de datos, así como también configurar al módulo conectado o uno remoto. Breve descripción del framing API El framing y los distintos tipos de tramas se hallan descriptas en el manual del usuario de los módulos, por lo que nos centraremos aquí en los conceptos fundamentales.

Software de soporte CAN-089:

CAN-089_Software.zip

CAN-091_LCDcolor640480-SSD1963-Rabbit.pdf

CAN-091_LCDcolor640480-SSD1963-Rabbit.pdf

Nota de Aplicación: CAN-091
Título: Utilización de displays LCD color con controladores SSD1963 y Rabbit


Presentamos una forma de utilizar displays TFT de 640x480 en formato VGA, como por ejemplo el WF57FTLBDF0# de Winstar, basados en el controlador SSD1963. Breve descripción del SSD1963 H a r d w a r e El SSD1963 es un controlador inteligente para displays LCD de alta resolución, se encarga de generar las señales que necesita un display TFT. La configuración de este dispositivo es algo compleja, pero afortunadamente existe información como para resolverlo. La imagen a enviar al display se aloja en una RAM interna de 1,2MB (1215Kbytes), la cual es direccionada por el controlador y no es accesible directamente al usuario. La interfaz entre el SSD1963 y el procesador host puede elegirse entre un formato tradicional como el del legendario Motorola 6800, utilizado mayormente por los displays alfanuméricos y otro tradicional como el

Software de soporte CAN-091:

CAN-091_Software.zip

CAN-092_XBeeProgramable-HT1632.pdf

CAN-092_XBeeProgramable-HT1632.pdf

Nota de Aplicación: CAN-092
Título: Cartel matriz de LEDs remoto con HT1632 y XBee Programable


En esta nota de aplicación desarrollaremos un cartel luminoso remoto. El mismo emplea una matriz de LEDs controlada por un HT1632, el cual, a su vez, es controlado por un XBee Programable. Los textos son enviados vía ZigBee a la dirección del cartel, quien los muestra en los LEDs. El HT1632 La descripción del HT1632 y un ejemplo de operación pueden obtenerse en el Comentario Técnico CTC-065. El XBee Programable La forma de utilización de este módulo se describe en el tutorial CTU-012. El hardware Para la conexión con el módulo utilizaremos un conector: Si bien se trata de una simple aplicación del circuito sugerido en la hoja de datos del chip, requiere su análisis

Software de soporte CAN-092:

CAN-092_Software.zip

CAN-093_HT71D0x.pdf

CAN-093_HT71D0x.pdf

Nota de Aplicación: CAN-093
Título: Utilización del HT71D0x


Presentamos una forma de utilizar la familia HT71D0x para comunicar aplicaciones mediante la línea de alimentación. Breve descripción de los HT71D0x El HT71D02 contiene un regulador de 3,3V; mientras que el HT71D04 posee uno de 5V. Ambos incorporan una serie de comparadores y MOSFETs que les permiten introducir modificaciones en el bus de alimentación variando el consumo de corriente y a su vez detectarlas. Para más información, consulte la hoja de datos. Desarrollo propuesto Vamos a implementar un sencillo esquema de comunicaciones sobre un bus de alimentación. A tal fin, emplearemos el siguiente circuito: Los módulos se conectan a un bus común que les provee alimentación y sobre el cual se comunican

CAN-094_LCDcolor640480-SSD1963-HoltekARM.pdf

CAN-094_LCDcolor640480-SSD1963-HoltekARM.pdf

Nota de Aplicación: CAN-094
Título: Utilización de displays LCD color con controladores SSD1963 y Holtek


Revisiones Fecha Comentarios Presentamos una forma de utilizar displays TFT de 640x480 en formato VGA, como por ejemplo el WF57FTLBDF0# de Winstar, basados en el controlador SSD1963. En esta oportunidad los conectamos al HT32F1253 de Holtek, un micro con core ARM Cortex-M3. Breve descripción del SSD1963 Hardware El SSD1963 es un controlador inteligente para displays LCD de alta resolución, se encarga de generar las señales que necesita un display TFT. La configuración de este dispositivo es algo compleja, pero afortunadamente existe información como para resolverlo. La imagen a enviar al display se aloja en una RAM interna de 1,2MB (1215Kbytes), la cual es direccionada por el controlador y no es accesible directamente al

Software de soporte CAN-094:

CAN-094_Software.zip

CAN-095_XBeeWiFiAPI.pdf

CAN-095_XBeeWiFiAPI.pdf

Nota de Aplicación: CAN-095
Título: Utilización del modo API en módulos XBee Wi-Fi


En esta Nota de Aplicación veremos la forma de utilizar el modo API en módulos XBee Wi-Fi; en particular incluimos una implementación open-source en C. El lector familiarizado con otros módulos XBee notará que el formato API sigue siendo el mismo, sólo se agregan algunos formatos de tramas. Introducción Comentamos en varios Comentarios Técnicos la existencia de un modo de comunicación denominado API. En este modo de trabajo, el módulo XBee Wi-Fi sigue respondiendo a la secuencia de escape y el envío de comandos AT, pero la información de y hacia otros módulos respeta un framing particular, el cual permite simplificar la operatoria con varios módulos remotos, dado que es posible identificar el origen y seleccionar el destino de la información dentro del mismo paquete de datos. Breve descripción del framing API

Software de soporte CAN-095:

CAN-095_Software.zip

CAN-096_XBeeIPSrvcs.pdf

CAN-096_XBeeIPSrvcs.pdf

Nota de Aplicación: CAN-096
Título: Utilización de XBee IP Services


En esta Nota de Aplicación veremos la forma de utilizar los XBee IP Services (XBee Application Service y Serial Communication Service) para configurar y recibir información de módulos XBee Wi-Fi con cualquier host IP; en particular incluimos una implementación open-source en C para Linux. Introducción El XBee Wi-Fi opera sobre una red IP. A fin de soportar tanto el flujo de datos de su puerto serie como la configuración remota y los reportes de entradas y salidas, presenta dos servicios: • XBee Application Service: por UDP en el puerto 0xBEE • Serial Communication Service: por UDP ó TCP, en puerto configurado por el usuario La comunicación entre módulos XBee Wi-Fi transcurre de forma transparente para el usuario, pero para poder interactuar con los módulos desde cualquier host IP, debemos conocer las características de estos

Software de soporte CAN-096:

CAN-096_Software.zip

CAN-097_XBeeZBtraceroute.pdf

CAN-097_XBeeZBtraceroute.pdf

Nota de Aplicación: CAN-097
Título: Cómo descubrir rutas en redes ZigBee con XBee ZB


En esta Nota de Aplicación veremos la forma de utilizar los XBee ZB para descubrir la ruta que toman los mensajes de determinado módulo. Introducción El algoritmo de ruteo empleado en redes ZigBee Pro es similar a AODV ( Ad-hoc On-demand Distance Vector). En él, cuando no se conoce un camino hacia un nodo, se lo descubre mediante un mensaje Route Request y otro Route Reply. Así, cada nodo intermedio se encarga de descubrir el siguiente nodo intermedio y lo guarda en su tabla, de modo que los siguientes mensajes no disparen este proceso indefinidamente. Si en una red ZigBee existe un concentrador de información, es decir, un nodo al que muchos otros remiten información periódicamente, dado que las tablas de ruteo son relativamente chicas, no es posible guardar la información de ruteo hacia todos los remotos, y los routers más cercanos al concentrador de información deben

CAN-098_LCDgraphHD61202-HT32F.pdf

CAN-098_LCDgraphHD61202-HT32F.pdf

Nota de Aplicación: CAN-098
Título: Utilización de displays LCD gráficos (HD61202) con Holtek ARM HT32F


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente a un microcontrolador de 32-bits de la familia HT32F de Holtek, basada en el core ARM Cortex-M3: el HT32F1253, con 32K de flash y 8KB de RAM. Como display utilizaremos un módulo Powertip PG12864, de de Samsung. H a r d w a r e Dado que el controlador utilizado en estos módulos sólo es capaz de direccionar izquierda y otro para la parte derecha del display. El hardware de conexión resulta casi igual al utilizado para los displays alfanuméricos, es decir, la clásica interfaz tipo 6800, pero con la introducción de tres nuevas señales: dos señales de selección del controlador (CS1 y CS2) y una de reset (RST). La señal RS de los displays

Software de soporte CAN-098:

CAN-098_Software.zip

CAN-099_LCDgraphSED1335-HT32F.pdf

CAN-099_LCDgraphSED1335-HT32F.pdf

Nota de Aplicación: CAN-099
Título: Utilización de displays LCD gráficos (SED1335) con Holtek ARM HT32F


Nos interiorizaremos ahora en el desarrollo de una interfaz para conectar un módulo LCD gráfico inteligente de 320x240 a un microcontrolador de 32-bits de la familia HT32F de Holtek, basada en el core ARM Cortex- M3: el HT32F1253, con 32K de flash y 8KB de RAM. Como display utilizamos un Powertip PG320240, display basado en chips controladores compatibles con el SED1335, de S-MOS, y su clon de Epson. H a r d w a r e El SED1335 presenta una interfaz con dos posibles modos de trabajo: tipo Motorola (E, RS, R/W) o tipo Intel (RD, WR, A0). El PG320240FRS de Powertip lo utiliza en esta última modalidad. Para la interfaz con el micro, deberemos tener en cuenta el controlador que posee el display. Dado que el micro es de 3,3V y 5V-tolerant, podemos usar displays

Software de soporte CAN-099:

CAN-099_Software.zip

CAN-100_DatosEnFlash-HT32F.pdf

CAN-100_DatosEnFlash-HT32F.pdf

Nota de Aplicación: CAN-100
Título: Grabación de datos en flash con Holtek ARM HT32F


La flash del micro está dividida en segmentos de 1KB. Cada uno de ellos puede borrarse por separado y cada palabra dentro de este segmento puede escribirse mediante un conjunto de registros del FMC (Flash Memory Controller). Un segmento especial de flash contiene los bits de configuración de protección, lo que en otras arquitecturas se conoce como option byte, option register, fuses, etcétera. Es posible utilizar el resto de este segmento para almacenar datos de calibración, de configuración, o lo que el developer considere oportuno. Realizaremos esto en esta nota. Para operar sobre la flash disponemos de un registro donde escribimos la operación a realizar, otro donde indicamos la dirección de memoria, y otro donde escribimos el dato que queremos escribir. Un flag de estado nos indica cuándo ha concluido la operación. Por ejemplo, podemos borrar la flash correspondiente al “option-byteâ€mediante la siguiente función:

Software de soporte CAN-100:

CAN-100_Software.zip

CAN-101_EncoderHT6P20x2.pdf

CAN-101_EncoderHT6P20x2.pdf




Software de soporte CAN-101:

CAN-101_Software.zip

CAN-102_HT32F_USB_VirtualCOM.pdf

CAN-102_HT32F_USB_VirtualCOM.pdf

Nota de Aplicación: CAN-102
Título: HT32F USB device: COM virtual


La presente nota de aplicación detalla parte de lo explicado en el tutorial CTU-016. Se sugiere enfáticamente la lectura del mismo dado que contiene detalles que no abordamos aquí. El código de esta nota se basa en material entregado por el fabricante, modificado por claridad y adaptado a la forma de trabajo que consideramos más apropiada. Puerto de comunicaciones virtual (VCOM) Por este nombre nos referimos a una implementación en el entorno USB de la clase CDC (Communications Device Class), con el modelo abstracto de control (Abstract Control Model). Esto se encuentra documentado en la especificación de la clase CDC y la extensión para PSTN(Public Switched Telephone Network), destinada a “modernizar†modems y demás sistemas similares. Mediante ésta, una aplicación en un entorno con un host USB puede escribir y leer datos sobre el dispositivo

Software de soporte CAN-102:

CAN-102_Software.zip

CAN-103_ESP-WROOM-02.pdf

CAN-103_ESP-WROOM-02.pdf




CAN-104_ESP-WROOM_WebSetup.pdf

CAN-104_ESP-WROOM_WebSetup.pdf

Nota de Aplicación: CAN-104
Título: ESP-WROOM, setup de WiFi mediante página web


La presente nota de aplicación describe un hack para configurar los módulos ESP-WROOM para poder elegir el Access Point al que se conectan, mediante una página web accediendo al soft-AP (descripto en CTC-079) que proveen. El código de esta nota se basa en material entregado por el fabricante, modificado y adaptado para la ocasión. El mismo es un hack, un atajo, una viveza, y puede o no ser apto para aplicaciones de producción. El lector puede modificarlo a su gusto. Desarrollo Tomamos el ejemplo de comandos AT y la demo IoT. Combinamos ambas, modificamos el “servidor web†que esta última incluye, agregamos algunos comandos AT ad hoc, y he aquí el resultado. El “servidor web†es en realidad un esquema hardcoded para interpretar y responder JSON. Mediante una

Software de soporte CAN-104:

CAN-104_Software.zip

CAN-105_Display_Color_Proculus_P48272J43C-T01.pdf

CAN-105_Display_Color_Proculus_P48272J43C-T01.pdf

Nota de Aplicación: CAN-105
Título: Display Color Proculus P48272J43C-T01


En la presente nota de aplicación interiorizaremos en el desarrollo de una simple interface de Usuario para el display inteligente P48272J43C-T01 de la empresa Proculus. Con este ejemplo se pretende demostrar la facilidad de uso y la versatilidad del mismo a la hora de llevar a cabo sus proyectos. En esta nota de aplicación se da una muy breve descripción de como usar el programa UnicView AD y se recomienda la lectura UnicView AD User Guide. Ãndice Descripción del ejemplo.....................................................................................................................................1 Desarrollo del proyecto......................................................................................................................................2 Carga de recursos e imágenes en el proyecto...............................................................................................2 Animación.....................................................................................................................................................4

Software de soporte CAN-105:

CAN-105_Software.zip

CAN-106_ESP32_BLE_Mongoose-OS.pdf

CAN-106_ESP32_BLE_Mongoose-OS.pdf

Nota de Aplicación: CAN-106
Título: ESP32 + Mongoose-OS = edGarDo


Les presentamos a edGarDo, un pequeño dispositivo que permite controlar (por ejemplo) un portón automático desde un celular, tablet, computadora o equivalente, e incluso automatizar su operación o ser controlado de manera remota y por voz. El dispositivo en sí solamente posee conectividad Bluetooth Low Energy (BLE) y WiFi, y un simple firmware con funciones de control e identificación. Esto le permite ser identificado de manera automática para ser utilizado en un sistema de automatización del hogar, a través del cual obtenemos las demás funciones, incluyendo la seguridad en la conexión y facilidad de ésta. Adicionalmente, mediante BLE podemos controlarlo desde un celular desde el auto sin necesidad de utilizar la Internet y limitando su operación a la cercanía y conocimiento del dispositivo controlador. Tabla de Contenidos

CAN-107_AWS_IoT_Analytics.pdf

CAN-107_AWS_IoT_Analytics.pdf

Nota de Aplicación: CAN-107
Título: AWS IoT Analytics para ingenieros y desarrolladores de sistemas


Revisiones Fecha Comentarios En el CTC-104 analizamos los Amazon Web Services (AWS) y desarrollamos la utilización de AWS IoT Core, el servicio de conectividad, utilizando MQTT. En el CTC-105 vimos como conectarnos a dicha plataforma IoT con un ESP32 y Mongoose-OS, enviando datos de telemetría; mientras que en el CTC-106 lo hicimos con módulos SIMCOM. En esta oportunidad nos adentraremos un poco en el otro lado, en el almacenamiento y presentación posterior de los datos, lo cual haremos desde la óptica de un ingeniero o desarrollador de sistemas dedicados; es decir, no con la intención de servir páginas web a proyectos de clientes sino como una herramienta más para poder observar el funcionamiento de nuestros equipos o proveer de información a quienes deben tomar decisiones de negocios en base a estos datos. Breve descripción de uso de AWS IoT Analytics

CAN-108_AWS_IoT_SNS.pdf

CAN-108_AWS_IoT_SNS.pdf

Nota de Aplicación: CAN-108
Título: AWS IoT Core + Amazon SNS: Internet button


En el CTC-104 analizamos los Amazon Web Services (AWS) y desarrollamos la utilización de AWS IoT Core, el servicio de conectividad, utilizando MQTT. En el CTC-105 vimos como conectarnos a dicha plataforma IoT con un ESP32 y Mongoose-OS, enviando datos al presionar un botón; mientras que en el CTC- presentación posterior de los datos desde la óptica de un ingeniero o desarrollador de sistemas dedicados. En esta oportunidad desarrollaremos un esquema para implementar un “botón de Internetâ€; es decir, enviar una notificación ante la presión de un botón en un dispositivo, utilizando la infraestructura de Amazon para ello. Breve descripción del proceso de utilización de Amazon SNS El servicio Amazon SNS (Simple Notification Service) nos permite, como su nombre insinúa, enviar notificaciones a diversos servicios o usuarios, disparadas éstas ante la recepción de mensajes. El proceso de operación es el indicado en la figura siguiente: