Página personal de Francisco A. Candelas 

COMUNICACIONES CON EL COMPUTADOR DE BOLSILLO CASIO FX 850P / 880P.

  1. Introducción.
  2. Conector de periféricos.
  3. Conexión serie entre dos FX 850P.
  4. Conexión serie con un PC u otro equipo.
  5. Conexión por el puerto paralelo.
  6. Instrucciones de la FX 850P relativas al puerto serie.
  7. Intercambiar programas y datos entre dos FX 850P.
  8. Guardar y cargar programas desde un PC u otro ordenador personal.
  9. Usando el puerto serie desde BASIC en la FX 850P.
  10. Utilización del puerto paralelo.
  11. Programas para la FX 850P.
  12. Direcciones de interés.
  13. Contactar con el autor.

1. Introducción.

Los ordenadores de bolsillo FX 850P (hasta 40K RAM) y FX 880P (hasta 64K de RAM) pueden enviar y recibir datos del extereior a través de dos puertos estándar: un puerto serie duplex (envío y recepción simultánea) asíncrono RS-232 y un puerto paralelo de salida a impresora.

El fabricante vende una unidad (FA-6) que se conecta al ordenador a través de un pequeño conector de 30 pines situado en un lateral de esta, y que suministra los puertos serie RS-232 y paralelo mediante unos conectores estándar. Sin embargo, la propia FX 850P incorpora en su interior el hardware y software para manejar esos puertos, y a estos se puede acceder a través del conector del lateral, sin emplear la unidad FA-6.

Los dos puertos estándar hacen de este ordenador de bolsillo un equipo muy versatil, capaz de conectarse con otros equipos como un PC, al igual que hacen otras agendas y equipos de bolsillo. Además su interprete BASIC incorpora suficientes instrucciones para sacar todo el provecho de dischos puertos de forma sencilla.

El puerto más utilizado es el serie, y con el se puede, por ejemplo, enviar programas o datos del banco de datos desde la FX 850P a un ordenador personal. También se puede cargar programas o datos almacenados en un ordenador personal en la FX 850P. Con ello podemos editar los programas en un editor de textos del PC, lo que resulta normalmente más comodo, o mantener bibliotecas o copias de seguridad de de programas y datos. Además se puede utilizar el puerto para otro tipo de comunicaciones dentro de los programas BASIC. Otra posible opción más sencilla es conectar dos ordenadores de bolsillo directamente para intercambiar datos o programas.

Este documento pretende enseñar los conocimientos básicos para empezar a sacar partido de los puertos mencionados. En cualquier caso, siempre será conveniente repasar el manual de usuario del ordenador, sobre todo los capítulos relativos al manejo de archivos y a los comandos de entrada y salida. Tambíen puede resultar muy interesante repasar lás páginas web listadas en el apartado 12.

IMPORTANTE:
El autor no se responsabiliza de los posibles daños que un lector pueda producir en su computadora FX 850P / 880P. Si esto ocurre, probablemente será debido a un mal uso de esta documentación, ya que todo lo aquí presentado ha sido experimentado con éxito por el autor (desde los circuitos necesarios a los programas). Se aconseja leer bien lo aquí presentado, así como el manual de usuario, y comprender lo que se está haciendo antes de proceder a realizar las conexiones a través de los puertos del ordenador. No estarían de más algunos conocimeintos básicos de eléctrónica.

2. Conector de periféricos.  

PIN FUNCION TIPO Puerto
1 Vcc Aliment. -
3 CD Entrada RS-232
5 - - -
7 - - -
9 RxD Entrada RS-232
11 STB Salida Paralelo
13 RTS Salida RS-232
15 PWR ON Salida -
17 D4 Salida Paralelo
19 D5 Salida Paralelo
21 D6 Salida Paralelo
23 D7 Salida Paralelo
25 AD1 Salida -
27 OE Salida -
29 CS Salida Paralelo
PIN FUNCION TIPO Puerto
2 Dsr Entrada RS-232
4 CTS Salida RS-232
6 BUSY Entrada Paralelo
8 - - -
10 Init Salida Paralelo
12 DSR Salida RS-232
14 TxD Salida RS-232
16 D3 Salida Paralelo
18 D2 Salida Paralelo
20 D1 Salida Paralelo
22 D0 Salida Paralelo
24 AD0 Salida -
26 AD2 Salida -
28 RD/WE Salida Paralelo
30 GND Aliment. -

 

3. Conexión serie entre dos FX 850P.

