Estudiando el PCB de una calculadora de los 70. ¿Que estaban pensando?

16

He estado estudiando el PCB de una calculadora ELSI 8002 desde 1974. Estoy pensando en reutilizar el caso para un proyecto, aunque ahora que lo he arreglado (al volver a soldar los conectores de la batería) no sé si puede soportar separarlo. ( sniff ) Tal vez, compraré uno más roto para mi proyecto ...

ingrese la descripción de la imagen aquí

Dejando a un lado el sentimentalismo, estoy bastante confundido por el diseño del teclado. Inicialmente, el teclado parecía un teclado matricial típico, pero después de estudiar cuidadosamente los rastros, descubrí que no está usando filas o columnas.

ingrese la descripción de la imagen aquí

Al principio pensé que esto podría deberse a que intentaban guardar los pines en el microcontrolador. Un diseño de matriz con n filas ym columnas requiere n + m pines. Pero, realmente, solo necesitamos un par único de pines para cada botón. Entonces, realmente solo necesitamos x pines donde n * m <= x Elija 2.

ingrese la descripción de la imagen aquí

Una matriz 4x5 tiene 20 botones y 20 <= 7 Elija 2 = 21. (en realidad solo se necesitan 18 botones ya que el botón de reinicio "C" está asignado de una manera especial y no comparte pines con los otros botones, y hay un no utilizado almohadilla, aunque tal vez se usa en otros modelos?)

Este es mi intento de hacer coincidir cada tecla con dos pines.  Por ejemplo, el número 9 está conectado a los pines A y D.

Pensé que esto era lo que estaba sucediendo ya que las filas y las columnas no tienen un pin común ... pero el diseño usa 9 pines ...? Con 9 pines, ¿por qué no convertirlo en una matriz?

No sé qué está pasando, pero sigue siendo un dispositivo encantador ...

futuro
fuente
3
La reducción del número de clavijas no es el único criterio en el diseño electrónico. Dudo que los ingenieros que diseñaron este circuito estén aquí para responderle.
Dmitry Grigoryev
1
Espero que al menos parte de eso sea que una matriz necesitaría más vías. El costo de la vía apenas importa en estos días, pero no siempre fueron tan baratos.
JRE
3
Ah, diseño hecho a mano con cinta. Ningún software de diseño de PCB sofisticado en ese entonces y sí, será chapado en oro.
Jim Dearden
2
No se trata de la cantidad de pines, sino más bien de decodificar las teclas en el software. Por ejemplo, solo tiene que monitorear los pines E e I: si alguno de esos dos recibe una señal, se presionó una tecla de operación. De lo contrario, si ABC recibe una señal, se presionó un número. Recuerde, esa es una CPU extremadamente lenta y pequeña para los estándares actuales. Guardar un solo "si" o leer una tecla de entrada es un problema. Haría de esto una respuesta, pero no puedo porque la pregunta está en espera.
asdfex
2
Con respecto a la tabla futurebird compilada: si coloca las entradas de las columnas C y E al otro lado de la diagonal, verá lo que está sucediendo: todos los números impares en A, todos los números pares en C. Todas las operaciones simples en E y los más especiales en I. No puedo mostrarlo en los comentarios, pero reordene las columnas como HFGBD y las filas como ACEI y obtendrá una matriz 4x5 muy ordenada que es mucho más fácil de decodificar que una matriz ordenada por posición de la clave .
asdfex

Respuestas:

23

Lo que importa no es solo la cantidad de pines utilizados para leer una matriz de teclado. Una cosa a considerar es el número de cruces de trazas, es decir, el número de vías necesarias. Cada uno necesita perforar un agujero y este proceso no fue tan automático en los años setenta como lo es hoy. Pero, este no es el punto principal aquí:

Una matriz 4x5 que sigue el diseño geométrico de las teclas es compleja de decodificar en el procesador. Si bien esto es algo trivial en las CPU actuales, la calculadora de bolsillo siempre tuvo y aún tiene arquitecturas de procesador muy simples. En ese momento, principalmente por el precio. Recuerde, el procesador de la computadora de 1971 fue el Intel 4004, 4 bits y 100k instrucciones por segundo y se puede suponer que el chip de esta calculadora (no pude encontrar una hoja de datos) es menos potente.

La tabla que @futurebird creó al inspeccionar el circuito parece que hay un lío total de conexiones. En realidad, esto no es cierto como vemos simplemente reorganizando columnas y filas:

   H F G B D
A  1 3 5 7 9
C  2 4 6 8 0
E  .     % C
I  * / + - =

Aquí podemos ver claramente la intención de los desarrolladores: todos los números pares comparten el pin C, todos los impares comparten el pin A. Esto hace que decodificar una tecla para formar un número en la memoria sea lo más simple posible: en el silicio debe haber solo un "codificador de 5 entradas a 3 bits" para obtener los bits 3..1 del dígito resultante en representación binaria mientras el bit más bajo se establece o borra dependiendo de si la línea A o C estaba activa. De la misma manera, todas las operaciones se pueden detectar comprobando la línea I y las más especiales en la entrada E.

Compare eso con la decodificación de un dígito de la matriz básica de 4x5: aquí hay 7 entradas que se deben verificar para recuperar 4 bits del número resultante. Es obvio que esta tabla de consulta consume más espacio en la tela de silicona.

Usando estas conexiones de matriz, las características costosas en el silicio se mantienen al mínimo, mientras se piensa un poco en planificar cuidadosamente la estructura de la matriz y un pequeño esfuerzo en diseñar una PCB que coincida con las conexiones previstas que no agrega mucho a la costos generales del dispositivo.

asdfex
fuente
1
Si no recuerdo mal, las calculadoras antiguas usaban una arquitectura de serie de bits, que es mucho más simple, más lenta, menor potencia y menos silicio que algo elegante como un 4004. En operaciones de serie de bits, las matemáticas requieren un ciclo de reloj por bit de datos. Para ver un ejemplo de una operación en serie de bits, consulte en.wikipedia.org/wiki/Serial_binary_adder .
Tom Anderson
Solo quería decir que esta fue una respuesta increíble. ¡Gracias!
futurebird