INVESTIGADORES
FERNANDEZ Hector
congresos y reuniones científicas
Título:
Voltamperometria de barrido rápido (fsv): aportes de las tecnologías de lógica programable en el diseño de un generador de rampa de potencial ultra-rápido
Autor/es:
CARLOS J. MAFFRAND; MARIO R. ROMERO; DÍDIMO ZÁRATE; MARÍA A. ZÓN; HÉCTOR FERNÁNDEZ
Lugar:
Tucumán
Reunión:
Congreso; XXVII Congreso Argentino de Química; 2008
Institución organizadora:
Asociación Química Argentina
Resumen:
Introducción La voltamperometría de barrido cíclico de potencial (VC) es una herramienta versátil y eficaz para la elucidación de mecanismos de reacción electroquímicos [1]. Las velocidades de barrido desarrolladas en una experiencia típica de VC, no han ex-cedido, hasta hace unos pocos años atrás, pendientes del orden de unos ± 102 [V/s]. Desde un punto de vista físico, las dimensiones de los electrodos utilizados (hoy ma-croelectrodos) y las consecuentes capacidades eléctricas asociadas a las mismas, constituyeron un límite práctico a las velocidades obtenibles con la instrumentación de la época. El notable avance producido tanto en los recursos electrónicos disponibles como en las tecnologías de microsistemas electroquímicos (Electrochemical Microsys-tem technologies, EMST) [2] y la difusión del empleo de micro y ultramicroelectrodos, ha producido una dramática contracción en las escalas de tiempo de las experiencias de VC [3], impulsando el desarrollo de instrumentación específica capaz de generar altas velocidades de barrido, referidas habitualmente en la literatura como FCV (fast cyclic voltammetry) ó FSV (fast scan voltammetry) [4] con pendientes de potencial del orden de 104 a 106 [V/s]. La presente comunicación describe los aspectos principales de un proyecto de desarrollo de un generador digital de rampa de potencial de alta velocidad, capaz de producir una pendiente de potencial (en esta 1ª etapa) de hasta 5 x 104 [V/s]. El núcleo principal del generador posee una placa de desarrollo (Spartan - 3E Starter Kit) para el arreglo de compuertas programable en campo (Field Programmable Gate Array, FPGA) XC3S500E de la firma Xilinx, Inc. (USA) [5]. La programación de la FPGA me-diante el lenguaje específico (VHDL) permite el control de todos los periféricos necesa-rios: interfase de comunicación, memoria RAM de datos, display LCD, el conversor D/A de 12 bits y la etapa de salida del generador. Tanto el signo como la pendiente de la rampa de potencial, los tiempos de re-poso, los potenciales inicial, de inversión y final y el número de ciclos de barrido son programables, ya sea a través de una interfase gráfica del usuario disponible en la PC (modo esclavo) (fase actual de desarrollo) o por medio de un teclado y display de cris-tal líquido (LCD) alfanumérico ubicados en el instrumento (modo autónomo). La trans-misión y recepción de datos entre la computadora y el instrumento se realiza por medio de una interfase serie universal (USB 2.0). Descripción del proyecto Como se mencionó previamente, el núcleo principal del generador es una placa de desarrollo de bajo costo que contiene la FPGA propiamente dicha y un variado con-junto de periféricos que le otorgan gran flexibilidad para aplicaciones tecnológicas. De modo muy general, se puede mencionar que una FPGA es un dispositivo semiconduc-tor que contiene bloques lógicos (compuertas) cuya interconexión (eléctrica) y funcion-nalidad se puede programar, permitiendo la implementación de funciones tan sencillas como la ejecutada por una compuerta lógica AND hasta complejos sistemas en un chip como es el caso de un microprocesador completo [6]. Un ventaja sustancial de las FPGA?s reside en la capacidad de ser reprogramables in situ (las funciones lógicas que ejecuta pueden ser reconfiguradas sin extraer el chip), lo cual le otorga gran flexibilidad al diseño y tiempos (y costos) de desarrollo menores en relación a otras tecnologías. A esto debe añadirse que el lenguaje de programación (VHDL) es un standard industrial, portable y re-usable. El lector interesado en profundizar aspectos relativos al lenguaje de descripción de hardware (VHDL) puede consultar la referencia [7]. La idea central del generador de rampa digital propuesto, se sustenta básica-mente en la utilización del concepto de ?tabla de búsqueda? (look-up table), la cual puede resumirse brevemente como una estructura de datos dispuestos en un arreglo lógico y usados para reemplazar un algoritmo de cálculo on-line de una función deter-minada, por una simple operación de lectura del dato pre-calculado. En esta aplicación, los valores de potencial correspondientes al ciclo de barrido, son cargados por la FPGA (ciclo de escritura) en una memoria RAM de 64 K-words (1 word = 16 bits) por medio de un contador de 16 bits. Cuando la FPGA realiza el ciclo de lectura de la tabla de datos almacenada previamente, los valores de cada posición de memoria son apli-cados a un conversor digital ? analógico y luego a un amplificador separador, filtro acondicionador y factor de escala correspondientes, para transformarse en la rampa de potencial de salida del sistema. La forma de onda del ciclo de potencial a ejecutar, se almacena previamente en una memoria interna de la FPGA del tipo programable y no volátil (pre-escritura). Una voltamperometría de N ciclos se obtendrá simplemente repitiendo el ciclo de lectura N veces, mientras que los cambios de pendiente se ejecu-tarán reprogramando la velocidad del reloj del contador de 16 bits implementado en la FPGA. Figura 1 Materiales y métodos La lógica de control del sistema, el contador ascendente de 16 bits (up-counter), la programación de la frecuencia de ´clock´ del sistema, el almacenamiento de la forma de onda (pre-escritura) en la memoria flash - PROM, etc. son realizadas en la Spartan - 3E (Fig. 1). Las opciones de configuración como asi también el diseño lógico a implementar, son descargados en la FPGA a través de la interfase USB [5]. Para la síntesis y simulación de los circuitos del diseño lógico se utiliza el entorno de programación ISE provisto por Xilinx conjuntamente con la placa de desarrollo. La Fig. 2 muestra el código VHDL que implementa la lógica del contador as-cendente de 16 bits con borrado asincrónico y que permite realizar el barrido de las posiciones de memoria (RAM) en los ciclos de lectura y escritura, mientras la Fig. 3 muestra dos fotografías de la pantalla de simulación del entorno de programación del sistema. entity contador is Port ( clk : in STD_LOGIC; clear : in STD_LOGIC; q : out STD_LOGIC_VECTOR (15 downto 0)); end contador; architecture Behavioral of contador is SIGNAL value: STD_LOGIC_VECTOR(15 DOWNTO 0); begin process (clk,clear) begin IF (clear=´1´) then value ´0´); ELSIF (clk ´EVENT AND clk=´1´) THEN value