TECLADO DE PC PARA PALM Parte 2
Hardware:
El hardware a implementar es tremendamente sencillo. Está basado en cualquier microcontrolador derivado del 8052. En mi caso he usado el T89c51RD2 porque lo tenia a mano, el código funcionará sin ninguna modificación en un AT89c51ED2 ó RD2 que son los modelos que actualmente comercializa ATMEL . El código se ha optimizado para que quepa todo en 4KB por lo que se puede emplear el mas económico AT89c4052 que viene en un encapsulado dip20. Todos ellos están disponibles en la web de Farnell .
El hardware será el normal en estos microcontroladores, es decir aplicar positivo, negativo y un cristal de cuarzo. Como hardware específico para el funcionamiento de este circuito solo es necesario añadir un diodo LED IR, una resistencia limitadora de unos 120Ω y en algunos casos dependiendo del derivado un transistor pnp como un DC557 y otra sesistencia de unos 2K2
Conexionado del teclado. Hay que conectar el positivo y el negativo y las líneas Clock y Data a cualquier pin libre de cualquier puerto (modificando el software en consecuencia).
|
Teclado DIN antiguo |
Teclado MiniDIN PS-2 |
|---|---|
|
|
|
|
1. KBD Clock
|
1. KBD Clock |
La salida de IR si se trata de un micro con salida apta para led como el AT89c4052 se conectará el diodo y la resistencia de 120Ω directamente, en caso contrario conectar el transistor.
|
Conexionado directo |
Conexionado con transistor |
|---|---|
|
|
|
Software:
El software es algo complejo, por una parte está la lectura del teclado que he tomado de www.8052.com de su sección de rutinas, y la he modificado para que devuelva los códigos de las teclas extendidas, he eliminado la opción de recibir en ASCII ya que estaba configurado para teclado inglés y además no era útil ya que en ningún momento empleamos códigos ASCII, también se han modificado el funcionamiento de “bloq mayús” y otras teclas de control.
El software está escrito en ensamblador del 8052 usando el ensamblador de metalink, se incluye el archivo MOD8951.asm con las características particulares del AT89c51ED2 que habrá que modificar según sea el derivado que usemos y renombrarlo como mod8952 sin extensión para que funcione correctamente. El programa está diseñado para usar el famoso cristal de cuarzo de 11.0562MHz y un micro con 6 ciclos de reloj, para otros casos habría que modificar las variablea ton y toff en consonancia.
El resto de los archivos son:
tproy.asm Es el programa principal, incluye el bucle principal y la llamada al resto de módulos
vars.asm Contiene la definición de todas las variables empleadas (y de otras muchas no usadas ya que es un archivo genérico que suelo usar en mis proyectos)
kb.asm Básicamente es el programa controlador del teclado AT de www.8052.com con las modificaciones que indiqué antes módulos
teclasAT.asm Es el programa que se encarga de generar los códigos IR una vez leido el teclado, diferencia los distintos sets del teclado y permite el uso de acentos de forma natural en lugar del con el lioso proceso de palm.
TablaTEC.asm Contiene las tablas con los códigos que debe de generar por IR como podéis ver el registrar estos códigos ha sido una labor muy tediosa.
Programación y puesta en marcha:
Asumo que el lector está familiarizado con estos microcontroladores, en caso contrario puede obtener información en www.8052.com y otras muchas webs.
Mas adelante haré un tutorial básico de como hacer este circuito, con detalle pero de momento mi prototipo está montado sobre una placa que fue diseñada para algo totalmente distinto.
El proceso consistiría en:
Modificar la línea 25 y 25 de kb.asm en las que se definen las líneas en las que se conecta el teclado en función de nuestro montaje.
Modificar las líneas 69 y 73 de Tproy.asm en las que está definido el pin de salida de IR por el que estemos usando
Modificar si procede el archivo mod8951.asm según sea nuestro derivado, ensamblarlo por si hay errores y renombrarlo eliminando la extensión
Ensamblar el archivo Tproy.asm con el ensamblador metalink, este archivo ya se encarga de llamar al resto
El fichero .hex generado se debe de programar en el microcontrolador según el método de cada derivado
Cabe destacar que he hecho gran esfuerzo para que todo entrase en solo 4KB de memoria de programa y de este modo poder usar derivados de bajo coste.
En la palm debe de estar instalado y activado el driver del antiguo teclado IR de cuatro filas de teclas.
Para poner en marcha basta con alimentar el sistema, si todo va bien se debe de iluminar el led Num Lock del teclado y el teclado debe de empezar a funcionar en cuanto orientemos el led al pda.