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: | |
|
|