Esta conexión resulta muy sencilla, ya que no se requiere convertir niveles de tensión. Para una transmisión básica con tres hilos se debe seguir este esquema.

4. Conexión serie con un PC u otro equipo.

Las señales RS-232 presentes en el conector de la FX 850P emplean niveles TTL que deben ser adaptados a los niveles RS-232 estándar. En TTL el '1' se representa con 5V y el '0' con 0V. En cambio, en RS-232 el '1' se representa con una tensión de -15V a -3V y el 0 con 3V a 15V.

Un  circuito como el mostrado a continuación puede realizar dicha función para una transmisión básica con tres hilos (TxD, RxD y GND). Se requiere de las señales DTR y RTS procedentes del puerto RS-232 del PC (u otro equipo) para obtener una tensión de alimentación para el circuito.

El ciruito integrado IC1 es el encargado de transformar e invertir los niveles de tensión. Para alimentar dicho circuito con 5V se requiere el regulador IC2, que se alimenta de la líneas RTS y DTR del puerto del PC.
 
5. Conexión por el puerto paralelo.

Las líneas de datos del puerto paralelo de la  FX850P deben pasar a través de un latch que se habilite cuando se realiza una escritura en dicho puerto. Puede utilizarse un circuito como el siguiente para ello. Es importante alimentar el ciruito con 5V procedentes de una fuente exterior para evitar descargar las baterias de la FX 850P. Por el mismo motivo deben usarse integrados CMOS de bajo consumo (serie HC).

6. Instrucciones de la FX 850P relativas al puerto serie.

Lo primero a conocer es el llamado descriptor de archivo. Este es una cadena de caracteres que identifica un archivo, dispositivo o puerto y o otros parámetros necesarios y esta compuesto de tres partes:

Según lo anterior, se puede hacer referencia a una trasmisión por el puerto serie mediante una cadena de descriptor como "COM0:2,E,8,1,N,N,N,B,N".

Los comandos de la FX 850P que posibilitan las comunicaciones por el puerto serie con lo siguientes:

Para obtener más información sobre los comandos anteriores se debería consultar el manual de usuario.

7. Intercambiar programas y datos entre dos FX 850P.

Considerando que se ha efectuado una conexión como la mostrada en el apartado 3, a continuación se expone la secuencia de acciones para enviar un programa de una FX 850P a otra:

  1. Encender ambos ordenadores y pasar al modo BASIC (modo 1).
  2. En el ordenador origen situarse en el área del programa que se desea enviar. En el ordenador destino situarse en el área de programa donde se desea cargar lo recibido.
  3. En el ordenador origen introducir el comando SAVE "COM0:descriptor" donde descritor es una cadena según lo descrito en el apartado 6 y pulsar EXE. Por ejemplo SAVE "COM0:6,N,8,1,N,N,N,B,N".
  4. En el ordenador destino introducir el comando LOAD "COM0:descriptor" y pulsar EXE. Por ejemplo LOAD "COM0:6,N,8,1,N,N,N,B,N".
  5. Si en el ordenador destino no acaba la ejecución del comando LOAD en unos segundos pulsar BREAK (en este caso, se puede averiguar cuando finaliza la recepción viendo si ha dejado de parpadear la pantalla del ordenador receptor, ya que en las operaciones con los puertos el refresco de la pantalla es peor).
  6. Comprobar que en el destino se ha recibido el programa entero. Si no es así se debe probar la transmisión con parámetros más restrictivos: menor velocidad, 2 bits de parada...

Para intercambiar el contenido del banco de datos se procede igual, pero empleando los comandos SAVE# descriptor y LOAD# descriptor. En este caso no importa el área de programa actual, aunque si es necesario estar en modo 1.

Normalmnete no resulta necesario emplear los tres hilos del esquema del apartado 3. Puede bastar con dos: la línea de refrencia o GND, y la línea de datos que va del equipo origen al destino (TxD origen a RxD destino). Esto es así porque ambos equipos emplean los mismos parámetros y tienen el mismo tamaño de buffers internos, con lo que probablemente no se requiera un control de flujo XOn/XOff (aunque se haya especificado -opción B-) y en ese caso solo existe transmisión en el sentido de los datos.

8. Guardar y cargar programas desde un PC u otro ordenador personal.

Para intercambiar programas BASIC entre la FX 850P y el ordenador personal se emplea una conexión serie RS-232. Se requiere para ello un circuito conversor de niveles como el mostrado en el apartado 4.

