Arduino Serial Read and MATLAB

Caracterizaci´on de circuitos integrados utilizando MATLAB y Arduino 26 de enero de 2015 1. Introducci´ on La medici´

Views 142 Downloads 2 File size 570KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Caracterizaci´on de circuitos integrados utilizando MATLAB y Arduino 26 de enero de 2015

1.

Introducci´ on

La medici´on de circuitos digitales es una tarea tediosa debido a la gran cantidad de datos que deben ser tomados para caracterizar un chip. En este trabajo, se describe el funcionamiento de un sistema de adquisici´on e inter´ pretaci´on de datos. Este opera de forma autom´atica utilizando una interfaz entre MATLAB y Arduino para caracterizar circuitos integrados digitales. Adem´as, almacena los datos en diferentes formatos para su posterior visualizaci´on y procesamiento. El documento est´a dividido de la siguiente manera: en la secci´on 2 se presentan las caracter´ısticas principales de la tarjeta de pruebas (Arduino) y Script de MATLAB. En la secci´on 3 se describe brevemente el la configuraci´on y el funcionamiento general del sistema. En la secci´on 4 se muestran algunos resultados del sitema en operaci´on. Finalmente, en la secci´on 5 se presentan las conclusiones.

2.

Caracteristicas princiapales de tarjeta Arduino y Scrip de MATLAB

La velocidad y resoluci´on de las mediciones son limitadas por las caracter´ısticas del ADC embebido en la tarjeta de adquisici´on de datos, en este caso la tarjeta Arduino UNO. Las principales caracter´ısticas del convertidor anal´ogico-digital se muestran en la Tabla 1. 1

Caracter´ısticas de operaci´on de ADC Arduino 6 Canales de lectura (input analog pins between 0-5). 10-bits de resoluci´on (integer values between 0 and 1023). Resoluci´on maxima 4.9 mV por unidad. Permite un maximo de 10,000 lecturas por segundo.

Tabla 1: Caracter´ısticas principales de convertidor an´alogico-digital embebido en tarjeta Arduino UNO. Adem´as de las caracter´ısticas presentadas en la Tabla 1 la tarjeta Arduino cuenta con 14 terminales digitales configurables I/O que permiten la implementaci´on de m´ ultiples sistemas digitales. La distribuci´on de terminales en la tarjeta Arduino se muestran en la Figura 1

Figura 1: Distribuci´on de pines en tarjeta Arduino UNO.

2

El Arduino UNO cuenta ademas con un emulador USB de puerto serial (protocolo RS232) que permite una sencilla comunicacion con PC’s.

3.

Configuraci´ on del sistema

En este trabajo se presenta una configuraci´on muy sencilla y general del sistema. La tarjeta arduino tiene la tarea principal de adquirir se˜ nales anal´ogicas del chip de prueba. Estas se˜ nales son digitalizadas gracias a un ADC embebido en la tarjeta y posteriormente son enviados al PC para su visualizaci´on y procesamiento en MatLab. El PC y la tarjeta Arduino son comunicados mediante el protocolo RS232 que permite env´ıo y recepci´on de datos entre ambos dispositivos. En la Figura 2 se muestra la configuraci´on general del sistema implementado.

Figura 2: Configuraci´on del sistema utilizado para caracterizar circuitos de prueba.

Los voltajes de operaci´on entre dispositivo no son compatibles, por lo tanto, es necesario un circuito de acondicionamiento de se˜ nales entre la tarjeta ´ Arduino y el circuito de prueba. Este acondicionamiento de se˜ nales se realiza utilizando buffers que garantizan 1.8 V en las se˜ nales digitales de entrada del circuito de prueba, as´ı como, se˜ nales TTL hacia la tarjeta arduino. En este trabajo se miden algunas de las caracteristicas de operaci´on del circuito de calibraci´on de offset tomado de [1]. La comunicaci´on serial entre la tarjeta Arduino y el PC con MATLAB opera con una tasa de 9600 bits/sec. Debido a la pobre velocidad de trasferencia de datos no es posible visualizar en tiempo real el comportamiento de 3

dispositivos a muy alta frecuencia (cientos de kHz). En la Tabla 2 se el funcionamiento general del Script de MATLAB. De manera similar en la Tabla 3 se presenta la descripci´on del algoritmo implementado en el Arduino.

Script implementado en MATLAB *Inicializa vectores de datos y comunicaci´ on serial. *Env´ıa se˜ nal para comenzar comunicaci´ on. *Selecciona el n´ umero de datos y se˜ nales por recibir. *Espera por un dato. *Mapea en el grafico el dato recibido y se guarda en vector. *Detiene comunicaci´ on una vez que el n´ umero de datos de inter´es es alcanzado.. *Cierra el puerto serial. *Escribe archivo de texto en el cual almacena mediciones.

Tabla 2: Descripci´on del Script implementado en MATLAB. 4

Algoritmo de control implementado tarjeta Arduino Inicializaci´ on de variables y puerto serial if(comunicaci´ on establecida) { if(se˜ nal de inicio recibida) { contador=000 signo=se˜ nal de signo; while(signo==signo and contador