MXPA00009783A - Sistema programador de alta velocidad - Google Patents

Sistema programador de alta velocidad

Info

Publication number
MXPA00009783A
MXPA00009783A MXPA/A/2000/009783A MXPA00009783A MXPA00009783A MX PA00009783 A MXPA00009783 A MX PA00009783A MX PA00009783 A MXPA00009783 A MX PA00009783A MX PA00009783 A MXPA00009783 A MX PA00009783A
Authority
MX
Mexico
Prior art keywords
voltage
processor
data
microdevices
programming
Prior art date
Application number
MXPA/A/2000/009783A
Other languages
English (en)
Inventor
Leland Anderson George
Edward Cameron Robin
Allen Fern Scott
Original Assignee
Data I/O Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data I/O Corporation filed Critical Data I/O Corporation
Publication of MXPA00009783A publication Critical patent/MXPA00009783A/es

Links

Abstract

Se provee un sistema programador y método para programar microdispositivos programables con rendimiento significativamente incrementado;el sistema programador incluye un número múltiple de zócalos para programar simultineamente un número múltiple de microdispositivos;además se provee un circuito de memoria intermedia el cual es capaz de proveer un número de niveles lógicos adecuados para accionar diferentes microdispositivos durante programación a través de un sistema programador adaptado para programar simultáneamente un número de microdispositivos;también se provee un método para programar un microdispositivo programable el cual utiliza el ciclo de bus estándar desde un procesador para programar;finalmente, se describe también un circuito de comparación de datos y un método para verificar datos programados por un programador en una pluralidad de microdispositivos programados utilizando una operaciónúnica de relectura.

Description