Además, se requiere disponer de un programa de terminal o consola en el PC, como puede ser el Terminal de Windows 3.11 (que funciona bien con Windows 95) o el Hiperterminal de Windows 95. Personalmente prefiero el primero, que es más simple y fácil de configurar para actuar como terminal. El segundo está más pensado para modems. En Internet se pueden encontrar programas dedicados expresamente a cargar y leer programas de la FX 850, normalmente para MS DOS, pero con disponer de un programa de terminal como los indicados es más que suficiente.

Antes de ver los pasos a seguir hay que tener claro que los programas BASIC de la FX 850P se transmiten y reciben como archivos de texto ASCII, y en el ordenador personal también se editarán y almacenaran como tales. La FX 850P emplea un juego de carácteres variante del ASCII estándar, y todos los carácteres alfanuméricos y los carácteres de control más importantes coinciden con los empleados en un ordenador personal.

Sin embargo, la FX 850 también tiene otros muchos caracteres propios (que normalmente ocupan posiciones altas de la tabla), y al recibir y editar un archivo de texto con un programa BASIC en el ordenador personal estos carácteres se verán como otros distintos. En cualquier caso, si dichos carácteres no se alteran, al enviar de nuevo el programa a la FX 850P, los carácteres se verán correctamente en esta.

Para editar un nuevo programa BASIC en el ordenador personal se debe utilizar un editor de textos simple, como el Notepad de Windows, el Wordpad o Word guardando lo escrito como texto simple, o el Edit de MS-DOS. En esos archivos de texto un programa se BASIC de la FX 850P se escribe como siempre: una serie de lineas de comandos numeradas y acabadas con un retorno de carrro. Es importante tener claro que toda una misma linea de un programa debe estar estar en una misma linea del archivo de texto, con un único retorno de carro al final. No hay que olvidar el retorno de carro al final de la última linea, antes del final del archivo.

En el archivo de texto con el programa BASIC se pueden escribir carácteres propios de la FX 850P conociendo su código. Este código lo podemos determinar con la funcion ASC("carácter") en la FX 850P, o mediante una de las tablas que vienen al final del manual de usuario. Dichos carácteres se escriben en el editor con el teclado numérrico; pulsando ALT y teclenado el códido.

Para enviar un programa de la FX 850P al ordenador personal hay que seguir estos pasos:

  1. Conectar al puerto serie del PC el cable serie RS-232 y el adaptador de niveles (apartado 4). Arrancar el programa de terminal deseado en el PC.
  2. Configurar el programa de terminal con los parámetros de comunicaciones deseados (puerto serie del PC utilizado, velocidad, paridad, bits de parada y tipo de control de flujo), como por ejemplo puerto COM2, 4800Bps, No paridad, 1 Bit de parada y control de flujo XOn XOff (ver apartado 6).
    En el Terminal deWindows 3.11 esto se hace en el menú "Configuración" opción "Comunicaciones...". También conviene asegurarse de que está activada la opción "TTY genérico" dentro de "Emulación de la terminal..." dentro de "Configuración".
    En el Hiperterminal esto se puede hacer en los diálogos que aparecen tras ejecutar el programa, o en la opción "Propiedades-Número de teléfono-Configurar" del menú de "Archivo".
    Ambos programas dan opción de guardar la configuración con la opción "Guardar" del menú "Archivo".
  3. Con la FX 850P apagada realizar la conexión de esta con el circuito adaptador.
  4. Encender la FX 850P y pasar a modo BASIC (modo 1).
  5. En la FX 850P, pasar al área del programa a enviar.
  6. Introducir el comando SAVE descriptor (ver apartado 6) en la FX 850 y pulsar EXE. El descriptor debe especificar los mismos parámetros que los indicados al programa de terminal del PC. Siguiendo con el  ejemplo, teclerar SAVE "COM0:6,N,8,1,N,N,N,B,N" y pulsar EXE.
  7. En la pantalla del programa de terminal del PC debe aparecer el texto del programa. Si se está trabajando en Windows (con el Terminal o el Hiperterminal) se podrá seleccionar y copiar ese texto al Portapapeles para luego pegarlo dentro del editor de texto (por ejmplo Notepad) para editarlo o guardarlo.
    Otra opción mejor es escoger la opción de "recibir archivo de texto" del programa de terminal, y dar un nombre de archivo en donde guardar el programa recibido. Esto debe realizarse antes del paso 5. En el Terminal de Windows 3.11 esto se hace en el menú "Transferencias" en la opción "Recibir archivo de texto".

