Beruflich Dokumente
Kultur Dokumente
Departamento de Ingenier a nica e Informa tica Electro nica Carrera de Ingenier a Electro
Microprocesadores I
lez PhD. Ing. Vicente Gonza
Matriz de leds 1 0 c
2 de diciembre de 2011
ii
Indice general
1. Dise no del tablero de leds 1.1. Dise no del Hardware . . . . 1.2. Dise no L ogico . . . . . . . . 1.3. Funcionamiento de la matriz 1.4. Software controlador . . . . 1 1 1 3 4 7 7 7 7 10 11 13 13 13 14 14
. . . . . . . . . . . . de LEDs . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2. Manejo del Puerto Serie 2.1. Introducci on . . . . . . . . . . 2.2. Puerto serie y Linux . . . . . 2.2.1. Descripci on . . . . . . . 2.2.2. Explicaci on . . . . . . . 2.3. Codicaci on de la informaci on
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3. Manejo de la memoria EEPROM 3.1. Introducci on . . . . . . . . . . . 3.2. Programaci on de la EEPROM . 3.2.1. Lectura . . . . . . . . . . 3.3. Implementaci on . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
iii
iv
INDICE GENERAL
Indice de guras
1.1. Diagrama l ogico del registro de desplazamiento . . . . . . . . . . 1.2. Esquem atico del matriz de leds dise nado . . . . . . . . . . . . . . 2 3
vi
INDICE DE FIGURAS
Indice de cuadros
2.1. Dispositivos del puerto serie en Linux . . . . . . . . . . . . . . . 2.2. Matriz de un bloque de dibujo con valores binarios . . . . . . . . 3.1. Tiempos de programaci on de la memoria EEPROM . . . . . . . 7 11 14
vii
viii
INDICE DE CUADROS
Introducci on
El siguiente trabajo se trata sobre el desarrollo de una matriz de leds, m as conocido como Tablero Electr onico o Publik, existen varios m odulos del cual consta, primeramente el dise no del hardware, el cual b asicamente consiste en una matriz de p xeles similar a los de la pantalla de un ordenador, luego de esto se dise na el software que podr a manejar la matriz desde un ordenador, se ha desarrollado en GTK+, adem as se utiliza el puerto RS232 para la comunicaci on con el dispositivo microcontrolador utilizado el cual es el HCS12 de Motorola. Cabe destacar que el desarrollo del entorno gr aco y por ende el manejo del puerto serial con este se ha hecho en Linux por la simplicidad que presenta, ya que se maneja al puerto como un simple archivo, adem as GTK+ presenta varias funciones que ayudan a la portabilidad del software desarrollado.
ix
INDICE DE CUADROS
1
1.1 1.2
El hardware que se quiere construir es un cartel luminoso. Para el dise no inicial se utilizo una matriz de tal manera que se tendr a el control sobre 112 leds. El montaje nal queda por tanto con 16 columnas y 7 las. El control de los leds es multiplexado, de forma que cada elemento de la matriz(1 led) se controla por un comando de las y columnas.
Dise no L ogico
Teniendo en cuenta las restricciones anteriores se comienza el dise no l ogico del circuito de control. En primer lugar se debe escoger la forma en que se va a realizar el control sobre las matrices, teniendo en cuenta que se va a crear un display lineal. Lo ideal ser a poder controlar individualmente cada uno de los 112 leds, pero para ello ser an necesarias 23 se nales de control, una por cada columna (16) y uno por cada la (7). El n umero es excesivo(m as a un si se desease expandir la cantidad de columnas), as que se tendr a que plantear otro esquema de control. Se plantearon dos soluciones, codicar las columnas o las las, de forma que en un momento dado s olo por una columna o por una la pudiera pasar corriente, permitiendo as el control individual de los leds de la la o columna por la que pasar a corriente. Otro esquema est a en el multiplexado, esta t ecnica permite utilizar unos pocos pines de E/S del microcontrolador para manejar una serie de circuitos integrados que se encarguen de excitar los LEDs. Hay varias maneras, y muchos modelos diferentes de circuitos para hacer esto. Pueden usarse un tipo de integrado digital llamado LATCH. De esta manera, usando varios latches podr amos encender los LEDs por turnos, r apidamente para que no se note el parpadeo, y de esa manera formar una palabra en el cartel. Otra forma es utilizar un registro de desplazamiento. Y de hecho, es de esta forma c omo vamos a dise nar nuestro cartel. En un registro de desplazamiento tenemos 0 y 1, lo bueno es que para meter datos (0s y 1s) en el solo hacen falta tres pines del microcontrolador, independientemente de lo largo que sea. Estos pines se encargan de tres tareas: Uno de ellos, al que denominaremos 1
DATOS es el encargado de decirle al registro de desplazamiento que lo que introduciremos es un 0 o un 1. El segundo se encarga de avisar al registro que el dato ya est a listo para ser ingresado, y lo llamaremos CLOCK. Y el ultimo, que no es indispensable, es el RESET, que se encarga de vaciar la la escribiendo 0s en todas las salidas del registro. Para desarrollar nuestro ejemplo utilizaremos el circuito integrado 74HC164N, que es un registro de desplazamiento de 8 bits. Para construir un cartel de 16 columnas, necesitar amos utilizar 2 de estos integrados, uno a continuaci on del otro. En la gura podemos ver la funci on de cada uno de los pines del 74HC164N y en la gura el dise no hacho y de que forma podemos conectar uno a continuaci on del otro para obtener un registro de desplazamiento de SN74LS164 cualquier longitud.
LOGIC DIAGRAM
1 2
Q1
4
Q2
5
Q3
6
Q4
10
Q5
11
Q6
12
Q7
13
FUNCTIONAL DESCRIPTION
Each LOW-to-HIGH transition on the Clock (CP) input The LS164 is an edge-triggered 8-bit shift register with shifts data one place to the right and enters into Q0 the logical serial data entry and an output from each of the eight stages. Bien, con el esquema los LEDs que queramos Data is entered serially through one of explicado two inputs (A orpodemos B); ANDencender of the two data inputs (AB) that existed before the either of these used as an active HIGH Enable rising clock de edge.desplazamiento A LOW level on the Master Reset (MR) de una lainputs de can 16be bits de largo. Si en el registro introducifor data entry through the other input. An unused input must input overrides all other inputs and clears the register mos 1111 .. 111, los 16 LEDs an encendidos. Si queremos uno be tied HIGH,.or both inputs connected together. estar asynchronously, forcing all Q outputsencender LOW.
por medio, escribiremos 10101. . .01. cuando lleguemos a la parte de la programaci on veremos c omo se MODE ingresan uno a uno los 0 y 1 en el registro. SELECT TRUTH TABLE Adem as se aprovecha un defecto del ojo humano, que mantiene la imagen INPUTS OUTPUTS OPERATING MODE MR A para B dibujar Q0 Q1Q7 una la a la vez, pero vista durante unos 20 o 30 milisegundos, Reset (Clear) L X parezca L L estar L muy r apidamente, de forma que todo el Xcartel encendido a la vez.
Shift H H H H I I h h I h I h L L L H q0 q6 q0 q6 q0 q6 q0 q6
L (l) = LOW Voltage Levels H (h) = HIGH Voltage Levels X = Dont Care qn = Lower case letters indicate the state of the referenced input or output one qn = set-up time prior to the LOW to HIGH clock transition.
http://onsemi.com
126
3
5 4 3 2 1
1 2 3
ALIMENTACION
QA QB QC A QD QE B QF QG CLK QH
VCC J3 2 1 CON2
U1 74HC164
CLR
CLR
9 74HC164 U2
VCC GND
0
R1 2.2k
R2 2.2k
R3 2.2k
R4 2.2k
R5 2.2k
R6 2.2k
3 4 5 6 10 11 12 13 R7 2.2k
R10 2.2k
R11 2.2k
R12 2.2k
R13 2.2k
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
Q2N2222
D1 VCC R24 220 R17 D17 2.2k VCC R25 220 R18 2.2k VCC R26 Q18 Q2N2222 Q17 Q2N2222
Q1
D2
Q2
D3
Q3
D4
Q4
D5
Q5
D6
Q6
D7
Q7
D8
Q8
D9
Q9
D10
Q10
D11
Q11
D12
Q12
D13
Q13
D14
LED
LED D18
LED D19
LED D20
LED D21
LED D22
LED D23
LED D24
LED D25
LED D26
LED D27
LED D28
LED D29
LED D30
LED D31
LED D32
LED D33
LED D34
LED D35
LED D36
LED D37
LED D38
LED D39
LED D40
LED D41
LED D42
LED D43
LED D44
LED D45
LED D46
LED D47
LED D48
SELECTOR FILAS
220 R19 2.2k VCC R27 7 6 5 4 3 2 1 220 R20 2.2k VCC R28 220 R21
Q19 Q2N2222
LED D49
LED D50
LED D51
LED D52
LED D53
LED D54
LED D55
LED D56
LED D57
LED D58
LED D59
LED D60
LED D61
LED D62
LED D63
LED D64
J1
Q20 Q2N2222
LED D65
LED D66
LED D67
LED D68
LED D69
LED D70
LED D71
LED D72
LED D73
LED D74
LED D75
LED D76
LED D77
LED D78
LED D79
LED D80
CON7
Q21 Q2N2222
LED D81
LED D82
LED D83
LED D84
LED D85
LED D86
LED D87
LED D88
LED D89
LED D90
LED D91
LED D92
LED D93
LED D94
LED D95
LED D96
LED D97
LED D98
LED D99
LED D100
LED D101
LED D102
LED D103
LED D104
LED D105
LED D106
LED D107
LED D108
LED D109
LED D110
LED D111
LED D112
B
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
LED
1.3
5
Como dijimos antes, la pantalla est a formada por una serie de las y columnas. La intersecci on entre ambas contiene un LED. Para que este encienda, tiene que recibir simult aneamente un 1 en la la, y un 1 en la columna. Cuando se dan estas condiciones, la electr onica de la placa se encarga del encendido del LED en cuesti on. La forma de generar un mensaje sobre el display es relativamente sencilla, si nos atenemos al siguiente algoritmo: 1. Apagar todas las las. 2. Escribir los valores correspondientes a la primer la en el registro de desplazamiento, teniendo en cuenta que el primer digito binario colocado corresponde al primer LED de la la, y el ultimo en poner al de la u ltima columna. 3. Encenderla primer la, esperar un tiempo, y volver a apagarla. 4. Repetir los pasos 2 y 3 para las las restantes. El tiempo de la demora debe ser tal que permita una visualizaci on correcta, sin molestos parpadeos y con los LEDS brillantes. Ssi utilizamos tiempos
mayores para el encendido de cada la, el brillo de los LEDS ser a mayor, pero tambi en aumentar a el parpadeo. Un punto tenido en cuenta es la intensidad del brillo que puede proporcionarnos el tipo de LED que utilizamos. En caso de un t pico cartel de 7 las como el dise nado, a pesar de que las veremos encendidas al mismo tiempo, cada LED solo estar a encendido la s eptima parte del tiempo, por lo que su brillo ser a siete veces inferior al normal, y nuestro cartel apenas ser a visible.
1.4
Software controlador
Ahora nos toca abordar la programaci on del hardware propuesto. El cartel del LEDs que estamos construyendo puede adoptar diferentes tama nos de acuerdo a las especicaciones del trabajo. Debemos pensar en un programa que nos permita mostrar p xeles individuales representados sobre la pantalla de nuestro cartel. Sigamos con el ejemplo del cartel de 16 columnas y 7 las de altura, recordando que todo lo que expliquemos puede ser adecuado para carteles de otro tama no. Lo primero que necesitamos saber es que el barrido del cartel debe hacerse por las. Es decir, mostraremos el contenido de la primera la, esperamos un tiempo determinado (unos pocos milisegundos), mostramos el de la segunda la, esperamos nuevamente, y as hasta llegar a la u ltima la, tal como se expresa en el algoritmo visto mas arriba. El motivo de no emplear las columnas para realizar el barrido es que como son m as numerosas, el tiempo total que se necesita para escribir por las es mucho menor que el necesario para escribir por columnas, y en la pr actica eso signica que el brillo de nuestro cartel ser a mucho mayor si lo hacemos por las, ya que cada LED permanecer a encendido 1/7 del tiempo. Si lo hici esemos por columnas, cada LED estar a encendido solo 1/16 del tiempo, por lo que su brillo seria unas 2 veces menor. Ahora bien, el primer problema a resolver es C omo escribo los datos de una la del cartel? Esto tiene una soluci on m as que simple: solo debemos introducir en el registro de desplazamiento los 0 y 1 necesarios para que los LEDs que queremos est en encendidos en esa la tengan +V en sus anodos. Por supuesto, mientras hacemos esto todos los pines del microcontrolador que controlan las las deber an estar apagadas, para que no se perciba una d ebil luminosidad en todos los LEDs de la la que estamos escribiendo a medida que pasan los datos a trav es del registro. El primer valor que se debe meter en el registro de desplazamiento es el que corresponder a a la u ltima columna. A medida que vamos ingresando los siguientes, se van desplazando hacia el nal del cartel. Cuando hayamos introducido el valor n umero 80 (que corresponder a a la primera columna) el primer valor que metimos habr a llegado a su posici on. En ese momento tenemos todo el registro escrito, y ya podemos activar la sal-
5 ida del microcontrolador(pin) que corresponde a esa la en particular. El tiempo que debe estar encendida la la se puede determinar emp ricamente, pero por lo generan unos 10 milisegundos es suciente. Si tenemos 7 las, 10 milisegundos de demora permitir an escribir todo el cartel en unos 70 milisegundos.
2
2.1 2.2
Introducci on
Este es un breve tutorial sobre c omo manejar el puerto serie desde Linux sacado de la siguiente p agina WEB. Esto se utiliza para comunicarse con microcontroladores externos como es el caso de nuestro trabajo.
Los nombres que se dan en Linux a los dispositivos serie son: Nombre del dispositivo /dev/ttyS0 /dev/ttyS1 /dev/ttySnn Descripci on Primer puerto serie nativo. (Equivalente a COM1) Segundo puerto serie nativo. (Equivalente a COM2) n- esimo puerto serie nativo
Cuadro 2.1: Dispositivos del puerto serie en Linux La forma de acceder al puerto serie es la misma que para trabajar con cualquier otro chero. Se usan las llamadas read() y write() para leer y escribir respectivamente. Pero a diferencia de los archivos normales, antes de usar el puerto serie es necesario congurarlo, estableciendo la velocidad de trabajo y su modo de funcionamiento.
2.2.1.
Descripci on
Se congura el modo de funcionamiento serie a 8N1(8 bits de datos, 1 bit de stop y sin paridad). La velocidad es la indicada por el usuario en el par ametro baud, es una constante que puede valer: B9600, B19200, etc. Se puede encontrar m as informaci on sobre todos los valores posibles en la p agina de manual de termios (man termios).
Esta funci on devuelve el descriptor del puerto serie (0 -1 si ha ocurrido un error), que ser a necesario para realizar las lecturas y escrituras. int serial_open(char *serial_name, speed_t baud) { struct termios newtermios; int fd; fd = open(serial_name,O_RDWR | O_NOCTTY); newtermios.c_cflag= CBAUD | CS8 | CLOCAL | CREAD; newtermios.c_iflag=IGNPAR; newtermios.c_oflag=0; newtermios.c_lflag=0; newtermios.c_cc[VMIN]=1; newtermios.c_cc[VTIME]=0; cfsetospeed(&newtermios,baud); cfsetispeed(&newtermios,baud); if (tcflush(fd,TCIFLUSH)==-1) return -1; if (tcflush(fd,TCOFLUSH)==-1) return -1; if (tcsetattr(fd,TCSANOW,&newtermios)==-1) return -1; return fd; } a una cadena de bytes por el puerto serie. Lo La funci on serial send() env u nico que hace es invocar la llamada al sistema write(). Como par ametros se pasa el descriptor serie del puerto serie (serial fd), devuelto por la funci on serial open(), el array con los datos a enviar (data) y su tama no (size). void serial_send(int serial_fd, char *data, int size) { write(serial_fd, data, size); } La funci on serial read() se usa para leer datos del puerto serie. Se le pasan como par ametros el descriptor del puerto serie (serial fd), el array donde almacenar los datos recibidos (data), el tama no m aximo de bytes a recibir (size, para no desbordar el array) y el tiempo m aximo para recibir los datos (timeout usec). Si transcurre un tiempo igual a timeout usec y no se han recibido datos, la funci on retornar a y devolver a el control a la que la invoc o. Para realizar las lecturas no bloqueantes, se usa la llamada al sistema select(). En este caso devuelve 1 si hay datos esperando a ser le dos y 0 si ha ocurrido un timeout. A continuaci on se invoca a read() para leer estos datos. El proceso se repite para garantizar que es posible recibir datos de tama no size. Se devuelve el n umero de bytes le dos ( 0 si ha ocurrido un timeout).
9 int serial_read(int serial_fd, char *data, int size, int timeout_usec) { fd_set fds; struct timeval timeout; int count=0; int ret; int n; do { FD_ZERO(&fds); FD_SET (serial_fd, &fds); timeout.tv_sec = 0; timeout.tv_usec = timeout_usec; ret=select (FD_SETSIZE,&fds, NULL, NULL,&timeout); if (ret==1) { n=read (serial_fd, &data[count], size-count); count+=n; data[count]=0; } } while (count<size && ret==1); return count; } La u ltima funci on es serial close(), que simplemente invoca a close() para cerrar el puerto serie. void serial_close(int fd) { close(fd); }
10
2.2.2.
Explicaci on
S olo se explicar an algunos fragmentos del c odigo. Primero se abre el puerto serie, a la velocidad de 9600 baudios invocando la funci on serial open(). Se pasa como argumento el nombre del dispositivo serie obtenido de la l nea de comandos. Se indica si ha ocurrido un error al abrirlo (por ejemplo si se especica un dispositivo serie incorrecto): serial_fd=serial_open(argv[1],B9600); if (serial_fd==-1) { printf ("Error opening the serial device: %s\n",argv[1]); perror("OPEN"); exit(0); } Luego se env a la cadena denida en la constante CMD y se espera recibir la misma serial_send(serial_fd, CMD, CMD_LEN); printf ("String sent------> %s\n",CMD); n=serial_read(serial_fd,data,CMD_LEN,TIMEOUT); La variable n contiene el n umero de bytes recibidos. Si n es 0 es porque habr a ocurrido un timeout. En caso contrario se imprimen en pantalla la cadena recibida. Por u ltimo se cierra el puerto serie: serial_close(serial_fd);
11
2.3
Codicaci on de la informaci on
En esta secci on se describe brevemente la forma de codicar cada caracter a ser enviado por el puerto serie, es decir los datos que van a ser desplegados luego en la matriz de LEDs, b asicamente cada caracter introducido por el usuario es transformado en una matriz de 7 las * 8 columnas, a esto se le llamamos un bloque de dibujo, en el cual cada la corresponde a un char (8 bits), si el valor introducido equivalente es visto desde el punto de vista de la numeraci on binaria los 1 corresponder an a los LEDs que ser an encendidos, y los 0 a los que estar an apagados, la matriz completa es enviada en forma serial de la primera a la septima la en forma secuencial ordenada, un ejemplo de ello para la letra a ser a: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0
Cuadro 2.2: Matriz de un bloque de dibujo con valores binarios Ahora si todos los 1 son pintados para ver el efecto que ser a lo mismo en la matriz de LEDs, dando la ilusi on de una palabra, se pueden hacer innitas conguraciones de cuadro de dibujos, s olo basta un poco de imaginaci on. 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0
As , para enviar una cadena solo basta tener una funci on que transforme para cada caracter una codicaci on y ponerlo en el puerto serial para su transferencia al MCU, de esta manera se tiene una gran efectividad en el uso de la capacidad de memoria del microcontrolador, porque el algoritmo aqu s olo se dedica a colocar en memoria no vol atil el dato recibido para luego dedicarse exclusivamente a desplegar una secuencia de bits puros encendiendo o apagando los LEDs en sus correspondientes lugares(secuencia de 1 y 0), el cual fue codicado y tiene un signicado(palabras, emoticones, caracteres especiales, numeraci on, etc.), el cual en su conjunto da signicado a la secuencia.
12
3
3.1
Introducci on
En el microcontrolador utilizado se encuentra un recurso interno bastante u til a la hora de buscar un sistema aut onomo barato y sencillo. La memoria EEPROM, con lo cual se ahorra la expansi on externa de memoria. Esto que suena tan bien tiene el inconveniente de la limitada capacidad de la EEPROM. Oscila entre 2kbytes y 128kbytes seg un el modelo, para nuestro caso tenemos a nuestra disposici on 32kbytes . La EEPROM es una memoria que mantiene los datos a un desconectando la alimentaci on del sistema (memoria no vol atil). Su ciclo de lectura es equivalente al de la ROM interna pero en escritura es m as lenta. Es como una EPROM con la salvedad de que se borra el ectricamente; de esta forma se facilita su uso.
3.2
Programaci on de la EEPROM
La programaci on de la EEPROM se realiza por medio del registro PPROG. Antes de ver las rutinas de control hay que estudiar el funcionamiento de la EEPROM, aunque s olo de manera supercial, lo m nimo para que se entiendan luego las rutinas de control. En una EEPROM el estado de un byte borrado o en su caso no programado tiene un valor de $FF, es decir sus bits a nivel alto. La programaci on permite pasar a 0 ( nivel bajo) los bits que est an a 1 (nivel alto), pero no al rev es, si se quiere poner un bit a uno (estando previamente a cero) hay que borrar todo el byte primero. Si por el contrario se quiere pasar de 1 a 0 no hace falta borrar todo el byte primero. En resumen, siempre que hay que grabar un 1 en una celda EEPROM que previamente estaba a 0 hay que borrarla primero. La programaci on requiere una sobrecarga de tensi on, aunque no hay que preocuparse de esto puesto que la proporciona el microcontrolador de forma transparente al usuario. Lo que si que hay que tener en cuenta es que la velocidad de programaci on es m as lenta que la velocidad de lectura, por lo tanto entre programaci on y programaci on hay que introducir unos retardos. Estos retardos son variables y dependen de la velocidad de reloj E. 13
14
Cuanto menor sea el valor de E ( frecuencia de reloj ) la efectividad de la sobrecarga disminuye 1 . Por esa raz on el micro incorpora un peque no oscilador RC interno que puede generar los tiempos de programaci on necesarios independientemente del reloj externo (E). Motorola recomienda que cuando se trabaje con E < 1MHz activar el oscilador RC para programar la EEPROM. Para activar ese oscilador hay que actuar sobre el bit CSEL del registro OPTION2 . En la siguiente tabla se presenta un esquema sobre los tiempos de programaci on. E = 2M Hz 1M Hz < E < 2M Hz E < 1M Hz Tiempo de escritura / borrado de 10ms Tiempo de escritura / borrado entre (10ms 20ms) Activar oscilador interno y mantener tiempo de 20ms
3.2.1.
Lectura
Para leer la EEPROM el bit EELAT del registro PPROG debe estar a cero. Cuando este bit est a a cero el resto de bits del registro dejan de tener signicado o efecto. La lectura de la EEPROM se realiza como la de una memoria ROM normal. Al realizar un RESET sobre el microcontrolador el estado de este bit es cero, la EEPROM queda congurada para lectura.
3.3
Implementaci on
Para la implementaci on se llevaron a cabo varias pruebas la mayor a sin exito alguno, en este proceso se ha encontrado una application note hecho por freescale para el uso en un hcs12, llevando a cabo algunas modicaciones, se pudo realizar este m odulo, el manual de ayuda se puede encontrar el siguiente LINK, donde explica detalladamente los registros a ser congurados y funciones que lo realizan; con lo le do anteriormente se puede entender c omo se hace el proceso de programaci on de la EEPROM.
1 La eciencia de la sobrecarga disminuye con el incremento de tiempo necesario para borrar y grabar la posici on de eeprom. 2 Cuando se activa el bit CSEL hay que esperar 10ms hasta que se estabilice el circuito. Una vez que haya pasado ese tiempo podemos realizar operaciones sobre la EEPROM.
15
(AlienSong.mp4)