SISTEMA PROGRAMADOR DE ALTA VELOCIDAD REFERENCIA CRUZADA A SOLICITUD RELACIONADA Esta solicitud reclama el beneficio de la solicitud de patente provisional de E.U.A. 60/164,782, presentada en noviembre 10, 1999. La presente solicitud contiene el objeto relacionado a una solicitud de patente de E.U.A. copendiente por Lev M. Bolotin titulada "SISTEMA DE FABRICACIÓN CON SISTEMA ALIMENTADOR/PROGRAMACION/DE MEMORIA INTERMEDIA". La solicitud relacionada está asignada a Data l/O Corporation y se identifica por el número de caso 1015-001 y solicitud de E.U.A. con número de serie 09/418,732. La presente solicitud contiene el objeto relacionado a una solicitud de patente de E.U.A. copendiente por Bradley Morris Johnson, Lev M. Bolotin, Simón B. Johnson, Cari W. Olson, Bryan D. Powell y Janine Whan-Tong titulada "SISTEMA DE OPERACIÓN ALIMENTADOR/PROGRAMACION/DE MEMORIA INTERMEDIA". La solicitud relacionada está asignada a Data l/O Corporation y se identifica por el número de caso 1015-002 y solicitud de E.U.A. con número de serie 09/419,172. La presente solicitud contiene además el objeto relacionado con una solicitud de patente de E.U.A. copendiente por Simón B. Johnson, George Leland Anderson, Lev M. Bolotin, Bradley Morris Johnson, Mark Sean Knowles, Cari W. Olson, y Vicent Warhol titulada "MÉTODO DE CONTROL Y SISTEMA DE CONTROL ALIMENTADOR/PROGRAMACION/DE MEMORIA INTERMEDIA". La solicitud relacionada está asignada a Data l/O Corporation y se identifica por el número de caso 1015-004 y solicitud de E.U.A. con número de serie 09/418,901.
CAMPO TÉCNICO La presente invención se refiere generalmente a un sistema de fabricación de productos electrónicos y más en particular, una producción continua de tableros de circuito electrónico que incorporan circuitos integrados programables.
TÉCNICA ANTERIOR En el pasado, ciertas operaciones de ensamble de tablero de circuitos electrónicos se realizaban fuera de las principales líneas de ensamble de producción. Aunque varias máquinas alimentadoras y sistemas de manejo robóticos popularizaron tableros de circuitos electrónicos con circuitos integrados, las operaciones relacionadas al procesamiento de circuitos integrados, tales como programación, prueba, calibración y medición se realizaron en áreas separadas en equipos separados, en lugar de ser integrados en las principales líneas de ensamble de producción.
Por ejemplo, en la programación de dispositivos programables tales como memorias borrables de sólo lectura eléctricamente programables (EEPROM) y EEPROM Flash, se utilizó equipo de programación separado el cual a menudo se ubicó en un área separada de las líneas de ensamble del tablero de circuitos. Existió un número de razones por las cuales la programación se hizo fuera de línea. Primero, el equipo de programación era relativamente grande y voluminoso. Esto se debió a la necesidad de insertar y remover de manera precisa dispositivos programables a altas velocidades en y fuera de zócalos de programación en el programador. Debido a que la inserción y remoción requirió recorridos relativamente extensos a alta velocidad y un posicionamiento muy preciso, se requirió equipo de manejo robótico muy rígido. Este requisito de rigidez significó que los diferentes componentes tenían que ser relativamente masivos con elementos de soporte estructurales fuertes para mantener integridad estructural y posicionamiento de precisión del sistema de captura y colocación que se mueve a altas velocidades. Debido a la dimensión del equipo de programación y al espacio limitado para un equipo de ensamble aún mayor, éstos se localizaron en diferentes áreas. Segundo, un sistema único de ensamble de producción de alta velocidad pudiera gastar dispositivos programados de forma más rápida que si pudieran ser programados en un mecanismo único de programación. Esto requirió un número de programadores los cuales eran generalmente operados durante largos períodos con el fin de tener una reserva de dispositivos programados para los sistemas de ensamble de producción. Esto significó que los tiempos operativos y los requisitos de entrada fueran diferentes entre los dos sistemas. Tercero, nadie había sido capaz de construir un sistema único el cual pudiera ser fácilmente integrado tanto con las porciones mecánicas como electrónicas de los sistemas de ensamble de producción. Estos sistemas son complejos y requieren generalmente una gran cantidad de tiempo costoso de ingeniería para hacer cambios para incorporar equipo adicional. Un problema principal asociado con la programación de los dispositivos programables en un área separada y luego traer los dispositivos programados al área de ensamble de producción para hacer insertados en los tableros de circuito electrónico fue que era difícil tener dos procesos separados que corrieran en diferentes áreas y coordinar entre los dos sistemas separados. Con frecuencia, la línea de ensamble de producción correría fuera de dispositivos programables y la línea completa de ensamble de producción tendría que ser suspendida. En otros tiempos, el equipo de programación sería utilizado para programar un inventario suficiente de dispositivos programados para asegurar que la línea de ensamble de producción no sería suspendida; sin embargo, esto incrementó costos de inventario. Otros problemas surgieron cuando la programación se tuvo que cambiar y existía a la mano un gran inventario de circuitos integrados programados. En esta situación, el inventario de dispositivos programables tendría que ser reprogramado con un gasto respectivo de tiempo y dinero.
Aunque era evidente que sería aconsejable un mejor sistema, no había una forma de mejorar realmente la situación. Existió un número de problemas aparentemente insuperables que permanecieron en el camino hacia la mejora. Primero, las velocidades operativas de las actuales líneas de ensamble de producción excedían en gran medida la capacidad de velocidad de programación de programadores convencionales, tanto que el programador tuvo que contar con un rendimiento mucho mayor que lo que se consideró posible con sistemas convencionales. Segundo, no solamente tenía que ser el programador más rápido que los programadores existentes, sino que además debería ser mucho más pequeño. El sistema ideal se integraría en una línea de ensamble de producción, pero lo haría sin interrumpir una línea de ensamble de producción existente o requerir la extensión de una nueva línea de ensamble de producción sobre aquélla de la longitud sin el sistema ideal. Además, la mayoría de estas líneas de ensamble de producción ya estaban llenadas con o diseñadas para ser llenadas con varios tipos de módulos alimentadores y de manejo los cuales proveen espacio limitado para cualquier equipo adicional. Tercero, cualquier programador involucrado en la línea de ensamble de producción tendría que estar también involucrado en los alimentadores electrónicos del ensamble de producción. Esto requeriría integración de cualquier software de control con el software del sistema de producción para efectos de comunicación y planificación. Esto sería un problema debido a que el software del sistema de línea de ensamble de producción no solamente era complejo sino también confidencial y/o propiedad de los fabricantes de esos sistemas. Esto significó que la integración se debía realizar con la cooperación de los fabricantes, quienes estaban renuentes a gastar esfuerzos de ingeniería en algo que no fuera sus propios sistemas, o que se debería realizar con una gran cantidad de esfuerzo de ingeniería gastado para entender el software de los fabricantes antes de trabajar en el software de control de los programadores. Cuarto, la interfaz mecánica entre un programador y el equipo de producción necesitaba ser altamente precisa para dispositivos programados de posición con relación al equipo de manejo de captura y colocación del sistema de ensamble de producción. Quinto, existe un gran número de diferentes fabricantes de equipo de manejo de producción, así como de equipo de fabricación de producción. Esto significa que tendría que ser estudiado un gran número de configuraciones diferentes de línea de ensamble de producción y requerir mayores compromisos de diseño para los diferentes fabricantes. Sexto, el sistema ideal permitiría cambio rápido entre diferentes microdispositivos que tienen diferentes configuraciones y tamaños. Séptimo, el sistema ideal necesitaba ser capaz de acomodar un número de diferentes mecanismos de alimentación de microdispositivos que incluyen cinta, apiladora de cinta, tubo, apiladora de tubo, y tubo y carrete.
Finalmente, existía la necesidad de ser capaz de rechazar rápidamente microdispositivos que fallaran durante la programación. Todos los problemas anteriores parecen traducirse en una solución efectiva imposible con el principal problema de que el estado actual de esta tecnología era tal que no era posible para el equipo de programación mantener la línea de producción. Básicamente, toma tiempo programar un dispositivo electrónico. Durante mucho tiempo se ha buscado una solución para incrementar el rendimiento de los sistemas de programación de circuitos integrados.
BREVE DESCRIPCIÓN DE LA INVENCIÓN La presente invención provee un sistema programador con rendimiento significativamente incrementado. El sistema resuelve la mayoría de los problemas previamente ocurridos con la capacidad de rapidez/rendimiento de sistemas programadores convencionales optimizándose al mismo tiempo para proveer operación eficiente del sistema global. La presente invención provee un sistema programador con un número múltiple de zócalos para programar un número múltiple de microdispositivos de manera simultánea. Así, el rendimiento de programación se puede incrementar de manera significativa.
La presente invención provee además un circuito de memoria intermedia para un sistema programador que está diseñado para programar un número de microdispositivos diferentes. El circuito de memoria intermedia provee una pluralidad de niveles lógicos adecuados para accionar diferentes microdispositivos durante programación. La presente invención provee además un método para programar un microdispositivo programable utilizando un procesador para que la dirección y datos de procesador se utilicen para suministrar la dirección y datos requeridos por el microdispositivo. En lugar de utilizar un ciclo de bus especial, la presente invención utiliza el ciclo de bus estándar de un procesador para programación. De este modo, la velocidad de programación y el rendimiento de programación se incrementan de manera significativa. La presente invención también provee un circuito de comparación de datos y un método para verificar los datos programados por un programador en una pluralidad de microdispositivos programados utilizando una operación única de relectura. Así, la velocidad de programación y el rendimiento de programación para un programador que realiza programación de dispositivos múltiples se puede incrementar de manera significativa. La presente invención provee además un mecanismo de procesamiento el cual incluye un procesador para generar señales de dirección, señales de datos y señales de control; un módulo accionador de conector acoplado al procesador; un módulo de placa de fondo acoplado al módulo accionador de conector; y al menos un zócalo acoplado al módulo de placa de fondo. El zócalo se utiliza para colocar los microdispositivos no procesados. El módulo accionador de conector enruta las señales de dirección, señales de datos y señales de control hacia el módulo de placa de fondo y provee una primera pluralidad de voltajes para el circuito de memoria intermedia. El módulo de placa de fondo enruta las señales de dirección, señales de datos y señales de control hacia al menos el zócalo y provee una segunda pluralidad de voltajes para al menos un zócalo. El mecanismo de programación resuelve sustancialmente el problema de rendimiento que enfrentaban anteriormente dichos sistemas. La presente invención provee además un circuito de memoria intermedia para un mecanismo de procesamiento capaz de procesar microdispositivos no procesados en microdispositivos procesados. El mecanismo de procesamiento incluye un procesador para generar señales de datos de control y señales de datos de procesamiento y para recibir señales de datos de dispositivo; una fuente de referencia de voltaje para proveer una referencia de voltaje y un suministro de voltaje Vcci para proveer un voltaje Vcci; y al menos un zócalo para colocar los microdispositivos no procesados. El circuito de memoria intermedia incluye un convertidor de digital a análogo (DAC) acoplado al procesador y a la fuente de referencia de voltaje; un amplificador acoplados al DAC; y una memoria intermedia que traduce cambio de nivel acoplada al amplificador, el procesador, el suministro de voltaje VCc? y el zócalo para transferir señales de datos de procesamiento desde el procesador a microdispositivos no procesados y para transferir las señales de datos de dispositivo desde los microdispositivos procesados al procesador. El DAC es sensible a las señales de datos de control y a la referencia de voltaje para generar un primer voltaje variable DC. El amplificador es sensible al primer voltaje variable DC para generar un segundo voltaje variable DC. La memoria intermedia que traduce cambio de nivel es sensible al voltaje VCc? y al segundo voltaje variable DC para proveer una pluralidad de niveles lógicos para las señales de datos de dispositivo. El circuito de memoria intermedia resuelve sustancialmente el problema de rendimiento que enfrentaban anteriormente dichos sistemas. La presente invención provee además un método para programar un microdispositivo programable utilizando un procesador. El microdispositivo programable incluye una pluralidad de puntos de memoria para almacenar datos. Los puntos de memoria están identificados por una pluralidad respectiva de direcciones. El microdispositivo programable está acoplado al procesador a través de un bus de dirección, un bus de datos y un bus de control. El método incluye los pasos de: (a) proveer una primera dirección desde el procesador al microdispositivo programable sobre el bus de dirección; (b) proveer unos primeros datos correspondientes a la primera dirección desde el procesador al microdispositivo programable sobre el bus de datos; y (c) proveer una primera señal de control desde el procesador al microdispositivo programable sobre el bus de control para permitir que el microdispositivo programable acepte los primero datos provenientes del procesador en un punto de memoria identificado por la primera dirección en el microdispositivo programable. El método de programación resuelve sustancialmente el problema de rendimiento que enfrentaban anteriormente dichos sistemas. La presente invención provee además un mecanismo de programación capaz de programar microdispositivos no programados en microdispositivos programados. Los microdispositivos programados tienen una pluralidad de puntos de memoria para almacenar datos. La pluralidad de puntos de memoria está identificada por una pluralidad respectiva de direcciones. El mecanismo de programación incluye una pluralidad de zócalos para colocar microdispositivos programados; una pluralidad de memorias intermedias de datos/registros, en donde cada uno de la pluralidad de memorias intermedias de datos/registros está acoplado a uno de la pluralidad zócalos para recibir unos primeros datos almacenados en una primera dirección en cada uno de los microdispositivos programados; una pluralidad de circuitos de comparación, en donde cada uno de los circuitos de comparación tiene una primera entrada y una segunda entrada y una salida, y en donde la primera salida de cada uno de la pluralidad de circuitos de comparación está acoplado a una memoria intermedia de datos/registros para recibir los primeros datos; un registro de datos esperados acoplado a la segunda entrada de cada uno de la pluralidad de circuitos de comparación para proveer unos primeros datos esperados; un bus de procesador y un procesador acoplado a la salida de cada uno de los circuitos de comparación sobre el bus de procesador, en donde cada uno de los circuitos de comparación provee un primer nivel lógico en la salida si los primeros datos coinciden con los primeros datos esperados y provee un segundo nivel lógico en la salida si los primeros datos no coinciden con los primeros datos esperados. El mecanismo de programación resuelve sustancialmente el problema de rendimiento que enfrentaban anteriormente dichos sistemas. Las ventajas anteriores y las adicionales de la presente invención serán evidentes para los expertos en la técnica a partir de una lectura de la siguiente descripción detallada junto con los dibujos anexos.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La figura 1 es un diagrama de bloque global de un sistema programador de la presente invención; La figura 2 es un esquema de la memoria intermedia que traduce cambio de nivel de voltaje de la presente invención; La figura 3 es un esquema del sistema programador de la presente invención en operación; y La figura 4 es un esquema de una porción del sistema programador de la presente invención.
DESCRIPCIÓN DE LA MODALIDAD PREFERIDA DE LA INVENCIÓN Sistema de programación La presente invención provee un sistema programador con un número múltiple de zócalos para programar un número múltiple de microdispositivos de manera simultánea. De este modo, el rendimiento de programación se puede incrementar de manera significativa. Haciendo referencia ahora a la figura 1 , se muestra en la misma un sistema programador 10. El sistema programador 10 incluye una tarjeta procesadora 11 con un microprocesador, tal como un procesador 12 localizado en la misma, un módulo accionador de conector 14, un módulo de placa de fondo 16 y un adaptador de zócalo 18 con cuatro zócalos 20A a 20D instaladas en el mismo. El procesador 12 está adaptado al módulo accionador de conector 14 sobre un bus de dirección 22 y un bus de datos/control 24. El procesador 12 genera señales de dirección, datos y control. El módulo accionador de conector 14 incluye un circuito lógico 26 para enrutar las señales de dirección, datos y control al módulo de placa de fondo 16 y un circuito de fuente de voltaje 28 para proveer voltaje al módulo de placa de fondo 16. El circuito lógico 26 puede ser un circuito integrado dedicado o una red de puertas programables por campo (FPGA). El circuito de fuente de voltaje 28 incluye un convertidor convencional de digital a análogo (DAC) y circuitos de calibración convencionales (no mostrados). El circuito de fuente de voltaje 28 genera un voltaje de suministro Vcc> el cual es el voltaje de suministro de operación normal de los microdispositivos a programar y un voltaje de programación conocido como Vpp. El módulo de placa de fondo 16 incluye una pluralidad de circuitos de conmutación relevadores, cuatro circuitos de conmutación relevadores 30A a 30D y una pluralidad de circuitos de memoria intermedia, cuatro circuitos de memoria intermedia 32A a 32D. El circuito de fuente de voltaje 28 está adaptado a los circuitos de conmutación relevadores/circuitos de memoria intermedia 30A/32A a 30D/32D sobre un bus de alimentación de corriente 34. El circuito lógico 26 está adaptado a cada uno de los circuitos de conmutación relevadores/circuitos de memoria intermedia 30A/32A a 30D/32D sobre bus de datos/control D/CO, D/C1 , D/C2 y D/C3, respectivamente. El circuito lógico 26 también está adaptado a cada uno de los circuitos de conmutación relevadores/circuitos de memoria intermedia 30A/32A a 30D/32D sobre un bus de dirección 36. Los circuitos de conmutación relevadores/circuitos de memoria intermedia 30A32A a 30D/32D están adaptados a zócalos 20A a 20B sobre bases 38A a 38D. El módulo de placa de fondo 16 también controla la condición de diodos emisores de luz (LEDs) (no mostrados), para la condición de los zócalos (20A a 20D) de un microdispositivo que está siendo programado. La condición puede indicar que el microdispositivo está fallando por alguna razón o que está siendo aceptado por alguna razón. Cabe señalar que los LEDs son opcionales en la práctica de la presente invención. El adaptador de zócalo 18 está colocado sobre el módulo de placa de fondo 16 y tiene cuatro zócalos 20A a 20D para colocar los microdispositivos (no mostrados). Una de las funciones del adaptador de zócalo 18 es sostener físicamente los microdispositivos en su lugar mientras que éstos son programados. El adaptador de zócalo 18 incluye un campo de identificación de 10 bits (ID) de modo que este pueda ser únicamente identificado por el tipo de zócalo que lleva y por lo tanto, el tipo de microdispositivos que es capaz de sostener. Debido a que cada adaptador de zócalo intercambiable 18 tiene un tipo diferente de zócalo dependiendo del tipo de paquete y dispositivo del fabricante, cada adaptador de zócalo 18 necesita ser únicamente identificado utilizando dicho campo ID. En operación, el procesador 12 primero establece los voltajes de energía y de tierra para los microdispositivos que serán programados. Para hacer eso, el procesador 12 provee señales de control a los circuitos de conmutación relevadores 30A a 30D, a través del circuito lógico 26. Esto fijará la configuración de relevador adecuada, de modo que la energía y la tierra sean adecuadamente enrutadas a cada microdispositivo y cada zócalo 20A a 20D. Una vez que se fijan correctamente la energía y la tierra, el procesador 12 escribe al circuito de fuente voltaje 28 sobre el bus de datos/control 24 y establece los niveles de voltaje adecuados para el microdispositivo que necesita ser programado. Estos niveles de voltaje incluirían el suministro VCc para el microdispositivo, el suministro VPP el cual se conoce también como el voltaje de suministro de programación y un tercer voltaje ViH el cual es el voltaje de las señales que se utilizan para accionar el microdispositivo mientras es programado. El circuito lógico 26 provee la dirección y datos desde el bus de dirección 22 y el bus de datos/control 24 directamente a cada microdispositivo que está siendo programado en cada zócalo 20A a 20D. Esta disposición hace que esta interfaz parezca como si el microdispositivo fuera parte de la tarjeta procesadora 11 y que está directamente conectado al bus de dirección y datos del procesador 12 y en la que se puede escribir directamente. Para diferentes tipos de microdispositivos, existen diferentes requisitos para el número de líneas de dirección y/o el número de líneas de datos necesarios para ser accesados durante cada ciclo de bus. Para acomodar diferentes tipos de microdispositivos, el circuito lógico 26 es capaz de medir el tamaño de cada bus para que cada microdispositivo coincida con el tamaño del microdispositivo que será programado. Una vez que los microdispositivos son considerados como parte del bus procesador 12 y en los que se puede escribir directamente, se seguirá un algoritmo de programación según lo establecido por el fabricante del microdispositivo para dar la secuencia de comando correcta a los microdispositivos con el fin de programarlos. Para un diseño de zócalos múltiples tales como en esta modalidad (diseño de cuatro zócalos), los datos a escribir desde el procesador 12 a un microdispositivo se envían simultáneamente a otros tres microdispositivos para que los cuatro microdispositivos se programen de manera simultánea. De este modo, se puede programar simultáneamente un número múltiple de microdispositivos utilizando un sistema programador construido de acuerdo con la presente invención. Por lo tanto, el rendimiento de programación se puede incrementar de manera significativa. Será evidente para los expertos en la técnica, que se pueden hacer modificaciones para permitir que los microdispositivos sean programados en los zócalos en orden aleatorio. Esto sería aconsejable cuando se desea mantener los zócalos lo más completos posible y tantas operaciones de programación continuas como sean posibles. Si se programa un microdispositivo o resulta defectuoso, éste sería reemplazado y la programación empezaría inmediatamente.
Memorias intermedias que traducen cambio de nivel de voltaje La presente invención provee un circuito de memoria intermedia para un sistema programador que está diseñado para programar un número de microdispositivos diferentes. El circuito de memoria intermedia provee una pluralidad de niveles lógicos adecuados para accionar diferentes tipos de microdispositivos durante programación. Haciendo referencia a la figura 2, se muestra en la misma un circuito de memoria intermedia 60 para un sistema programador, tal como el sistema programador 10 de la figura 1. El circuito de memoria intermedia 60 incluye un convertidor de digital a análogo (DAC) 62, un amplificador 64, un circuito de calibración 66 y una memoria intermedia que traduce cambio de nivel 68. El DAC 62 incluye una terminal de lectura/escritura (W/R) acoplada a un procesador, tal como el procesador 12 de la figura 1 , vía la línea 70, una terminal VREF acoplada a una fuente de voltaje de referencia (no mostrada) vía la línea conductora 72. El DAC 62 también está acoplado al procesador 12 para recibir señales de datos de control a partir del mismo sobre un bus de datos 74. El amplificador 64 incluye una resistencia 76 que tiene una primera terminal acoplada a la salida del DAC 62, un condensador 78 que tiene una primera terminal acoplada a una segunda terminal de la resistencia 76 y una segunda terminal acoplada a tierra 80, un amplificador operacional 82 que tiene su terminal positiva acoplada a la primera terminal del condensador 78 y su terminal de salida acoplada a su terminal negativa. El circuito de calibración 66 incluye un amplificador operacional 84 que tiene su terminal positiva acoplada a la terminal de salida del amplificador 64, su terminal negativa acoplada a una referencia de voltaje de precisión vía la línea 86 y su terminal de salida acoplada a una primera terminal de una resistencia 88 y un relanzamiento de calibración vía la línea 90. La segunda terminal de la resistencia 88 está acoplada a +5V. La memoria que traduce cambio de nivel 68 incluye un cerrojo 92, una terminal Vcci acoplada a +5V, una terminal Vcc2 acoplada a la terminal de salida del amplificador 64, la segunda terminal acoplada a tierra 80, una terminal de dirección de lectura/escritura (DIR) y una terminal de habilitación de salida (OE). La memoria intermedia que traduce cambio de nivel 68 está acoplada al procesador 12 para transferir datos de programación sobre un bus 94 a los microdispositivos no procesados y acoplada a los microdispositivos para transferir datos de dispositivo sobre un bus 96 al procesador 12. En operación, el procesador 12 envía señales de datos de control al DAC 62 sobre el bus de datos 74. El DAC 62 genera entonces un primer voltaje variable DC con base en las señales de datos de control y la referencia de voltaje VREF. Esta referencia de voltaje VREF define el rango de escala completa de voltaje que el DAC 62 puede emitir. Por ejemplo, si una referencia de voltaje VREF equivale a 10 voltios, el DAC 62 tiene la capacidad de emitir voltajes que van de 0 a 10 voltios. En respuesta al primer voltaje variable DC, el amplificador 64 genera un segundo voltaje variable. El segundo voltaje variable DC es entonces provisto a la memoria que traduce cambio de nivel 68. El segundo voltaje variable DC se utiliza como una fuente de energía para la memoria que traduce cambio de nivel 68. Vcci está conectado a un suministro de voltaje constante y se utiliza para hacer interfaz con los datos de programación desde el procesador 12 a su nivel de voltaje adecuado, en este caso 5 voltios. Vcc2. el cual está acoplado al segundo voltaje variable DC, se utiliza para controlar el bus 96 que sale hacia el microdispositivo. Debido a que el segundo voltaje variable DC controla el nivel de salida al bus 96, el bus 96 es capaz de soportar microdispositivos lógicos de 1.5-voltios a 5-voltios. En esta modalidad, la memoria que traduce cambio de nivel 68 se utiliza para transferir los datos desde el procesador 12 a los microdispositivos. Con esta configuración particular, siempre se sabe que los datos que vienen del procesador 12 son de un cierto nivel lógico, es decir, para cualquier cosa que el procesador 12 esté diseñado a utilizar. Para una lógica de 5 voltios en el lado del procesador 12, la memoria intermedia que traduce cambio de nivel 68 traduce entonces los niveles lógicos de 5 voltios a cualquier voltaje aplicado a la terminal Vcc2 de la memoria intermedia que traduce cambio de nivel 68. De este modo, se puede formar un circuito de memoria intermedia para un sistema programador de acuerdo con la presente invención para proveer una pluralidad de niveles lógicos adecuados para accionar microdispositivos con diferentes requisitos de voltaje durante programación.
Programación de escritura directa La presente invención provee un método para programar un microdispositivo programable utilizando un procesador, a modo de que la dirección y datos de procesador se utilicen para suministrar la dirección y datos requeridos por el microdispositivo. En lugar de utilizar un ciclo de bus especial, la presente invención utiliza el ciclo de bus estándar a partir de un procesador para programación. Por lo tanto, la velocidad de programación y el rendimiento de programación se incrementan de manera significativa. Haciendo referencia a la figura 3, se muestra en la misma un procesador, tal como el procesador 12, conectado a un microdispositivo programable, tal como un dispositivo de memoria Flash 112, vía un bus de dirección 114, un bus de datos 116 y un bus de control 118. Un conmutador Vpp 120 se muestra acoplado entre el procesador 112 y una terminal VPP del dispositivo de memoria Flash 112. El dispositivo de memoria Flash 112 incluye una pluralidad de puntos de memoria para almacenar datos (no mostrados). El punto de memoria se define por una respectiva pluralidad de direcciones (no mostradas). Los puntos de memoria e identificaciones son característicos de dichos dispositivos. El punto de dirección de memoria que será escrito o leído por el procesador 12 se enviará sobre el bus de dirección 114. El bus de datos 116 transporta los datos desde el procesador 12 al dispositivo de memoria Flash 112. El bus de datos 116 es bidireccional ya que el procesador 12 puede escribir estos datos en el dispositivo de memoria Flash 112 o el dispositivo de memoria Flash 112 puede emitir los datos para que el procesador 12 los lea. El bus de control 118 transporta las señales de control desde el procesador 12 al dispositivo de memoria Flash 112 para generar señales de habilitación de chip, de habilitación de escritura y de habilitación de salida. Estas señales actúan como control cuando el dispositivo de memoria Flash 112 va hacia el programa y cuando éste va a emitir datos para operaciones de lectura. En operación, el procesador 12 envía una dirección válida al dispositivo de memoria Flash sobre el bus de dirección 114, junto con datos válidos que éste desea escribir sobre el bus de datos 116. El procesador 12 se asegura que la habilitación de Flash del dispositivo de memoria Flash 112 esté en un estado activo el cual es normalmente bajo; y luego envía el impulso de habilitación de escritura al dispositivo de memoria Flash sobre el bus de control 118. La transición de alto a bajo en el impulso de habilitación de escritura, el cual se realiza en el bus de control 118, iniciará la operación de programación dentro del dispositivo de memoria Flash 112. En ese momento, el procesador 12 debe regresar a una dirección específica. Después de que la operación de programación ha iniciado, el procesador 12 emitirá normalmente una dirección específica y sondeará los datos hasta que los datos específicos que son definidos en la especificación de programación, se vuelvan a leer en las líneas de datos. Al verificar los datos que son devueltos en el bus de datos 116 y comparándolos con los datos enviados por el procesador 12 sobre el bus de datos 116, el procesador 12 puede determinar si la programación se ha realizado de manera exitosa. Si los datos enviados por el procesador 12 son diferentes a los datos que son releídos, el dispositivo de memoria Flash 112 no ha sido programado exitosamente. El dispositivo de memoria Flash 112 se puede programar nuevamente y entonces ir otra vez a la misma comparación de datos. La programación, seguida por la comparación de datos, se puede repetir durante un número predeterminado (N) de veces antes de que el dispositivo de memoria Flash 112 se considere como un producto defectuoso. Cuando esto sucede, el procesador 12 proveerá una señal, tal como encender un LED o emitir una alarma para indicar una falla de programación. Esto se repite durante todo el espacio de dirección o al menos en el bloque de datos que se requiere programar en el dispositivo de memoria Flash 112. Una vez que se completa esta operación, el dispositivo se considera programado. Operaciones adicionales normalmente requieren una verificación para asegurar que el dispositivo de memoria Flash 112 se programó adecuadamente. En este caso, el procesador 12 regresará a donde éste almacenó sus datos esperados y repetir entonces el primer procesamiento de emitir cada dirección, releer los datos y compararlos contra los datos que se pretenden escribir en el dispositivo de memoria Flash 112. Esto justificaría que la operación de programación ocurrió de manera correcta y que el dispositivo de memoria Flash 112 se programó adecuadamente. Cuando el interruptor VPP se utilice para dispositivos de memoria más antiguos que requieren un voltaje de programación especial, el interruptor Vpp sería inactivado o apagado durante el modo de relectura o verificación. De este modo, al utilizar el ciclo de bus estándar desde un procesador para programar un microdispositívo utilizando el procesador de acuerdo con la presente invención, la velocidad de programación y el rendimiento de programación se pueden incrementar de manera significativa.
Comparación de datos en serie La presente invención provee un circuito de comparación de datos y un método para verificar datos programados por un programador en una pluralidad de microdispositivos programados utilizando una operación única de relectura. Así, la velocidad de programación y el rendimiento de programación para un programador que realiza programación de dispositivos múltiples se puede incrementar de manera significativa. Haciendo referencia a la figura 4, se muestra en la misma un programador 140 construido de acuerdo con la presente invención el cual es capaz de programar microdispositivos no programados en microdispositivos programados. El programador 140 incluye cuatro zócalos (142A a 142D) para colocar los microdispositivos procesados (no mostrados); cuatro memorias intermedias de datos/registros (144A a 144D) acoplados a los cuatro zócalos (142A a 142D) sobre los buses de datos 146A a 146D, respectivamente, para recibir datos almacenados en una primera dirección en cada uno de los cuatro microdispositivos procesados; cuatro circuitos de comparación (148A a 148D), un registro de datos esperados 152, un bus procesador 156 y el procesador 12 acoplado al bus de procesador 156. En esta modalidad, los circuitos de comparación incluyen elementos lógicos OR exclusivos.
Cada uno de los cuatro registros/memoria intermedia de datos 144A a 144D está acoplado a una primera terminal de uno de los circuitos de comparación correspondientes, 148A a 148D sobre buses de datos 150A a 150D, respectivamente. El registro/memoria intermedia de datos esperados 152 está acoplado a una segunda terminal de cada uno de los circuitos de comparación 148A a 148D. Las terminales de salida de los circuitos de comparación 148A a 148D están acopladas al bus de procesador 156 vía las líneas 154A a 154D, respectivamente. Para iniciar el proceso de verificación (comparación de datos u operación de relectura), los cuatro registros/memoria intermedia de datos 144A a 144D presentan los datos que son leídos desde los cuatro microdispositivos (no mostrados) insertados en los zócalos 142A a 144D. Los datos vienen de una primera dirección en cada uno de los microdispositivos durante la operación de lectura. La salida de los datos asegurados en cada uno de los registros/memoria intermedia de datos 144A a 144D se compara entonces con los datos esperados provistos por el registro de datos esperados 152 utilizando los circuitos de comparación 148A a 148D. En esta modalidad, cada uno de los circuitos de comparación 148A a 148D incluye un elemento lógico OR exclusivo. La salida de cada uno de los circuitos de comparación 148A a 148D será en un primer nivel lógico si los datos provenientes del microdispositivo coinciden con los datos esperados del registro de datos esperados 152. De otro modo, la salida será a un segundo nivel lógico. La salida de cada uno de los circuitos de comparación 148A a 148D es entonces emitida como un bit (representado ya sea por el primer nivel lógico o el segundo nivel lógico) al bus de procesador 156 sobre cada una de las líneas 154A a 154D. El procesador 12 relee la salida de cada uno de los circuitos de comparación 148A a 148D sobre el bus de microprocesador 156 como parte del ciclo de lectura para esta operación de lectura. Los niveles lógicos representados por los cuatro bits que vienen de los circuitos de comparación 148A a 148D identifican el microdispositivo que falló en la operación de comparación. Si no hay falla, se puede permitir que la verificación continúe con la siguiente dirección. Si existe una falla, los datos provenientes de los zócalos 142A a 142D se pueden leer directamente de los registros/memoria intermedia de datos 144A a 144D. Los datos esperados se pueden leer desde el registro de datos esperados 152. Entonces el procesador 12 puede hacer una comparación para determinar cuáles bits de los datos fallaron. Cuando un microdispositivo falló la operación de comparación de datos, se puede considerar como un producto defectuoso. De manera alternativa, un microdispositivo que falló la operación de comparación de datos se puede reprogramar por un número de veces antes de que se considere un producto defectuoso. Cabe señalar que el ancho de las buses de datos 150A a 150D es igual al ancho de un bus de datos regular para los microdispositivos. Por ejemplo, si el microdispositivo es un dispositivo de 16 bits, entonces cada uno de los buses de datos 150A a 150D tendrá un ancho de 16 bits. Por lo tanto, los circuitos de comparación 148A a 148D comparan 16 líneas de datos, con una salida única que indica que esas 16 líneas pasaron o fallaron. De este modo, los circuitos de comparación de datos y método de acuerdo a la invención verifican los datos programados por un programador en una pluralidad de microdispositivos programados utilizando una operación única de relectura. Así, la velocidad de programación y el rendimiento de programación para un programador que realiza programación de dispositivos múltiples se puede incrementar de manera significativa. A partir de lo anterior, se entenderá que la presente invención aplica a lo que se puede describir como "microdispositivos". Los microdispositivos incluyen una amplia escala de dispositivos electrónicos y mecánicos. La modalidad preferida describe el procesamiento el cual es programación para dispositivos programables, que incluye pero no se limita a dispositivos tales como memorias Flash (Flash), memorias borrables de sólo lectura eléctricamente programables (E2PROM), dispositivos lógicos programables (PLDS), red de puertas programables por campo (FPGAs), y microcontroladores. Sin embargo, la presente invención abarca procesamiento para cualquier dispositivo electrónico, mecánico, híbrido y cualquier otro el cual requiera prueba, medición de características de dispositivo, calibración y otras operaciones de procesamiento. Por ejemplo, estos tipos de microdispositivos incluirían pero no estarían limitados a dispositivos tales como microprocesadores, circuitos integrados, (ICs), circuitos integrados de aplicación específica (ASICs), máquinas micromecánicas, dispositivos microelectromecánicos (MEMs), micromódulos y sistemas de fluido. Aunque la invención se ha descrito junto con una modalidad preferida detallada específica, se debe entender que serán evidentes para los expertos en la técnica muchas alternativas, modificaciones y variaciones en vista de la descripción anterior. Por consiguiente, se pretende abarcar cualquier alternativa, modificación y variación que pueda caer dentro del espíritu y alcance de las reivindicaciones incluidas. Cualquier asunto expuesto en la presente o mostrado en los dibujos anexos será interpretado en un sentido ilustrativo y no limitativo.

