PCI AC5 ADAPTER CARD / HAL DRIVER
1. La tarjeta adaptadora
Esta es una tarjeta hecha por Opto22 para adaptar el puerto PCI a racks de relevadores en estado sólido como sus series standard y G4. Tiene 2 puertos que pueden controlar hasta 24 puntos cada uno y tiene 4 LEDs en la placa. Los puertos usan conectores de 50 pines iguales que las placas Mesa. Cualquier placa de relevador(es) individual/en rack que funcione con tarjetas Mesa debería funcionar con esta tarjeta bajo el entendido de que cualquier codificador contador, PWM, etc. debe ocurrir en el software. La AC5 no tiene ninguna lógica inteligente en la placa, es solo un adaptador.
Vea el sitio web del fabricante para mayor información:
Quisiera agradecer a Opto22 por divulgar la información de su manual que facilitó la escritura de este controlador!
2. El controlador
Este controlador es para la tarjeta PCI AC5 y no funcionará con la tarjeta ISA AC5. El controlador HAL es un módulo en tiempo real. Soportará 4 tarjetas tal cual (se pueden más tarjetas cambiando el código fuente). Cargue el controlador básico así:
loadrt opto_ac5
Esto cargará el controlador, el cual buscará hasta 4 placas. Configurará E/S de los 2 puertos de cada placa predeterminadamente, la cual es para 12 entradas y 12 salidas. Los números de nombre de pines corresponden a la posición en el rack de relevadores. Por ejemplo, los nombres de pines para las configuración predeterminada de E/S del puerto 0 será:
-
opto_ac5.0.port0.in-00 - Serán numerados del 00 al 11
-
opto_ac5.0.port0.out-12 - Serán numerados de 12 al 23, lo mismo para el puerto 1.
3. Pines
-
opto_ac5.[PLACA].port[PUERTO].in-[PIN] OUT bit -
-
opto_ac5.[PLACA].port[PUERTO].in-[PIN]-not OUT bit - Conecta una señal bit de HAL a este pin para leer un punto de E/S de la tarjeta. El PIN representa la posición en el rack de relevadores. P. ej. PIN 0 es la posición 0 en un rack de relevadores Opto22 y sería el pin 47 en el conector de 50 pines. El pin -not está invertido, así que Bajo da Verdadero y Alto da Falso.
-
opto_ac5.[PLACA].port[PUERTO].out-[PIN] IN bit - Conecta una señal bit de HAL a este pin para escribir a un punto de E/S de la tarjeta. El PIN representa la posición en el rack de relevadores. P. ej. PIN 23 es la posición 23 en un rack de relevadores Opto22 y sería el pin 1 en el conector de 50 pines.
-
opto_ac5.[PLACA].led[NÚMERO] OUT bit - Enciende/Apaga uno de los 4 LEDs en la placa. Los LEDs están numerados del 0 al 3.
PLACA puede ser 0-3, PUERTO puede ser 0 o 1. El puerto 0 es el más cercano al soporte de la tarjeta.
4. Parámetros
-
opto_ac5.[PLACA].port[PUERTO].out-[PIN]-invert W bit - Cuando es Verdadero invierte el sentido del -out pin correspondiente, de tal manera que Verdadero da Bajo y Falso da Alto.
5. Funciones
-
opto_ac5.0.digital-read - Agregar esta al hilo para leer todos los puntos de entrada.
-
opto_ac5.0.digital-write - Agregar esta al hilo para escribir todos los puntos de salida y LEDs.
Por ejemplo, los nombres de pines para la configuración de E/S predeterminada del puerto 0 serán:
opto_ac5.0.port0.in-00
Serán numerados de 00 a 11
opto_ac5.0.port0.out-12
Serán numerados de 12 a 23, puerto 1 será lo mismo.
6. Configuración de los puertos de E/S
Para modificar la configuración predeterminada cargue el controlador con algo como:
loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000
Por supuesto, cambiando los números para que coincidan con la E/S deseada. Cada puerto puede ser configurado diferente.
Para determinar el número: El número de configuración representa un código de 32 bits de longitud para indicarle a la tarjeta cuáles puntos de E/S son salidas y cuáles entradas. Los 24 bits más bajos son los puntos de E/S de un puerto. Los bits más altos son para 2 de los LEDs de la placa. Un uno en cualquier posición de bit hace el punto de E/S una salida. Los bits más altos deben ser salida para que funcionen los LEDs y el controlador los configurará automáticamente, no hablaremos de ellos.
La forma más fácil de hacerlo es con la calculadora en Aplicaciones/Accesorios. Ponerla en modo científico (clic en Vista) y seleccionar Binario (botón de selección BIN). Presiona 1 para cada salida deseada y/o 0 para cada entrada. Recuerda que el pin HAL 00 corresponde al bit extremo derecho. 24 números representan la 24 puntos de E/S de un puerto. Entonces para la configuración predeterminada (12 entradas y luego 12 salidas) deberías presionar 1 doce veces (las salidas) y luego 0 doce veces (las entradas). Nótese que el primer punto de E/S es el bit más bajo (del extremo derecho). (ese bit corresponde al pin HAL 00 visto al revés) Deberás tener 24 dígitos en la pantalla. Ahora presiona el botón de selección HEX. El número mostrado (fff000) es el número de configuración de puerto (pon un 0x al principio para indicarlo como número hexadecimal).
Otro ejemplo: Para configurar el puerto para 8 salidas y 16 entradas (como en una tarjeta Mesa). Así son los 24 bits representados en binario. El bit 1 es el número del extremo derecho:
000000000000000011111111
Esto se convierte en FF en la calculadora, así que 0xff es el número a usar para portconfig0 y/o portconfig1 al cargar el controlador.
7. Numeración de pines
El pin HAL 00 corresponde al bit 1 (extremo derecho), el cual representa la posición 0 en un rack de relevadores Opto22. El pin HAL 01 corresponde al bit 2 (un lugar a la izquierda del extremo derecho), el cual representa la posición 1 en un rack de relevadores Opto22. El pin HAL 23 corresponde al bit 24 (extremo izquierdo), el cual representa la posición 23 en un rack de relevadores Opto22.
El pin HAL 00 conecta al pin 47 en el conector de 50 pines de cada puerto. El pin HAL 01 conecta al pin 45 en el conector de 50 pines de cada puerto. El pin HAL 23 conecta al pin 1 en el conector de 50 pines de cada puerto.
Nótese que Opto22 y Mesa usan sistemas de numeración opuestos. La posición 23 del Opto22 = pin 1 del conector, y la posición va bajando mientras que el número de pin del conector va subiendo. La posición 1 del Hostmot2 de Mesa = pin 1 del conector, y el número de posición va subiendo mientras que el número de pin del conector va subiendo.