Con el programa BASIC en un archivo del PC ya se puede hacer una una copia de seguridad en disco, editar el programa, imprimirlo...

Para realizar el proceso inverso, enviar un programa del ordenador personal a la FX 850P hay que seguir estos pasos:

  1. Pasos 1 a 4 del procedimiento anterior.
  2. Pasar en la FX 850 al área de programa donde se desea cargar el archivo BASIC a recibir.
  3. Introducir el comando LOAD descriptor (ver apartado 6) en la FX 850 y pulsar EXE. El descriptor debe especificar los mismos parámetros que los indicados al programa de terminal del PC. Siguiendo con el  ejemplo, teclerar LOAD "COM0:6,N,8,1,N,N,N,B,N" y pulsar EXE.
  4. En la opción para enviar archivo de texto del programa de rerminal del PC (en el Terminal de Windows 3.11 esto está menú "Transferencias" en la opción "Enviar archivo de texto") especificar el archivo con el programa BASIC a enviar y proceder.
  5. Si la FX 850 no acaba la ejecución del comando LOAD en unos segundos pulsar BREAK (se puede averiguar cuando finaliza la recepción viendo si ha dejado de parpadear la pantalla de la FX 850P, ya que en las operaciones con los puertos el refresco de la pantalla es peor). No hay que pulsar BREAK muy pronto, ya que se puede cortar la carga del programa antes de su final.
  6. Comprobar que en la FX 850P se ha recibido el programa entero. Si no es así se debe probar la transmisión con parámetros más restrictivos: menor velocidad, 2 bits de parada...

También se puede enviar y recibir el contenido completo del banco de datos de la FX 850P con los procedimientos anteriores, solo que utilizando los comandos LOAD# y SAVE#. Los datos del banco de datos se envían y reciben también como ficheros de texto ASCII, con un registro del banco de datos (línea) por cada línea del archivo separada por un retorno.

9. Usando el puerto serie desde BASIC en la FX 850P.

Se pueden crear programas que usen el puerto serie para enviar o recibir datos, como por ejemplo, el programa de terminal de prueba o el de agenda expuestos en el apartado 10. Para ello están disponibles los comandos comentados en el apartado 6.

Una forma sencilla de enviar datos puede ser la mostrada en este programa de ejemplo:

El programa enviaría los datos como varias líneas de texto separadas por retornos de carro y avance de línea, más un retorno y avance de línea final. Si comunicasemos el ordenador FX 850P con un PC que tubiese un programa de terminal configurado con los mismos parámetros especifcados en el descriptor desc$, en la pantalla del PC aparecería el texto siguiente:

Un programa para una FX 850 que fuese capaz de recibir y mostrar esas líneas podría ser como este:

Para enviar datos numéricos se pueden convertir estos a cadenas de carácteres formateadas, o sacar mejor partido de las opciones de los comandos PRINT e INPUT (ver manual de usuario).

El anterior programa de recepción queda a la espera de recibir datos. Pero se puede crear un programa que reciba datos si los hay, a la vez que realiza otras operaciones. Por ejemplo:

Este programa lee los carácteres recibidos uno a uno, y si la transmisión es lo suficientemente lenta (por ejemplo los carácteres están siendo introducidos por teclado en un terminal en el otro extremo) el bucle de recepción del programa (lineas 50 a 80) saltará a la línea 100 cuando se vacíe el buffer de recepción interno de la FX 850P. En las líneas 100 y sucesivas se pueden realizar otras tareas cortas, tras las cuales se regresa de nuevo al bucle de recepción. El programa acaba al recibir un final de línea.

En el apartado 6 se exponen programas más complejos.

10. Utilización del puerto paralelo.

Para acceder al puerto paralelo no se requiere un descritor de archivo, ni declarar el uso de un dispositivo o archivo. Directamente se pueden emplear los siguientes comandos para enviar datos:

11. Programas para la FX 850P.

A continuación están disponibles algunos programas BASIC que he escrito para la FX 850P:

12. Enlaces interesantes.

He aquí algunos enlaces a webs sobre el tema. Todos son en castellano.

13. Contactar con el autor.

Si tienes alguna duda o pregunta interesante sobre el tema tratado en este documento enviamela a: fcadela@disc.ua.es

Trataré de contestarte en medida a mis conocimientos.

Francisco A. Candelas Herías.