Claims (10)

NOVEDAD DE LA INVENCIÓN REIVINDICACIONES
1.- Un mecanismo de procesamiento para procesar microdispositivos no procesados en microdispositivos procesados, que comprende: un procesador [12] para generar señales de dirección, señales de datos y señales de control; un módulo accionador de conector [14] acoplado al procesador [12]; un módulo de placa de fondo [16] acoplado al módulo accionador de conector [14]; y al menos un zócalo [20] acoplado al módulo de placa de fondo [16], el zócalo [20] para colocar los microdispositivos no procesados; en donde: el módulo accionador de conector [14] enruta las señales de dirección, señales de datos y señales de control hacia el módulo de placa de fondo [16] y provee una primera pluralidad de voltajes para el módulo de placa de fondo [16]; el módulo de placa de fondo [16] enruta las señales de dirección, señales de datos y señales de control hacia al menos un zócalo [20] y provee una segunda pluralidad de voltajes para al menos un zócalo [20].
2.- El mecanismo de procesamiento de conformidad con la reivindicación 1 , caracterizado además porque el módulo accionador de conector [14] incluye: un circuito lógico [26] para enrutar las señales de dirección, datos y control al módulo de placa de fondo [16] y un circuito de fuente de voltaje [28] para proveer la primera pluralidad de voltajes al módulo de placa de fondo [16].
3.- El mecanismo de procesamiento de conformidad con la reivindicación 1 , caracterizado además porque el módulo de placa de fondo [16] incluye un circuito de conmutación relevador [30] para enrutar las señales de dirección, señales de datos y señales de control hacia al menos un zócalo [20], y un circuito de memoria intermedia [32] para proveer la segunda pluralidad de voltajes hacia al menos un zócalo [20].
4.- El mecanismo de procesamiento de conformidad con la reivindicación 2, caracterizado además porque el circuito lógico [26] incluye una red de puertas programables por campo.
5.- El mecanismo de procesamiento de conformidad con la reivindicación 2, caracterizado además porque el circuito de fuente de voltaje [28] incluye un convertidor de digital a análogo.
6.- El mecanismo de procesamiento de conformidad con la reivindicación 2, caracterizado además porque la primera pluralidad de voltajes incluye un voltaje Vcc y un voltaje de procesamiento para procesar los microdispositivos no procesados.
7.- El mecanismo de procesamiento de conformidad con la reivindicación 2, caracterizado además porque la primera pluralidad de voltajes incluye un voltaje VPP y un voltaje de procesamiento para procesar los microdispositivos no procesados.
8.- El mecanismo de procesamiento de conformidad con la reivindicación 1 , caracterizado además porque el procesador [12] incluye un sistema de circuitos para generar señales de datos de control y procesar señales de datos y para recibir señales de datos de dispositivo; e incluye: una fuente de referencia de voltaje para proveer una referencia de voltaje y un suministro de voltaje Vcci para proveer un voltaje Vcc-i, ñas señales de datos de programación son de niveles lógicos de voltios Vccií y al menos un zócalo [20] para colocar los microdispositivos no procesados; y un circuito de memoria intermedia [32] que incluye: incluye un convertidor de digital a análogo (DAC) [62] acoplado al procesador [12] y a la fuente de referencia de voltaje, el DAC [62] es sensible a las señales de datos de control y a la referencia de voltaje para generar un primer voltaje variable DC; un amplificador [64] acoplado al DAC [62], el amplificador [64] es sensible al primer voltaje variable DC para generar un segundo voltaje variable DC; y una memoria intermedia que traduce cambio de nivel [68] acoplada al amplificador [64], el procesador [12], el suministro de voltaje Vcc-i, y el zócalo [20] para transferir señales de datos de procesamiento desde el procesador [12] a los microdispositivos no procesados y para transferir las señales de datos de dispositivo desde los microdispositivos procesados al procesador [12], la memoria intermedia que traduce cambio de nivel [68] es sensible al voltaje Vcci y al segundo voltaje variable DC para proveer una pluralidad de niveles lógicos para las señales de datos de dispositivo.
9.- El mecanismo de procesamiento de conformidad con la reivindicación 8, caracterizado además porque el primer voltaje variable tiene un valor entre 0 voltios y la referencia de voltaje.
10.- El mecanismo de procesamiento de conformidad con la reivindicación 8, caracterizado además porque la pluralidad de niveles lógicos está entre 0 voltios y voltios Vcci •
MXPA/A/2000/009783A 1999-11-10 2000-10-05 Sistema programador de alta velocidad MXPA00009783A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60/164,782 1999-11-10
US09471675 1999-12-24

Publications (1)

Publication Number Publication Date
MXPA00009783A true MXPA00009783A (es) 2002-05-09

Family

ID=

Similar Documents

Publication Publication Date Title
JP4648354B2 (ja) プログラミング装置、バッファ回路および方法
US6002638A (en) Memory device having a switchable clock output and method therefor
US5661677A (en) Circuit and method for on-board programming of PRD Serial EEPROMS
EP0490511B1 (en) Nonvolatile serially programmable devices
US6347367B1 (en) Data bus structure for use with multiple memory storage and driver receiver technologies and a method of operating such structures
US20070108300A1 (en) Removable memory cards including USB and other controllers, connectors, and methods of operating same
CN100492407C (zh) 具有多种通信模式的集成电路装置及其操作方法
US20090128080A1 (en) System and method for controlling multiple servo motors
US6067593A (en) Universal memory bus and card
JP3157932B2 (ja) Icカード用インターフェース回路
US7202545B2 (en) Memory module and method for operating a memory module
JPH05288807A (ja) チェック回路を含む集積回路
US5930269A (en) Testing system for semiconductor device without influence of defective device
JPH0939212A (ja) 印刷機の制御のための装置
MXPA00009783A (es) Sistema programador de alta velocidad
CN110658808B (zh) 分立板卡式控制器的功能模块在线诊断识别电路及方法
JPH0738179B2 (ja) 制御装置
EP0048848A2 (en) Device controlled by programmed modular controller means with selfchecking
US6240496B1 (en) Architecture and configuring method for a computer expansion board
CN100409212C (zh) 存储器系统和使其包含的多个存储器控制器同步的方法
CN107357752B (zh) 控制接口扩展电路
JP2008040575A (ja) シリアルデータ転送装置及びシリアルデータ転送方法
CN114889081B (zh) 一种应用于热流道温控系统的通讯地址分配方法
US11609875B2 (en) Data communication device and data communication module
JP5278267B2 (ja) エンドカバー、これを備えたプログラマブルロジックコントローラ装置、エンドカバー装着有無確認方法、及びプログラマブルロジックコントローラ装置の故障診断方法