ESCUELA POLITÉCNIC NACIONAA Lbibdigital.epn.edu.ec/bitstream/15000/10759/1/T1358.pdf · 2019. 4....
Transcript of ESCUELA POLITÉCNIC NACIONAA Lbibdigital.epn.edu.ec/bitstream/15000/10759/1/T1358.pdf · 2019. 4....
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA ELÉCTRICA
ÜVIPLEMENTACION DEL PROTOCOLO I2C EN UN
MICROCONTROLADOR PIC DE IVÜCROCHIP
"ESIS DE GRADO PREVIA A LA OBTENCIÓN DEL TITULO
DE INGENIERO EN ELECTRÓNICA Y CONTROL
GUSTAVO ADOLFO UPEGU! NIEVA
QUITO - ECUADOR
JULIO DE 1998
>*
Certifico que la presente tesis de grado
fue realizada en su totalidad por el señor:
Gustavo Adolfo Upegui Nieva
AGRADECIMIENTO
Debo agradecer a Dios por permitirme
vivir un momento tan importante de mi
vida, a mis padres y hermanos por el
enorme sacrificio entregado, a mi esposa
y mis hijas por la comprensión y apoyo
durante este difícil caminar, a mi familia y
a la familia de mi esposa que con sus
voces de aliento animaban mi trabajo y a
los amigos que siempre estuvieron a mi
lado.
DEDICATORIA
Dedico todo este esfuerzo y sacrificio a la
memoria de mi madre, que siempre fue y
será para todos "UN MOTIVO DE
LUCHA" y a mi padre e inseparable
amigo.
ÍNDICE
CAPITULO I
ESPECIFICACIONES DEL BUS I2C (INTER-INTEGRATED
CIRCUIT BUS) .....1
1.1. CONCEPTO DEL BUS I2C....... ..............1
1.2. CARACTERÍSTICAS GENERALES.. .5
1.3. TRANSFERENCIA DE LOS BITS. ....6
1.3.1. Validez del dato .6
1.3.2. Condiciones de INICIO y PARADA.. 7
1.4. TRANSFERENCIA DE LOS DATOS..... 9
1.4.1. Formato del Byte... 9
1.4.2. Reconocimiento.. ., 10
1.5. ARBITRAJE Y GENERACIÓN DE PULSOS
DE RELOJ ..12
1.5.1. Sincronización 12
1.5.2. Arbitraje.. .13
1.5.3. Uso de mecanismos de sincronización
de reloj como líneas de control y
comunicación (handshake)... ...........14
1.6. FORMATOS CON DIRECCIONES ESCLAVAS
DE 7 BITS 16
1.6.1. Definición de los bits que conforman
el primer byte. .......19
1.7. FORMATO DE DIRECCIONES ESCLAVAS
DE 10 BITS....... 20
1.7.1. Definición de los dos bytes que
conforman la dirección...... 20
1.8. CARACTERÍSTICAS ELÉCTRICAS. ......22
1.8.1, Valores máximos y mínimos de las
resistencia Rp y Rs... ..25
CAPITULO II
EL MICROCONTROLADOR PIC16C57.. , 31
2.1. ARQUITECTURA.. 31
2.2. DESCRIPCIÓN DE LOS PINES... 34
2.3. SISTEMA DE RELOJ Y FLUJO DE
INSTRUCCIONES.......... 37
2.4. ORGANIZACIÓN DE LA MEMORIA............ .............38
2.4.1, Memoria de programa.......... 38
2.4.2. Memoria de datos..... .................39
2.5. REGISTROS ESPECIALES.. ...41
2.5.1. Registro STATUS ..41
2.5.2. Registro OPTION..... 43
2.5.3. Contador de programa (PC)...................... ........44
2.5.4. Registros de acceso directo e indirecto
(INDFyFSR)..... 45
2.5.5. Registros de Entrada/Salida... .........47
2.5.6. Módulo TIMERO y registro TMRO.. 50
2.6. CARACTERÍSTICAS ESPECIALES DEL CPU 53
2.7. INSTRUCCIONES... 57
2.8. CARACTERÍSTICAS ELÉCTRICAS .......58
CAPITULO III
USO DEL PAQUETE "MPLAB" COMO HERRAMIENTA DE
DESARROLLO DEL MICROCONTROLADOR PIC16C57..... 59
3.1. PROCESO BÁSICO PARA CREAR UN PROYECTO.. .....59
3.1.1. Creación del archivo fuente...... .........60
3.1.2. Creación del proyecto .....61
3.1.3. Asignación del archivo fuente al proyecto......... ....62
3.1.4. Selección de las herramientas a utilizarse...... 63
3.1.5. Ensamblaje del archivo fuente......... 64
3.2. PROCESO BÁSICO PARA LA SIMULACIÓN.. 66
3.2.1. Tipos de simulación...... ......66
3.2.2. Ventanas de información para la simulación ....67
3.2.3. Simulación del "Resef 69
3.2.4. Puntos de parada dentro de la simulación. 70
3.2.5. Simulador de estímulos............. ............71
3.3. OPCIONES DEL MENÚ PRINCIPAL... .....73
CAPITULO IV
DISEÑO Y CONSTRUCCIÓN DEL MODULO DE
COMUNICACIÓN.................... ................82
4.1. INTRODUCCIÓN... 82
4.11. Memoria 24C02A (EEPROM con interfaz I2C)......... 82
4.1.2. Memoria 93AA46 (EEPROM con bus
serial de 4 líneas).... 86
4.2. ANÁLISIS PREVIO AL DISEÑO... 94
4.2.1. Análisis del sistema de Ingreso de datos. 94
4.2.2. Análisis del sistema de salida de datos .95
4.3. DISEÑO DEL MODULO................ ..97
4.4. DISEÑO DEL SOFTWARE PARA EL
MICROCONTROLADOR..... .108
4.4.1. Sub-programa encargado del manejo de la
interfaz manual..... .....108
4.4.2. Sub-programa para escribir en las
memorias PC ......110
4.4.3. Sub-programa para leer las memorias PC 111
4.4.4. Sub-programa para escribir en la
memoria serial de 4 líneas...... 112
4.4.5. Sub-programa para leer la memoria
serial de 4 líneas 113
4.4.6. Sub-programa para borrar una localidad
de la memoria serial de 4 líneas... 114
4.4.7. Sub-programa para borrar todas las localidades
de la memoria serial de 4 líneas..... ..115
4.4.8. Sub-programa para escribir el mismo
dato en todas las localidades de la
memoria serial de 4 líneas....... 116
4.4.9. Sub-programa que permite al microcontroiador
recibir datos provenientes del puerto
serial RS-232. ...117
4.4.10.Sub-programa que permite al microcontroiador
enviar datos a través del puerto serial RS-232 118
4.5. ANÁLISIS PREVIO AL DISEÑO DE LA
INTERFAZ DEL COMPUTADOR.. ....119
4.6. DISEÑO DE LA INTERFAZ DEL COMPUTADOR.... 120
4.7. CONSTRUCCIÓN DEL MODULO..... 122
CAPITULO V
PRUEBAS Y RESULTADOS..... 127
5.1. PRUEBA DE ESCRITURA EN LAS MEMORIAS I2C
DESDE LA INTERFAZ MANUAL... 127
5.2. PRUEBA DE LECTURA EN LAS MEMORIAS I2C
DESDE LA INTERFAZ MANUAL .128
5.3. PRUEBA DE ESCRITURA EN LA MEMORIA SERIAL
DE 4 LINEAS DESDE LA INTERFAZ MANUAL...... 130
5.4. PRUEBA DE LECTURA EN LA MEMORIA SERIAL
DE 4 LINEAS DESDE LA INTERFAZ MANUAL ..............131
5.5. PRUEBA DE ESCRITURA EN LAS MEMORIAS I2C
DESDE LA INTERFAZ DEL COMPUTADOR. .........132
5.6. PRUEBA DE LECTURA EN LAS MEMORIAS I2C
DESDE LA INTERFAZ DEL COMPUTADOR..... .....138
CAPITULO VI
ANÁLISIS ECONÓMICO. 143
CAPITULO Vil
COMENTARIOS Y CONCLUSIONES. 146
BIBLIOGRAFÍA .....150
ANEXOS... .......................151
CAPITULO
ESPECIFICACIONES DEL BUS I2C (INTER-INTEGRATED CIRCUIT
BUS).
1.1. CONCEPTO DEL BUS PC.
Cualquier circuito integrado, sea de fabricación NMOS, CMOS o
bipolar puede trabajar con este bus. El bus se compone de dos
conductores, el de datos seriales SDA (Serial Data) y el reloj serial SCL
(Serial Clock), los cuales transfieren la información sincronizada hacia
todos los dispositivos conectados. Cada dispositivo se reconoce por una
única dirección, sea éste un microcontrolador, controlador de LCD,
memoria o teclado; además, cada uno de estos dispositivos puede operar
como un transmisor o un receptor, dependiendo de la función del mismo.
Obviamente un controlador de LCD es solamente un receptor, mientras
una memoria puede recibir y transmitir datos. De acuerdo con esto
podemos decir que los maestros y esclavos pueden ser considerados
como transmisores o receptores dependiendo de los requerimientos de la
transferencia (Vea la tabla 1.1). Un maestro es el dispositivo que inicia la
transferencia de datos sobre el bus y genera las señales de reloj que
permiten la comunicación, al mismo tiempo, cualquier otro dispositivo al
que se dirija el maestro, se considera un esclavo.
Término
Transmisor
Receptor
Maestro
Esclavot
Multi-maestro
Arbitraje
Sincronización
Descripción
Es el dispositivo que envía los datos por elbus.
Es el dispositivo que recibe los datos por elbus.
Es el dispositivo que inicia la transferencia,genera las señales de reloj y termina latransferencia.
Es el dispositivo al que se dirige elmaestro.
Más de un maestro puede controlar el bussin alterar el mensaje.
Procedimiento que asegura que, si más deun maestro simultáneamente trata decontrolar el bus, solamente uno de ellos esautorizado a hacerlo y así el mensaje no sealtera.
Procedimiento que sincroniza las señalesde reloj de dos o más maestros.
Tabla 1.1. Terminología del bus PC.
El bus PC es multi-maestro, esto significa que más de un
dispositivo tiene la capacidad de controlar el bus, entonces, se tomará en
cuenta la posibilidad de conectar dos o más microcontroladores al bus
(Vea la figura 1.1), debido a que generalmente éstos son utilizados como
maestros.
Las relaciones entre maestro-esclavo no son siempre las de
transmisor-receptor, ya que dependen de la dirección que tiene el dato
transferido en ese momento. Por ejemplo, la transferencia de datos
debería proceder de la siguiente manera;
1) Suponemos que el microcontrolador A quiere enviar información al
microcontroiador B:
• Microcontrolador A (maestro), se dirige al microcontrolador B
(esclavo).
• Microcontrolador A (maestro transmisor), envía datos al
microcontrolador B (esclavo receptor).
• Microcontrolador A termina la transferencia.
2) Si el microcontrolador A quiere recibir información del microcontrolador
B:
• El microcontrolador A (maestro) se dirige al microcontrolador B
(esclavo).
• El microcontrolador A (maestro receptor) recibe el dato "del
microcontrolador B (esclavo transmisor).
• El microcontrolador A termina la transferencia.
En este caso el maestro (microcontrolador A) genera la señal de
reloj y termina la transferencia.
La posibilidad de conectar varios microcontroladores al bus PC,
significa que más de un maestro podría tratar de iniciar la transferencia
de datos al mismo tiempo. Para prevenir el caos que esto puede acarrear,
se ha desarrollado un procedimiento de arbitraje, que consiste en la
conexión "wired-AND" (conexión en la que prevalece el "O" lógico sobre el
"1" lógico), la cual debe poseer toda interfaz I2C para conectarse al bus.
4
La generación de las señales de reloj sobre el bus PC es siempre
responsabilidad de ios dispositivos maestros; cada maestro genera sus
propias señales de reloj al transferir datos a! bus. Las señales de reloj
que salen del maestro pueden ser cambiadas solamente cuando la
comunicación se realiza con un dispositivo lento, ya que éste mantiene
en BAJO la línea de reloj por más tiempo (si está diseñado para esto), o
cuando otro maestro intenta la comunicación al mismo tiempo y ocurre un
arbitraje.
•CL
QATE
LCD
AOC
BTATKM»0«ECffKMI
COMINOLtlH
Figura 1.1. Ejemplo de una configuración utilizada en el bus I2C.
1.2. CARACTERÍSTICAS GENERALES.
Tanto la SDA como la SCL son líneas bidireccionales conectadas
a una fuente positiva de voltaje mediante una resistencia pull-up (Vea la
figura 1.2), por lo que cuando el bus está libre, ambas líneas se
encuentran en ALTO.
Los datos sobre el bus pueden ser transferidos a una velocidad
de 100 kbit/s en el modo estándar o a un máximo de 400 Kbit/s en el
modo rápido. El número de interfaces conectadas al bus solamente
depende del límite de la capacitancia del mismo que es de 400 pF.
(S*rlil D*1a Une)
SDA (Sefirf Oock LJne)SCL — ""'
SCCK1 ~tOut "
SCLK — <T^
SCLK
DKTÍ1 — tOut -
DATA ^>^\
; :
in ^vJ
5Ct(
SCLKIn
^
,Voo
KZ-t>it i
SCi —
r
LK
DAT» -|lom •=
DATA^^^T^s^ *X.
Figura 1.2. Conexión de dispositivos al bus PC.
6
1.3. TRANSFERENCIA DE LOS BITS.
Debido a la variedad de dispositivos de diferentes tecnologías
que pueden ser conectados al bus (CMOS, NMOS, Bipolar), los niveles,
tanto del "O" lógico (BAJO) como del "1" lógico (ALTO) no son fijos, y
dependen del voltaje asociado a VDD.
En este sistema un pulso de reloj es generado por cada bit de
dato transferido.
1.3.1. Validez del dato.
El dato sobre la línea SDA debe ser estable durante el
período en el cual el reloj se encuentra en ALTO, y puede
cambiar solamente cuando la línea SCL se encuentra en BAJO
(Vea la figura 1.3).
ChtngeofOíUAllowed
Figura 1.3. Transferencia de un bit sobre el bus I2C.
1.3.2. Condiciones de INICIO y PARADA.
Dentro del procedimiento del bus I2C, las únicas
situaciones definidas como condiciones de INICIO y PARADA son
las siguientes (Vea la figura 1.4):
SDA SDA
SCL. P f» . . - í
StopCofxHon
Figura 1.4. Condiciones de INICIO y PARADA.
Una transición de ALTO a BAJO de la línea SDA mientras
la línea SCL se encuentra en ALTO define una condición de
INICIO y una transición de BAJO a ALTO de la línea SDA
mientras la línea SCL se encuentra en ALTO define una
condición de PARADA.
Las condiciones de INICIO y PARADA son generadas
siempre por el maestro. El bus se considera ocupado después de
una condición de INICIO, liberándose nuevamente después de
una condición de PARADA.
La detección de las condiciones de INICIO y PARADA por
los dispositivos conectados en el bus es fácil siempre y cuando
tengan incorporada la ¡nterfaz adecuada. Sin embargo, los
microcontroladores que no poseen esta interfaz deben realizar un
muestreo de ia línea SDA por lo menos dos veces por periodo de
reloj con el fin de registrar los cambios de estado.
1.4. TRANSFERENCIA DE LOS DATOS.
1.4.1. Formato del Byte.
Todos los bytes puestos sobre la línea SDA deberán ser
de 8 bits de largo, aunque no está restringido el número de bytes
que pueden ser enviados en cada transferencia. Cada byte es
seguido por un bit de reconocimiento y además, los datos se
transfieren colocando primero el bit más significativo (MSB Most
significant bit) (Vea la figura 1.5). Si uno de los dispositivos
receptores no puede recibir un byte completo de datos porque
debe realizar alguna otra función como por ejemplo atender una
interrupción interna, éste puede retener la línea de reloj SCL en
BAJO para forzar a que el transmisor entre en un estado de
espera. La transferencia de datos continua cuando el receptor
está listo para otro byte de datos y libera la línea de reloj SCL,
aunque un mensaje puede ser interrumpido en cualquier
momento por una condición de parada, lo cual genera una falla
en el reconocimiento o verificación que realiza el receptor.
AcknowtodgmenfSlgnri froro f
B)ffc Cwnptate,Intemjp* wtthin Rrafvtr
* Acfcnawfodgmtnt•omR»c«1v*r
_CkK*UneHridLmWh8»* Ar*S*rvic*d
P— J
StopC«ndhl«n
Figura 1.5. Transferencia de datos sobre el bus I2C.
10
1.4.2. Reconocimiento.
El reconocimiento es un bit que asegura a! transmisor la
perfecta recepción del byte -enviado, indicándole con esto que la
transferencia puede continuar. En la generación de los pulsos de
reloj siempre debe haber espacio para este bit, es decir, que
después de enviar los 8 bits del byte, deberá existir un noveno
pulso de reloj, en el cual el receptor coloque la línea SDA en
BAJO indicando dicho reconocimiento (Vea figura 1.6).
Cuando un esclavo receptor no reconoce la dirección (por
ejemplo, está inhabilitado para recibir porque está ejecutando
alguna función de tiempo real), la línea de datos es colocada en
ALTO por el esclavo. El maestro entonces puede generar una
condición de PARADA para abortar la transferencia.
Si un esclavo receptor reconoce la dirección, pero por
aigún motivo no puede recibir los datos, el maestro debería
abortar la transferencia. Esto es indicado por el esclavo en una
generación de falla en el reconocimiento (SDA en ALTO) sobre el
primer bit que sigue ai DAT01, entonces el maestro genera una
condición de PARADA.
Si un maestro está actuando como receptor en una
transferencia, éste debería señalar el final de la transmisión del
esclavo generando una condición de NO-RECONOCIMIENTO, es
decir, manteniendo en "1" lógico la línea SDA durante el ultimo
byte detectado a la salida del esclavo, de esta manera el esclavo
transmisor finaliza su transmisión y libera la línea de datos,
permitiendo que el maestro genere la condición de PARADA.
11
by T
Figura 1.6. Reconocimiento en e! bus !2C.
12
1.5. ARBITRAJE Y GENERACIÓN DE PULSOS DE RELOJ.
Como se mencionó anteriormente, existe la posibilidad de que
dos o más maestros intenten ocupar el bus al mismo tiempo, lo cual
generaría un caos en la transmisión; por esta razón se requiere un
arbitraje que permita a un solo maestro iniciar la transferencia de datos.
Pero para llevar a cabo este arbitraje en la línea SDA, deberán
previamente sincronizarse las señales de reloj de los maestros.
1.5.1. Sincronización.
Todos los maestros generan su propio reloj sobre la línea
SCL para transferir mensajes en el bus I2C, sin embargo, es
necesario un reloj definido para todos, con el fin de que el
procedimiento de arbitraje se pueda realizar, en caso de que dos
o más de estos maestros intenten la comunicación al mismo
tiempo.
La sincronización de los relojes es realizada utilizando la
conexión wired-AND de ¡nterfaces I2C en la línea SCL. Esto
significa que el estado BAJO en el reloj de un dispositivo obligará
a los demás a mantener su línea de reloj también en BAJO, sin
importar el estado en el que se encontraba anteriormente. La
línea SCL permanecerá en este estado hasta que todos los
dispositivos alcancen el estado ALTO nuevamente (Vea la
figura 1.7). Es decir, que la transición de BAJO a ALTO del reloj
de alguno de los dispositivos puede no cambiar el estado de la
línea SCL si otro reloj se encuentra todavía en el estado BAJO.
Por lo tanto la línea SCL será retenida en BAJO por el dispositivo
que posea el más largo período en este estado. Los dispositivos
que tienen un corto período en BAJO entran a un estado de
espera durante este tiempo. Cuando todos los dispositivos han
13
terminado su período en BAJO, la línea de reloj será liberada y
adoptará el estado ALTO. En este momento no existirá diferencia
entre los relojes de los dispositivos y el estado de la línea SCL,
por lo que todos los dispositivos empezarán sus períodos en
ALTO. El primer dispositivo en completar este período colocará
nuevamente la línea SCL en BAJO.
De esta forma la sincronización de la línea SCL se logra
con un período en BAJO determinado por el dispositivo cuyo
tiempo en este estado sea el más largo y un período en ALTO
determinado por aquel con el menor tiempo en ALTO,
$b»t CounUngHghPwiod
CU
SCL
Figura 1.7. Sincronización del reloj durante e! procedimiento
de arbitraje.
1.5.2. Arbitraje.
Un maestro puede empezar una transferencia solamente
si e! bus está libre, pero dos o más maestros pueden generar una
condición de INICIO dentro del mínimo tiempo de retención
(tHD;STA), y es en este caso donde entra el arbitraje.
• 14
El arbitraje toma lugar sobre la línea SDA, mientras la
línea SCL se encuentra en el nivel ALTO; así un maestro puede
transmitir un nivel ALTO mientras otro transmite un nivel BAJO, lo
que causa que el primero desconecte su estado de salida porque
el estado en el bus no corresponde a su propio nivel y por lo tanto
pierde eí arbitraje.
El arbitraje puede continuar por muchos bits, ya que
primero se comparan los bits de dirección, y existe la posibilidad
de que los dos maestros estén tratando de dirigirse al mismo
dispositivo, pero en este caso el arbitraje continúa con la
comparación de los datos sin que éstos se pierdan durante el
proceso.
Si un maestro tiene además, la función de esclavo y
pierde el arbitraje en la dirección, es posible que el maestro
ganador esté tratando de comunicarse con él, por lo que el
maestro perdedor debería cambiar inmediatamente a su modo
esclavo receptor.
Luego de que el control del bus !2C es decidido por el
arbitraje y el maestro ganador ha terminado la transferencia de
datos, no existirá un maestro central ni tampoco un orden de
prioridades sobre el bus.
1.5.3. Uso de mecanismos de sincronización de reloj corno
líneas de control y comunicación (handshake).
Además de ser utilizado durante los procedimientos de
arbitraje, el mecanismo de sincronización sirve para comunicar
dispositivos lentos o rápidos, manejando la línea de reloj (SCL).
15
Este control de la línea SCL puede realizarse tanto a nivel
de byte como a nivel de bit. A nivel de byte, un dispositivo puede
recibir datos a gran velocidad, pero necesita más tiempo para
almacenarlos, entonces ios esclavos pueden retener la línea SCL
en BAJO después de la recepción y reconocimiento de un byte
para forzar a que el maestro entre en un estado de espera hasta
que el esclavo esté listo para la transferencia del siguiente byte
simulando un tipo de línea de control.
A nivel de bit, un dispositivo como un microcontrolador o
cualquiera con una limitada interfaz !2C puede hacer más lento el
bus, prolongando cada período en el que el reloj permanece en
BAJO. De esta forma la velocidad de cualquier maestro es
adaptada al rango de operación interna de este dispositivo.
16
1.6. FORMATOS CON DIRECCIONES ESCLAVAS DE 7 BITS.
Los datos transferidos siguen el formato que se observa en la
figura 1.8, es decir, que después de la condición de INICIO, se envía la
dirección de! esclavo.
SOA
SCL
I II I
. _ j ' y ' '—r-* *>••••*•—
Start Addre»* RW ACKComMon
D*U ACK Dat»
Figura 1.8. Transferencia de datos completa.
Esta dirección tiene 7 bits de largo, seguida por un octavo bit que
indica si se hará una operación de lectura o escritura (R/W); un "O"
indica una operación de escritura (WRITE) y un "1" indica una operación
de lectura (READ). Una transferencia de datos es siempre terminada por
una condición de PARADA (P) que genera el maestro. Sin embargo, si un
maestro aun desea comunicarse sobre el bus, éste puede generar una
condición repetida de INICIO (Sr) y dirigirse a otro esclavo diferente al
primero, sin necesidad de generar una condición de PARADA. Varías
combinaciones de formatos de lectura/escritura son posibles en una
transferencia. Estas combinaciones de datos son:
17
El maestro transmisor transfiere datos a! esclavo receptor. El sentido
de la transferencia no cambia (Vea la figura 1.9).
S';,DIRECCIÓNESCLAVA
R/W
"0"
A DATO 1 A DAT02 A/A P
WRJTE TRANSFERENCIA DE DATOS (N BVTES +RECONOCIMIENTO)
DEL MAESTRO ALESCLAVO
DEL ESCLAVO ALMAESTRO
A = RECONOCIMIENTO (SDA EN BAJO)
~A~= NO-RECONOCIMIEHTO (SDA EN ALTO)
S= CONDICIÓN DE INICIO
P « CONDICIÓN DE PARADA
Figura 1.9. Maestro transmisor se dirige a esclavo receptor con 7 bits
de dirección. E! sentido de la transferencia no cambia.
- El maestro lee al esclavo inmediatamente después del primer byte
(Vea la figura 1.10). En el momento del primer reconocimiento el
maestro transmisor cambia a maestro receptor y el esclavo receptor
cambia a esclavo transmisor. El maestro reconoce todos los bytes que
recibe del esclavo, pero cuando desea terminar la transferencia,
coloca un bit de no-reconocimiento después del último byte, indicando
al esclavo que debe terminar la transferencia de datos.
18
s DIRECCIÓNESCLAVA
R/W A
.«..
DATO 1H DATO 2 A P
DEL MAESTRO AL
ESCLAVO
DEL ESCLAVO ALMAESTRO
TRANSFERENCIA DE DATOS <N BYTES +RECONOCIMIENTO)
A = RECONOCIMIENTO (SDA EN BAJO)
T= MO-RECOHOCIMIEMTO (SOA EN ALTO)
S= CONDICIÓN DE INICIO
P = CONDICIÓN DE PARADA
Figura 1.10. El maestro lee al esclavo inmediatamente después del
primer byte.
Formatos combinados (Vea la figura 1.11). Si se produce un cambio
de sentido dentro de la transferencia, la condición de INICIO y la
dirección del esclavo son repetidas, pero con el bit (R/W) invertido.
RfAOOR TRAHSFEREHC1A DC DATOS (H BYTES
WR1TE RECOtíOCIMBElfTO)«OR TRANSFERENCIA DE DATOS (H BVTES +
WWTE RECONOCIMIQJTO) •
CONDICIÓN REPETIDA
nneu MAECTOO «uESCLAVO
DELESCLAVO ALMAESTRO
A - RECOHOOMtEHTO (SDA EH BAJO)
"Á""- HO-R£COHOCtMENTO (SDA EH AUTO)
S - COHDICIOH DE I «CIO
P - Qghgi.C1.O»{ P^ PftRAHA
• LA DUtECCIOd OE LA TRAHSFEKENCIA VLOS BIT DE RECONOCIMIENTO DEPEHOEHDEL BíT R*7
Figura 1.11. Formato combinado.
19
1.6.1. Definición de los bits que conforman el primer byte.
Los primeros siete bits del primer byte conforman la
dirección del esclavo y el octavo es e! bit menos significativo LSB
(least significant bit), el cual determina el sentido del mensaje. Un
"O" en la posición menos significativa del primer byte significa que
el maestro escribirá información en el esclavo seleccionado y un
"1" en esta posición significa que el maestro leerá información
desde el esclavo.
Cuando una dirección es enviada, cada dispositivo
compara los primeros siete bits después de la condición de
INICIO con su propia dirección. Si éstos son iguales el dispositivo
se considera aludido por el maestro como un receptor esclavo o
transmisor esclavo, dependiendo del bit (R /W) .
La. dirección de un esclavo puede conformarse de una
parte fija y una parte programable. Es probable que existan varios
dispositivos idénticos en el sistema, por lo que la parte
programable de la dirección del esclavo permite un número
máximo posible de estos dispositivos conectados al bus I2C. El
número de bits de dirección programables depende de la
cantidad máxima de dispositivos del mismo tipo que pueden
conectarse al bus. Por ejemplo, si un dispositivo tiene 4 bits de
dirección fijos y 3 programables, un total de 8 dispositivos
idénticos pueden ser conectados ai mismo bus.
20
1.7. FORMATOS CON DIRECCIONES ESCLAVAS DE 10 BITS.
Debido a que han sido ocupadas la mayoría de las 128 posibles
direcciones de esclavos que existen con los 7 bits de direccionamiento,
se presenta la posibilidad de utilizar la combinación reservada 11110XX,
la cual nos permitirá realizar un direccionamiento de 10 bits que abarcará
muchas más posibilidades de esclavos.
El direccionamiento de 10 bits no afecta al existente de 7 bits, por
lo que dispositivos de ambos tipos pueden ser conectados al mismo bus.
1.7.1. Definición de los dos bytes que conforman la
dirección.
La combinación reservada 1111OXX forma el primer byte.
De esta combinación los primeros 5 bits indican ai esclavo que se
realiza un direccionamiento de 10 bits y los bits XX son los dos
bits más significativos de la dirección, por lo que los ocho bits de!
segundo byte forman el resto de la dirección. De igual forma que
en el direccionamiento de 7 bits, el octavo bit del primer byíe
determina el sentido de la transmisión, además, debe existir un
bit de reconocimiento después de cada byte.
La secuencia de envío puede observarse en la Figura
1.12 y la secuencia de lectura del esclavo en la Figura 1.13,
destacándose que después de una condición repetida de inicio,
es innecesario el segundo byte de la dirección, ya que con el
primero, el esclavo determina que le están solicitando los datos.
21
11110XX
s DIRECCKMESCLAVA
R/W A1 fflRECCIQH ;ESCLAVA : :
A2
PRIMER ByTE "0" SEGUHDO BVTE
DAT0.1 : A DATO¿ ¿VA ;P
WRITE
DEL MAESTRO ALESCLAVO
DEL ESCLAVO ALMAESTRO
TRANSFERENCIA DE DATOS (H BVTES +RECOHOCIMIEHTO)
A - RECONOCÍMIEHTO CSDA EH BAJO)
A - NO-RECONOCIMIEHTO (SDA E» ALTO)
S« CONDICIÓN DE INICIO
P - COHDIC10H DE PARADA
Figura 1.12. E! maestro transmisor se dirige a! esclavo
receptor con una dirección de 10 bits.
1111DXX 11110XX
SEGUNDO BYTE
D
DEL MívesESCLAVO
DEL ESCLAVO Al.MAESTRO
A - RECONOCIMIENTO (SDA EH BAJO)
T- MO-RECOHOOWÉEHTO (SOA EH ALTO)
s-coMMcioHDEwtcio
P « COHDJOOH I)E PARADA
Sr • COWWCIOH REPETIDA DE IBICKJ
Figura 1.13. E! maestro receptor se dirige a! esclavo emisor y
recibe datos de é!.
1 .8. CARACTERÍSTICAS ELÉCTRICAS.1
Las especificaciones eléctricas para los dispositivos conectados
a! bus I2C y las características dinámicas de las líneas del bus son dadas
en la tabla 1.2 y 1.3 (Al fina! del numeral).
Los dispositivos del bus PC con niveles de entrada fijos de 1.5 V
y 3 V pueden tener su respectiva fuente de voltaje, pero las resistencias
pull-up deben conectarse a una fuente de 5 V± 10% (vea la figura 1.14).
Si los niveles de entrada de estos dispositivos son comunes para todos,
se puede utilizar una única fuente VDD, a la cual se conectan también !as
resistencias pull-up (Vea la figura 1.15).
Si los dispositivos se encuentran mezclados, es decir, unos con
fuentes independientes y otros con una misma fuente, al añadir más
dispositivos posteriormente, se recomienda conectarlos a la fuente fija
común de 5 V± 10%, considerando las resistencias pull-up conectadas a
las líneas SDA y SCL (Vea la figura 1.16).
Los niveles de entrada son definidos de tal forma que;
- El margen de ruido durante el nivel BAJO sea de máximo 0.1
VDD-
- El margen de ruido durante e! nivel ALTO sea de máximo 0.2
- Pueden utilizarse resistencias en serie (Rs) de 300 n para
evitar los picos de alto voltaje sobre las líneas SDA y SCL
producidos por ejemplo por las radiaciones de un tubo de
rayos catódicos (Vea la figura 1.17),
1 Datos obtenidos del libro INTEGRATED CIRCUITS PATA HANDBOOK de Philips Semiconductor pág. 145-155.
R Rp p
SOA
SCL
NMOS
23
V0D2
I I
" BiCMOS
-Q- 12 V)
VDO3 VDO4
CMOS BIPOLAfí
uactio
Figura 1.14. Dispositivos con niveles de entrada fijos conectados a!
bus !2C.
[nF? "P.
CPA 1
YDD = *«9<.3y
I 1; CMOS CMOS ¡ CMOS CMOS j
[
Figura 1.15. Dispositivos con una fuente de voltaje común conectada
al bus PC.
5V±10%
vDD2t3 ar* davtoe depanderrt (e.g. 12 V)
VDD3
SOA
SCt
NMOS
Figura 1.16. Dispositivos conectados con fuentes comunes y fuentes
con niveles de entrada fijos en el bus I2C.
«s
vDO
De vi ce
< ,1
«s
VDO
De vi ce
i «*•\p < í «P;*
Figura 1.17. Resistencias en serie (Rs) para protección de picos de
alto voltaje.
25
1 K 1 Valores máximos y mínimos de las resistencia Rp y Rs.
Tanto en el modo estándar como en el modo rápido, los
valores de las resistencia Rp y Rs dependen de los siguientes
parámetros :
1) Fuente de voltaje.
2) Capacitancia del bus.
3) Número de dispositivos conectados (corriente de entrada +
corriente de fuga)
Estos valores pueden ser estimados con la ayuda de los
gráficos que se encuentran en las figuras 1.18, 1.19 ,1.20, 1.21.
6MÍNIMOVALOR DERP (K OHM)
5
4
3
2
1
/,
/X
R
/
S
s-u
f
s**' 'MAX. RS
/
*
ir —
/j»a— .
o •"-" '4 8 12 16
VDD(V>
1.18. Mínimo valor de Rp en función de la fuente de voltaje,
con Rs como parámetro.
26
10
RP(K OHM)
8
5
4
2
Q
.
¡
1 ' /
/tí VDD= 2.5*1
////
/r
/f~
Jf
s
i
/\/\/10 V
/Ir
A
y/l
&*15V
V
/2X
400 800 1200 1600
MÁXIMO VALOR DE RS (OHM)
Figura 1.19. Máximo valor de Rs en función de Rp con la
fuente de voltaje como parámetro.
1
20MÁXIMOVALOR DERP(K OHM) 16
12
8
4
1 ,\S
1 @VDD-
x^X
;
i
-0
í*V*•*H**E5- =ite
!
0 10B 200 3PO 4
CAPACITANCIA DEL BUS E
|
0
N(pF)
Figura 1.20. Máximo valor de Rp en función de la capacitancia
del bus para el modo estándar.
27
MÁXIMOVALOR DERP[K OHM) 16
4Ü 80 120 160 200
CORRIENTE TOTAL DE ENTRADA EN EL NIVE ALTO (uA)
Figura 1.21. Corriente tota! de entrada en e! estado ALTO en
función de! máximo valor de Rp, con !a fuente de voitaje
como parámetro.
En el modo rápido (400 kbits/s), las resistencias de Pulí-
up conectadas a! bus deben adaptarse al pequeño tiempo de
subida que se requiere en este modo, por lo que pueden
colocarse resistencias Rp estimadas con el gráfico de la Figura
1.22.
28
MÁXIMOVALOR DERP(K ÜHM5
7'5
4.5
3.0
1.5
100 200 300 400
CAPACITANCIA DEL BUS EN (pF)
Figura 1.22. Máximo valor de Rp en función de la capacitancia
del bus para el modo rápido.
Paremeter-
LOW levsl InpUt voltage:
fíxed input levéis
VDD-re!at9d inpuí levéis
HIGH tevsl inpui vohage;
ííxed input levéis
VpD-relatQd iiipui levéis
HystBFesís of Schmitt tngg&r inputs:
fix*d iopoi levóte
VDD-mfatad input levéis
Pulse widih oí spikes whlch must be
supptessed by tíie inpui lili r
LOW lave) output vodage (open drain or
opón col(ector):
at 3 mA sink current
ai 6 mA sir* current
OjtputfaJ! time from VIH m¡ft to V1LfMJC with
a bus capacítanos iraní 10 pF to ¿00 pF:
withupto3mAslnkcajrreníatVoL, .
w'rth up tu 6 mA sir* cuir«nt at VQ^
Input currant each I/O pin with an ¡nput
voltage betweeo 0.4 V and 0.9VDDma)(
Capaciíance for each \/O pin
Symbol
V1L
Vw
V
(SP
VOLt
Vcx^
ÍOF
'i
q
standard- moda devices
Min.
-0,5
' -0.5
. 3.0
0.7VOD
rifa
n/a
n/a
0
nte
-n/a
-10
.
Max
1.5
O-SV^
ttj
*"
n/a
n/ñ
n/a
0.4
n/a
25021
n/a
10
10
fasí-mode devlces
Mln.
-0.5
-O.S
3.0
0-TV^
'0.2 '
O.D5VDD
0
a0
20*0.1Ct)al
20 + 0.lC«
^O3!
• -
Max.
1
0.37^
-D
*D
-
-
50
0.4
0.6
250
250^
1Q3*
ÍO
Unit
V
V
V
ns
V
ns
jiA
PF
Tabla 1.2. Características eléctricas de los dispositivos conectados
al bus.
30
Pararneter
SCL dock fraqusney
Sus free b'me betwaen e STOP and STARTcoodiíJon
Hold time (repeated) STARTcondition. Afterthis period,
the tírst clock pulso \$ generaíed
LOW period of íne SCL cfock
HIGH periodo! the SCLdoc*
Sel-up lime íor a repeated START conrfition
Data hold time:
forCBUS compatible mastej-s (Sñe NOTE. Sec8oo8.1.3)
for laC-bus devíces
Data.set-up lime
Rise time of botti SDA and SCL signáis
Fall urna oí boih SDA and SGL signáis
Sst-up ame for STOP concJífion
CapaciOve load ior sach bu& lino
Symbol
^SCL
^BUF
^DtsrA
*UQVf
^KSH
*SU;STA
ÍHDÍÍAT
VT^DAT
Ifi
V
^U:STO
c*
Stantíard-modB
l*C-bus'
M¡n,
0
4.7
-4.0
4.7
4.0
4.7
S.O
0«
250
-
-
4.0
-
Max.
100
-
'
-
-
-
-
-
1000
300
-400
Fast-mode
í2C-bus
Min.
0
13
O.S
1.3
0.6
0,6
O1'
1003'
ao-f0.1 q/>
20 -fMC¿*
0.6
-
Max
40b '
-•
-• -
- •
0.9a
-
300
300
400
Un'rt
kHz
US
n&
K5
MS
(15
MS
Ms
ns
ns
ns
ps
pF
L-J
Tabla 1.3. Características dinámicas de las líneas SDA y SCL
del bus.
31
CAPITULO II
EL MICROCONTROLADOR PIC16C57
2.1. ARQUITECTURA.
El alto rendimiento que posee el microcontrolador P1C16C57
puede ser atribuido a su arquitectura, cuyas características son
comúnmente encontradas en los microcontroladores con tecnología
RISC. Para empezar este microcontrolador utiliza una arquitectura
"Harvard" en la cual el acceso al programa y a los datos se hace por
buses separados, a diferencia *de la tradicional arquitectura, en ia que
programa y datos son colocados en el mismo bus. Esta característica
permite que las instrucciones tengan un tamaño diferente a 8 bits,
consiguiéndose con esto ia reducción de éstas a una sola palabra como
en este caso, en que el tamaño de las instrucciones es de 12 bits y se
ejecutan en un solo ciclo de máquina, excepto cuando se producen saltos
en el programa.
Algunos de los elementos más importantes que conforman el
microcontrolador PIC16C57 son:
32
Una ALU (Unidad aritmética lógica) de 8 bits que permite las
funciones aritméticas y lógicas entre el registro de trabajo (w) y cualquier
registro de datos.
Un registro de trabajo W, que es una localidad sin dirección de 8
bits utilizada por la ALU para sus operaciones. Dependiendo de estas
operaciones la ALU puede afectar los valores de los bits "Carry" (C),
"Digit Carry" (DC) y "Zero" (Z), los cuales se encuentran dentro de!
registro especial STATUS que se tratará en el numeral 2.5.1.
Posee una memoria de programa interna de 2K x 12 que se
encuentra dividida en 4 páginas y una memoria SRAM de 72 bytes
dividida en 4 bancos.
Un reloj/contador en tiempo real de 8 bits (TimerO) con escala
programable.
Sistemas de re-inicio como el "Power On Reset" (POR), "Device
ResetTimer" (DRT) y "Watchdog Timer" (WDT), el cual posee su propio
oscilador RC para hacer confiable su operación.
En la figura 2.1 se muestra un diagrama de bloques en el que se
representa totalmente su estructura interna.
9-11
{28 PÍOOevícsaOnly)
Figura 2.1. Arquitectura interna de! PIC16C57.
2.2. DESCRIPCIÓN DE LOS PINES.
En la figura 2.2 se encuentra el diagrama de pines del
microcontrolador y en la tabla 2.1 se realiza la descripción de todos ellos.
PD1P, SOIC,
TDCKI -
VDD
N/C
N/C
RAO"
RA1
RA2"
RAE"
RS1 -
Hoü -
neo •*
Windoi
te-fff L
c
E
« * r^ ^ L
^ te n^ + u
* ^r^rn'
ved
2
3
4
5
6
7
8
9
10
11
12
13
14
CERO!)
P
IC16C
57r
p
28.
27
26
25
24
23
22
21
20
19
19
17
16
15
"~| -^ M i pA/pp
~| OSC1/CLKIN
J ^ OSC2/CLKOÜT
^) ^ ta RCT
^] ^ RC6
~~| ^ ^ RC5
~~| -« ^- RC3
~| ^ ^ RC1
~~| 4 Ir RCO
~~| -^ e^ RB7
~~| •+ to- RB6
~~| ^ » RS5
Figura 2.1. Diagrama de pines de! microcontrolador 16C57.
Nombre
RAORA1RA2RASRBORB1RB2RB3RB4RB5RB6RB7
RCGRC1RC2RC3RC4RC5RC6RC7
TOCKI
MCLR/Vpp
OSC1/CLKINOSC2/
CLKOUT
VDD
VSSN/C
Pin
N.
678910111213141516171819202122232425
1
28
27
26
2
43,5
TipoE/S/A
E/SE/SE/SE/SE/SE/SE/SE/SE/SE/SE/SE/S
E/SE/SE/SE/SE/SE/SE/SE/SE
E
E
/~\
AA
—
Nivelesde
entradaTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLTTLST
ST
ST
———
Descripción
Puerto A bl-dlrecclonal.
Puerto B bi-direccional.
Puerto C bi-cüreccionaí.
"Clock input ío Timer 0", Entrada deltlmer 0. Si no es utilizada, deberíaser colocada a VDD o VSS con el finde reducir el consumo de corriente."Master clear (reset)". Este pin seutiliza para el reset con un 0 lógico,además no debe colocarse en él unvoltaje mayor a VDD para evitaringresar a! modo de programación.Entrada del oscilador/ Entrada de laseñal externa de reloj.Salida del oscilador/ Salida de laseñal externa de relojFuente de alimentación positiva.Referencia de tierra.No son utilizados.
Tabla 2.1. Descripción de !os pines de! microcontroiador 16C57.
36
E= Entrada, S= Salida, E/S= Entrada/Salida
A= Fuente de alimentación, TTL= Nivel TTL
- No utilizado, ST= Entrada Schmitt Trigger
37
2.3. SISTEMA DE RELOJ Y FLUJO DE INSTRUCCIONES.
La entrada de reloj (QSC1/CLKIN pin) se divide internamente
para cuatro, generando cuatro nuevas señales de reloj ilamadas Q1, Q2,
Q3, Q4. Internamente el contador de programa (PC) se incrementa en Q1
y las instrucciones son ejecutadas en Q4, es decir que la decodificación y
ejecución de las instrucciones dura desde Q1 hasta Q4. Esto puede
observarse en ia figura 2.3.
Un ciclo de instrucción consiste en cuatro ciclos Q (Q1, Q2, Q3 y
Q4), de esta manera en Q1 se mantiene dicha instrucción en el !R
(Instrucción Register), posteriormente el dato es ieído en Q2 (lectura del
operando) y el resultado es escrito en Q4 en el registro de destino.
Cada instrucción es efectivamente ejecutada en un ciclo, pero si
la instrucción causa que el contador de programa cambie (como por
ejemplo la instrucción GOTO), entonces se requieren de dos ciclos para
completar la instrucción.
i Ql I 02 | Q3 j Q4 i Ql j 02
OSC1 \> i I \ \J \__
O1 P ^ . ^02 | í v
Q3 , / \U j, /
Ipr: i PCr [
OS^^LKOUT \(BCmads) j
' ' RriohlNSTÍPCl1 Effi£íftelKST(HC=l)
1
03 | Q4
r-v_r-\
i S
\.,f. PC
,
í v
Q1
r-\r •
41 X
Petó) !NST pSC*l)EtóCüíft 1 h*?T j PC 1
i
Q2
^~Y_J
^
1
PC
03 | Q4
^^L_T~^_J
1 > — i»2
Fefcf) If-lSr IPOrJZlEüñtlli» ¡fiST iPut-lJ
1I Irl44ntf? f™«
ctaA1
Figura 2.3. Ciclo de Reloj y de Instrucción.
38
2.4. ORGANIZACIÓN DE LA MEMORIA.
2.4.1. Memoria de programa.
E! PIC16C57 tiene un contador de programa (PC) de 11
bits, capaz de dirigir 2K x 12 localidades de memoria de
programa (figura 2.4), es decir desde QQOH hasta 7FFH. Esta
memoria de programa se divide en cuatro páginas, la pagina O
desde OOOH hasta 1FFH, la página 1 desde 200H hasta 3FFH, la
página 2 desde 400H hasta 5FFH y la página 3 desde 600H
hasta 7FFH, siendo la localidad de "reset" la dirección 7FFH.
ir 1
PC<10iO>ft 1V
-
O
^afu*"W
—
:
4J? ^StacK Levei 1Síack Leveí 2
On-chip PrograrnMemory (Page 0} —
On-chip PragrarnMemory (Page 1) —
Qn-chip PrograTiMemory (Pags 2} —
On-chip PrograrnMemory (Paga 3} —
Reset Vector
OOOh
OFFh100h
1FFH2Qüh
2FFh300h
3FFh400h
4FFh500h
5FFh600h
?00h
7FFh
Figura 2.4. Mapa de !a memoria de programa.
39
2.4.2. Memoria de datos.
La memoria de datos se compone de registros o bytes de
RAM, los cuales se dividen en registros especiales y registros de
propósito general. Los registros especiales incluyen el registro
TMRO (timer 0), el contador de programa (PC), el registro
STATUS, ios registros de puertos de E/S y el registro de
selección (FSR), Los registros de propósito general son utilizados
para datos y control de información de acuerdo a las
instrucciones y son editados directa o indirectamente a través del
registro de selección (FSR).
La memoria de datos se divide en cuatro bancos de
memoria, los cuales contienen en total 72 registros de propósito
general y 8 especiales divididos de la siguiente manera;
El banco O contiene las localidades desde OOH hasta
1FH, ocupando los registros especiales las localidades desde
OOH hasta la 07H, el banco 1 contiene las localidades desde la
30H hasta la 3FH, el banco 2 desde la 50H hasta la 5FH y el
banco 3 desde la 70H hasta la 7FH, tomando en cuenta que las
16 primeras localidades de los bancos 1 (20H a 2FH), 2 (40H a
4FH) y 3 (60H a 6FH) que no se encuentran incluidas siempre
retornan al banco 1, es decir que físicamente no existen. El mapa
de memoria de datos se encuentra en la figura 2.5,
40
FSR<S:5>-
File Addrees
1 ooh
' 01h
02h
03h
04h
05h
06h
07h
oeh
OFh
— »- OD oí 10 n
INDFW
TMRQ
PCL
STATUS
FSR
PORTA
PORTi
PORTO
GeneralPurposeRegister
1QhGenera!PurposeRegisteis
1Fh
20h
Ackadc
2Fti30h
GenemJPurposeRegisteis
3rh
40h
iresses map backresses ín Bank 0.
4Fh50h
GeneralPUfp039
Regteters
5Fh
60h
10
6Fh70h
GeneralPurposeRegisters
7rh
BankO Bankl Bank 2 Bank 3
Figura 2.5. Mapa de la memoria de datos.
41
2.5 REGISTROS ESPECIALES.
2.5.1. Registro STATUS.
Este registro contiene el estado aritmético de la "ALU", el
estado del "reset" y los bits que permiten pasar de una página a
otra en la memoria de programa, su dirección es la 03H.
Este registro puede ser el destino de cualquier instrucción
como sucede con los registros de propósito general, pero si la
instrucción afecta a los bits Z, DC o C, entonces la escritura de
estos tres bits es desactivada, además se debe tomar en cuenta
que los bits TO y PD son solo de lectura y no se puede escribir
en ellos, entonces el resultado de una instrucción que tiene al
registro STATUS como destino puede ser totalmente diferente al
valor real, por lo que se recomienda utilizar instrucciones que
operen individualmente con cada bit.
En la tabla 2.2 podemos observar la descripción de todos
los bits que componen el registro STATUS.
42
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W~x R/W-xPA2.;: PA1 PAO TO PD Z DC CDU7
bit 7:bit 6-5:
bit 4;
bit3;
bit 2:
bitl:
bitO:
1 bitO
PA2: Este bit no es utilizadoPA1:PAO: Bits para seleccionar la página de lamemoria de programa,00=PáginaO(OOOH-1FFH)01^Páa¡na1 (200H-3FFH)10=Página2(400H-5FFH)11=Pég¡na3(600H-7FFH)TO: bitTime-outI^Después de un Power-up reset, una instrucciónCLRWDT o una instrucción SLEEP.0=Cuando un time-out ha ocurrido en el WDT.PD: bit Power-down1=Después de un Power-up reset o por la instrucciónCLRWDT.0=Por la ejecución de la instrucción SLEEP.Z: bit Zero1=EI resultado de una operación aritmética o lógica escero.0=E! resultado de una operación aritmética o lógica noes cero.DC: bit Digit Carry (Para instrucciones ADDWF ySUBWF)ADDWF1=3e produjo un carry en e! bit 4 del resultado.0=No se produjo un carry en el bit 4 del resultado.SUBWF1=Se produjo un "llevo" en el bit 4 del resultado.0=No se produjo un "llevo" en el bit 4 del resultado.C: Se utiliza como el bit Carry o "llevo" para lasinstrucciones ADDWF, SUBWF, RRF y RLF.RRF o RLFCarga el bit menos significativo o el más significativorespectivamente.
Tabla 2.2. Descripción de! registro STATUS.
43
2.5.2. Registro OPTION.
Este es un registro de 6 bits, que únicamente permite la
operación de escritura. Contiene varios bits de control para
configurar el Timer O y el WDT (Tabla 2.3). Al ejecutar la
instrucción OPTION, el contenido del registro de trabajo W será
transferido al registro OPTION, sin utilizar una dirección
específica.
U-0 U-0 W-1 W-1 W-1 W-1 W-1 W-1TOCS TOSE PSA PS2 PS1 PSO
Bit?
bit 7-6:bit5:
bit 4:
bit 3:
bit 2-0
4 1 biíO
No ImplementadoTOCS: bit de selección de la fuente para e! Timer O1=Utiliza la transición sobre el pin TOCKl.0=Utiliza el ciclo interno de instrucción.TOSE: Selección de la transición para el timer O1=lncrementa en una transición de ALTO a BAJOsobre el pin TOCKl.0-lncrementa en una transición de BAJO a ALTOsobre el pin TOCKl.PSA: bit para asignar la escala1-Escala asignada al WDT.0=Escafa asignada al Timer 0.PS2:PSO: bits para seleccionar el rango de laescala.VALOR RANGO TIMER O RANGO WDT000 1:2 1:1001 1:4 1:2010 1:8 1:4011 1:16 1:8100 1:32 1:16101 1:64 1:32110 1;128 1:64111 1:256 1:128
Tabla 2.3. Descripción de! registro OPTION.
44
2.5.3. Contador de programa (PC).
El contador de programa (PC) contiene la dirección de la
siguiente instrucción a ser ejecutada en el programa, por lo tanto
el valor del PC es incrementado en uno después de cada ciclo de
instrucción, excepto cuando existe un salto en el programa. Su
dirección es la 02H.
Una instrucción GOTO, proporciona los nueve bits menos
significativos <8:0> del PC y los dos más significativos <10:9>
son proporcionados por los bits PA1 y PAO del registro STATUS
(figura 2.6), por lo que se debe tener muy en cuenta durante la
programación la página a la cual se desea realizar el salto, con el
fin de seleccionarla primero con la ayuda de estos bits.
Una instrucción CALL, proporciona los ocho bits menos
significativos <7;0> al PC, manteniéndose el bit <8> del PC
siempre en "O" lógico y los dos más significativos <10;9> son
proporcionados por ios bits PA1 y PAO dei registro STATUS
(figura 2.6), por lo que además de las consideraciones antes
mencionadas tomaremos en cuenta que, si el bit <8> siempre
permanece en "O" lógico, significa que se tiene acceso
únicamente a la mitad superior de cada página para esta
instrucción, por lo que el destino debe estar ubicado únicamente
en los primeros 512 bytes de cada página.
En la instrucción RETLW e! PC es cargado con el
contenido del "Top Of Stack" (TOS), el cual tiene la misma
dimensión que el PC (11 bits) pero posee solamente dos niveles
de almacenamiento, por lo que no podrán hacerse más de dos
llamadas sucesivas a subrutinas.
45
GOTO ¡nglruclíon
10 s a 7 oPC
/
ay,
PCL
í " 1fInstruction Word
''PA1:PAO0
STATUS
C&TJ. cr Modífy PCL InstructSon
10 9 8 7 0
PC/
2 ,7 '
PCL
i " íiInstoicíiofj Word
Reeet to e01
^PA1:PAO0
STATUS
Figura 2.6. Efectos de las instrucciones GOTO y CALL sobre
e! Contador de programa (PC).
2.5.4. Registros de acceso directo e indirecto (INDF y FSR).
El registro FSR tiene la dirección 04H y se utiliza para
acceder directamente a cualquiera de los registros de datos.
El registro !NDF no se encuentra implementado
físicamente, simplemente al utilizarlo en una instrucción, la
llamada se dirige a! registro cuya dirección se encuentra
46
contenida en el registro FSR, lográndose con esto el
direccionamiento indirecto. Por ejemplo:
* El registro 05 contiene el valor 10H
» El registro 06 contiene el valor OAH
» Cargo el valor 05 en el registro FSR
* Si leo el registro INDF el resultado será 10H
* Incremento el valor del registro FSR en uno (FSR-06)
* Si leo el registro ÍNDF el resultado será OAH
Al realizar tanto e! direccionamiento directo como
indirecto, los cinco bits menos significativos de! registro FSR
<4:Q> contienen la dirección de la localidad de memoria de datos
a la que se desea acceder, mientras que ios bits <6:5> del mismo
registro contienen el banco en el cual se encuentra esta localidad
de memoria (OQ=banco O, 01=banco 1, 10=banco 2, 11=banco 3).
Observe la figura 2.7.
Dlrtct Addraulng
4 (opeada) O
bank s&lsct locatton select
Dala DRi
Qí, 10
BanKi Bank? Banks
6 5 4 (FSH) O
Iban*
Iñl
A/ Addiesssa map backV to sddrssses in Bank 0.
\h
BFn TFh
tocatíon satect
Figura 2.7. Acceso directo e indirecto.
47
2.5.5. Registros de Entrada / Salida.
En los puertos de! microcontro!ador se pueden realizar
operaciones de lectura o escritura como con cualquier otro
registro dentro de! programa, pero debe tenerse en cuenta que la
lectura de! puerto se hace directamente a! pin, sin importar si éste
está definido como entrada o salida.
Para definir un pin como entrada o salida se utiliza la
instrucción TRIS, ía cual descarga sobre el driver de control del
pin el contenido de! registro de trabajo W. Un "1" lógico
descargado en el correspondiente driver de un pin, coloca a éste
en alta impedancia, es decir en un modo de entrada y un "O"
lógico pasa el contenido de! "Data Latch" directamente hacia e!
pin, es decir se encuentra en modo de salida. Es importante
resaltar que una operación de lectura no lee el "Data Latch" sino
directamente el pin.
En la figura 2.8 se puede observar el circuito equivalente
interno para cada pin.
48
DataBus
VDD
RDPqrt
Note 111/O pins have protection díodes to VOD and Vss.
Figura 2.8. Circuito equivalente para cada pin.
Deben tomarse algunas consideraciones en la
programación de los puertos, las cuales se describen a
continuación;
Algunas instrucciones que operan como lectura de los
pines, también realizan internamente operaciones de escritura
como por ejemplo las instrucciones BCF y BSF que colocan un
"O" lógico o un "1" lógico respectivamente en un pin determinado.
Estas instrucciones leen el puerto completo, ejecutan la
49
operación del bit y re-escriben el resultado, por lo que se debe
tener precaución en e! caso de utilizar uno o más bits de este
puerto como Entradas y Salidas. Para explicar mejor esta
característica, utilizaremos e! siguiente ejemplo:
Supongamos que se realiza una operación BSF sobre e!
bit <5> de! puerto B, lo cual causará que ios ocho bits de! puerto
sean leídos y en e! bit 5 se coloque un "1" lógico. Después de
este proceso se re-escribirá e! resultado en el latch de salida.
Entonces, si otro pin de! puerto (por ejemplo el pin 0) también
estaba definido como entrada, ese dato fue leído y colocado en
el latch de salida del pin O, sobre-escribiendo el dato anterior. De
esta manera si e! usuario coloca al pin O en modo de salida el
dato será desconocido, por lo que en este caso lo aconsejable
sería re-escribir e! dato en el pin O antes de sacarlo.
Otra consideración a tomar en cuenta es que la escritura
en un puerto ocurre a! final de! ciclo de instrucción y requiere de
un pequeño intervalo de tiempo para estabilizarse en éste, por lo
que se debe tener precaución a! realizar una operación de
escritura seguida inmediatamente de una operación de lectura, ya
que e! dato puede ser erróneo, para evitar esto se recomienda
separar las instrucciones con una instrucción NOP. Esto puede
observarse en la figura 2.9.
50
Instructtonfetched
RB7:RBO
InstrucUonexecuted
Q1| Q2 1 Q3|Q4
PC
MQVWFPQBTB
Q1 1 Q2| Q3| Q4
X_ PC + 1
MOVFPORTB,W
Port pinwritten here
MOVWFPORTTB(WrftetoPORTB)
01
X
V
Q2 1 Q3|Q4
PC + 2
NOP
Porí pinjampled here
*
MOVFPORTB.W(ReadPORTB)
Q1 1 Q2| Q3| Q4
X PC + 3
NOP
NOP
Figura 2.9. Operaciones de lectura y escritura sucesivas.
2.5.6 Módulo TIMERO y registro TMRO.
El TimerO tiene las siguientes características:
* Un registro de 8 bits (TMRO) con posibilidad de escribir
en él o leerlo.
« Escala programable hasta 1:256.
• Tiene la posibilidad de seleccionarse la utilización de
una fuente externa o interna de reloj, y en caso de
utilizar la fuente externa, seleccionar, si el conteo se
realiza en la transición de ALTO a BAJO o de BAJO a
ALTO.
El TimerO se selecciona colocando un "O" lógico en el bit
<5> del registro OPTION y podemos observar el diagrama de
bloques que lo conforma en la figura 2.10. Cuando se escribe el
dato en el registro TMRO el incremento es inhibido durante dos
51
ciclos de instrucción, lo cual se puede ver en la figura 2.11 con la
escala 1:1 y en ia figura 2.12 con la escala 1:2.
TÓCKI
Dstabus
TQSEÍ'l
PrograrmabjePtBscalen2'
\PSom
TDCSW
Figura 2.10. Diagrama de bloques del TimerO.
PCfPwfrfm
Bu*"
.MI-PG-1
.0 !_,
Cu] QZlCül ÜiiQl 1 021 Olí CHi
PC 1 PC41
MOVtVFTVF» ' HOTFTOB3.W
1Tfr»l y , Tl>»2 X
i t««**
1fW¿ f POKJ
1M3VFTMRO.W HDYFTWHO.W
i
i
NI ti ,1 , NTD -f
LJUradrte KT¡3 :¿*Jfi NTO
: iPDH í PC+6 1 PCt*
uavr-nflO-W • HOVFTWBO.W 't ii i
NTQ X , NTQ*i ,( , tfítU'i X
t i t i tfswíartTO reodEMOfl ' rMtteNTQt-2
Figura 2.11. TimerO con la escala 1:1.
PC{PiogwnCettMar]
InmoaíOTEPKUN
^G-T I PQ Hi PCv
r|C0|CH
KOVWFTtfflD 'HOVFlMRD.lv
Ot|C2 00 <H
_E£jg_
NTO
ñeaJTUF»
_psy ::?_.". pgjj r PCUÍ
t i t i tReftJTWRP |
Figura 2.12. TimerO con la escala 1:2.
52
La escala puede ser usada tanto por el TimerO como por
e! WDT, pero no por los dos, por lo cual el bit <3> del registro
OPTION permite asignarla a uno de los dos.
2.6. CARACTERÍSTICAS ESPECIALES DEL CPU.
En el microcontrolador PIC16C57 /JW existe la posibilidad de
seleccionar el oscilador, utilizando e! byte de configuración, al cual se
tiene acceso únicamente durante la descarga del programa en la
memoria. Para esto existen cuatro opciones (Tabla 2.4):
*LP (Low Power Crystal), el cua! es utilizado para frecuencias no
mayores a 32 KHz.
*XT (Crystal / Resonator), utilizado para frecuencias entre 100
KHz y 4 MHz.
* HS (Hígh Speed), utilizado en frecuencias desde 4MHz a
20MHz.
» RC (Resistor / Capacitor), Operación con circuito RC.
CP WDTE FOSC1 FOSCObit11
bit 11-4:bit3:
bit 2:
bit 1-0:
10 9 8 7 6 5 4 1 bitO
No ImplementadoCP: bit del código de protección.1=Código de protección desactivado.0=Código de protección activado.WDT: bit de habilitación del WDT.1=WDT habilitado.Q=WDT desactivado.FOSC1: FOSCO: bits de selección del oscilador.11= oscilador RC10= oscilador HS01= oscilador XT00= oscilador LP
Tabla 2.4. Byte de configuración.
54
Este microcontrolador también puede re-iniciarse de varias
formas (Vea la tabla 2.5 para observar los valores que adoptan ios
registros después de ios diferentes tipos de re-inicio):
«"Power On Reset" (POR), el cua! entra en funcionamiento a!
alimentar al microcontrolador con la fuente, únicamente
colocando el pin MCLRA/pp a VDD o con un simple circuito
externo en caso de que la fuente sea muy lenta para conseguir
e! voltaje fina! VDD {figura 2.13).
VDD VDD
MCLR
PIC16C5X
Figura 2.13. Circuito externo de! Power On Reset (POR) para fuentes
lentas.
>"Device Reset Tímer" (DRT), que provee un tiempo fijo de 18 ms
después de que el pin MCLRA/pp ha llegado al voltaje VDD con
el fin de esperar ia estabilización de todos los sistemas, es decir
que para el re-inicio manual no es necesario un circuito RC en
la mayoría de los casos.
55
'Watchdog Timer (WDT), que no requiere ningún circuito
externo, debido a que posee su propio oscilador RC interno, es
decir que si el oscilador externo es desconectado (por ejemplo
en la instrucción SLEEP), el WDT sigue activado. El WDT es
seleccionado en el bit de configuración, al cual se tiene acceso
únicamente al descargar el programa en la memoria interna. E!
WDT tiene un período nominal de 18 ms cuando la escala es
1:1 y puede variar hasta 2,3 segundos cuando la escala es
1:128.
R»gist«rWTRISOPTIONINDF7MROPCL[l]
STATUS11'FSRPORTAPORTEPORTC'3'General Purposareglster files
AddTOBN/AN/AN/AOOh01 h02h03h
04h05hÜ6h07h
06-7R1
Pow»r-0n R«s«tJ03OC JOOCX
lili 1111
"11 1111
JODOC XXXX
KKXX XXXX
mi iiaiOODl IMSÍ
IXKX. »DDC
xxxxJQDCC JOOOC
XXXX XXXX
JODCC XXXX
«OLRorWDTRft9fttUUñlíl UIJUU
1111 1111"11 1111
UUUU UJJUT1
UUUU UUUU
1111 1111000<í qUUU
luatu uuuuUIJUU
UUUU UUUU
UUUU UUUU
UUUU UUUU
u=no cambia x=desconocido
Tabla 2.5. Condiciones de re-inicio para todos los registros.
El microcontrolador también tiene la posibilidad de colocarse en
el modo SLEEP, el cual fue diseñado para ofrecer una muy baja corriente
de consumo en casos en que el microcontrolador no tiene tareas que
hacer y puede ser "despertado" de este modo con un re-inicio manual o
con e! WDT.
56
Dentro del byte de configuración (Tabla 2.4), existe también la
posibilidad de activar el código de protección que no permite leer la
memoria del microcontrolador a menos de ser ingresada la clave que es
almacenada en cuatro localidades de memoria a las cuales también se
tiene acceso únicamente en modo de programación.
57
2.7. INSTRUCCIONES
Las instrucciones del PIC16C57 son palabras de 12 bits,
divididas en un código que especifica el tipo de instrucción y uno o más
operadores que señalan la acción que debe realizar dicha instrucción.
Todas las instrucciones se describen detalladamente en el Anexo
1.
58
2.8. CARACTERÍSTICAS ELÉCTRICAS.
Rangos Máximos
Temperatura de almacenamiento
Temperatura en funcionamiento
Voltaje VDD con respecto a VSS
Voltaje sobre MCLR con respecto a VSS
Voltaje sobre todos los pines con respecto a VSS
Potencia total de disipación
Máxima corriente de salida en e! pin VSS
Máxima corriente de entrada en el pin VDD
Máxima corriente de entrada sobre el pin TOCKI
Máxima corriente de salida de cualquier pin E/S
~65°Ca+150°C
~55°Ca+125°C
O a +7,5 V
Oa+14V
-0,6 a (VDD+0,6) V
800 mW
150mA
50 mA
±500
20 mA
59
CAPITULO
El programa MPLAB es una herramienta introducida por
MICROCHIP, que básicamente permite la edición, ensamblaje y
simulación de programas para todos los microcontroladores de la familia
PIC16/17.
3.1. PROCESO BÁSICO PARA CREAR UN PROYECTO.
Para un rápido entendimiento del programa, se explicará a
continuación de una forma básica y ejemplificada los componentes más
importantes de! programa que permitirán completar un proyecto, tomando
como modelo el programa desarrollado en la presente tesis de grado.
Con esta introducción, el usuario podrá desarrollar cualquier proyecto,
aunque si requiere detalles, en la sección 3.3 se describirá la función de
cada uno de los elementos del menú principal.
60
3.1.1. Creación del archivo fuente.
Dentro del menú "File" se hace un "click" en "Open
Source" con el fin de abrir la ventana de edición, en ésta se
escribirá el programa principal, que debe ser grabado con la
extensión (*.ASM).
Existen algunos elementos básicos que deben tener
todos los archivos fuentes;
• Un encabezado en el cual se comente algo respecto al archivo
y su función, además, son importantes los comentarios en las
líneas de programación.
• La línea de definición del procesador, en la cual se especifica
el microcontrolador de trabajo. Para esto utilizamos el
comando LIST. Por ejemplo LIST P^16C57.
• Directivas como EQU, CONSTANT, etc. las cuales no son
transformadas directamente a códigos de máquina, sino que
permiten al ensamblador controlar los datos de entrada, salida
y localización de los mismos dentro de la memoria RAM.
• El cuerpo del programa constituido por las instrucciones.
En la Figura 3.1 se puede observar la parte inicial del
archivo fuente realizado en la presente tesis de grado, cuyo
"Path" completo es C:\MPLAB\TESIS\TESIS.ASM.
61
PROGRflMfl PftRfl Lft COHUHICftCIOH ENTRE EL HICROCOHTROLflDOR PIC 16C57Y TRES MEHORIfiS, DOS DE ELLAS CON PROTOCOLO I2C (21C02fl, ZtCBZft)Y UNfi COH PROTOCOLO SERIftL (93HftM).
Lfl CONUNICfiCIOH PUEDE REALIZARSE HflHUALHENTE POR HEDIÓ DEL MODULO DE COHUHICftCIOHO UTILIZfiHDQ EL PUERTfl SERIftL DE UH COHPUTftDOR V EL PROCRRMflDE COHTROL.
list P-1ÓC57, f-inhxBm ; SELECCIÓN DEL HICROCOHTROLflDOR
; ETIQUETAS (JUE IHDICfiN Lft DIRECCIÓN DE LOS REGISTROS UTILIZADOS EN EL; PROCRflMft
; BANCO O
equ
equ 1f ; DflTO DE SflLI&A 8; Dctauo dato a ser enuiado a las; menorías.
equ 1f ; CONTADOR; aleta cena la tarea que; continúa después de presionar una; tecla en la tarjeta.
equ 1e ; DflTO DE SflLIDfl 7; séptimo dato a ser enuiado a las; nenorias.
; FUNCIÓN DEL HSUflRIO
Figura 3.1. Archivo fuente.
3.1.2. Creación del proyecto.
Haga un "Click" en "New Project" dentro del menú
"Projecf para abrir la ventana de diálogo que permitirá ingresar el
nuevo proyecto. En esta ventana se especifica el disco en el que
se trabajará, el directorio y el nombre del nuevo proyecto (Project
path and ñame), además indica los archivos que se utilizan por
defecto tanto para la barra de herramientas (default tooibar) como
para el mapa de teclado (default key mapping) y permite escoger
las herramientas a utilizarse en el proyecto (Development mode).
Como ejemplo de la creación de un nuevo proyecto se ha
introducido en el campo "Project Path and Ñame" la siguiente
expresión: C:\MPLAB\TESIS\TESIS.PJT (Figura 3.2).
62
INewProject / - /^• '^•" - •-'-'•• - . . . . . - • - ' : : - / ' "-'""' ' / • ' " • ; ' - ' - " . " . " • : \- • ; • ' . " ' - . ; . 'gj3¡
[ Profecl Palh and Ñame:
í' I
¡1ÍÍ
1{ ií iir.,
C:\MPLAB\TESISVTESIS.PJT í " OK: ',
)efauU Toofbar: - - je /Cancel- "
default.tbf
)efault Key Mappíng:
mplab.key
)evelopment Mode: =
MPIAB-SIM Simulator g]^__ ,. 1-J-T-.T-r ___„. ™_. _ _ _ "- r- — -; — • — ' -~
¿ í; ijíornte . ,--
í'
^
Figura 3.2. Ventana para la creación del proyecto.
Luego de hacer un "Click" en el botón "OK" se ingresa
directamente a la ventana de edición del proyecto (Edit Project),
en la cual se asigna el archivo que se desee al proyecto ya
existente.
3.1.3. Asignación del archivo fuente al proyecto.
Ahora como ejemplo se asignará el archivo fuente
TESIS.ASM al proyecto TESIS.PJT, para esto se selecciona
TESIS.ASM del cuadro descrito como "Non-Projects Files"
(Archivos no incluidos en el proyecto) y se realiza un "Click" en el
botón "<=Add" (Añadir), de esta manera se logra incluir el archivo
TESIS.ASM en el proyecto (Figura 3.3), lo cual se confirma al
observar el nombre del archivo en el cuadro descrito como
"Project Files" (Archivos del proyecto). Es importante tomar en
cuenta que los archivos que se incluyen en los proyectos deben
llevar las extensiones *.ASM o *.C.
63
Non-Pro¡ect Frfes: » ^
Figura 3.3. Asignación del archivo fuente al proyecto.
3.1.4. Selección de las herramientas a utilizarse.
Dentro del menú "options" se selecciona "Development
Mode" para determinar si se utilizará únicamente el editor de
programa, el simulador o el emulador. Este último requiere una
tarjeta especial que simula el comportamiento de cualquiera de
los microcontroladores de la familia PIC16/17, por lo que no
forma parte del presente proyecto y en los dos primeros se debe
especificar el procesador con el que se trabajará, porque al
ensamblarse el programa, se compara el procesador declarado
con el comando LIST en el archivo fuente y el procesador
seleccionado en las herramientas, generando un error en caso de
ser diferentes. Si se selecciona "Editor Only" (Editor), el simulador
y el emulador se desactivan, sin embargo se puede ensamblar el
archivo fuente. Con la selección de "MPLAB-SIM Simulator"
(Simulador) a lo anterior se agrega la posibilidad de simular el
programa para corregir posibles errores de programación (figura
3.4).
64
D evelopmeiit Mode
*> Editor Ünly
Processor: PIC1GC57
Procesión RIC1GC57
Figura 3.4. Selección de la herramienta "MPLAB-SIM
Simulator"
3.1.5. Ensamblaje el archivo fuente.
Seleccione "Make Project" de! menú "Project" para
ensamblar el archivo fuente y generar los archivos * COD, *.HEX ,
*.LST y *.ERR (figura 3.5). El archivo *.COD contiene información
simbólica que almacena las condiciones en las que se realizó el
último ensamblaje, de esta manera si no han existido cambios en
el archivo fuente y se trata de ensamblar nuevamente, se
despliega una ventana indicando que no es necesario realizar
dicha operación. El archivo *.HEX contiene los códigos de
máquina que ingresarán a la memoria del procesador. El archivo
*.LST contienen una información completa del archivo fuente con
número de líneas, códigos de máquina y mensajes que alertan al
programador. El archivo *.ERR contiene toda la información de
errores, mensajes y prevenciones que se hace al programador,
tomando en cuenta que cuando existen errores al ensamblar, el
archivo *.HEX no se actualiza, además en el archivo *.ERR, basta
65
hacer doble "Click" donde se indica el error, para que
inmediatamente aparezca la línea del archivo fuente en la que
existe dicho error.
! • '
I Assembling C:\MPl «_ .. j. j _ _ ___ « _!
"~ ""
Command Une: : l!
MPASMWIN /e /!$C^MPLABVTESIS
J J
__Assembling.,.
;f[rZ_r' 32%
Eirors:
, , •Suppiessed.vf ¿,\¡, Messages: " f~
Reporíed
Ássernbledj JLjp™ JLtl_l*,<í-í 4,__ J=1 JJ.J
Figura 3.5. Proceso de ensamblaje del archivo fuente.
*
66
3.2. PROCESO BÁSICO PARA LA SIMULACIÓN
Cuando se ha terminado de ensamblar el programa y no existen
errores en este proceso, se puede iniciar entonces la simulación del
archivo fuente.
3.2.1. Tipos de simulación.
Existen cuatro alternativas para realizar la simulación del
archivo fuente (todas pueden hallarse en el sub-menú "Run" del
menú "Debug");
• Simulación rápida y continua, utilizando el comando "Run"
(F9). Utilizando este comando, la simulación avanza
rápidamente y la única manera de detenerla es con el
comando "Halt" (F5), además mientras está corriendo no se
puede apreciar la actualización de los registros.
• Simulación paso a paso, utilizando el comando "Step" (F7).
Con este comando podemos observar la ejecución de cada
línea de programa, ya que avanza una sola a la vez, además
permite ver la actualización de los registros.
• Simulación paso a paso en el programa principal y ejecución
rápida en las sub-rutinas (CALL), utilizando el comando "Step
Over" (F8). La simulación del programa principal se realiza
paso a paso, igual que en el caso anterior, pero cuando
existe una llamada a sub-rutína con el comando CALL, ésta
se ejecuta de una manera rápida.
67
Simulación continua y lenta, utilizando el comando "Anímate"
(Ctrl F9). Utilizando este comando, la simulación avanza
lentamente y la única manera de detenerla es con el
comando "Halt" (F5), además permite apreciar la
actualización de los registros.
3.2.2. Ventanas de información para la simulación.
Se pueden abrir diferentes ventanas antes de realizar la
simulación, con el fin de observar los cambios que se producen
en los registros de datos, memoria, registros especiales, etc. A
continuación se describe la forma de abrir estas ventanas:
Seleccione "Program Memory" del menú "Window" para
observar el contenido de la memoria de programa, en donde se
especifica la localidad que ocupa cada instrucción y el código de
máquina que genera (figura 3.6).
í
23
-M00035 J0084
- 6 J00857 '0006
- 8 -00879 {0008
10 ¡000911 ÍOOOft12 J000B13 ,;000C1*» JOOOD
000E
0fl5B04C305A30B1C0UC305fl30B47
OB680UC3
0BB705C3
gotorecibo bcf
bsfgoto
enuion bcfbsfgoto
escrib bcfbsfgoto
todose bcfbsfgoto
borra bsfbcfgoto
inicio0x3,0x60x3,0x50x11C0x3,0x60x3,0x5siga1040x3,0x6Ox3,0x5sigal 660x3,0x60x3,8x5Ox1B70x3,0x60x3,0x50X0
Figura 3.6. Memoria de Programa.
68
Seleccione "File Register" del menú "Window" para
desplegar la ventana que contiene toda la información sobre el
contenido de los registros y sus direcciones (figura 3.7).
m Filé? R^rister Window:00 01 02 03 04 05 06 07 08 09 Ofl OB OC OD 0E OF g¡00 EO 00 19 EE 00 00 00 CC 93 15 71 09 F6 CC 15¡gJ23 AB B4 99 54 B6 11 BF FC 88 DB 1D 4C 98 07 D3 p
£E 16 85 C5 2C BE C7 B8 1E 61 A7 8F F7 A2 DO 47 ¡f!_\ __ „„ : „„ : E;#$¡05 ftO 30 46 F3 24 63 4C E2 A8 76 34 88 F8 C5 D5 K
'81 01 DO 14 01 20 7D F4 20 14 5E 04 55 D2 7F F4ftl
0000001000200030004000500063
* 0070
Figura 3.7. Ventana de registros.
Dentro del menú "Window" seleccione "Special function
register" para abrir la ventana que indica el comportamiento de
todos los registros especiales (figura 3.8).
® Special Fuiíction Register \Vindow '-liliWS$&f$SSM!ill!Sr 2jtmrO[ 3 PCí 4 'status
í 5 !fsrt 6 'porta
7Jportb[ 8 porte[ 9 'wi 1 0 |trisa| 11 ;trisbí 12 jtrisc¡ 13 ^option
••BTREO0019EEoe000008BFFFFF3F
•5^1224
025
2380008
15255255
63
Binary Char11100000oooooeoo00011001111011100000000000000000000000000000100000001111
111111111111111100111111 ?
IRÉ7Éilil|
pwSUl>-$&j?
mfel\s%&teteti
L ^ JIa ^ l ^ ^Éar M^ fe a
Figura 3.8. Ventana de registros especiales.
69
Se debe manejar el tamaño y la posición de estas
ventanas para observarlas todas dentro de la pantalla, así se
tendrá una información completa durante la simulación (figura
3.9).
noulw
clrwtris
raoulwoption
clrF
noulwnnuuf
clrf
nsf
'»Kifatiiasaa>¡s*ait3tx*i&J£*i-f*aazíjaHXXiT«i'iiei ITHT- — _ • ' ,,3
8 Íparta \
parta ;
Of - fija la escl; !
Í
status : Horra el rec1!
1 ; inicia el cecont ; |
codcrr : borra el red.•j
Fsr.ppH ; cañóla al be
'U
f^íN
Status;Fsr'portaportbporte
*trisatristetrise;option
01 02 83 O* O? 86 0708 01 1C 80 88 00 QQao oo oo na no no aa
QQ00
p
.aar—oe no ee no 00 oo oo
08 89 Ofl OB flC 00 6E OF00 ID 08 00 80 00 00 00na 00 oo on oo no no aa
00 08 00 00 08 00 00
on OB on 00 ao «e OB
0(3 00 00 80 00 00 00 00
oa oo na no o o oa oo oa
eo 00 DO oa oo ee oa ea
80611C8088
0F00FFFFCF
O9728
1288O8
15O
•¿55ZS5207
Dínarj;00000000•11 «• n0001110818880006000010060BUB0BIH1000888800008111180008080111111111111111111M1111
|lw*
®-.PíOErtJn:Meníoiy Wíádmv -D05B905CB BSD8 65 E
¡OOSF0060
OCB8 inicio002S00*0B0BSBCBFOÜ02
noulwnouufclrutrisnoulfoption
0x80x5
,ESIal£3
mporta
OXF
0061 eubt» cii-f exbBOÚZ0063BOé *DQti?BOU óDOó?0068[0669kiHi
0663OC01
883F006(4OSflllOCÍC083D007F
« f*^ •
clrfBWUlK
8x30X1
pwyuf 0x1 Fclrfbsfnoulwnouufclrf
W91T-/I-1"
_,>~"
OxA0x4.BxSOxC0x1 D0x1 F
?
Figura 3.9. Proceso de simulación con toda la información en
la pantalla.
3.2.3 Simulación del "Reset"
El procesador se puede re-inic¡ar en cualquier momento
dentro de la simulación, utilizando la instrucción "reset" de la
barra de herramientas o seleccionando Debug>Run>Reset con lo
cual se simula un "O" lógico en el pin MCLRVpp del
microcontrolador.
70
3.2.4. Puntos de parada dentro de la simulación.
Cuando se ejecuta la simulación (Debug>Run>Run),
obviamente ésta avanza muy rápido, por lo que se utilizan puntos
de parada dentro del programa, los cuales detienen la simulación
y permiten avanzar paso a paso (Debug>Run>Step) si se desea.
Estos puntos de parada se fijan de la siguiente manera:
Coloque el cursor en la línea en la cual desea que la
simulación se detenga y presione el botón derecho del "mouse".
Aparecerá en la pantalla una pequeña ventana (figura 3.10),
seleccione "Break Point(s)" y observará que el color de la línea
cambia a ROJO, lo cual indica que la simulación deberá
detenerse en la línea posterior a la marca antes descrita. Se
puede seleccionar también el menú "Debug>Break Settings", pero
en este caso las paradas se harán únicamente en las etiquetas,
es decir que no podrán hacerse en las líneas intermedias.
\m- e:\jnwlab\tesis.asmmouwf
clrf
bsf
cont
coderr
Fsr.ppfl
; borra el registro de errores-feÉ
catibía al banco 1 de la RAM
; borra el registro r5.
bcf _^Fsr,pp0 ; cambia aljianco o de la Rflji.
Figura 2.10. Forma de fijar un punto de parada dentro de la
simulación.
71
3.2.5. Simulador de estímulos.
Esta herramienta permite simular estímulos externos al
procesador, como cambios de estado en los pines, en los puertos
o cambios en los registros (Debug>Simulator stimulus). Se
detallará a continuación los dos más importantes:
Estímulo asincrónico (Asynchronous stimulus). Con él
podemos simular señales de entrada e interrupciones externas,
colocando en BAJO, ALTO o generando pulsos sobre los pines
(figura 2.11). Se asigna un estímulo a cada pin y se elige el
estado que se desea en él, con el botón derecho del "mouse" y se
ejecuta en cualquier momento de la simulación, presionando el
botón izquierdo del "mouse31.
f c R A H )^p.
r SÍHn3(PJ
Figura 2.11. Estímulos asincrónicos.
Estímulo sobre el pin en un tiempo pre-determinado (Pin
stimulus). Este estímulo se genera en un pequeño programa
(File>New Source), el cual contiene la información del ciclo de
instrucción (Step) en que se hará presente el estímulo, del pin
afectado y del valor que debe adoptar dicho pin (figura 2.12).
72
step401001010010170
Figura 2.12. Estímulo sobre el pin en un tiempo pre-
determinado.
3.3. OPCIONES DEL MENÚ PRINCIPAL.
En esta parte se describirá la función de todos los elementos del
menú principal, con el objeto de que el usuario tenga a mano un medio de
consulta rápida de todas las bondades del programa.
Menú FILE:
File>lmport>Download: Descarga programas con
extensión *.HEX en la memoria del PICMASTER
(Emulador) o en la memoria del simulador.
File>Export>Save Hex File: Extrae el contenido de la
memoria del PICMASTER (Emulador) o del archivo *.HEX
del simulador y permite guardarlo con otro formato.
Menú PROJECT:
Project>New Project: Permite crear un proyecto y
grabarlo en el directorio en que se especifique. El
programa MPLAB asigna la extensión *.PJT a todos los
proyectos por defecto.
Project>Open Project: Abre un proyecto existente. En el
proyecto se incluyen todas las ventanas que existían en
la última actualización.
Project>Close Project: Cierra el proyecto actual.
74
Project>Save Project: Graba toda la información incluida
en el proyecto, sin cerrar a éste.
Project>Edit Project: Abre la ventana de diálogo que
permite asignar el archivo *.ASM o *.C al proyecto. Esta
acción no modifica el archivo.
Project>Make Project: Ensambla el archivo fuente
asignado al proyecto, además en este proceso se crea el
archivo *.COD, que permite al MPLAB determinar si es
necesario o no el ensamblaje.
Project>Build All: Ensambla el archivo fuente asignado
al proyecto, sin utilizar el archivo *.COD, por lo que
siempre ensamblará aunque no hayan existido cambios
en el archivo fuente.
Project>Compile Single File: Ensambla el archivo *.ASM
o * C que se encuentra en la ventana activa, sin importar
si pertenece o no al proyecto abierto. Para ejecutar esta
acción debe abrirse algún proyecto.
Project>Make Setup: Permite cambiar ciertas opciones
de! ensamblaje como el tipo de archivo *.HEX que se
desea, la aparición o no de mensajes o prevenciones
sobre el archivo fuente, etc.
Menú DEBUG:
Debug>Run>Run (F9): Coloca al procesador del
simulador en modo de ejecución hasta que se encuentre
75
un punto de parada o hasta que se presione la pausa
(Halt).
Debug>Run>Reset (F6): Simula una secuencia de re-
inicio en el pin MCLRVpp del procesador. Si el
procesador estaba en ejecución, continúa en este modo
después del re-inicio.
Debug>Run>Halt (F5): Realiza una pausa en el proceso
de simulación y actualiza los datos en los registros.
Debug>Run>Animate: Permite que el procesador se
ejecute continuamente de una manera más lenta que con
el modo <Run>, actualizando permanentemente los
registros.
Debug>Run>Step (F7): E! procesador ejecuta paso a
paso el programa, además actualiza todos los registros
después de cada instrucción.
Debug>Run>Step Over (F8): El procesador ejecuta paso
a paso el programa, pero cuando existe una llamada a
subrutina CALL, éste ejecuta la subrutina en modo
<Run>, es decir en forma rápida.
Debug>Run>Change Program Counter: Permite
cambiar el valor del contador de programa dentro de la
simulación.
Debug>Execute>Execute an Opcode: Permite ejecutar
una instrucción o una serie de instrucciones sin modificar
el programa ni la memoria de programa.
76
Debug>Execute>Cond¡tional Break: El usuario podrá
escoger varios puntos en los cuales se desea que la
ejecución del programa se detenga.
Debug>Simulator Stimulus>Asynchronous Stimulus:
Este comando abre una ventana de diálogo que permite
programar eventos asincrónicos en los pines, necesarios
para la simulación.
Debug>SimuIator Stimulus>Pin Stimulus: Activa o
desactiva el archivo *.STI que contiene la información de
los pines sobre los cuales se simulará el estímulo y el
ciclo de reloj en el que esto ocurrirá.
Debug>Simulator Stimulus>Clock Stimulus: Con este
comando se puede definir el período de reloj por número
de ciclos en el que el pin debería estar en ALTO y el
número de ciclos que debería estar en BAJO.
Debug>Simulator Stimulus>Register Stimulus: Esta
función se utiliza para asignar un valor a un registro
determinado, indicando el ciclo de reloj en que esto debe
ocurrir.
Debug>Center Debug Location: Mueve la línea
ejecutada hacia el centro de la ventana, para observar
siempre la línea en la que se encuentra el contador de
programa.
Debug>Break Settings: Despliega la ventana que
permite seleccionar hasta 16 puntos de parada para la
simulación.
77
Debug>Trace Settings: Permite seleccionar hasta 16
intervalos en ios cuales se tendrá información de io
ocurrido en la simulación, esta información se puede
observar al abrir la ventana "Trace Window".
Debug>Clear All Points: Borra todo los puntos
seleccionados tanto en "Break Settings" como en "Trace
Settings".
Debug>Clear Program Memory (Ctrl+Shift+F2): Borra
toda la memoria de programa del simulador, colocando
todos los bits en "1" lógico.
Debug>System Reset (Ctrl+Shift+F3): Re-inicia el
procesador, simulando un "O" lógico en el pin MCLRVpp.
Debug>Power-On-Reset (Ctrl+Shift+F5): Simula un
reset producido por el encendido. Permite llenar la
memoria RAM del procesador con valores aleatorios o
con valores determinados.
Menú OPTIONS:
Options>Development Mode: Permite cambiar las
herramientas a utilizarse en el proyecto como son:
"Editor Only", que edita y ensambla el proyecto, pero no
lo simula.
"MPLAB-SIM", que agrega a lo anterior la posibilidad de
realizar la simulación del programa.
78
"PICMASTER Emulator", el cual necesita su propio
"hardware" para ser utilizado.
Options>Window Setup>Save Setup: Permite grabar la
configuración actual de las ventanas, es decir, posición,
tamaño, etc. El archivo que utiliza tiene la extensión
*CFG.
Options>Window Setup>Load Setup: Carga cualquier
configuración de ventanas grabada anteriormente con la
extensión *.CFG.
Options>Window Setup>Default Configuration: Carga
la configuración de ventanas que posee el programa por
defecto.
Options>Key Mappings: Despliega y permite editar el
mapa de teclado del MPLAB, con el fin de utilizar
rápidamente las funciones con las teclas.
Opt¡ons>Environment Setup (Ctrl+F7): Abre la ventana
de diálogo que permite cambiar el tipo de letra, la barra
de herramientas, etc.
Options>Colors: Cambia los colores asignados a los
datos y a los diferentes procesos que se realizan dentro
del programa.
Options>Processor Setup>Hardware: Se utiliza sobre
todo para el PICMASTER (Emulador), con el fin de definir
el bit de configuración del procesador, pero también
afecta la simulación en caso de activar el WDT.
79
Menú TOOLS:
Tools>DOS Command to Window (F11): Permite
ejecutar un programa de DOS como un compilador, o una
instrucción como DIR, después de esto ei resultado se
despliega en una ventana de edición.
Tools>Repeat DOS Command to Window (Ctrl+F11):
Repite el último comando de DOS ejecutado con "DOS
Command to Window".
Menú WINDOW:
Wmdow>Program Memory: Despliega la ventana que
contiene la memoria de programa,
Window>Trace Memory: Despliega la ventana que
contiene la información completa de las instrucciones
seleccionadas con el comando "Trace Settings".
Window>EEPROM Memory: Si el microcontrolador
posee una memoria EEPROM como es el caso del
PIC16C84, entonces se desplegará el contenido de esta
memoria.
Window>Absolute Listing: Despliega el archivo *.LST,
el cual contiene la información completa del archivo
fuente y su ensamblaje.
Wmdow>Stack: Despliega el contenido del "Stack", cuyo
número de niveles depende del tipo de procesador
seleccionado.
80
Window>File Registers: Permite observar todos los
registros del procesador que está siendo simulado.
Wíndow>Special Function Registers: Despliega el
contenido de los registros de funciones especiales (SFR)
para el procesador que está siendo simulado.
Window>Show Symbol List (Ctrl+F8): Despliega todos
los símbolos incluidos en el programa, como son
etiquetas, variables, constantes. Para utilizar esta
función, el proyecto debe haber sido ensamblado
previamente.
Window>Stopwatch: Despliega el contenido del
contador de reloj, es decir que se puede observar el
número de ciclos que el procesador ha ejecutado y su
duración, dependiendo del oscilador seleccionado en la
misma ventana.
Window>Project: Esta función esta disponible
únicamente si el proyecto está abierto y despliega el
nombre del archivo asignado a dicho proyecto. Se puede
abrir el archivo haciendo doble "Click" en el nombre.
Window>New Watch Window: Permite seleccionar
direcciones específicas de memoria que se desean
observar durante la simulación.
Wíndow>Load Watch Window: Carga una ventana
definida con los elementos que se desean observar, para
generar esta ventana se utiliza la función "File>New
81
Source", en la cual se coloca una lista de direcciones a
observar y se graba con la extensión * WAT.
Window>Modify: Modifica los contenidos de la memoria
de datos, memoria de programa, del "Stack" o de la
memoria EEPROM.
Window>Tile Horizontal: Coloca todas las ventanas
abiertas en forma horizontal, ocupando toda la pantalla.
Window>Tile Vertical: Coloca todas las ventanas
abiertas en forma vertical, ocupando toda la pantalla.
Window>Cascade: Coloca todas las ventanas abiertas
en forma de cascada, es decir una tras otra.
Window>lcon¡ze All: Convierte todas las ventanas
abiertas en iconos.
Window>Arrange Icons: Arregla todos los iconos
visibles perfilas.
82
CAPITULO IV
DISEÑO Y CONSTRUCCIÓN DEL MODULO DE COMUNICACIÓN
4.1. INTRODUCCIÓN
El objetivo principal de este módulo es la comunicación del
microcontrolador PÍC16C57 y un banco de memorias EEPROM con
¡nterfaz I2C, para lo cual se utilizarán 2 memorias 24C02A de
MICROCHIP (Vea el numeral 4.1.1). Pero además, se ha introducido
también una memoria serial de 4 líneas (93AA46) para que el lector
conozca diferentes alternativas en cuanto a EEPROMs seriales (Vea el
numeral 4.1.2).
4.1.1. Memoria 24C02A (EEPROM con interfaz PC)
Es una memoria no volátil que se puede programar y
borrar eléctricamente (EEPROM) de 2 kbits de capacidad (256 x
8), cuyo diagrama de pines se muestra en la figura 4.1. Incluye la
interfaz de comunicación serial en dos hilos, compatible con bus
I2C (pines SDA y SCL). Es de avanzada tecnología CMOS por lo
que su. consumo es muy pequeño comparado con otros
83
dispositivos seriales, aunque, su característica principal es que
provee una protección de escritura por hardware ("1" lógico en el
pin WP) para el bloque más alto de memoria (080-OFF). Su
dirección se compone de una parte fija (1010) y una programable
(pines A2, A1, AO figura 4.2), por lo que existe la posibilidad de
conectar hasta 8 memorias al mismo bus. Además posee un
BUFFER de escritura de dos bytes, que permite retener hasta 2
datos seguidos antes de empezar su ciclo de escritura, el cual
tiene una duración de 1 ms por cada dato. Requiere 5 voltios
para su funcionamiento normal y la descripción de los pines se
puede observar en la tabla 4.1.
AOC
A1 £
A2Q
VssC
1 8
2 M 7
O3 S 6
4 5
^Vcc
QWP
HSCL
HSDA
Figura 4.1. Diagrama de pines de la memoria 24C02.
Ñame
AO,A1,A2
VSS
SDA
SCLWP
VCC
Function
ChipAddress InputsGroundSeñal Address/Data I/OSerial ClockWrite Protecí Input
+5V Power Supply
Tabla 4.1. Descripción de los pines.
84
START
/
i
ISLAVI
READ/WÜTE
= ADdRES¿ 'I I I
R/W A
\
0 1 0 A2 A1 AO
Figura 4.2. Dirección esclava programable.
La comunicación con este tipo de dispositivos es
explicada en detalle en el capítulo 1, por lo que a continuación
se esquematiza únicamente la actividad en la línea SDA para las
operaciones de escritura (figuras 4.3 y 4.4) y lectura (figuras 4.5
y 4.6).
BUSACTMTY
SDALINE
BUSACTWTY
Figura 4.3. Escritura de un Byte.
85
TBUSACT1VÍTY AMASTEfl R COUTROL WORD
T BYTE ADDRÉSS{n)-". , ^
1 I Í 1 1 1 1 1 1 1 150ALINE S r
1 1 ! 1 1 i i i i i i iA A
BUSACTIVITY C CK K
S
DATA n DATA n +- 1 DATA n 4- 7 p¿. >• A
I ] I I I I I l l l l l l l U 1 l 1 1 I I I
i T 1 1 1 1 1 M i f i i i i\ 1 1 1 1 nA A ' ' AC C CK K K
Figura 4.4. Escritura de página n=2.
s s3¿SíSIVITY A CONTROL W°RD A OOWTROL n TÁ , t THASTHR R BYTH ADDHESS {n) fl BHE DATAín) Q
NI l i l i h ' """ MI IISDAUfJE 1 II 1 1 1 1 II i i i i i i i 1 II IIA AG CK K
BUSACTIVfTT
1 1 ( 1 1 1 !
[ 1 1 I 1 1 1
A NC 0K
ACK
Figura 4.5. Lectura de una localidad específica.
BUSAOTMTYMAS7EH
SOALINE
BUSAOTMTY
CONTROL
Figura 4.6. Lectura secuencial.
86
4.1.2. Memoria 93AA46 (EEPROM Serial)
Es una memoria no volátil que se puede programar y
borrar eléctricamente (EEPROM) de 1 kbit de capacidad (128 x 8
o 64 x 16), cuyo diagrama de pines se muestra en la figura 4.7.
Se puede configurar para que sus localidades tengan un tamaño
de 8 bits o de 16 bits, dependiendo del pin ORG (con "1" lógico
las localidades son de 16 bits y con "O" lógico las localidades son
de 8 bits), es de avanzada tecnología CMOS, lo que hace a este
dispositivo ideal para aplicaciones que requieran memorias no
volátiles de baja potencia. Tiene una característica muy relevante
y es que funciona con voltajes desde 1.8 hasta 5V, por lo que
también es ideal para aplicaciones de bajo voltaje. La descripción
de los pines se observa en la tabla 4.2.
es E
CLK E
DI E
DO E
1 8
2 S 7
3 £ 6
4 5
u Vcc
U NÚ
H ORG
H Vss
Figura 4.7. Diagrama de pines de ta memoria 93AA46.
87
Ñame
CS
CLK
DI
DO
vssORGNÚ
VCC
Function
Chip Select
Serial Data Clock
Serial Data Input
Serial Data Output
Ground
Memory Confíguration
Not Utilizad
Power Supply
Tabla 4.2. Descripción de los pines.
En esta memoria se pueden ejecutar siete (7)
instrucciones, como puede observarse en las tablas 4.3 y 4.4,
Innrtitllúti
READEWENERASEERALWFUTEWRALEWDS
SB
1111111
OpCOth
100011DG010000
Additt*
ASA4WA2AIAO1 1 X X X XA5A4A3A2AIAO1 0 X X X XA5A4A3A2A1M0 1 X X X X0 0 X X X X
Dihh
-———
D15-DOD15-DO
—
OrtÉÜlft
D15-DOHigW
ÍROYJBS7)IfiCnfóS?)(RDY£57)(ROY&57}
Hfgh-Z
Rtq.CUtCydu26999
25259
Tabla 4.3. Conjunto de instrucciones para la memoria
93AA46: ORG=1 (Configuración de 16 bits)
Inttruction
flEADEWENERASEERALWRrrtWRALEWDS
se1111111
Opoodi
1G00110001
00
00
Mdmi
AÍA5A4A3A2A1AÍ]1 1 X X X X XA6A5MA5A2A1AO1 0 X X fC X XABA5A4A3AZA1AG0 1 X X X X X
0 0 X X X X X
Drfih
—-——
D7-OQ
D7-M
—
DnUOui
D7-DOHlgh-Z
(RDYteSY)(HDYíB5Y)(ROY^SY}(ñDYíBSY)
HW-Z
R*q.CLKCyd«i
Ifl101010IB1A10
Tabla 4.4. Conjunto de instrucciones para la memoria
93AA46: ORG=0 (Configuración de 8 bits)
• Condición de inicio.- La condición de inicio se genera cuando
la línea CS y DI se encuentran en ALTO durante la transición
positiva de la línea de reloj (CLK).
• Validez del dato.- Después de una condición de inicio, todo bit
colocado en la línea DI es válido, únicamente durante la
transición positiva de la línea SCL, después de la cual el dato
puede ser alterado.
• Protección de datos.- Durante el encendido, todos los modos
de programación son desactivados, hasta que VCC sea mayor
que 1.4 V, protegiendo de esta manera los datos de la
memoria.
• Operación de lectura (READ).- Después de ejecutar la
condición de inicio, código de lectura y dirección de la
localidad a ser leída, puede recibirse los datos en la línea DO,
los cuales son precedidos por un cero en dicha línea (figura
4.8). Cada bit de salida es colocado en la línea DO después de
la transición positiva del reloj, permaneciendo estable durante
todo el período. Es posible realizar una lectura secuencial,
manteniendo la línea CS en ALTO, por lo que se apuntará
automáticamente a la siguiente localidad y ésta será leída.
89
TRI-STATÉ1
Figura 4.8. Operación de lectura.
Activado y desactivado de las operaciones de escritura y
borrado (EWEN, EWDS).- Cuando la memoria es alimentada,
siempre inicia desactivando las operaciones de escritura y
borrado (EWDS figura 4.9), por lo que todos los modos de
programación deberían ser precedidos por una instrucción de
activación (EWEN figura 4.10). La instrucción EWDS es
utilizada después de la programación, con el fin de evitar una
variación accidental de los datos.
CLK
1 \ O O O / X
Figura 4.9. Operación EWDS (desactivar).
90
Figura 4.10. Operación EWEN (activar).
Operación de borrado (ERASE).- Después de ingresar la
condición de inicio, el código de borrado y la dirección de la
localidad en la línea DI, el bit CS debe ser colocado en bajo,
con el fin de que inicie el ciclo de escritura, el cual coloca
todos los bits de la localidad de memoria en "1" lógico. Durante
el ciclo de borrado, la línea DO se encuentra en BAJO,
indicando con esto que la memoria no podrá recibir ningún
dato durante este período. Cuando ha terminado el ciclo de
escritura, la línea DO es liberada y cualquier otro código de
programación puede ser ingresado. El ciclo de borrado toma
aproximadamente 4ms por cada localidad de memoria.
TWC
Figura 4.11. Operación de borrado de una localidad.
91
Operación de escritura (WRITE).- Después de ingresar la
condición de inicio, el código de escritura, la dirección de la
localidad y el dato en la línea DI, el bit CS debe ser colocado
en bajo, con el fin de que inicie el ciclo de escritura, el cual
coloca el dato en la localidad de memoria indicada. Durante el
ciclo de escritura, la línea DO se encuentra en BAJO,
indicando con esto que la memoria no podrá recibir ningún
dato durante este período. Cuando ha terminado el ciclo de
escritura, la línea DO es liberada y cualquier otro código de
programación puede ser ingresado. El ciclo de escritura toma
aproximadamente 4ms por cada localidad de memoria.
L
DO
T\VC
Figura 4.12. Operación WRITE.
Operación para borrar toda la memoria (ERAL).- Después
de ingresar la condición de inicio y el código de borrado total
en la línea DI, el bit CS debe ser colocado en bajo, con el fin
de que inicie el ciclo de escritura, el cual coloca un "1" lógico
en todos los bits de todas las localidades de la memoria.
92
Durante el ciclo de borrado total, la línea DO se encuentra en
BAJO, indicando con esto que la memoria no podrá recibir
ningún dato durante este período. Cuando ha terminado el
ciclo de borrado total, la línea DO es liberada y cualquier otro
código de programación puede ser ingresado. El ciclo de
borrado total toma aproximadamente 8ms. Se garantiza la
operación de borrado total a 5V +/-10%.
Tea
JUUlnJLTL
Figura 4.13. Operación ERAL (Borrado total).
Operación para escribir el mismo dato en toda la memoria
(WRAL).- Después de ingresar la condición de inicio, el código
de escritura total y el dato en la línea DI, el bit CS debe ser
colocado en BAJO, con el fin de que inicie el ciclo de escritura,
el cual coloca el dato ingresado en todas las localidades de la
memoria. Durante el ciclo de escritura total, la línea DO se
encuentra en BAJO, indicando con esto que la memoria no
podrá recibir ningún dato durante este período. Cuando este
ciclo ha terminado, la línea DO es liberada y cualquier otro
código de programación puede ser ingresado. El ciclo de
93
escritura total toma aproximadamente 16 ms. Se garantiza esta
operación a 5V +/- 10%.
1 \ (, ó / i \ X"' X X X (V X »• X t»
Figura 4.14. Operación WRAL (Escribir el mismo dato).
94
4.2. ANÁLISIS PREVIO AL DISEÑO.
El módulo básicamente debe permitir al usuario enviar
información a las memorias o recibirla de ellas de una manera directa, es
decir mediante un corto proceso manual; lógicamente este proceso se
realizará con un dato a la vez. Para cumplir con este objetivo es
necesario considerar un sistema de ingreso y salida de datos, que posea
la menor cantidad de elementos posibles y resulte sencillo de manejar.
4.2.1. Análisis del sistema de Ingreso de datos.
Los datos necesarios para que el microcontrolador
ejecute cualquier operación en las memorias son:
• Operación.- Es aquí donde se ingresa la operación que el
usuario desea realizar y la memoria a la que se dirige, además
indica si las memorias PC trabajan o no con protección de
escritura, o si la memoria serial de 4 líneas estará configurada
en 8 o 16 bits.
• Dirección.- Tanto para la lectura como escritura en las
memorias, el usuario necesita colocar la dirección de la
localidad de memoria con la que va a trabajar.
• Dato 0.- Para las operaciones de escritura, deberá ingresarse
el dato que se desea enviar a una localidad determinada de ia
memoria. En el caso de la memoria serial de 4 líneas
(93AA46), existe la posibilidad de trabajar con 16 bits, por lo
que en este punto se envían los 8 bits menos significativos de
la palabra.
95
• Dato 1 (sólo para la memoria 93AA46 configurada en 16
bits).- En caso de dirigirse a la memoria serial de 4 líneas
(93AA46) configurada a 16 bits, deberá ingresarse también los
ocho bits más significativos de la palabra.
Como puede observarse en lo descrito anteriormente,
todos los datos que ingresan al microcontrolador tienen una
longitud de palabra de 8 bits, por lo que es suficiente la utilización
de un dipswitch de 8 bits para ingresar toda la información
requerida por el microcontrolador.
Si un solo dipswitch es necesario para ingresar toda esta
información, necesitamos entonces una tecla que permita realizar
la función de "ENTER", es decir que después de que el dato es
colocado en el dípswitch, la presión de esta tecla permita al
microcontrolador recibir esta información y luego cambiar al
siguiente dato requerido.
Se debe pensar también en la posibilidad de
equivocación que tenga el usuario, por lo que es necesaria la
utilización de otra tecla que permita a éste corregir su error.
Con este análisis queda claro que para el ingreso de
datos es necesario un dipswitch y dos teclas conectadas al bus
de datos del microconírolador.
4.2.2 Análisis del sistema de salida de datos.
Para que el usuario tenga una idea del proceso que debe
realizar durante el ingreso de datos, es necesario la utilización de
un sistema indicador basado en LEDs] que mantenga informado
96
al usuario del dato que ingresará por el dipswitch. Por esto debe
existir un LED que indique el ingreso de la operación, uno que
indique el ingreso de la dirección, otro que señale el ingreso del
dato O, además otro que indique que es momento de ingresar el
dato 1 (solo para la memoria 93AA46 configurada para 16 bits) y
uno que señale que todo está listo para ejecutar la operación, sin
olvidar al LED que indique que la comunicación ha terminado
satisfactoriamente.
Se debe tomar en cuenta que el primer dato que se
ingresa es un código que indica la operación que va a realizar y
la memoria a la que se dirige, por lo que el usuario debería
conocer si el código que ingresó corresponde realmente a la
operación que él desea realizar. Para esto, se pensó en la
utilización de 8 LEDs que señalen en forma visual al usuario, es
decir que un LED indicará que se desea Leer la memoria, otro
escribir en la memoria y otro borrar la memoria. Además un LED
señalará si se dirige a la memoria I2C (1), otro si se dirige a la
memoria PC (2) y otro si es hacia la memoria serial de 4 líneas.
Pero hay algo más que indicar, ya que es parte del código; y es
que las memorias I2C pueden o no trabajar con protección de
escritura y la memoria serial puede estar configurada para 8 o'16
bits, por lo que se utilizarán 2 LEDs más que indiquen estas
posibilidades.
El usuario deberá tener la posibilidad de observar tanto
los datos que ingresa, como los que vienen de las memorias,
entonces se requiere también cuatro DISPLAYs de ánodo común
(se encienden con "O" lógico) que permitan este objetivo. Deben,
ser cuatro, tomando en cuenta la posibilidad de que la memoria
serial de 4 líneas esté configurada en 16 bits.
97
4.3. DISEÑO DEL MODULO.
Para que el microcontrolador seleccione uno entre todos los
dispositivos que tiene a su alrededor (Teclas, dipswitch, Grupo de LEDs
de datos, Grupo de LEDs de operación, DISPLAY O, DISPLAY 1,
DISPLAY 2 y DISPLAY 3) se utilizó un decodificador 3-8 74LS138 figura
4.15.
74LS138
Figura 4.15. Decodificador 3-8.
Las teclas están conectadas ai bus de datos del microcontrolador
mediante un BUFFER 74LS244, el cual estará activo cuando se
introduzca la dirección 000 en el decodificador (figura 4.16), Debido a
que la corriente requerida por las entradas del BUFFER cuando están
conectadas a VCC es de 20 uA, se utilizaron 2 resistencias pull-up de 10
k-ohmios, para que la caída máxima de voltaje en éstas sea de 0,2 V, y
de esta manera entregar un voltaje mínimo de 4.8 V en el nivel ALTO.
Además el consumo de corriente que se descarga hacia tierra por medio
de! teclado no supera los 0,6 mA.
98
vccQ
1 IJLR20 > RH1R > R
2
i
1
-> S3 Jt.
? 'C
2
2
2i 4
tii
L t
-> S10 '
p
ei
VCC9
G
i 8
il! 13i"?ic13r
U14
1P1ifta1P31R42ftl2ft22R32A4
IG2G
1Y11Y21Y31Y42Y12Y22Y32Y4
74LS244
' C RDTECLft !>
Figura 4.16. Conexión de las teclas.
Para la conexión del dipswitch al bus de datos del
microcontrolador, se utilizó también un BUFFER 74LS244, el cual se
activa únicamente a! seleccionar la dirección 001 en el decodificador y 8
resistencias pull-down (figura 4.17), para que el voltaje a la entrada del
BUFFER sea positivo cuando se cierran los interruptores que forman el
DIPSWITCH.
La corriente que descarga el BUFFER cuando sus entradas están
conectadas al nivel BAJO es de 200 uA, por lo que al colocar las
resistencias pull-down con un valor de 6.8 k-ohmios, se tendrá una caída
de voltaje en las mismas de 1.36 V, que todavía es "interpretado" por el
BUFFER como un estado BAJO. Además, con estas resistencias se logra
un mínimo consumo de corriente cuando todos los interruptores del
DIPSWITCH están cerrados.
99
vcco
SI SH 33 34 sslss 37O , O
ss
Figura 4.17. Conexión del dipswitch.
El grupo de LEDs (1) que indican la operación, memoria de
trabajo y configuración están conectados al bus de datos, mediante un
LATCH 74LS373, al cual el microcontrolador podrá dirigirse con ía ayuda
de un inversor, colocando la dirección 010 en el decodificador. Los LEDs
están conectados a las salidas del LATCH por medio de 8 resistencias de
270 ohmios, utilizadas como limitadoras de corriente.
U12 RIO
WR LEDSl >
1D1S
Figura 4.18. Conexión del grupo 1 de LEDs que indican la operación.
El grupo de LEDs (2) que indican el dato que debe ingresar el
usuario están conectados al bus de datos, mediante un LATCH 74LS373,
cuya dirección es 011 y su activación se logra con la ayuda de un
inversor (figura 4.19). Estos LEDs están conectados a las salidas del
LATCH por medio de 6 resistencias de 270 ohmios, que actúan como
limitadoras de corriente.
U13
101
Rli
U8F
NRLEDS2 >
347S1314171S
!„11
2 74US373
2 15 2G 33 -412 S15 61G 719 S
R-PAC
1G1514131211109
:K
2 £L
r12 P2 |kP
2 Ik¡r
2 Wr
2 ih.w
/*/* 1D3
^ 1D10
/ / iDli
/ ^ 1D12 (
^ ID 13 (
A" 1D14 (
Figura 4.19. Conexión del grupo 2 de LEDs que indican el dato que
debe ingresar el usuario.
El DISPLAY O, DISPLAY 1, DISPLAY 2 y DISPLAY 3 están
conectados al bus de datos por medio de 4 LATCHs 74LS373, cuyas
direcciones son respectivamente 100, 101, 110, 111 y se activan con la
ayuda de inversores (figura 4.20). De esta manera el microcontrolador
manejará directamente cada segmento. Los DISPLAYs están conectados
a los LATCHs por medio de resistencias de 270 ohmios.
{*•
102
Fig
ura
4.2
0. C
on
exi
ón
de lo
s D
ISP
LAY
s.
103
El microcontrolador utiliza un cristal oscilador de 4MHz (Y1), el
cual permite que cada ciclo de instrucción demore 1 micro segundo, lo
cual resulta suficiente para nuestra aplicación. Este oscilador se
encuentra conectado a tierra por medio de dos condensadores de 15 pico
Faradios (C9 y C10), recomendados por el fabricante. Existe también un
pequeño circuito de "Power On Reset" (POR), conformado por un
condensador (C11), una resistencia (R5) y un diodo (D4) conectados al
pin MCLR, con el fin de mantener en un estado de espera al
microcontrolador hasta que la fuente alcance su pleno valor de 5 V.
Además se conectaron las resistencias pull-up tanto para el bus PC (R2 y
R3) como para la salida DO del bus serial de 4 líneas (R4), las cuales
tienen un valor de 12 k-ohmios, obtenido de las recomendaciones del
fabricante (Capítulo 1). Los puertos del microcontrolador PIC16C57 han
sido distribuidos de la siguiente manera (figura 4.21):
• PUERTO A (4 bits).- Los pines RA2, RA1, RAO, son utilizados para
colocar la dirección en el decodificador 3-8, seleccionando el. elemento al
que se quiere dirigir. El pin RAS se utiliza para activar o desactivar el
decodificador.
• PUERTO B (8 bits).- Este puerto se utiliza como el bus de datos de
entrada y salida del microcontrolador.
• PUERTO C (8 bits).- El pin RC7 se utiliza como la línea de transmisión
hacia el puerto RS-232 (TXD), el RC6 es la recepción del mismo puerto
(RXD), el RC5 es la línea DO del bus serial de 4 líneas, el RC4 es la
línea CLKdel mismo bus, el RC3 es la línea CS también del bus serial de
4 líneas, el RC2 es e! pin que controla tanto la protección de escritura de
las memorias I2C como la configuración (8 bits o 16 bits) de la memoria
serial 93AA46, el pin RC1 constituye la línea SCL del bus I2C y el pin RCO
constituye la línea de datos tanto del bus PC (línea SDA) como del bus
104
serial de 4 líneas (línea DI).
C9 Z^15PF
•<S
Y
MrL
CT2b: C1 i
Dfi/C<;s
, —
>R?T
1II r
PL
íiOrjSPF
_i >CL>("•7 S-
c
2
1
<
<
1* R2> j^
2<^
V
D4DIODE:
28i
272G
181320212223
" 2425
1 1? R3 > R4> 12K> 12K
2 E
ycc
H2 i1 > R5
3t > 33K
trl íi--T-- Cll
11 33U
U3
RP2
RC0 RB0RC1 RB1
PIC16CB7
VCC
_J
F
-i <SEL2 >
10 ^T^Z — v.— T-T — C D0 >•
i o S-! -í=— =^1 u! V-UJ.vJ x>
Figura 4.21. Conexión del microcontrolador PIC16C57.
Las memorias se conectaron directamente el Puerto C del
microcontrolador, ya que los voltajes son totalmente compatibles. Además
se fijaron las direcciones de las memorias con interfaz I2C de la siguiente
manera (figura 4.22):
• Dirección esclava de la memoria I2C (1) : 1010000 (AOh)
* Dirección esclava de la memoria I2C (2) : 1010001 (A1h)
105
1
II 2u *
MErvcc
2
1 1
~ F~
U9
P0 WPPl SCLPH SDP
24C02P
•1ORIP I2C
U10
R0 WPPl SCLP2 SDP
24 C02P
MEMORIP I2C
Ull
<TCLK >§< SDP/DI >
<DO >
MED
CLK ORGDI CSDO
-g C ROM/ORGZ >
-^ C SDP/DI >
CID
' C ROM/ORGZ >- CSCL >í C SDP/D I >
C25
-J < ROM/ORGZ >
MORÍA SERIPLE 4 LINEPS
Figura 4.22. Conexión de las memorias.
Debido a que el microcontrolador PIC1GC57 no posee un puerto
serial RS-232 que permita la comunicación directa con el computador, fue
necesario crearlo, para ello se utilizaron los pines RC7 como transmisor y
RC6 como receptor. Este puerto debe tener conectado un sistema que
permita convertir los voltajes TTL (5 V y O V) en voltajes RS-232 (-12 V y
+12V). Para esto se utilizó un circuito integrado MAX232, el cual cumple
esta función con una alimentación de 5 V, lo cual evita añadir otra fuente
en el módulo (figura 4.23),
106
1+ C4^ 1UF
+ CE-"r- 1UF
13
4
5
<TXD
<RXD"
>ié~>AZ_
C7JLUF
U2
Cl-H V+
T1IN T1OUTT2IN T2OUT
R1OUT R1INR2OUT R2IN
MPX232
vcc0
+ ce+ ^-r^ iur ^-^ es
2
6
14"7
138
~
1
. S i94S3"7S61
+ 1LJF
~rr"
Si_o oP2
Q DB9-O
-O
Figura 4.23. Conexión del MAX232 para el puerto serial R2-232.
Como pudo observarse, todos los dispositivos requieren una
alimentación de 5V, por lo que se diseñó una fuente muy sencilla formada
fundamentalmente por un regulador de 5V (LM 7805) con una capacidad
de 1 Amperio, ya que la suma de las corrientes que consumen tanto los
LEDs como los circuitos integrados (Incluido el microcontrolador), no
superan los 0,7 amperios.
Se utilizará un transformador de 120-12 V con una capacidad de
corriente en el lado de baja de 2 Amperios, con e! fin de ofrecer un amplio
margen de corriente. Este transformador estará protegido en e! lado de
alta por un fusible y el encendido se hará por medio del interruptor SW1
(figura 4.24).
En la parte DC (figura 4.25) existe un puente rectificador (D1),
cuya salida es filtrada por un condensador de 2200 uF con el fin de
disminuir el rizado e ingresar este voltaje a! regulador (17 V DC). La
salida del regulador (5 V) es filtrada aún más con los condensadores C2 y
107
C3, obteniéndose de esta manera la salida necesaria para alimentar al
módulo. Se ha añadido un LED para indicar ei encendido de la fuente
(D3).
FI
FUENTE
Figura 4.24. Conexión de la fuente (Parte AC).
JPÍ
DIODEUiLM780S
Figura 4.25. Conexión de la fuente (Parte DC).
108
4.4. DISEÑO DEL SOFTWARE PARA EL MICROCONTROLADOR
El software contenido en la memoria de programa del
microcontrolador deberá realizar varias tareas, es decir que existirán
varios sub-programas, cada uno encargado de una tarea específica, por
lo que a continuación se describen:
4.4.1. Sub-programa encargado del manejo de la interfaz
manual.
El sub-programa que controla la interfaz manual es una
parte del programa total que se encuentra ¡mplementado en el
microcontrolador PIC16C57. En el diagrama de flujo que se verá
a continuación, se resalta las funciones más importantes del
mismo.
V-
INIC
IO10
91r
N. V
EC
ES
=0
• E
NC
ER
AD
ISP
LAY
S•
AC
TIV
A L
ED
ING
RE
SO
D
EO
PE
RA
CIÓ
N•
LE
E E
LD
IPS
WIT
CH
YS
AC
A E
LC
ON
TE
NID
O A
LOS
DIS
PLA
YS
• N
. VE
CE
S=N
.V
EC
ES
+ 1
• IN
DIC
AO
PE
RA
CIÓ
NG
RU
PO
LE
Ds
(8 B
ITS
)•
AC
TIV
A L
ED
ING
RE
SO
DE
DIR
EC
CIÓ
N•
LE
E E
LD
IPS
WIT
CH
YS
AC
A E
LC
ON
TEN
IDO
ALO
S D
ISP
LAY
S•
N. V
EC
ES
=N.
VE
CE
S
AC
TIV
A L
ED
ING
RE
SO
DE
DA
TO
OLE
E E
LD
IPS
WIT
CH
YS
AC
A E
LC
ON
TE
NID
O A
LOS
DIS
PLA
YS
N.
VE
CE
S=N
.V
EC
ES
+ 1
AC
TIV
A L
ED
ING
RE
SO
DE
DA
T0
1LE
E E
LD
IPS
WIT
CH
YS
AC
A E
LC
ON
TEN
IDO
ALO
S D
ISP
LAY
SN
.VE
CE
S=
N.
VE
CE
S +
1
AP
AG
A L
OS
DIS
PLA
YS
AP
AG
A L
OS
LED
sN
. VE
CE
S=0
OR
GA
NIZ
AT
OD
OS
LO
SD
AT
OS
ING
RE
SA
DO
SA
CT
IVA
LE
DLI
STO
PA
RA
EJE
CU
TA
RN
. V
EC
ES
=N.
VE
CE
S +
1
EJE
CU
TA L
AO
PE
RA
CIÓ
NIN
DIC
AD
A C
ON
LA M
EM
OR
IAC
OR
RE
SP
ON
-D
IEN
TE
110
4.4.2. Sub-programa para escribir en las memorias PC.
INICIO
L1=DIRECCION ESCLAVA + BIT WRITEL2=DIRECCION DE LOCALIDADL3=DATOSUB-INDICE n=1BIT DE INICIO
BYTE « @Ln(DIRECCIONAMIENTO INDIRECTO)
ENVIÓ BYTE HACIA LA MEMORIA POREL BUS I2C
LLEGO BIT DERECONOCIMIENTO
ACTIVA LEDCONFIRMACIÓN
111
4.4.3. Sub-programa para leer las memorias PC.
e INICIO
L1=DIRECCION ESCLAVA + BIT WRITEL2=DIRECCION DE LOCALIDADSUB-INDICE n=1BIT DE INICIO
BYTE = @Ln(DIRECCIONAMIENTO INDIRECTO)
ENVIÓ BYTE HACIA LA MEMORIA POREL BUS I2C
LLEGO BIT DERECONOCIMIENTO
REPITE EL BIT DE INICIODIRECCIÓN ESCLAVA + BIT READ (LEER)
LLEGO BIT DERECONOCIMIENTO
EL MICROCONTROLADOR RECIBE ELBYTE SIN GENERAR RECONOCIMIENTOBIT DE PARADAACTIVA LED CONFIRMACIÓN
C FIN
112
4.4.4. Sub-programa para escribir en la memoria serial de 4
líneas.
INICIO
FALLA LA COMUNICACIÓNOPERACIÓN EWDS(DESACTIVA BORRADO YESCRITURA DE LA MEMORIA)
OPERACIÓN EWEN (ACTIVA BORRADOY ESCRITURA DE LA MEMORIA)BIT DE INICIOCÓDIGO WRITEDIRECCIÓN DE LA LOCALIDADDATO
ESTA EN ALTAIMPEDANCIA LA
LINEA DO
ESTA EN BAJO LALINEA DO
(ESCRIBIENDO)
113
4.4.5. Sub-programa para leer la memoria serial de 4 líneas.
INICIO
FALLA LA COMUNICACIÓNOPERACIÓN EWDS(DESACTIVA BORRADO YESCRITURA DE LA MEMORIA)
OPERACIÓN EWEN (ACTIVA BORRADOY ESCRITURA DE LA MEMORIABIT DE INICIOCÓDIGO READDIRECCIÓN DE LA LOCALIDAD
ESTA EN BAJO LALINEA DO
RECIBE EL DATO DELA MEMORIA
ESTA EN ALTO LALINEA CS (LECTURA
CONSECUTIVA)
OPERAC ON EWDS
114
4.4.6. Sub-programa para borrar una localidad de la memoria
serial de 4 líneas.
INICIO
FALLA LA COMUNICACIÓNOPERACIÓN EWDS(DESACTIVA BORRADO YESCRITURA DE LA MEMORIA)
OPERACIÓN EWEN (ACTIVA BORRADOY ESCRITURA DE LA MEMORIA)BIT DE INICIOCÓDIGO ERASEDIRECCIÓN DE LA LOCALIDAD
ESTA EN ALTAIMPEDANCIA LA
LINEA DO
ESTA EN BAJO LALINEA DO
(BORRANDO)
115
4.4.7. Sub-programa para borrar todas las localidades de la
memoria serial de 4 líneas.
INICIO
FALLA LA COMUNICACIÓNOPERACIÓN EWDS(DESACTIVA BORRADO YESCRITURA DE LA MEMORIA)
OPERACIÓN EWEN (ACTIVA BORRADOY ESCRITURA DE LA MEMORIA)BIT DE INICIOCÓDIGO ERAL
ESTA EN ALTAIMPEDANCIA LA
LINEA DO
ESTA EN BAJO LALINEA DO
(BORRANDO)
116
4.4.8. Sub-programa para escribir el mismo dato en todas las
localidades de la memoria serial de 4 líneas.
INICIO
FALLA LA COMUNICACIÓNOPERACIÓN EWDS(DESACTIVA BORRADO YESCRITURA DE LA MEMORIA!
OPERACIÓN EWEN (ACTIVA BORRADOY ESCRITURA DE LA MEMORIA)BIT DE INICIOCÓDIGO WRALDATO
ESTA EN ALTAIMPEDANCIA LA
LINEA DO
ESTA EN BAJO LALINEA DO
(ESCRIBIENDO)
117
4.4.9. Sub-programa que permite al microcontrolador recibir
datos provenientes del puerto serial RS-232.
INICIO
CONTADOR i=0
ESTA EL BIT RC6 ENBAJO
(BIT DE INICIO RS-232)
RETARDO (104 us)(DURACIÓN DEL BIT A 9600
BPS)
RETARDO f52 us)
LEE EL BIT¡=i+1
RETARDO (52 usl
NO
NO
118
4.4.10. Sub-programa que permite al microcontrolador enviar
datos a través del puerto serial RS-232.
INICIO
^ r
. BYTE=DATO• CONTADOR 1=0
• COLOCO EN RC7 EL BIT DEINICIO
• RETARDO (104 us) (DURACIÓNDEL BIT A 9600 BPS)
COLOCO EN RC7 EL BIT iDE LA LOCALIDAD BYTE¡=i+1
RETARDO H04US1
NO
BIT DE PARADA
FIN
119
4.5. ANÁLISIS PREVIO AL DISEÑO DE LA INTERFAZ DEL
COMPUTADOR.
El módulo debía tener también la posibilidad de ser manejado por
medio de una computadora, procurando que la interfaz sea más sencilla
para el usuario y pueda explotarse todas las funciones de las memorias,
además, permitirá transferir uno o varios datos de una manera eficaz.
Esta interfaz debería permitir ai usuario, realizar todas las
operaciones posibles con las memorias, es decir escribir en ellas, leerlas,
borrarlas, y no solo trabajar con un byte, sino enviar o recibir cualquier
número de bytes, obviamente, mientras no se rebase la capacidad de las
memorias.
Como característica especial, la interfaz del computador, debería
permitir al usuario ingresar datos a las memorias, utilizando un archivo
*.HEX, es decir que la memoria se llenará estrictamente con el contenido
de este archivo.
Si podemos utilizar un archivo *.HEX para llenar la memoria, sería
útil poder leer completamente cualquiera de las memorias y colocar este
contenido en un archivo *.HEX, con el fin de respaldar diferentes
combinaciones de datos que se encuentren en ellas.
Con estas características, el proyecto quedaría completo, puesto
que permite realizar al usuario diferentes operaciones características del
bus I2C y de la memoria serial de 4 líneas, además se podría utilizar
como programador de estos dos tipos de memorias.
120
4.6. DISEÑO DE LA INTERFAZ DEL COMPUTADOR.
Para que el programa resultara una ¡nterfaz muy sencilla al
usuario, se diseñó en VISUAL BASIC 5.0, el cual permite una interacción
con éste por medio de ventanas, reduciendo su operación a un simple
"click" en el lugar adecuado.
El programa se compone de varias ventanas, que recolectan la
información del usuario, con el fin de realizar la operación indicada por
éste.
La base principal del protocolo de comunicación entre el
computador y el módulo consiste en el envío de 12 bytes, los cuales
contienen la siguiente información:
• Byte 1.- Este byte contiene la información de la operación que el
usuario desea realizar desde el computador, la memoria a la que se
dirige y la configuración que ésta tendrá.
• Byte 2.- Aquí se envía el número de datos que se van a leer o escribir
en las memorias.
• Byte 3.- En este byte se envía la dirección esclava de la memoria
(para el caso de las memorias con ¡nterfaz I2C) con la que se va a
comunicar el usuario.
• Byte 4.- En el cuarto byte se envía la dirección de la localidad de
memoria, en la que inicia tanto la lectura como la escritura de datos.
• Byte 5 - Byte 12.- Estos 8 bytes, se utilizan para enviar un máximo de
8 datos, que el microcontrolador podrá escribir en cualquiera de las
memorias.
121
Para enviar todo el contenido de un archivo *.HEX, obviamente se
requieren más de ocho datos, por lo que simplemente se repite la sub-
rutina de envío tantas veces como sea necesario, dependiendo del
tamaño de la memoria.
La comunicación serial RS-232 se realiza siempre a 9600 bits por
segundo, por lo que esta velocidad no podrá ser alterada.
La comunicación siempre es del tipo HALF-DUPLEX, donde el
computador se comporta como maestro, es decir que el módulo
únicamente responde cuando es requerido por el computador.
122
4.7. CONSTRUCCIÓN DEL MODULO.
Debido a la distribución de pines de los circuitos integrados y a la
gran cantidad de líneas de conexión, se decidió repartir todos los
elementos en dos tarjetas, con el fin de que el tamaño del módulo no
fuera demasiado grande. Las tarjetas se encuentran unidas entre sí por
medio de dos correas conductoras de 40 líneas cada una, las cuales
llevan los datos hacia el DISPLAY, bus de datos, LEDs, etc.
Las dos tarjetas son del mismo tamaño (19,5 cm x 13,5 cm), con
el fin de colocar una encima de otra. La tarjeta 1 (abajo) contiene la
fuente, los LATCHs, los BUFFERs y todas las resistencias necesarias
para éstos (figura 4.26).
ccoccccooIW
OPcooooQ
[ñ
KZ Hl•1C
n B n o n n B Q n n n o D n n B D H B B , ^ , i m t i D B Q a B D D a o a i i n B O D - D D w
''loe or^l^c o ooo ooo ooooooo o ooo ooo o-oooooo
9
O O*. S j S 1 S S 1o 9 &? U? l « ? L? 1O 9 ^ OOOOOOO^-OOOOOOO ^OOOOOOCH- OOOOCOO
!> O S „ _
> O 9 « 9+ 0 ?*9 0 & C 9 C 50 0 9. C & C 5» 6 9 0 9 0 3
^ KH-J C 5 0 5O Q j } O O & C íO KT3 G 3 fl 3Ott C9 Co c_o c
00eíooooooo
^*"^
W-i_r
frc Cffíi Co cO 0
i S& co o1 1* 00 00 O& 0& o0 00 OA ft
43-T_T
—
O [~~~] O 0 9 C 39>= 0 0 O S9í»9 rx^l r-i-n9 & 3C Q ^"^ ¡>c
S e s"1 o »^c 5 5 5
a o & o a9 C 9 C 9
Ií S í « >9 fi 5 O 9C í « 9
& C 9 C &O 0 3 O 9^ 'OO ra
O <CH&
^ i mfaO^l (SIS 0 0 r-n '
lo Io o | o j
o LOu
Figura 4.26. Distribución de los elementos en la tarjeta 1.
123
La tarjeta 2 (encima) contiene el microcontrolador PIC16C57, las
memorias, el decodificador, el inversor, el MAX232 y todos los elementos
de visualización como DISPLAYs y LEDs (figura 4.27).
0=
«a
r ,OQ
OOBOO1 1! |
OOQOO
oonoon¡ \
OOQOO
OOQOO
n1 !„
OCQOO
COBOOi i¡ i_
OOHOO
O Ort LJ
or-noooí _ 1
no op ioo c o2 S 2JO di I*
D¡ S10ar-noo ooLJo
sa°rjií>o oo oo^ ^o
Figura 4.27. Distribución de los elementos en la tarjeta 2.
Para realizar las conexiones en las tarjetas (ruteo) se hizo
necesario utilizar los dos lados de la mismas, lo cual se puede observar
en la figura 4.28, en donde el color rojo indica que son conexiones por el
lado de los elementos (arriba) y el color verde por el lado de las sueldas
(abajo). Además los puntos de color rojo intenso señalan las vías de
unión entre las líneas de arriba y de abajo.
124
GUSTAVO ÜPE6UITESIS DE GRADO
E.P.N.
O
Figura 4.28. Conexiones de la tarjeta 1 (arriba) y la tarjeta 2 (abajo).
125
En la figura 4.29 se puede observar la apariencia real de las
tarjetas y los elementos que conforman el módulo.
Figura 4.29. Apariencia real de las tarjetas.
El transformador, porta-fusible, switch de encendido y el conector
DB-9, no están incluidos en las tarjetas, y serán fijados en la caja que
contiene al módulo.
La caja mide 22 x 20 x 10 y está fabricada en acrílico negro
(caras laterales e inferior) y transparente (cara superior). En la figura
4.30 se puede observar el acabado final del módulo.
126
Figura 4.30. Acabado final del módulo de comunicación.
127
CAPITULO V
PRUEBAS Y RESULTADOS
Para probar el adecuado funcionamiento del módulo, se procedió
a realizar las siguientes pruebas:
PRUEBA DE ESCRITURA EN LAS MEMORIAS PC DESDE LA
INTERFAZ MANUAL.
En esta prueba se envía el dato 56h hacia la memoria I2C (1) y se
almacena en la localidad con dirección 4Ch, además se envía el dato 4Bh
hacia la memoria I2C (2) y se almacena en la localidad 4Ch. Como puede
observarse, las localidades que se usan en las memorias tienen la misma
dirección, con el fin de comprobar que no sobre-escribe el dato, ya que
son memorias diferentes.
siguiente
El proceso para enviar el dato hacia la memoria PC (1) es el
e:
Se presiona la tecla ENTER y se ingresa en el dipswitch el
número OOh, io cual significa que se escribirá en la memoria
I2C (1) sin utilizar la protección de escritura del bloque (80-FF).
128
Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad en la que se escribirá (4Ch).
Se presiona la tecla ENTER y se ingresa en el dipswitch el
dato a enviarse (56h).
Se presiona la tecla ENTER para ejecutar la operación.
El proceso para enviar ei dato hacia la memoria I2C (2) es el
siguiente:
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
número 02h, lo cual significa que se escribirá en la memoria
I2C (2) sin utilizar la protección de escritura del bloque (80-FF).
• Se presiona la tecla ENTER y se ingresa en el dipswitch ia
dirección de la localidad en la que se escribirá (4Ch).
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
dato a enviarse (4Bh).
• Se presiona la tecla ENTER para ejecutar la operación.
PRUEBA DE LECTURA EN LAS MEMORIAS I2C DESDE LA INTERFAZ
MANUAL.
Esta prueba es el complemento de la anterior, puesto que se
leerá la dirección 4Ch en ambas memorias, con el fin de comprobar sus
contenidos.
El proceso para leer un dato en la memoria I2C (1) es el siguiente:
129
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
número 01 h, lo cual significa que se leerá la memoria I2C (1).
• Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad que se desea leer (4Ch).
• Se presiona la tecla ENTER para ejecutar la operación.
El resultado obtenido en esta operación es (56h).
El proceso para leer un dato en la memoria I2C (2) es el siguiente:
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
número 03h, lo cual significa que se leerá la memoria I2C (1).
• Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad que se desea leer (4Ch).
• Se presiona la tecla ENTER para ejecutar la operación.
El resultado obtenido en esta operación es (4Bh).
Con estas dos pruebas se confirma el acceso independiente que
tiene el microcontrolador hacia las dos memorias, utilizando únicamente
las dos líneas que componen el bus.
130
PRUEBA DE ESCRITURA EN LA MEMORIA SERIAL DE 4 LINEAS
DESDE LA INTERFAZ MANUAL.
Esta prueba se realizará tanto en 8 bits como en 16 bits. En 8 bits
se enviará el dato 34h hacia la localidad 70h y en 16 bits se enviará el
dato 45CAh hacia la localidad 1 Fh.
El proceso para enviar un dato de 8 bits hacia la memoria serial
de 4 líneas es el siguiente:
• Se presiona la tecla ENTER y se ingresa en el dipswítch el
número 04h, lo cual significa que se escribirá en la memoria
serial de 4 líneas configurada a 8 bits.
• Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de ¡a localidad en la que se escribirá (70h).
• Se presiona la tecla ENTER y se ingresa en e! dipswitch el
dato a enviarse (34h).
• Se presiona la tecla ENTER para ejecutar la operación.
El proceso para enviar un dato de 16 bits hacia la memoria serial
de 4 líneas es el siguiente:
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
número OCh, lo cual significa que se escribirá en la memoria
serial de 4 líneas configurada a 16 bits.
• Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad en la que se escribirá (1Fh).
131
Se presiona la tecla ENTER y se ingresa en el dipswitch los
bits menos significativos del dato a enviarse (CAh).
Se presiona la tecla ENTER y se ingresa en el dipswitch los
bits más significativos del dato a enviarse (45h).
Se presiona la tecla ENTER para ejecutar la operación.
PRUEBA DE LECTURA EN LA MEMORIA SERIAL DE 4 LINEAS
DESDE LA INTERFAZ MANUAL
Esta prueba es el complemento de la anterior, puesto que se
leerá los datos tanto en 8 bits como en 16 bits.
El proceso para leer un dato de 8 bits en la memoria serial de 4
líneas es el siguiente;
• Se presiona la tecla ENTER y se ingresa en el dipswitch el
número 05h, lo cual significa que se leerá la memoria serial de
4 líneas, configurada en 8 bits.
• Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad que se desea ieer (70h).
• Se presiona la tecla ENTER para ejecutar la operación.
El resultado obtenido en esta operación es (34h).
El proceso para leer un dato de 16 bits en la memoria serial de 4
líneas es el siguiente;
132
Se presiona la tecla ENTER y se ingresa en el dipswitch el
número ODh, io cual significa que se leerá la memoria serial de
4 líneas, configurada en 16 bits.
Se presiona la tecla ENTER y se ingresa en el dipswitch la
dirección de la localidad que se desea leer (1 Fh).
Se presiona la tecla ENTER para ejecutar la operación.
El resultado obtenido en esta operación es (45CAh).
Con estas dos pruebas comprobamos las operaciones más
importantes sobre el bus serial de 4 líneas, tanto en 8 bits como en 16
bits.
PRUEBA DE ESCRITURA EN LAS MEMORIAS I2C DESDE LA
INTERFAZ DEL COMPUTADOR.
Las operaciones de escritura más importantes que se realizan
desde la interfaz del computador son las que utilizan un archivo *.HEX
para enviarlo completamente a la memoria. Realizaremos esta operación
en las dos memorias con archivos *,HEX diferentes.
Las líneas que conforman el archivo *.HEX tienen 9 caracteres
de prefijo y 2 caracteres al final que sirven para el chequeo (checksum).
Cada línea tiene el siguiente formato:
:BBAAAATTHHHH....HHHCC
133
donde
BB - Representa el número de bytes de datos que aparecen
en la línea.
AAAA - Representa la dirección inicial en donde se guardan los
datos.
TT- Son dos dígitos que siempre aparecen en cero '00',
excepto al final del archivo, donde toman el valor de uno
'01'.
HH - Dos dígitos hexadecimales que representan los datos.
CC - Dos dígitos hexadecimales compuestos por la "suma de
dos" de todos los bytes de datos utilizados para el
chequeo (checksum).
El proceso para enviar e! contenido de un archivo *.HEX hacia la
memoria PC (1) es el siguiente:
• Se hace un "click" en el menú SELECCIONAR MEMORIA y se
escoge la opción que indica "Memoria I2C (1)".
134
í I
: O" "= ^'^ r-^r
En la siguiente ventana se escogerá la opción EEPROM, con
el fin de escribir completamente en la memoria (sin protección
de escritura).
Jof
1
r
i•^
í
r
r
t "
@IB^MÍí * r- s__ _,
/-^flOM "
-v, >(.
i^QKPRDi *^ "~í, fc
r:* ,*-^ ,
" ' -
| ¿eptar _ j-< r- *
S©d
=r
-
M
-
TT-r-i- Tf "**rrn" M — "i — rr~T -t-¡n'i^P^--J?rtr-t?-*
•~ "~ ""
' 'ÍT^** •TJ.-r --.,-—, -, ™-,
No permite *etcfiMr en elbkx ieí -FF}(PlnWPwALTD)
Permrte escribir en toda lamemoria(PtnWPenBWG)
_*^, „ „ ¡i ^ _
-
w j j £ancete¿-* -
i-t "trf •
i:
ases
2fl
1f"
|
i.;
-
En la siguiente ventana se escoge la operación, en este caso
"ESCRIBIR EN LA MEMORIA".
135
+Z.~ |
' proceso a eísctwaree cofite memoria t2D
Escribir en fe Memoria
¿J ¿e* fe Memoria
Después seleccionamos la operación "ENVIAR DESDE
ARCHIVO *.HEX".
Enviar un dato a una dirección específica de la'
*- j~ Enviar má* de yn dato hacia fe memoria" en'-f íqcalídadeá sucesivas (hasta 8 datos].
í f Q*- Enviar el^jísmo daío a loda Ja mempría. ~
136
Abrimos el archivo deseado, por ejemplo el archivo
PRUEBA1.HEX.
:1 00000005800830403051808830403054708830460:10001000030568OB8304A305B70883050304000A1B:1 00020008305030431 OOC305fl3045500e3050304E9:1 0003000880083050304040083050304800083 051 O:10004000fl304D50083050304E00083050304FOQ05E:1000500083050304540BC3050304600BC30503047F:100060009308830503050000830503051100830525:1 0007 00003052200830503 0551 00830503058FOAD8:1 0008 000830503 0599 OftC305fl305fi40AC3Q5fl305CF:10009 OOOB20ñC305fi305D10AC3 05fi3 05F30flC3 0524:1000ñ 000A3 05 4COBC3 05fi3 057DOBC305fi3 0593 OB4B:1000BOOOC305A305B90B080C2500400005000FOC73:1 0008 00002 00640063 0001 OC3F006A 000405 OCOCF0:1000D0003D007F007EOOfi404020C 250066 00000C99:1000E00006 0003 OC 250008 082500FFOC 06 00140C6C:1000F0002400800C27 006 008 07 0083 06820063 0737:1 001 0000820055095209 0400FFOC 02008404040528:100110007F000404C706230B800623eB2B096ñ061B:10012000830011022000040284040405FD02830068:1 0013 00004041402C404040538 00040452 097406D7:10014000Efl057407E0047404F4028BOfl020C250eF1:1001500036070FOO 08 0826000008 0600B3001 00884:1 0016000260000080600150230000409340952096B:1001700049094609230BF402D300020C250036076D:10018000C600080C2600000C0600COQ0100826003D:1 0019 000000C 06 0015022F 0017 02340001 0952 0955:10010 0004909460923OBF402E80002082500040C55:1 001B 00026 000008 06 0015023 00017 0236 0018 OC4D:1 0018 000240016 09 07 0919 09520949 0946 0923 OB9 O:00000001FF
Debido a que el archivo es demasiado grande para el tamaño
de la memoria, se le pregunta al usuario si desea descargar en
el buffer todos los datos posibles. Para esta prueba se
respondió SI.
137
EtarchÍYD C:\Ffuebi jíettíasiado gra*i4e paía; ettai&año d& lamentarla»Desea descargar en el buffet toáoslos datcís posibles dé
.§Í_J Ko"
Cuando el buffer se encuentra lleno con los datos que se
desean enviar, se presiona el botón "ENVIAR31.
El proceso para enviar el contenido de un archivo *.HEX hacia la
memoria I2C (2) es el mismo, pero en este caso se abrirá el archivo
PRUEBA2.HEX, con el fin de que las memorias reciban diferentes datos.
138
:1000000075813075890112Q39B756600756DC87529:100010006C9875óBE075ófl907569ft07568887567EE:1 00020008 078737EOD20B 0771203B12003 F7F608B5:10003OOODEF378737E0DD5730EE574339206857505:100040007012Q0C802009FD5730C8575Ó4857774A3:1 00050001200A202009FD5730BE5743392071281CO:1000Ó000B702009FD57311E5743392Q785756485D7:1 0007 00077741202C302009FD5730BE57 433920705:10008 00012021B02009FD5730BE57433920712 0214:1 0009 0006402009FD57308E57433920712029B 0235:1000fl0000025857ó73E5762401F575ñ20692927592:1000B 0086 F737570021200DC756F75757 001120038:1000C000DC12018E12013F22A20Ó9292756F7ÓE534:1000D000702402F5701200DC12013F22ñ96FE9259D:1000E00070F56E1200Fft8772l2010F12011D2002C4:1Q00F000EB12016109E9B56EED22D290D291C290Ó6:10010000C29122EóF5711201ó808D9F702010C7ft52:1001100008E572339290D291C291DfiF722D2907Afló:10012Q00FF30900BDfiFB12013F120152D20222C2C1:1001300002D291C29122C290D291C291D29022C297:100140009OD291D290128149227C1B7DFFDDFEDC12:10015000Ffi2290ft000740EF0227F2F120149DFFBDB: 1001 ó 0002274009 Ofl000F022E571540F90fl003F0DB:10017000E57154FOC490fi002FOE566540F90A00120:10018000F0E56654FOC490fi000F012015922ñB646F:1Q0190007ft08D291fi29033C291DflF7120136F57142:1001ft0001203D012016812039BDBE5D290D291C2F8:1 001B0009122020792972212020F12036985697297:1001C000756503120302200709E577337565070299
PRUEBA DE LECTURA EN LAS MEMORIAS PC DESDE LA INTERFAZ
DEL COMPUTADOR.
La operación de lectura más importante que se realiza desde la
interfaz del computador es "Leer toda la memoria", ya que también nos
permite almacenar el contenido de esta memoria en un archivo *.HEX
El proceso para leer todo el contenido de la memoria I2C (1) es el
siguiente:
• Se hace un "click" en el menú SELECCIONAR MEMORIA y se
escoge la opción que indica "Memoria I2C (1)".
139
En la siguiente ventana se puede escoger cualquiera de las
dos opciones, ya que no afectan la operación de lectura.
En la siguiente ventana se escoge la operación, en este caso
"LEER LA MEMORIA".
r C
O Escríbtrertia Memoria**• —
mmtaw.WM-
í^leerlaMemonfit* '
lá Memoria
Después seleccionamos la operación "LEER TODA LA
MEMORIA".
140
t leer una o varías localidades-délamemoria
¿eeptar
Cuando el buffer se encuentra lleno con los datos que llegaron
desde la memoria, es posible generar un archivo *.HEX,
presionando el botón que indica esta opción.
Bufíer de tettura
0123456789ABCDEF10J1
5B
GbC304A3051COBC304A30547OBC304A3.n.5
ir í-í¿&&-'•'%;&ftf^Z
••;'&
w*%&•&¿~>%&Ws¿,
:~í¿&~s
iftÍU^
•&¿>¡:
ijjJF
'£&••
luz"$&
u!
141
Escogemos el nombre de dicho archivo, por ejemplo
RESPALD01.HEX.
:100000005B0ftC30í|ft3 051 C0BC304fl3 0547 0BC3046D:10001000A305680BC304fi305B70BC305ft304000A1B:10002000C305ft304310flC305fl304550ftC305fl304E9:10003000880flC305fl304fi40AC305ft304C00ftC30510:1000400GA304D50AC305ft304E00ftC305fl304FA0fl5E:10005000C305A304540BC305A3046AOBC305A3047F:1000600093OBC305A305000AC305A30511OAC30525:1 0007 000A305220AC3 05A3 0551 OAC305A3058FOAD8:1 0008 000C305A3 0599 0AC305A305A40AC305A305CF:1 0009 000B20AC305A305D10ftC305A305F30AC3 0524:1000A000ft3054COBC305A3057D0BC305A305930B4B:1000B000C305ñ305B90B080C2500400005000F0C73Z100GC 00002 00Ó400Ó3 0001 0C3F00ón00fi4 05 0CÜCF0:1000D0003D007F007E00ñ404 02 0C 250066 00000C99:1000E0000600030C2500080C2500FFOC0600140C6C:1000F0002U00800C27 006 00C 07 0083 06820fl63 0737100000001FF
El proceso para leer el contenido de la memoria I2C (2) es el
mismo, pero en este caso se guardará en el archivo RESPALD02.HEX.
:1000000075813075890112039B756600756DC07529:100010006C98756BE0756fl907569ft07568887567EE:1 00020008 078737EOD20B 0771203B12003F7F608B5:10003000DEF378737EODD5730EE574339206857505:10004000701200C802009FD5730C857564857774ñ3:1 0005 0001200ft202009FD5730BE5743392071201C0:10006000B702009FD57311E57433920785756485D7:1000700077741202C302009FD5730BE574339207fl5:1 0008 00012021B02009FD5730BE57 4339207120214:1 0009 0006402009FD57308E57 433920712 029B 0235:1000fl0000025857673E5762401F575ñ20692927592:1000B0006F73757 0021200DC756F75757 001120038:1000C000DC12018E12013F22ñ2069292756F76E534:1000D000702402F5701200DC12013F22fl96FE9259D:1000E00070F56E1200Ffi87721201 0F12011D2002C4:1000F000EB12016109E9B56EED22D290D291C29066:00000001FF
142
Como puede observarse al comparar los archivos *.HEX, la
memoria I2C (1) y la memoria I2C (2) han recibido todos los datos posibles
desde los archivos PRUEBA1.HEX y PRUEBA2.HEX, lo cual confirma el
perfecto funcionamiento desde la ¡nterfaz del computador.
143
CAPITULO VI
ANÁLISIS ECONÓMICO
A continuación se desglosa el precio de cada uno de los elementos que
conforman el módulo:
CANT. COMPONENTE
1
2
1
4
1
6
2
1
1
2
1
Caja y placa de acrílico
Tarjetas de fibra de vidrio
(ruteadas)
Microcontrolador PIC16C57
DISPLAYs de 7 segmentos
Max 232
Cl 74LS373
Cl 74LS244
Cl 74LS138
Cl 74LS04
Memorias 24C02A
Flete para las memorias
P. UNITARIO
(sucres)
340000
P. TOTAL
(sucres)
340000
120000
60000
7000
30000
4500
4500
3500
3000
4000
50000
240000
60000
28000
30000
27000
9000
3500
3000
8000
50000
144
1
1
1
1
2
5
1
43
12
15
1
2
2
2
1
1
2
3
2
1
2
3
Memoria 93LC46
Puente rectificador (2A)
Condensador de 3300 uF
Cl LM7805
Diodos 4007
Condensadores 1uF
Condensador 0.1 uF
Resistencias de 270
Resistencias de 10k
LEDs
Cristal oscilador
Condensadores de 15 pF
Correas de 40 líneas y
conectores.
Interruptores de palanca
Zócalos de 20 pines
Zócalos de 18 pines
Zócalo de 14 pines
Zócalo de 28 pines
Zócalos de 24 pines
Zócalos de 8 pines
Conectores de 2 pines
Conector de 3 pines
Teclas
Conectores DB-9
Varios
4500
2800
2000
5000
800
1000
800
200
200
800
5000
800
15000
2000
1500
1500
1200
3000
3000
1500
2500
2500
5000
2500
4500
2800
2000
5000
1600
5000
800
8600
2400
12000
5000
1600
30000
16000
30000
27000
16800
3000
6000
4500
5000
2500
10000
7500
10000
TOTAL 1018100
145
Para referencias futuras, se convertirá este costo, a dólares.
Costo total en dólares: $ 198,5
146
CAPITULO Vil
COMENTARIOS Y CONCLUSIONES
COMENTARIOS
Son interesantes todas las posibilidades que nos brinda el
protocolo PC, ya que en la actualidad existen cientos de componentes
que utilizan este protocolo como conversores A/D, conversores D/A,
controladores de LCD, memorias, procesadores de audio y vídeo,
sintetizadores de voz, etc.
Aunque no resulta tan complicada la implementación de una
interfaz PC, ya existen varios microcontroladores con una interfaz propia,
lo que hace más sencillo su manejo.
El microcontrolador PIC16C57 resulta fácil de programar, debido
a su corto número de instrucciones, pero existe una marcada desventaja
al no poder realizarse más de dos llamadas anidadas a sub-rutina.
Otro inconveniente dentro de la programación del
microcontrolador, es la necesidad de indicar mediante instrucciones, la
página a la que se dirige cualquier salto en el programa. Este punto es
quizá el que introduce mayor cantidad de errores, puesto que en caso de
no seleccionar la página a la que se dirige el salto, el programa
147
simplemente llega a una localidad desconocida, cambiando totalmente el
sentido del mismo.
La ventaja más importante que tiene el programa MPLAB, es la
interfaz al usuario en ambiente "WINDOWS", ya que esto permite obtener
de una manera muy sencilla toda la información necesaria durante la
simulación del programa.
CONCLUSIONES
En comparación con un sistema de comunicación por puerto
paralelo, el protocolo I2C requiere mucho menos alambrado y por lo tanto
menor cantidad de conexiones, lo que permite una disminución
considerable del tamaño de la tarjeta en donde se aplique. Además los
dispositivos con este tipo de interfaz se caracterizan por ser muy
pequeños, ya que utilizan un bus de 2 líneas en vez de uno de 8, como
ejemplo están las memorias utilizadas.
Cada dispositivo conectado al bus posee una única dirección, así
todos pueden recibir la dirección esclava, pero sólo uno responde a ella,
de esta manera se evita la necesidad de un seleccionamiento previo del
dispositivo con el que se desea intercambiar información.
Tanto el bus I2C como el bus serial de 4 líneas resultan bastante
rápidos, a pesar de su característica serial, puesto que permiten una
transmisión de hasta 400 Kbits por segundo, lo cual es suficiente para la
mayoría de tareas de control.
148
Este bus se utiliza normalmente para la comunicación entre un
maestro y sus esclavos dentro de una misma tarjeta, ya que las
distancias de enlace son muy pequeñas, lo que nos indica que no es
adecuado para distancias superiores a una pocas decenas de
centímetros.
El tipo de comunicación que se utiliza en este bus es HALF-
DUPLEX, debido a que los maestros se encargan de generar todas las
señales y los esclavos sólo responden cuando son requeridos.
Una característica importante en el bus I2C es que cualquier
dispositivo puede utilizar la línea SCL como una línea de control, ya que
después de recibir un dato y reconocerlo, puede mantener en BAJO esta
línea, provocando un estado de espera en el maestro que controla el bus.
Esta acción le permitirá al dispositivo realizar una operación interna
necesaria para continuar la transferencia de datos. Aunque no todos los
dispositivos están diseñados para esto.
Los recursos de hardware que se requieren en un
microcontrolador para implementar el protocolo I2C, son simplemente dos
pines para formar el bus, pero, los recursos de software que se requieren,
dependen de la complejidad de la interfaz, es decir, si se utilizará
arbitraje, sincronización, direccionamiento con 10 bits, etc.
En una memoria con protocolo I2C es muy poco probable la
escritura accidental de información errónea, ya que todos los datos deben
ser precedidos por una única dirección que reconoce cada memoria. En
el caso de la memoria serial de 4 líneas esta posibilidad es prácticamente
imposible, debido a que después de cada transferencia, se utiliza la
operación EWDS que desactiva todo tipo de operación de escritura y
borrado sobre la memoria.
149
Después de trabajar con la interfaz Í2C y con la interfaz serial de
4 líneas, puedo decir que a pesar de que esta última trabaja a una
altísima velocidad, la interfaz I2C es mucho más completa, puesto que
permite colgar al bus varios dispositivos que no requieren más que dos
líneas para comunicarse, mientras que el protocolo serial de 4 líneas solo
puede comunicarse con un dispositivo a la vez y requiere más recursos
de hardware.
El módulo construido en la presente tesis permitirá a los
estudiantes, y en general a cualquier persona interesada en este tipo de
protocolos comprobar las virtudes que ofrecen este tipo de memorias,
además de utilizarlo como un programador de memorias que poco a poco
ingresarán con más fuerza a aplicaciones que requieran almacenamiento
de datos con limitado espacio para los elementos. También será un
respaldo bibliográfico muy detallado para desarrollar a futuro aplicaciones
concretas utilizando diferentes dispositivos con interfaz I2C.
150
BIBLIOGRAFÍA
1) EMBEDDED CONTROL HANDBOOK, Microchip Technology,
1994/1995.
2) NON-VOLATILE MEMORY PRODUCTS DATA BOOK. Microchip
Technology, 1995/1996.
3) INTEGRATED CIRCUITS DATA HANDBOOK. Philips Semiconductor,
1992.
4) PIC 16/17 MICROCONTROLLER DATABOOK. Microchip Technology,
1994/1995.
5) LINEAR DATABOOK. National Semiconductor Corporation, 1982.
6) MAXIM HANDBOOK, Maxim, 1995.
7) SIGNETICS LOGIC-TTL DATA MANUAL. Signetics Corporation,
1978.
8) MPLABTUTQRIAL, Microchip Technology, 1997.
REFERENCIAS DE INTERNET
1) http://www.microchip.com
2) http://www.philips.com
151
ANEXOS
ANEXO 1
INSTRUCCIONES DEL MICROCONTROLADOR PIC16C57.
ANEXO 2
CARACTERÍSTICAS DEL MICROCONTROLADOR.
ANEXO 3
CARACTERÍSTICAS DE LOS CIRCUITOS INTEGRADOS UTILIZADOS
EN EL MODULO.
ANEXO 4
CARACTERÍSTICAS DE LAS MEMORIAS 24C02A Y 93AA46
oí*-! i OKII
ADDWF: Suma el contenido del registro de trabajo (W) con e! registro (f).
Si el operando d (destino) es "O" e! resultado es almacenado en
e! registro W, pero sí es "1" el resultado es almacenado en el
registro (f).
Sintaxis: ADDWF f,d
Operación: (w)+(f)-»(dest¡no)
Bits afectados: C ní" 7
Código: | 0001 | lldf I ffff I
Palabras: 1
Ciclos 1
Ejemplo: ADDWF FSR.O
Antes de la instrucción: W=17H y FSR=C2H
Después de la instrucción: W=D9H y FSR=C2H
ANDLW: Se hace un "Y" lógico entre el contenido del registro W y un
numero de 8 bits colocado por el usuario (k), el resultado es
almacenado en e! registro W.
Sintaxis: ANDLW k
Operación: (w) AND (k)-)-(W)
Bits afectados: Z
código: | 1110 | kkkk ¡ kkkk |
Palabras: 1
Ciclos 1
Ejemplo: ANDLW 5F
Antes de la instrucción: W=A3H
Después de ia instrucción: W-03H
ANDWF: Se hace un "AND" lógico entre el contenido del registro W y el
registro (f). Si el operando d (destino) es "O" e! resultado es
almacenado en el registro W, pero si es "1" el resultado es
almacenado en el registro (f).
Sintaxis: ANDWF f,d
Operación: (w) AND (f)-»(destino)
Bits afectados: Z
código: i 0001 i oidf i
Palabras: 1
Ciclos 1
Ejemplo: ANDWF FSR.1
Antes de la instrucción: W=17H, FSR=C2H
Después de la instrucción: W=17H, FSR=02H
En el bit b (Posición b) del registro (f) se coloca un "O" lógico.
Sintaxis: BCF f,b
Operación: 0^(f<b>)
Bits afectados: Ninguno
código: | oíoo | bbbf ¡ ffff |Palabras: 1
Ciclos 1
Ejemplo: BCF FLAG_REG,7
Antes de ía instrucción: FLAG_REG=C7H
Después de ía instrucción: FLAG_REG-47H
En el bit b (Posición b) del registro (f) se coloca un "1" lógico.
Sintaxis: BSF f,b
Operación: 1 ->(f<b>)
Bits afectados: Ninguno
cód'9°: | 0101 | bbbf | fíff ¡
Palabras: 1
Ciclos 1
Ejemplo: BSF FLAG_REG,7
Antes de la instrucción: FLAG REG-OAH
Después de la instrucción: FLAG_REG-8,—PAU— v\ i
Si el bit b (posición b) de! registro (f) es un "O" lógico, la
siguiente instrucción es saltada, caso contrario, se ejecuta la
siguiente instrucción. Cuando la instrucción es saltada, una
instrucción NOP se ejecuta, por lo que la instrucción completa
dura dos ciclos de máquina.
Sintaxis: BTFSC f,b
Operación: Salta si (f<b>)=0
Bits afectados: Ninguno
código:
Palabras:
Ciclos
Ejemplo:
Q.UO | bbbf | fffF [
1(2)
HERE BTFSC FLAG.1
GOTOHERE
GOTO THERE
THERE
Antes de la instrucción: PC=(HERE)
Después de la instrucción: Si FLAG<1>=0
PC=(THERE)
SiFLAG<1>=1
PC=(HERE)
BTFSS: Si el bit b (posición b) del registro (f) es un "1" lógico, la
siguiente instrucción es saltada, caso contrario, se ejecuta la
siguiente instrucción. Cuando la instrucción es saltada, una
instrucción NOP se ejecuta, por lo que la instrucción completa
dura dos ciclos de máquina.
Sintaxis: BTFSS f,b
Operación: Salta si (f<b>)=1
Bits afectados: Ninguno
código:
Palabras:
Ciclos
Ejemplo:
0111 bbbf1
1(2)
HERE
CALL:
THERE
Antes de la instrucción: PC=(HERE)
Después de la instrucción: Si FLAG<1>=0
PC=(HERE)
SiFLAG<1>=1
PC=(THERE)
Llamada a sub-rutina. La dirección (PC+1) es colocada en el
Stack, los ocho bits que forman el número (k) son colocados en
los ocho bit menos significativos del PC <7:0>] los dos bits más
significativos del PC son cargados con los bits <6:5> del registro
STATUS y el bit <8> de! PC es borrado.
Sintaxis: CALL k
peración: (PC)+1 -> Top of Stack
(STATUS<6:5>)-»PC<10:9>
Bits afectados: Ninguno
cód'9°: | 1001 | Ickkk ¡ kkkk j
Palabras:
Ciclos
Ejemplo:
1
2
CALL
THERE
Antes de la instrucción: PC=(HERE1
Después de la instrucción: PC=(THERE)
TOS=(HERE+
CLRF: Se borra eí contenido del registro (f) y se coloca un "1" lógico en
el bit Z.
Sintaxis: CLRF f
Operación: OOH-^(f)
Bits afectados: Z
código: r
Palabras:QOOO ..011f
Pi
1
1
íjemplo: CLRF FLAG_REG,7
Antes de la instrucción: FLAG_REG-5AH
Después de la instrucción: FLAG_REG=OOH
Z="1"
CLRW: Se borra e! contenido del registro de trabajo (W) y se coloca un
"1" lógico en el bit Z.
Sintaxis: CLRW
Operación: OOH^(W)
Bits afectados: Z
Código: j QQOQ ¡ QiQQ ¡ QQQQ ¡
Palabras; 1
Ciclos 1
Ejemplo: CLRW
Antes de la instrucción: W=5AH
Después de la instrucción: W^OOH"7»» 4 »
WDT: Esta instrucción re-inicia tanto el WDT como la escala, si ésta
estaba asignada al WDT y no al Timer O, además coloca un "1"
lógico en los bits TO y PD.
Sintaxis: CLRWDT
Operación: OOH-^WDT
0-»EscaIa de! WDT (si ésta fue asignada)
1->TO
1-»PD
Bits afectados: TO, PD
QOQQ OQQQ OIQQ
Palabras: 1
Ciclos 1
Ejemplo: CLRWDT
Antes de la instrucción: Contador WDT=?
Después de !a instrucción: Contador WDT-OOH
Escala WDT^O
T0="1"
PD="1"
"COMF: Se complementa el contenido del registro (f). Si el operando d
(destino) es "O" el resultado es almacenado en el registro W,
pero si es "1" el resultado es almacenado en el registro (f),
Sintaxis: COMFf.d
Operación: CPL(f)-^(destino)
Bits afectados: Z
código: 0010Palabras: 1
Ciclos 1
Ejemplo: COMF REG1,0
Antes de ia instrucción: REG1-13H
Después de la instrucción: REG1=13H
W=ECH
Decrementa en uno el registro (f), Si el operando d (destino) es
"O" e! resultado es almacenado en el registro W, pero sí es "1" el
resultado es almacenado en el registro (f).
Sintaxis: DECF f,d
Operación: (f) - 1-»(destino)
Bits afectados: Z
código:
Palabras:
Ciclos
Ejemplo:
Íii
11DECF
Ldf ¡ ffif ¡
CNT.1
Antes de la instrucción: CNT=01 H
Z="0"
Después de la instrucción: CNT=OOH
DECFSZ: Decrementa en uno el registro (f). Sí el operando d (destino) es
"O" el resultado es almacenado en el registro W, pero si es "1" el
resultado es almacenado en el registro (f), además si el
resultado es cero, la siguiente instrucción es saltada y una
instrucción NOP se ejecuta, pero si el resultado es diferente de
cero la siguiente instrucción es ejecutada.
Sintaxis: DECFSZ f,d
Operación: (f) - 1 -(destino); salta si e! resultado es cero
Bits afectados: Ninguno
código: | 0010 | iidf fffi
Palabras:
Ciclos
Ejemplo:
11(2)
HERE
CONTINUÉ
DECFSZ CNT.1
GOTOLOOP
Antes de la instrucción: PC^(HERE)
Después de la instrucción: CNT=CNT-1
Si CNT=0,
PC=(CONTÍNUE)
Si CNT<>0
PC=(HERE+1)
GOTO: Esta instrucción produce un salto incondicional. Los nueve bits
que forman el número k son cargados en los nueve bits menos
significativos del PC y los dos bits más significativos de! PC son
cargados con los bits <6:5> del registro STATUS.
Sintaxis: GOTOk
Operación: k-»PC<8:0>
STATUS<6:5>->PC<1 0:9>
Bits afectados: Ninguno
IQlk kkkk kkkk
Palabras:
Ciclos
Ejemplo:
2
GOTO THERE
Antes de la instrucción: PC=?
Después de la instrucción: PC=(THERE)
INCF: Incrementa en uno el registro (f). Si e! operando d (destino) es
"O" el resultado es almacenado en el registro W, pero si es "1" el
resultado es almacenado en el registro (f).
Sintaxis: INCF f,d
Operación: (f) + 1-»(destino)
Bits afectados: Z
código: I 0010 i iodf fiEffPalabras: 1
Ciclos 1
Ejemplo: INCF CNT.1
Antes de la instrucción: CNT=FFH
Z="0"
Después de la instrucción: CNT-OOH
Z="1"
INCFSZ: Incrementa en uno el registro (f). Si el operando d (destino) es
"O" el resultado es almacenado en e! registro W, pero si es "1" el
resultado es almacenado en el registro (f), además si el
resultado es cero, la siguiente instrucción es saltada y una
instrucción NOP se ejecuta, pero si el resultado es diferente de
cero la siguiente instrucción es ejecutada.
Sintaxis: INCFSZ f,d
Operación: (f) + 1 -(destino); salta si el resultado es cero
Bits afectados: Ninguno
Palabras: 1
Ciclos 1(2)
Ejemplo: HERE INCFSZ CNT.1
GOTOLOOP
CONTINUÉ
Antes de ia instrucción: PC=(HERE)
Después de la instrucción: CNT-CNT+1
Si CNT=0,
PC=(CONTINUE)
Si CNT<>0
PC=(HERE+1)
IORLW: Se hace un "OR" lógico entre el contenido del registro W y un
numero de 8 bits colocado por ei usuario (k), e! resultado es
almacenado en el registro W.
Sintaxis: IORLW k
Operación: (w) OR (k)-KW)
Bits afectados: Z
código: I 1101 I kkkk I kkkk 1* * * ...Palabras: 1
Ciclos 1
Ejemplo: IORLW 35
Antes de la instrucción: W=9AH
Después de la instrucción: W-BFH
ÍORWF: Se hace un "OR" lógico entre el contenido del registro W y
cualquiera de los registros (f). Sí el operando d (destino) es "O" el
resultado es almacenado en el registro W, pero sí es "1" el
resultado es almacenado en el registro (f).
Sintaxis: ÍORWF f,d
Operación: (w) OR (f)^-(destino)
Bits afectados: Z
código: 0001 oodfPalabras: 1
Ciclos 1
Ejemplo: IORWF RESULT.O
Antes de la instrucción: W-91 H,
RESULT=13H
Después de la instrucción: W=93H,
RESULTA 3H
MOVF: Mueve el contenido del registro (f) al destino d. Si el operando d
(destino) es "O" el resultado es almacenado en el registro W,
pero si es "1" el resultado es almacenado en el registro (f).
Sintaxis: MOVF f,d
Operación: (f)-»(dest¡no)
Bits afectados: Z
OPIOPalabras: 1
Ciclos 1
Ejemplo: MOVF FSR,0
Antes de la instrucción: FSR=20H, W=?
Después de la instrucción: FSR=20H, W=20H
MOVLW:Carga el numero de 8 bits colocado por el usuario (k) en e!
registro de trabajo W,
Sintaxis: MOVLW k
Operación: (k)->(W)
Bits afectados: Ninguno
11QQ kkkk kkkk
Palabras: 1
Ciclos 1
Ejemplo: MOVLW 5A
Antes de la instrucción: W=?
Después de la instrucción: W-5AH
MOVWF: Mueve el contenido de! registro de trabajo W al registro (f).
Sintaxis: MOVWF f
Operación: (W)->(f)
Bits afectados: Ninguno
códi9°: | oooo | ooif | m ]
Palabras: 1
Ciclos 1
Ejemplo: MOVWF TEMP_REG
Antes de la instrucción: TEMP_REG=FFH
W=4FH
Después de la instrucción: TEMP_REG=4FH
W=4FH
NOP: No realiza ninguna operación.
Sintaxis: NOP
Operación: No realiza operación
Bits afectados: Ninguno
Código: [ QQOQ | QOQQ | 0000 |
Palabras: 1
Ciclos: 1
Ejemplo: NOP
OPTION: Mueve el contenido de! registro de trabajo (W) al registro
especia! OPTION.
Sintaxis: OPTION
Operación: (W)-XOPTION)
Bits afectados: Ninguno
código:
Palabras:
Ciclos
Ejemplo:
1
1
OPTION
Antes de la instrucción: W=07H
Después de la instrucción: OPTION=07H
TLW: El registro de trabajo W es cargado con fos ocho bits colocados
por el usuario (k), además el PC es cargado con el registro TOS
(Top of stack) para la dirección de retorno.
Sintaxis: RETLWk
Operación: (k)-^(W)
TOS-»PC
Bits afectados: Ninguno
código: | 1000 | íckkk | kkkk "
Palabras: 1
Ciclos 2
Ejemplo: DIR1 CALL TABLA
RÉTLW O
Antes de la instrucción: W=? , PC-?
Después de la instrucción: W=0, PC=(DIR1+1)
Se rota el contenido del registro (f) un bit hacia la izquierda a
través de la bandera del carry (C). Si el operando d (destino) es
"O" e! resultado es almacenado en el registro W, pero si es "V el
resultado es almacenado en el registro (f).
Sintaxis: RLF f,d
Operación:-Tc]«-| Registro CT h
Bits afectados: C
código: j~
Palabras:
Ciclos:
Ejemplo:
ooii ..oidf1
1
RLF REG1,G
Antes de la instrucción: REG1 =C1110 0110'b
C="0"
Después de la instrucción: REG1 ='1110 0110'b
W='11001lOOfb
Se rota el contenido de! registro (f) un bit hacia la derecha a
través de la bandera del carry (C). Si el operando d (destino) es
"O" el resultado es almacenado en el registro W, pero si es "1" el
resultado es almacenado en el registro (f).
Sintaxis: RRF f,d
Operación:-He Registro "f
Bits afectados: C
código: f
Palabras:
Ciclos:
Ejemplo:
0011. I . Q O d f . J
1
1
RRF REG1.0
Antes de la instrucción: REG1='111G 0110'b
Después de la instrucción: REG1 ='1 1 1 0 01 1 0'b
W=f0111 0011 Jb
C="0"
SLEEP: El procesador es puesto en s\o "Dormir", parando ei
oscilador. Se coloca un "1" lógico en el bit TO, un "O" lógico en
e! bit PD y se borra la escala de! WDT.
Sintaxis: SLEEP
Operación: OOH^WDT
0->Escala del WDT
0->PD
Bits afectados: TO, PD
Código: OQQO QOOO 0011
Palabras: 1
Ciclos 1
Ejemplo:
SUBWF: Resta el contenido del registro de trabajo (W) de! registro (f)
(Con el método de complemento de 2). Si el operando d
(destino) es "O" e! resultado es almacenado en el registro W,
pero si es "1" ei resultado es almacenado en el registro (f).
Sintaxis: SUBWF f,d
Operación; (f) - (W)^(destino)
Bits afectados: C, DC, Z
código: jjooo | iodf | ffff |Palabras: 1
Ciclos 1
Ejemplo 1: SUBWF REG1.1
Antes de la instrucción: REG1=03H
W=02H
C=?
Después de la instrucción: REG1=01H
positivo)
Ejemplo 2:
cero)
Ejemplo 3:
W=02H
C=1 (Resultado
SUBWF REG1.1
Antes de la instrucción: REG1=02H
W=02H
C=?
Después de la instrucción: REG1-OOH
W=02H
C=1 (Resultado es
SUBWF REG1.1
Antes de la instrucción: REG1=01 H
negativo)
Después de la instrucción: REG1=FFH
W=02H
C=0 (Resultado
SWAPF: Los cuatro bits menos significativos y los cuatro bits más
significativos del registro (f) son intercambiados. Si el operando d
(destino) es "O" el resultado es almacenado en el registro W,
pero si es "1" e! resultado es almacenado en el registro (f).
Sintaxis: SWAPF f,d
Operación: (f<3:0>)^(dest¡no<7:4>)
(f<7;4>)^(destino<3:0>)
Bits afectados: Ninguno
códí9°: 1.0011 I lOdf I fQT I• • .1 I T I ' n i i ni ii m^J
Palabras: 1
Ciclos 1
Ejemplo 1: SWAPF REG1.0
Antes de la instrucción: REG1=A5H
Después de la instrucción: REG1=A5H
TRIS: Sirve para colocar los puertos (registros 5,6 y 7) en modo de
entrada o salida, para lo cual utiliza el valor contenido en el
registro de trabajo (W). Un "1" lógico en e! pin de! puerto, coloca
a éste en alta impedancia, es decir en modo de entrada y un "O"
lógico saca el dato contenido en e! latch, es decir que se
encuentra en modo de salida.
Sintaxis: TRIS f
Operación: (W)-»(TRIS del registro f)
Bits afectados: Ninguno
código:
Palabras:
Cicíos
Ejemplo 1:
oooo OOQQ
TDICi i \IO PORTA
Antes de la instrucción:
Después de la instrucción: TR!SA=A5H
Entonces:
bítO Entrada
bitl Salida
bit2 Entrada
bit3 Salida
bit4 Salida
bit5 Entrada
bit6 Salida
bit? Entrada
XORLW: Se hace un "OR Exclusivo" entre el contenido de! registro W y
un numero de 8 bits colocado por el usuario (k), el resultado es
almacenado en el registro W.
Sintaxis: XORLW k
Operación: (w) XOR (k)-KW)
Bits afectados: Z
código: ¡ 1111 | kkkk | kkkk |
Palabras: 1
Ciclos 1
Ejemplo: XORLW AF
Antes de la instrucción: W-B5H
Después de la instrucción: W=1AH
XORWF: Se hace un "OR Exclusivo" entre el contenido del registro W y
cualquiera de los registros (f). Si el operando d (destino) es "O" el
resultado es almacenado en el registro W, pero si es "1" el
resultado es almacenado en el registro (f).
Sintaxis: XORWF f,d
Operación: (w) XOR (f)-^(destino)
Bits afectados: Z
¡ QQQl I IQdf | f£EF |
Palabras: 1
Ciclos 1
Ejemplo: XORWF REG,1
Antes de la instrucción: W=B5H, REG=AFH
Después de la instrucción: W=B5HJ REG=1AH
PIC16C5X PIC16C54/55/56/57
TABLE 10-1: CROSS REFERENCE OF DEVICE SPECS FOR OSCILLATOR CONFIGURATIONS(RC, XT & 10) AND FREQUENCIES OF OPERATION (COMMERCIAL DEVICES)
ose
RC
XT
HS
LP
PIC16C5X-RC
VDD: 3.0Vto6.2VIDD: 3.3 mA max. at 5. VIPD: 9 MA max, at 3.0 V, WDT disFreq: 4 MHz max.
VDDT 3.0V io 6.25VIDD; 1,8 mAiyp,at5,5VIPD: 0.6 MA typ, ai 3,0 V WDT disFreq; 4 MHz max.
VDD; 4.5Vto5.5VIDD: 9,OmAíyp, at5.5VIPD; 0.6 MA typ, at 3.0 V WDT dfeFreq: 20 MHz. max.
VDD: 2.5Vto6.25VIDD: i5jiAtyp.ata.ov)pp: 0,6 MA typ, at 3,OV, WDT disFreq: 40 kHz max.
P1C16C5X-XT
N/A
VDD; 3.0Vto6.25VIDD: 3.3 mA max. at 5.5VIPD: 9 MA max. at 3.0V, WDT disFreq: 4 MHz max.
WA
VDD: 2.5Vto6.25VIDD: 15MAtyp. atS.OVIPD: 0,6 MA iyp, at 3.0V, WDT disFreq; 40 kHz max*
PIC16C5X-10
N/A
N/A
VDD: 4.5Vto5.5VIDD: lOmAmax. at5.5VIPD: 9 MA max. at 3.0V, WDT disFreq: 10 MHz max.
VDD; 2.5V to 6.25VIDD: 15pAtyp.at3.OVIPD; 0.6 MA typ. at 3,ov, WDT disFreq: 40 kHz max.
The shaded sections indícate oscillator selections which should work by design, but are not tested. It is recommendedthat the user select the device type from infomnation ¡n unshaded sections.
TABLE 10-2: CROSS REFERENCE OF DEVICE SPECS FOR OSCILLATOR CONFIGURATIONS(HS3 LP & JW) AND FREQUENCIES OF OPERATION (COMMERCIAL DEVICES)
ose
RC
XT
HS
LP
PIC16C5X-HS
N/A
N/A
VDD: 4.5Vto5.5VIDD: 20 mAmax. at5.5VIPD: 9 MA max, at 3.0V, WDT disFreq: 20 MHz max.
VDD: 2.5Vto6.25VIDO: 15MAtyp.at3.OVIPD: 0.6 MA typ, at 3.0 V, WDT disFreq: 40 kHz max.
PIC16C5X-LP
N/A
N/A
N/A
VDD: 2.5Vío6.25VIDD: 32 pA max. at 32 kHz, 3.0VIPD: 9 MA max. at 3.0V, WDT disFreq: 40 kHz max.
PÍC16C5X/JW
VDD: 3.0Vto6.25VIDD: 3.3 mA max. at 5.5VIPD: 9 MA max. at 3.0V, WDT disFreq: 4 MHz max.
VDD: 3.0V to 6.25VIDD: 3.3 mA max. at 5.5VIPD: 9 MA max. ai 3.0V, WDT disFreq: 4 MHz max.
VDD: 4.5Vto5.5VIDD: 20 mA max. at 5.5VIPD: 9 MA max. ai 3.0V, WDT disFreq: 20 MHz max.
VDD: 2.5V to 6.25VIDD: 32 MA max. at 32 kHz, 3.0VIPD: 9 MA max. at 3.0V, WDT disFreq: 40 kHz max.
The shaded sections indícate osciliator selections which should work by design, but are not tested. It is recommendedthat the user select the device type from information in unshaded sections.
DS30015N-page56 © 1996 Microchip Technology ínc.
PIC16C54/55/56/57 PIC16C5X
10.1 PC Characteristics: PIC16C5X-RC, XT, 10, HS, LP (Commercial)
DC Characteristics Standard Operating Condítions (unless otherwise specífied)Power Supply Pins Operating Temperatura 0°C < TA < +70°C
Chara cteristic
Supply VoltagePIC16C5X-RCP1C16C5X-XTPÍC16C5X-10PIC16C5X-HSPIC16C5X-LP
RAM Data Retention Voltage^
VDD Start Voltage to ensurePower-On Reset
VDD Rise Rate to ensurePower-On Reset
Supply Currentt3)PIC16C5X~RC<4>P1C16C5X-XTPIC16C5X-10PIC16C5X-HS
PIC16C5X-LP
Power Down Curren^5'
Sym
VDD
VDR
VPOR
SVDD
ÍDD
IPD
Min
3.03.04.54.52.5
0.05*
Typ<1>
1.5*
Vss
1.81.84.84.89.015
4.00.6
Max
6.256.255.55.56.25
3.33.310102032
129
Units
VVVVV
V
V
V/ms
mAmAmAmAmAMA
MAMA
Conditions
Fosc = DCto4MHzFOSO = DC to 4 MHzFosc = DCto10MHzFosc=DCto20MHzFosc = DCto40kHz
Device in SLEEP Mode
See Section 7.4 for details onPower-On Reset
See Section 7.4 for details onPower-On Reset
Fosc = 4MHz,VDD = 5.5VFose = 4 MHz, VDD = 5.5VFose = 1 0 MHz, VDD = 5.5VFose ~ 1 0 MHz, VDD = 5.5VFOSC = 20 MHz, VDD = 5.5VFose = 32 kHz, VDD = 3.0 V,
WDT disabled
VDD = 3.0V, WDT enabledVDD = 3.0V, WDT disabled
* These parameters are characterized but not tested.
Note 1: Data in the Typical ('Typ") column ¡s based on characterization results at 2í?C. This data is for design guidanceonly and is not tested.
2: This is the limlt to which VDD can be lowered in SLEEP mode without losing RAM data.3: The supply current is mainly a function of the operating voltage and frequency. Other faciors such as bus
loading, oscülatortype, bus rate, ínternal code execution pattern, and íemperature also have an ¡mpact onthe current consumption.
a) The test condiíions for all ÍDD measurements in active operation mode are:OSC1 = external square wave, from rail-to-rail; all I/O pins tristated, pulled toVss, TOCKI = VDD, MCLR = VDD; WDT enabled/dísabled as specified.
b) For standby current measurements, the conditions are ihe same, except thatíhe device is in SLEEP mode.
4: Does not inciude current through Rext. The current through the resistor can be estimated by theformula: IR = VDD/2Rext (mA) with Rext in kfl
5: The power down current in SLEEP mode does not depend on the oscillator type. Power down current ismeasured with the part in SLEEP mode, with all I/O pins in hi-impedance state and tied to VDD and Vss.
© 1996 Microchip Technology Inc. DS30015N-page 57
PIC16C5X PIC16C54/55/56/57
10.2 PC Characteristics: PIC16C5X-RCI, XTI, 101. HSI. LPI (Industrial)
DC Characteristics Standard Operating Conditions (unless otherwise specified)Power Supply Pins Operating Temperature -400C < TA < -f85°C
Characteristic
Supply VoltagePIC16C5X-RCIPIC16C5X-XT!PIC16C5X-10IPIC16C5X-HSIPIC16C5X-LPI
RAM Data Retentíon Voltageí2'
VDD Start Voltage to ensurePower-On Reset
VDD Rise Rate to ensurePower-On Reset
Supply Current^PIC16C5X~RCI<4>PIC16C5X-XTIP1C16C5X-10IPIC16C5X-HSI
PIC16C5X-LPI
Power Down Current^
Sym
VDD
VDR
VPOR
SVDD
IDD
IPD
Min
3.03.04.54.52.5
0.05*
Typ<1>
1.5*
vss
1.81.84,84.89.019
5.00.6
Max
6.256.255.55.56.25
3.33.310102040
1412
Units
VVVVV
V
V
V/ms
mAmAmAmAmAMA
MAHA
Conditions
F03C = DCto4MHzFOSC = DC to 4 MHzFosc = DCto10MHzF03C = DCto20MHzFOSC = DC to 40 kHz
Device ¡n SLEEP mode
See Section 7.4 for details onPower-On Reset
See Section 7.4 for details onPower-On Reset
Fose = 4 MHz, VDD = 5.5VFose = 4 MHz, VDD = 5.5VFOSC = 1 0 MHz, VDD = 5.5VFOSC = 1 0 MHz, VDD = 5.5VFose = 20 MHz, VDD = 5.5VFOSC s 32 kHz, Vdd = 3.0V,
WDT disabled
VDD = 3.0V, WDTenabledVDD = 3.0V, WDT disabled
'These parameters are characterized but not tested.
Note 1: Data in the Typical ('Typ") column is based on cha ráete rization results at 25°C. This data is fordesign guidanceonly and is not tested.
2: This is the limit to which VDD can be lowered in SLEEP mode without losing RAM data.3: The supply current is mainiy a function of the operating voltage and frequency. Other factors such as bus -
loading, osciliatortype, bus rate, internal code execution pattern, and temperature also have an impact onthe current consumpíion.
a) The test conditions forall IDD measurements in active operation mode are:OSC1 = external square wave, from rail-to-rail; all I/O pins tristated, pulled íoVss, TOCKI = VDD, MÜLR = VDD; WDT enabled/disabled as specified.
b) For standby current measurements, the conditions are the same, except thatthe device is in SLEEP mode.
4: Does not include current through Rext. The current through the resistor can be estimated by íheformula: IR = VoD/2Rext (mA) with Rext in RjQ.
5: The power down current in SLEEP mode does not depend on the oscillator type. Power down current ismeasured with the part in SLEEP mode, with ali I/O pins in hi-impedance state and tied to VDD and Vss.
DS30015N-page58 © 1996 Microchíp Technology Inc.
PIC16C54/55/56/57 PIC16C5X
10.3 PC Characterístics: PIC16C5X-RCE, XTE, 1QE, HSE, LPE (Automotive)
DC Characteristics Standard Operating Conditions (unless otherwise specified)Power Supply Pins Operating Temperature -40°C < TA < +125°C
Characteristic
Supply VottagePIC16C5X-RCEPIC16C5X-XTEPIC16C5X-10EPÍC16C5X-HSEPIC16C5X-LPE
RAM Data Retention Voltaget2'
VDD Start Voltage to ensurePower-On Reset
VDD rise rate to ensurePower-On Reset
Supply Current*3)PIC16C5X-RCE<4>PÍC16C5X-XTEPIC16C5X-10EPIC16C5X-HSE
PIC16C5X-LPE
Power Down Current^
Sym
VDD
VDR
VPOR
SVDD
IDD
IPD
Min
3.253.254.54.52.5
0.05'
TvP<1>
1.5*
Vss
1.81.84.84.89.025
5.00.8
Max
6.06.05.55.56.0
3.33.310102055
2218
Units
VVVVV
V
V
V/ms
mAmAmAmAmAHA
HAJiA
Conditions
Fose = DC to 4 MHzFose = DC to 4 MHzFosc = DCto10MHzFosc = DCto16MHzFose = DC to 40 kHz
Device in SLEEP mode
See Secíion 7.4 for deíaiis onPower-On Reset
See Section 7.4 for details onPower-On Reset
Fose = 4 MHz, VDD = 5.5VFose = 4 MHz, VDD = 5.5VFose = 1 0 MHz, VDD = 5.5VFose = 1 0 MHz, VDD = 5.5VFosc = 16MHz,VDD = 5.5VFose = 32 kHz, VDD = 3.25V,
WDT disabled
VDD = 3.25V, WDT enabledVDD = 3.25V, WDT disabled
* These parameters are characterized but not tested.
Note 1: Data in the Typical ("Typ") column is based on characterization results at 25aC. This data is for design guidanceonly and is not tested.
2: This is the limit to which VDD can be lowered in SLEEP mode without losing RAM data.3: The supply current is mainly a function of the operating voltage and frequency. Other factors such as bus
loading, oscillatortype, bus rate, ¡nternal code execution patíern, and temperature also have an impact onthe current consumption.
a) The test conditions for all IDD measurements in active operation mode are:OSC1 = external square wave, from rail-to-rail; all l/O pins tristated, pulled toVss, TOCKI = VDD, "MUER = VDD; WDT enabled/disabled as specified.
b) Forstandby current measurements, the conditions are the same, except thatthe device is in SLEEP mode.
4: Does not include current through Rext. The current through the resistor can be estimated by theformula: IR = VDD/2Rext (mA) with Rext in kfl
5: The power down current in SLEEP mode does not depend on the oscillator type. Power down current ismeasured with the parí in SLEEP mode, with all l/O pins in hi-impedance state and tied to VDD and Vss.
© 1996 Microchip Technology Inc. DS30015N-page59
PIC16C5X PIC16C54/55/56/57
10.4 PC Characteristícs: PIC16C5X-RC, XT, 10, HS. LP (CommercJaHPIC16C5X-RC1. XTl. 101, HSL LPI (Industrial)
Standard Operating Conditions (unless otherwise specified)DC Characteristics Operating Temperature 0°C < TA < +70°C (commercial)
All Pins Except -40°C < TA < +85°C (industrial)Power Supply Pins Operaíing Volíage VDD range is described ¡n Section 1 0.1 , Section 1 0.2 and
Section 10.3.
Characteristic
Input LowVoltage!/O portsMCLR (Schmitt Trigger)TOCKI (Schmitt Trigger)OSC1 (Schmitt Trigger)
Input High VoltageI/O ports
MCLR (Schmitt Trigger)TOCKI (Schmitt Trigger)OSC1 (Schmitt Trigger)
Hysteresis of SchmittTrigger inputs
Input Leakage Curren^2'3'I/O ports
MCLR
TOCKIOSC1
Output LowVoltagel/O portsOSC2/CLKOUT
Output High Voltage!/O ports'3*OSC2/CLKOUT
Sym
VIL
VIH
VHYS
IlL
VOL
VOH
Min
VssVssVssVssVss
0.45 VDD2.0
0.36 VDD0.85 VDD0.85 VDD0.85 VDD0.7 VDD
0.15VDD*
—1
—5
-3-3
VDD - 0.7VDD -0.7
TypO)
0.5
0.50.50.5
Max
0.2 VDD0.1 5 VDD0.1 5 VDD0.1 5 VDD0.3 VDD
VDDVDDVDDVDDVDDVDDVDD
+1
+54-3
+3
0.60.6
Units
VVVVV
VVVVVVV
V
»HAHAHA
VV
VV
Conditions
Pin at hHmpedance
PIC16C5X-RConIy(4>PIC16C5X-XT, 10, HS.LP
For al! VDD<S>4.0V < VDD < 5.5V®VDD > 5.5V
PIC16C5X-RConly(4>PIC16C5X-XT, 10, HS.LP
For VDD < 5.5VVss < VPIN < VDD,Pin at hi-impedanceVPIN = Vss + 0.25VVPIN = VDDVss < VPIN < VDDVss < VPIN < VDD,PIC16C5X-XT.10, HS.LP
IOL = 8.7mA, VDD = 4.5VIOL-1.6mA, VDD = 4.5V,PIC16C5X-RC
IOH = -5.4 mA, VDD = 4.5VÍOH = -1 .0 mA, VDD = 4.5V,PIC16C5X-RC
* These parameters are characterized but not tested.Note 1: Data in the Typical ('Typ") column is based on characterization results at 25JC. This data is for design guidance
only and is not iested.2: The leakage current on the MCLR/Vpp pin ¡s strongly dependen! on the applied voltage level. The specified
levéis represent normal operating conditions. Higher leakage current may be measured at different inputvoltage.
3: Negative current is defined as coming out of the pin.4: For PIC16C5X-RC devices, the OSC1/CLKIN pin is a Schmitt Trigger input. It is not recommended that the
PIC16C5X be driven with external dock in RC mode.5: The user may use the better of the two specifications.
DS30015N-page 60 © 1996 Microchíp Technology Inc.
PIC16C54/55/56/57 PIC16C5X
10.5 PC Characteristícs: PIC16C5X-RC. XT, 10, HS. LP (Automotive)
nr^ r^h • r Standard Operating Conditions (unless otherwise specified)All RnsExce T Operating Temperature Í00C < TA < +1 25"C
„ . J. Operating Voltage VDD range is described ¡n Section 10.1, Section 10.2 andPPy Section 10.3.
Chara cteristic
Input Low Voltage1/0 portsMCLR (Schmitt Trigger)TOCKI (Schmitt Trigger)OSC1 {Schmitt Trigger)
Input High VoltageI/O ports
MCLR (Schmitt Trigger)TOCKI (Schmitt Trigger)OSC1 (Schmitt Trigger)
Hysteresis of SchmittTrigger inputs
Input Leakage Current <2'3'l/O ports
MCLR
TOCKIOSC1
Output Low Voltagel/O portsOSC2/CLKOUT
Output High Voltagel/O ports(3>OSC2/CLKOUT
Sym
VIL
VIH
VHYS
IIL
VOL
VOH
Min
VssVssVssVssVss
0.45 VDD2.0
0.36 VDD0.85 VDD0.85 VDD0.85 VDD0.7 VDD
0.15VDD*
—1
-5
-3-3
VDD - 0.7VDD - 0.7
Typ<1>
0.5
0.50.50.5
Max
0.1 5 VDD0.1 5 VDD0.15 VDD0.1 5 VDD0.3 VDD
VDDVDDVDDVDDVDDVDDVDD
+1
+5+3-1-3
0.60.6
Units
VVVVV
VVVVVVV
V
HA
HAMAHAHA
VV
VV
Conditions
Pin at hi-impedance
PIC16C5X-RConlyWPIC16C5X-XT, 10, HS, LP
For ai! VDD(S)4.0V < VDD < 5.5V<5>VDD > 5.5 V
PIC16C5X~RConly<4)PIC16C5X-XT, 10, HS, LP
For VDD < 5.5 VVss < VPIN < VDD,Pin at hi-impedanceVPIN = Vss + 0.25VVPIN = VDDVss < VPIN < VDDVss < VPIN < VDD,PICieCSX-XT.IO.HS, LP
iOL = 8.7 mA, VDD = 4.5VIOL=1.6mA, VDD = 4.5V,PIC16C5X-RC
IOH = -5.4 mA, VDD = 4.5VIOH =-1.0 mA, VDD = 4.5V,PIC16C5X-RC
2:
* These parameters are characterized bul not tested.Note 1: Data ¡n the Typical ("Typ") column is based on characterization results at 25'C. This data is for design guidance
oniy and is not tested.The leakage current on the MCLR/Vpp pin is strongly dependent on the applied voitage level. The specifiedlevéis represent normal operating conditions. Higher leakage current may be measured at different inputvoitage.Negative current is defined as corning oui of the pin.ForPÍC16C5X-RCdevices, the OSC1/CLK1N pin is a Schmitt Trigger input. It is not recommended that thePIC16C5X be driven with externa! dock in RC mode.
5: The user may use the better of íhe two specifications.
© 1996 Microchip Technology Inc. DS30015N-page 61
PIC16C5X PIC16C54/55/56/57
10.6 Tíming Parameter Svmboloqv and Load Condítíons
The timing parameter symbols have been created following one of the following formáis:
1. TppS2ppS2. TppST
F Frequency T TimeLowercase subscripts (pp) and their meanings:
PP2 to
ck CLKOUTcy cycle time
drt device reset timerio I/O port
meoseostowdt
MCLR
oscillatorOSC1TOCKIwatchdog timer
Uppercase letters and their meanings:S
F FallH HighI Invalid (HHmpedance)
L Low
PR
V
z
PeriodRiseValidHi-¡mpedance
FIGURE 10-1: LOAD CONDÍTÍONS - PIC16C54/55/56/57
Pin | ¡ . CL= 50 pF
-r-CL 15 pF
Tvss
for alí pins except OSG2
for OSC2 in XT, HS or LPmodes when extemal clock¡s used to drive OSC1
DS30015N-page62 © 1996 Mícrochip Technofogy Inc.
PIC16C54/55/56/57 PIC16C5X
10.7 Tirning Diagrama and Specifications
FIGURE 10-2: EXTERNAL CLOCKTIMING - PIC16C54/55/56/57
OSC1
CLKOUT
TABLE 10-3: EXTERNAL CLOCKTIMING REQUIREMENTS - PIC16C54/55/56/57
AC Characteristics Standard Operating Conditions (unless otherwise specified)Operating Temperature 0°C < TA < -f70°C (commercial),
-40°C <TA< +85°C (industrial) ,-40°C < TA < +1 25°C (automoíive)
Operating Voltage VDD range is descnbed in Section 10.1, Secíion 10.2 and Section 10.3
ParameterNo. Sym
Fose
Chara cteristic
External CLKIN Frequencyt2)
Oscillator Frequency^
Min
DC
DC
DC
DC
DC
DC
DC
0.1
4
4
4
DC
TyP(1)
————————————
Max
4
4
10
20
16
40
4
4
10
20
16
40
Units
MHz
MHz
MHz
MHz
MHz
kHz
MHz
MHz
MHz
MHz
MHz
kHz
Conditions
RC ose mode
XT ose mode
10 MHz mode
HS ose mode (Com/lndust)
HS ose mode (Automotive)
LP ose mode
RC ose mode
XT ose mode
10 MHz mode
HS ose mode (Com/lndust)
HS ose mode (Automotive)
LP ose mode
* These parameters are characterized but not tested.Note 1: Data in the Typical (Typ") column is at 5.0V, 25"C unless otherwise stated. These parameters are íor design guidance
only and are not tesíed.2: All specified valúes are based on characterization data for that particular oscillator type under standard operaüng
conditlons with the device executing code. Exceeding these specified limiís may result ¡n an unstable oscillator operaíionand/or higher than expecied current consumption.Whén an external clock inpui is used, the "max" cycle time límit ¡s "DC" (no clock) for all devices.
3: Insíruction cycle period (Tcv) equals four times íhe ¡npuí oscillaior time base period.
© 1996 Microchip Technology !nc. DS30015N~page 63
PIC16C5X PIC16C54/55/56/57
TABLE 10-3; EXTERNAL CLOCKTIMING REQUIREMENTS - PIC16C54/55/56/57 (CON'T)
AC Characterístics Standard Operating Conditions (unless otherwise specified)Operating Temperatura 0°C < TA < +70°C (commercial),
-^40°C < TA < -f85°C (industrial),-40°C < TA < +1 25°C (auiomotive)
Operaíing Voltage VDD range is described in Section 10.1, Section 10.2 and Section 10.3
ParameterNo.
1
2
3
4
Sym
Tose
TCY
TosL, TosH
Tos R, Tos F
Characteristic
Exíernal CLKIN Period^
Oscillator Period^
Instruction Cycle Time' ^
Clock in (OSC1 ) Lo^w or High Time
Clock in (OSC1) Rise or Fall Time
Min
250
250
100
50
62.5
25
250
250
100
50
62.5
25
—
50'
20*
2*
—
_
—
TypO)
—
_
—
—
—
—
—
—
—
—
—
—
4/FOSC
—
—
—
_
—
—
Max
—
—
—
—
—
—
—
10,000
250
250
250
—
—
—
—
_
25*
25*
50*
Units
ns
ns
ns
ns
ns
US
ns
ns
ns
ns
ns
\is
—
ns
ns
US
ns
ns
ns
Conditions
RC ose mode
XT ose mode
lOMHzmode
HS ose mode (Com/Indust)
HS ose mode (Automotive)
LP ose mode
RC ose mode
XT ose mode
lOMHzmode
HS ose mode (Com/lndust)
HS ose mode (Automotive)
LP ose mode
XT oscillator
HS oscíllaíor
LP oscillator
XT oscillator
HS oscillaíor
LP oscillator
* These parameters are characterized buí not lested.Note 1: Data in the Typical (Typ") column is ai 5.0V, 25"C unless otherwise stated. These parameters are for design guidance
only and are not tesíed.2: AII specified valúes are based on characterization data for that particular oscillator type under standard operating
conditions with the device executing code. Exceeding these specified limits may result in an unstable oscillator operationand/or higher íhan expected current consumpíion.When an external clock ínput ís used, the "max" cycle time limít is "DC" (no clock) for all devices.
3: Instruction cycle period (Tcv) equals four times the Ínput oscillator time base period.
DS30015N-page 64 © 1996 Mícrochlp Technology Inc.
PIC16C54/55/56/57 PIC16C5X
FIGURE 10-3: CLKOUT AND I/OTIMING - PIC1GC54/55/56/57
Q4
OSC1
CLKOUT
I/O Pin(inpuí)
I/O Pin{output)
Oíd Valué
Q1
10 .
13, 14
-17-
19
Q2
-18-
-15-
Q3
11
-16
New Valué
20,21
Note: AII tests must be done wríh specified capacitive loads {see data sheet) 50 pF on I/O pins and CLKOUT.
TABLE 10-4; CLKOUT AND I/OTIMING REQUfREMENTS - PIC16C54/55/56/57
AC Characteristics Standard Operating Conditions (unless otherwise specified)Operatíng Temperatura 0°C <TA < +70°C (commercial),
~40°C < TA < +85°C (industrial),-40°C < TA < +1 25°C (automotive)
Operating Voitage VDD range ¡s described in Section10.1, Section10.2 andSecíion 10.3
ParameterNo.
10
11
12
13
14
15
16
17
18
19
20
21
Sym
TosH2ckL
TosH2ckH
TckR
TckF
TckL2ÍoV
TioV2ckH
TckH2ioI
TosHSioV
TosH2Íol
TioV2osH
TioR
TioF
Chara cteristic
OSClttoCLKOUT-l(¿)
OSClTtoCLKOUTt<2)
CLKOUT risetime(2)
CLKOUT falltime<2>
CLKOUTi to Port ouívalid<2>
Port in valid before CLKOUTt<2)
Port in hold after CLKOUTK2)
OSC1T (Q1 cycle) to Port out valid^
OSC1T (Q2 cycle) to Porí inpui invalid (l/O inhold time)
Port ínput valid to OSC1T(l/O ¡n setup time)
Port output rise time' 3J
Port outpuí fall Üme^
Min
—
—
—
—
—
0.25 TCY+30*
0*
—
TBD
TBD
—
—
TypO)
15
15
5
5
—
—
—
—
—
—
10
10
Max
30"
30"
15"
15"
40"
—
—
100*
—
—
25"
25"
Units
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns* These parameters are characterized but not tested." These parameters are design targeís and are not tested. No characíerteaíion data available ai this time.
Note 1: Data in the Typical (Typ") column is at 5.0V, 25"C unless otherwise stated. These parameters are for design guidanceonly and are not tested.
2: Measurements are taken in RC Mode where CLKOUT outpuí is 4 x Tose.3: See Figure 10-1 for loading conditions.
© 1996 Microchip Technology Inc. DS300-/5N-page 65
PIC16C5X PIC16C54/55/56/57
FIGURE 10-4: RESET, WATCHDOGTIMER, ANDDEVICE RESETTIMERTIMING - PIC16C54/55/56/57
/// »VDD /
— ' tf/ \R / \
/ -K /
^-30-—
IníernalPOR
32,-« *-,
DRTfTime-ouí
•
IníernalRESET
i*/ i L j
TimerRESET
^34^'/ \O nin , r ^
ÍNotell '\
/
/{>)
32 : 32 :; u '.r*^
«Y))
1 (t
" V^ 31—^-
34 J
<?> \* / \
Note 1 : I/O pins must be taken out of h¡-¡mpedance mode by enabling the output drivers ¡n software. *
TABLE 10-5: RESET, WATCHDOGTIMER, AND DEVICE RESETTIMER - PIC16C54/55/56/57
AC Charactertsttcs Standard Operating Conditions (unless otherwise specified)Operating Temperature 0°C < TA < +70°C (commercia!),
-40°C <TA < -f85°C (industrial),-40°C < TA < +1 25°C (automotive)
Operating Voltage VDD range is descnbed in Section 10.1, Section 10.2 and Section 10.3
ParameterNo.
30
31
32
34
Sym
TmcL
Twdt
TDRT
Tioz
Characteristic
MCLR Pulse Width (low)
Watchdog Timer Time-out Period(No Prescaler)
Device Reset Timer Period
I/O HÍ-Ímpedance from MCLR Low
Mín
100*
9'
9*
—
-rypP)
—
18*
18W
—
Max
—
40"
30*
100*
Uníts
ns
ms
ms
ns
Conditions
VDD = 5.0V
VDD = 5.0V (Commercial)
VDD = 5.0V (Commercial)
* These parameters are characterized but not tested.Note 1: Data in the Typical ('Typ") column is at 5.0V, 25'C unless otherwise stated. These parameters are for design
guidance only and are not tested.
DS30015N-page66 © 1996 Mícrochip Technoíogy Jnc.
PIC16C54/55/56/57 PIC16C5X
FIGURE 10-5: TIMERO CLOCKTIMINGS - PIC16C54/55/56/57
TOCKI
40 41
42
TABLE 10-6: TIMERO CLOCK REQUIREMENTS - PIC16C54755/56/57
AC Characteristics
ParameterNo.
40
41
42
Sym
TíOH
TtOL
TíOP
Standard Operating Conditions (unless otherwise specified)Operating Temperatura 0°C < TA < +70°C (commercial),
-40°C < TA < 485°C (industrial),-40°C < TA < +1 25°C (automotive)
Operating Voltage VDD range is descnbed in Section 10.1, Section 10.2 andSection 10.3
Characteristic
TOCKI High Pulse Widih - No Prescaler
- Wíth Prescaier
TOCKI Low Pulse Width - No Prescaler
- With Prescaler
TOCKI Period
Min
0.5 TCY + 20*
10*
0.5 TCY + 20*
10*
20 or TCY + 40*N
TypíD
—
—
—
—
Max
—
—
—
—
Units
ns
ns
ns
ns
ns
Conditions
Whichever is greater,N = Prescale Valué
(1,2, 4,..., 256)
These parameters are characterized but not tested.Note 1: Data in the Typical (Typ") column is at 5.0V, 25"C unless otherwise síaied. These parameters are for design guidance
only and are not íested.
© 1996 Microchíp Technology Inc. DS30015N-page 67
PIC16C54/55/56/57
11.0 DC AND AC CHARACTERISTICS - PIC16C54/55/56/57The graphs and tables provided in this section are for desígn guidance and are not tesíed or guaranteed. In somegraphs or tables the data presentad are outside speciíied operating range (e.g., outside specified VDD range). This isfor information only and devices wiíl opérate properly only within the specified range.
The data preseníed ¡n this section is a statistical summary of data collected on units f rom different lots over a period oftime. "Typical" represents the mean of the distribution while "max" or "min" represents (mean -f 3a) and (mean - 3a)respectively, where a is standard deviation.
FIGURE 11-1: TYPICAL RC OSCILLATOR FREQUENCY vs.TEMPERATURE
FOSC
FOSO (25°C)
1.10
Frequency normalizad to +25°C
Rext>10kQCext=100pF
0.88
TABLE 11-1: RC OSCILLATOR FREQUENCIES
Cexl
20 pF
100pF
300 pF
Rext
3.3 k
5k
10 k100 k
3.3 k5k
10k100 k3.3 k5.0 k10k
160 k
AverageFose @ 5 V, 25°C
4.973 MHz3.82 MHz
2.22 MHz262.15 kHz
1.63 MHz
1.19 MHz684.64 kHz71 .56 kHz
660 kHz
484.1 kHz
267.63 kHz
29.44 kHz
± 27%
±21%
±21%
±31%
±13%
± 13%
±18%
± 25%
±10%
± 14%
± 15%
±19%
The frequencies are measured on DIP packages.
The percentage variation indicated here ¡s part-to-part variation due to normal process distribution. The variationindicated is ±3 standard deviation from average valué for VDD = 5 V.
© 1996 Microchip Technology Inc. DS30015N-page 69
PIC16C5X PIC16C54/55/56/57
FIGURE 11-2: TYPICAL RC OSCILLATORFREQUENCYvs. VDD,CEXT = 20PF
5.5
5.0
4.5
4.0
3.57TX
f 3.0£/)Ou_
2.5
2.0
1.5
1.0
0.5
0.03
/
.
Meas
/
.— . — —
jred on [
^"
^—^
)IP Pacl^
, —
ages.T
R =
R =
R =
= 25°C
R =
3.3k
5k
10k
100k
0 3.5 4.0 4.5 5.0 5.5 6.0
VDD (Volts)
FIGURE 11-3: TYPICAL RC OSCILLATORFREQUENCYvs. VDD,CEXT = 100 PF
1.8
1.6
1.4
1.2
N£1.0
£0.8
0.6
0.4
0.2
0.0
= 10k
R = 3.3k
Measured on DIP Packages, T = 25'
= 100k
3.0 3.5 4.0 4.5 5.0 5.5 6.0VDD (Volts)
FIGURE 11-4: TYPICAL RC OSCILLATORFREQUENCYvs. VDD,CEXT = 300 PF
800
700
600
500
o400
300
200
100
Measured on DIP Packages, T= 25
3.0 3.5 4.0 4.5 5.0 5.5 6.0
VDD (Volts)
DS30015N-page 70 © 1996 Microchip Technology Inc.
PIC16C54/55/56/57 PIC16C5X
FIGURE 11-5: TYPICAL IPD vs. VDD,WATCHDOG DISABLED
2.5
2.0
1.5
<
f 1'°a,
0.5
0.02
^/
T =
x
25°C
//ir/
.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0VDD (Volts)
FIGURE 11-7: TYPICAL IPD vs. VDD,WATCHDOG ENABLED
20
18
16
14
12
~ 10ir 8o.
6
4
2
02
/
//
//
T =
/
/
>5°C
/
/
//
/
/
5 3.0 3.5 4.0 4.5 5.0 5.5 6.VDD (Volts)
0
FIGURE 11-6: MÁXIMUM IPD vs. VDD,WATCHDOG DISABLED
100
10
--55'C
O'C
O2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0
VDD (Volts)
FIGURE 11-8: MÁXIMUM IPD vs. VDD,WATCHDOG ENABLED
60
50
40
30
<"3.
S 20
10
02.
IPD,
Theandwithexptí
-""""'
•^^
"•s*
^>*~
h125°Ii^--
^
ex
/^
40°C
'^
-Sí
/
/
o°c
1/
'/
//'./
85°C\
/?
/
/
'/y\c
5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0VDD (Volts)
with WDT enabled, has two componente:eakage current which increases with highar temperaturahe operating current of the WDT logic which increasesower temperatura. At -40°C, the latter domínaleslining the apparenüy anomalous behavior.
© 1996 Microchíp Technology Inc. DS30015N-page71
PIC16C54/55/56/57
FIGURE 11-9: VTH flNPUTTHRESHOLD VOLTAGE) OF I/O PINS vs. VDD
0.602.5 3.0 3.5 4.0 4.5
VDD (Volts)
5.0 5.5 6.0
FIGURE 11-10: VIH, VIL OF MCLR,TOCKI AND OSC1 (IN RC MODE) vs. VDD
>x>
2.5 3.0 3.5 4.0 4.5
Note: These ¡nput pins have Schmiíí Trigger inpuí buífers. (volts)
5.0 5.5 6.0
FIGURE 11-11; VTH (INPUTTHRESHOLD VOLTAGE) OF OSC1 INPUT(INXT, HS,ANDLP MODES) vs. VDD
3.4
3.2
3.0
2.8
2.6
2.4
2.2
2.0
1.8
1.6
1.4
1.2
1.04.0 4.5
VDD (Volts)5.0 5.5 6.0
DS30015N-page72 © 1996 Microchip Technology Inc.
PIC16C54/55/56/57 PIC16C5X
FI^MRF 11-19- TYPICAL IDD vs. FREQUENCY (EXTERNAL CLOCK, 25°C)
10
1.0
<E,Qa
0.1
0,011
— 7.0 ^-^
5.5 — — =
Ss-—4.0 — """"3.53.02.5 •
-~-
—---1
•-•"•
~^~
-'
— 5---*"
^
1-r" ^-* -~" ^-^
^^s*
s
• S?"" -»*"^^ -*•
x^
^^
S*
SS
/
^
/
/
?-
7
s
/ /'
S s
r~
' ^S'' sw•''¿sS
•////'•S
" ' s'Á
í /
/ ///
/&4¿-
//
/
s\
/ *4í
MX^
s-sss[tkx^x ]' tf/Ss
w/
Ok 100k 1M 10M 100M
Extemal Clock Frequency (Hz)
FIGURE 11-13: MÁXIMUM IDD vs. FREQUENCY (EXTERNAL CLOCK, -40°C TO +85°C)
10
1.0
0.1
0.01
7.06.56.05.55.0
~4.54.03.5
3.0 --2.5
10K 10Ok 1M 10M
Extemal Clock Frequency (Hz)100M
© 1996 Microchip Technology Inc. DS30015N-page73
PIC16C5X PIC16C54/55/56/57
FIGURE 11-14; MÁXIMUM IDD vs. FREQUENCY (EXTERNAL CLOCK-55°C TO +125°C)
10
1.0
QD
0.01100k 1M 10M
Extemal Clock Frequency (Hz)100M
FIGURE 11-15: WDTTIMERTIME-OUTPERIOD vs. VDD
HQ
4 5
VDD (Volts)
FIGURE 11-16: TRANSCONDUCTANCE (gm)OF HS OSCILLATOR vs. VDD
ROOO
7000
6000
5000
zi.
c 4000O)
•3000
2000
100
0^
/
/
/X
/
///
/
//
Max -40°C
//
/
/
.s
^s"
/
/s
//
Typ +25°C
jS^
/
**^ M¡n
^x^
+85"C
3 4 5 6 7
VDD (Volts)
DS30015N-page74 © 1996 Microchip Technoíogy Inc.
PIC16C54/55/56/57 PIC16C5X
FIGURE 11-17: TRANSCONDUCTANCE (gm)OF LP OSCILLATOR vs. VDD
een
45
40
35
30
25
20
15
10
O
Max-40°C
Typ +25°C
Min -f 85CC
2 3 4 5 6VDD (Volts)
FIGURE 11-18: ÍOH vs. VOH, VDD = 3 V
Xo
0
-5
-10
-15
-20
-25
Min +85°C
Typ +25°C
Max^JO°C
O 0.5 1.0 1.5 2.0 2.5 3.0
VOH (Volts)
FIGURE 11-19: TRANSCONDUCTANCE (gm)OF XT OSCILLATOR vs. VDD
2500
2000
1500
1000
500
O
Max-40°C
Typ -t-25°C
Min +85°C
2 3 4 5 6 7
VDD (Volts)
FIGURE 11-20: IOH vs. VOH, VDD = 5 V
O
-10
-20
-30
-40
Min +S5°C
Typ +25°C
7
Max-40°C
1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
VOH (Volts)
© 1996 Microchip Technology Inc. DS30015N-page75
PIC16C5X PIC16C54/55/56/57
FIGURE 11-21: IOL vs. VOL3 VDD = 3 V FIGURE 11-22: IOL vs. VOL, VDD = 5 V
45
40
35
30
^ 25<E,
o 20
15
10
5
00
///r
///>/y
///
/\s
//
^^-
- — —M«x
^- •Typ-t
Min
.
-40°C .
25°C
f85°C
0 0.5 1.0 1.5 2.0 2.5 3
VOL (Volts)
.0
90
80
70
60
^ 50<E.
o 40
30
20
10
00
l\
h
/
/
/
////
/
//
/
//
/
/
//
//
" ÍYP
' M l n
+25'C
• —
+85°C
.0 0.5 1.0 1.5 2.0 2.5 3.0
VOL (Volts)
TABLE 11-2: INPUT CAPACITANCE FORPIC16C54/56
Pin
RAport
RBport
MCLR
OSC1
OSC2/CLKOUT
TOCKI
Typical Capacitance (pF)
18LPDIP
5.0
5.0
17.0
4.0
4.3
3.2
18LSOIC
4.3
4.3
17.0
3.5
3.5
2.8
All capacitance valúes are typical at 25°C. A part-ío-partvariation of ±25% (ihree standard deviations) should betaken into account.
TABLE 11-3: INPUT CAPACITANCE FORPIC16C55/57
Pin
RAport
RBport
RCporí
MCLR
OSC1
OSC2/CLKOUT
TOCKI
Typical Capacitance (pF)
28L PDIP(600 mil)
5.2
5.6
5.0
17.0
6.6
4.6
4.5
28L SOIC
4.8
4.7
4.1
17.0
3.5
3.5
3.5
All capacitance valúes are typical at 25°C. A part-to-partvariation of ±25% (three standard deviations) should betaken into account.
DS30015N-page76 © 1996 Microchíp Technology Inc.
ANEXO 3
CARACTERÍSTICAS DE LOS CIRCUITOS INTEGRADOS
UTILIZADOS EN EL MODULO
54/740454H/74H0454S/74S04
54LS/74LS04
ORDERING CODE (See Sectlon 9 tor lurlner Package and Ordcrlng Informa lio n.)
PIN CONFIGURATIONS
PACKAGES
Plástic DIP
Ceramíc DIP
Flatpak
PINCONF.
Fíg.AFig.A
Fig.AFlg.A
Fíg. BFlg.A
COMMERCIAL RANGESVcc"SV±fi*;TA -»0'C lo*70'C
N7404N • N74H04NN74S04N • N74LS04N
N74D4F • N74H04FN74S04F • N74LSQ4F
MILITARY RANGESVCc a sv ± 10%; TA --ss*c to *iss*c
S5404F • S54H04FS54S04F • S54LS04F
S5404W • S51HD4WS54S04W « S54LS04W
INPUT AND OUTPUT LOADING AND FAN-OUT TABLE (s.e Mot« •)
PINS
IIH t/íA)JnPuts ítmAí
Outputs 'OHf(^¡r IOL !mA)
54/71
40-1.6
-40016
54H/74H
50-2.0
-50020
S4S/74S
SO-2.0
-100020
54LS/74L5
20-0.36
-4004/8 W
«1
Flgur* A
Figura B
DC CHARACTERISTICS OVER OPERATING TEMPERATURE RANGE (S*« Nota b)
PAHAMETER
ICCH Supply curfenl
ICCL Supply curren!
TEST CONDITIONS
Vcc = Max, VIH = OV
VCC = Max, VIN 4.5V
54/74
Min Max
12
33
54H/74H
Min Max
26
58
54S/74S
Min Max
24
54
54LS/74LS
Min Max
2.5
6.6
UNIT
mA
mA
AC CHARACTERISTICS TA = 2SBC (SM Sactfon 4 lor Wavelorrns and CondWona.)
PARAMETER
IPLH Propagatíon delay
tpHL Propagatíon delay
TESTCONDlTfONS
Wavefonn 1
Waveform 1
54/74
CL = 1SpFRL = *oo n
Mln Max
22
15
54H/74H
CL=25pFRL= 280(1
Mln Max
10
10
54S/74S
CL = 15pFRL= 28011
Mhi Mu
4.5
5.0
54LS/74LS
CL = 15pFfiL=2kn
Mln Max
15
15
UNIT
ns
ns
NOTE
B. The i]tinto num&en indícala tíitUrenl pacametríc valúes ior MilitarV/Comnwrefslicniporature fangei iMpecflvety.
b. Fof [am'rly de characIwfBlics see insldo (tont CTJTW luí 54/7^ and 54H^7^H. and acóInstde baclc cover Itw MS/74S ai>d WLS^iLS specl He ilion.
•MF-S
54S/74S13854LS/74LS138
LOGIC SYMBOL
DESCRIPTIONTíie "138" fs a H1GH speed 1-of-B Decod-er/üemultlploxer. The "138" Is idsal forHIGH speed bipolar memory chip selecl ad-dress docoding. The múltiple Input enablesallowparallel expansión loa l-of-24 decod-er using only three "138" devlces; or to a 1-oí-32 decoder using íour "138" devices andone Inverter.
FEATURES• Domultiplexlng capoblllty• Múltiple Input enable [oreasy expansión• Ideal (or memory chlp selecl decodlrig• Dlrect replacement for Inte) 320S
liiE, E, E,
* , * . * , , E
a i i a i s i
u n T Ui» H 1] u It to 1
Vcc - P"l tfiGND - Pin 3
T
f
PIN CONFIGURATION
OROERING CODE {See Secllon 9 lor further Package and Orderlng Information)
PACKAGES
Plástic DIP
Ceramlc DIP
Flaipak
COMMERCIAL RANGESVcc - SV \A - O'C lo 70*C
N74S138N * N74LS138N
N74S138F • N7-1LS138F
MIL1TARY RANGESvcc •• 5V i I°*;TA " -ss-c to -us-c
S54S136F
S54S138W
S54LS133F
S54LS138W
A,(T
*.LL
e. E
CKO [T
INPUT AND OUTPUT LOADING AND FAN-OUT TABLE (a)
M] f
PINS OESCRIPTION
Ao-A2 Address inputs í,l"imA)
- - l|H<fiAJEi, E? Enable lActive LOW) Inpuis
llL ImAt
Ea Enable (Active HIGH1 input .IlH,(ítí!IIL ImA)
5-7 Decoder ouputs ,'OH,tf"!í!IOL (mAi
54/74 54S/74S
50-2.0
50-2.0
50-2.0
-100020
54LS/74LS
20-0.36
20-0.36
20-0.36
-4004/8 ía)
MOTEi. Itie ilainod numb«3 Indícate Oitlvunl paomelfíc valmu (of MiJilary/CommefCitl
tcmperaluie íinesí tmípectlv«!y.
l-OF-8 DECODER/DEMtíLTIFi£X£R
FUNCTIONAL DESCRIPTION
The "138" decoder accepts three blnaryweighled ¡nputs (Ao,Ai,A2) and when en-abled pinvides eight mutually exclusiveactive LOW outputs (0-7). Tha dsvica fea-tures three Enafale ¡nputs: two active LOW(Ei,£2! and one active HIGH (EsJ.Jveryoutput wíll be HIGH unless Et and EZ areLOW and £3 ¡s HIGH. This múltiple Enablefunction allows easy parallel expansión ofthe devíce to a l-of-32 (5 linos to 32 lines)decoder with ¡usl four "138's" and one ¡n-verter.
The devíce can be usod as an oight outputdemultlplexor by using one of the activaLOW Enable Inputs as the data input and theremainíng Enable inputs as strobes. EnableInputs not used must be permanently tled lotneír appropriate active HIGH oractlve LOWstate.
TRUTH TABLE
INPUTS
E-, E2 E3
HXXLLLLLLLL
XHXLLLLLLLL
XXLHHHHHHHH
AQ A-| Ag
XXXLHLHLHLH
XXXLLHHLLHH
XXXLLLLHHHH
OUTPUTS
Ó
HHHLHHHHHHH
1 2
H HH HH HH HL HH LH HH HH HH HH H
3
HHHHHHLHHHH
4
HHHHHHHLHHH
5
HHHHHHHHLHH
6 7
H HH HH HH HH HH HH HH HH HL HH L
H = HIGH vollasw tevfllL *. L.OW vollagfl lavslX - Oon'l w/e
tOGIC DIAGRAM
( I - Pin H u muerVcc = Pío IBGND • Pin 8
DC CHARACTERISTICS OVER OPERATING TEMPERATURE RANGE <
PA RAM ÉTER
ÍCC Supply curten!
TEST CONDITIONS
Vcc - Max
54/74
Mln Max
54S/74S
Mln Max
74
54LS/74LS
Mln Max
10
UNIT
mA
b For Ismiy Oc chura cierta I le», aso tnaioo líoni coyer íot 5V74 and 5-1H/74H. and **>«muflo tiack covcr lor S4S/74S and 54LS/74LS swciffcatión».
l-OF-8
AC CHARACTER1STICS TA = 25°C (See Sectlon 4 lor Waveforms and ConcMIons)
PARAMETEH
IPLH Propagatlon delayIPHL Address (o output
IPLH Propagalian delay
IPHL Ei and £2 10 output
IPLH Propagation delaytPHU E3 10 OUtpUt
TEST CONDITIONS
Figure 1
Figure 2
Figure 1
54/74
Mln Max
54S/74S
CL= 15 pFRL=2BOil
Min Max
1212
8.011
1111
54LS/74LS
CL- 15 pFRL= 2kll
Mln M»
2739
1832
2638
UNIT
nsns
nsns
nsns
AC WAVEFORMS
Vu - I5V for S4Sf74S; VM - 13V tot S4LS^4LS.
Figure 1
VM - 1.5V lof 54S/74S; V« s 13V Sor 54LaíT4LS.
Figure 2
+5V-Powered Multi-Channel RS-232Drivers/fíeceivers
ABSOLUTE MÁXIMUM RATINGS- MAX220/222/232 A/233 A/24 2/243™ . il.li /!/_„! n 1\! trt ,C\I 1C OTr» Klnm^n O/"\n O 7H.£jpp[y Voltage (VcO -0.3V to +6VJpulVoltages^ -0.3V to (Vcc - 0.3V)
RjN ±30VTOUT (Note 1) ±15V
696mW762mW762mW
7BOOmW842mW
Toar ±15V-0.3V to (Vcc + 0.3V)
nnverjReceiver Output Short Círcuited la GND . . . Conlinuousrnntinuous Powof Oissipatíon (TA - +70'C)
l& in Piaste DIP (derate 10.53mW/"C above +70'C) . 842mWl8-PinPiastcDiP(deraten.limW/"CabovB+70'C) . B89mW20-Rn Plaste DlP (derate 8.00mW/'C above -t-70"C) .. 440mW
Input voJtage measured w!ih TOUT tnhigh-trnpedance state, STÍDFIor Vcc
1 G-Pín Narro* SO (derate SJOmW/'C above +70'C)16-Pln Wide SO (derate 9.52mWfC above +70'C).IS-Pin Wkíe SO (derate 9£2mW/'C above +70'C) ..20-P¡n Wide SO (derate lO.OOmWrC above +70'C)16-Pín CERDIP (dereíe 10.00mWyC above +70'C)..IS-Pin CERDIP (defaíe 10^3mW/*C abovu +70-C)..
Operating Temperature Rangas:MAX2 AC _ _. MAX2 C O'C to +70'CMAX2 AE .MAX2 E -4Q'C to+85*CMAX2__AM__.MAX2__M__ -55'Cto+125'G
Storage Temperature Rango -65'C to +160'CLoad Temperature {soldewig, 10 sec) ,. -*• 300*C
OV.
D«yc«£/ toa* listad unóat 'Absoluta Máximum fíatno»' m*y CMÍM paenwefii damap* to !h* dtwlc». Tí»«» •/• ttnss rmting* onfy. ard functícndft o'tho dovice at these or any oíh*r condftiorn bayoñd rhoá* ¡ndicaied In fr* optralion*] Mcrikx» c//ft* sptdficaDons a rcf ¡mpíad. &poavemáximum raüng condilions kr txttrxtod p#iods may aííact devñ»
ELECTRICAL CHARACTERISTICS - MAX220/222/232A/233A/242/243(Vcc - +5V ±10%. C1-C4 - o. l F, TA - TMIN to TMAX, untess otherwrée noled.)
PARAMETER CONDmONS MtN TYP MAX UNfTS
í 232 TRANSUTITERS
Output VoltageSwing
input Logíc Threshold Low
inpul Logic Threshold High
Logíc Pull-Up/lnput Current
Output Leakage Current
Data Hale
Transmutar Output Resistance
CXjtpui Short-Círcuit Current
Al tran^nttar outpUs loaded Wflh 3kfí to GNO
5HDR- Vcc5HDR-OV
Vcc - 5.5V. SK3R - OV. VOÜT - ±1SV
Vcc - SHGR - OV. VOOT - ±15V
Except MAX220, rxxmaJ operation
MAX220
Vcc- v+ - v- - ov, VOUT - ±2VVo<JT"OV
±5 ±fl
1.4 0.8
2 1.4
5 40
±0.01 ±1
±0.01 ±10
±0.01 ±10
200 116
22 20
300 10M
±7 ±22
V
V
V
HA
HA
kb'tE&ec
Q
mARS-232RECEIVERS
RS-232 Input VoJtag* Operating Range
BS-232 Input Thieshold Low
RS-232 Input Threshold High
RS-232 Input Hysteresis
RS-232 Input Resistance
TTUCMOS Output Voltage Low
TTL/CMOS Output Voltage High
TTUCMOS Output Short-Circuit Current
TTL/CWOS Output Leakage Curren!
Except MAX243 R2iNVoo - -V MAX2<g p^H {No[e 2)
Except MAX243 R2iN
00 " " MAX243 R2jN (Note 2)
Except WAX243. Vcc - 5V, no hysL ¡n shdn.
MAX240
•
IOUT - 3.2mA
IOUT ' -1.0mA
Sourcíng VoUT - QND
Sínklng VOUT « Vcc
5RDR - Vcc or ER - Vcc, ovs VOUTS Vcc
±30
0.8 U
-3
1.B 2.4
-0.5 -0.1
0.2 0.5 1
1
3 5 7
0.2 0.4
3.5 Vcc -0-2
-2 -10
10 30
±0.05 ±10
V
V
V
V
kaV
V
mA
HA
+5V-Powered Multi-Channel RS-232Drivers/ReceiversELECTRICAL CHARACTERISTICS- MAX220/222/232A/233A/242/243 (continued)(Vcc - +50 ±10%, C1-C4 - o, ijiF, TA = TWIN to TMAX. uniess otnenvifte noied.)
PARAMETER
ER Inpul Threshold Low
ER Input Threshold High
CONDITIONS MIN TYP MAX
1.4 0.8
2.Q 1.4
UWTS
V
V
POWER SUPPLV
Operating Suppiy Voltage
VccSupply Curren!(5HE5Ñ = Vcc). Figures 5. 6. 9, 18
Shutdown Suppiy Current
SHDN Inpul Leakage CurrentSBDRThreshoídLowSRÜRThresnoldHigh
No toad
3kfl load both outputs
MAX222/242
MAX220
MAX222/232A/233A7242/243
MAX220
MAX2Z2/Z32A/233W242/243
TA->25'C
TA - O'C to +70'C
TA - -4Q'C to +S5'C
TA»-55*Cto+12S'C
4.5 5.5
• 0.5 2
4 10
12
15
0.1 10
2 50
2 50
35 100
±1.1.4 0.8
2.0 1.4
V
mA
VA
HA
V
V
AC CHARACTERlSTtCS
Transition Slew Rale
Transmiíter Propagation DelayTTL to RS-232 (Normal Operatkxi).Figure 1
Receíver Propagatíon DelayRS-232 toTTL(Nofmal Operalion).Figure 2
Receíver Propagation DelayRS-232 to TTL (Shutdown), Rgure 2
Receiver-Ouiput Enable Time, Rgure 3
Receiver-OutpuI Disable Time, Figure 3
Transm'mer-Output Enable Time(5RDKJ goes h^h). Figure 4
Transmitter-Output Oísable Time(SRDÑ goes low). Figure A
Tr ansminer 4- to- PropagationOeiay Difference (Normal Operation)
Receiver + to - PropagationDelay Difference {Normal Operation)
CL = 50pFto2500pF,RL - 3kíl to TkQ.VcC = 5V.TA=*25'C.measured Irom -t-3V to-3Vor-3VtO-v3V
tPHLT
tPLHT
tPHin
tPLHR
tPHLS
tPLHS
teatOR
ter
tOT
tPHLT-tPLHT
tPHLR-tPLHR
MAX222/232A/233Ay242/243
MAX220
MA1C222/232A/233A/242/243
MAX220
MAX222y232A/233A/242/243
MAX220
MAX222/232A/233A/242/243
MAX220
MAX222/232A/23aV242/243
MAX220
MAX242
MAX242
MAX222/242
MAX222/242
MAX222^42.0. IpF caps(Includes cha/ge-pump start-up)
MAX222;242, 0.1 JiF caps
MAX222/232A/233A/242/243
MAX220
MAX222y232A/233W242/243
MAX220
6 12 30
1.5 3 30
1.3 3.5
4 10
1.5 3.5
5 10
0.5 1
0.6 3
0.6 1
0.8 3
0.5 10
2.5 10
125 500
160 500
250
600
300 .
2000
100
225
VAIS
ys
^
\ÍS
nsns
US
ns
ns
ns
Not« 2; MAX243 R2ouT ¡s guaranleed to be low when the R2¡N is i OV or te floaling.
+5V-Powered Multi-Channel RS-232Drivers/Receivers
Typlcal Operat/ng Char*ctor/st/cs
MAX220/222/232A/233A/242/243
OinWT VOLTAOEn. LOU CURROff AVJUUBU ourwr cuwtarn.MTAMTl
(W-T1UE EXmn MUTUOW -
VcctíVNOLOAÜON^ TRANSMITTEROUTPUTS •
[EXCEPTHAX220.UAX233AJ
10 15
+IW
fSV
S*"g w
S w>>
V*
V-
....
2s
\[A•—\ i
^4-luFCA\ 'xo.i :Dy>
I1(OH
-lliFOPS
_
V1
O.IHFCAi
t >
^^
v.
-y."
LOXflCUftREMTímA) DATAMIt(kbitS/S«)
+5V-Powered Multi-Channel RS-232Drivers/fíeceivers
IOPV1EW
ci* [7w [|ci- [3a* (T«- [?v -S
I2tMT [T
R2« [T
" SS1*
DIP/SO
i|J VK¡U BNO 1
Ü] TlüW Cl-r^ 3
¡3] DIN ^
12] R10UI ^T 5
ñ] Tinio] T2wTn ~, 119j fCo/r r^__
m/ os1HPUTS '
10L
CAPACrTANCEOiF) 15
DEVkCE C1 C2 C3 C4 C5 THíT-i*K '
UAX220 4.7 4.7 10 10 4.7 DUTPUTS
UAX232 1.0 1.0 1.0
UAX232A 0.1 0.1 0.1 0.1 0.1
C3
CS Í* Ifi
cu J/cc _ v+C1- VOaAGEDOUBLffl
O» *10V70-10V u.M. VOL7AGEIHVÍRTCT *"
*5V
«Okk
72« Y |\ TÍOUT
R10UI * /I RlK
1*R20UI ^1 ^ R2n
GKO I-
i 1S
6 -1W
~|C4
" "I
RS-2SOUTPU7S
7
13 ~.
R5-ZÍ2WPU7S
6
figura 5, MAX220/232/232A P'm Configuraron and Typical Operatíng Circuit
70PVIEW
(«.e.) a [T
ci-[T
v-üI2cwr [TR2«[T
()APEFOflMAX2220NLr.
•
MAX222
DIP/SO
2
5
ts] sRcÑ 't—
Ül VccÜI GNO i;
Ü] TltWlzf nucuosÜJ Rlx >» S
ül n«»D 72* f 0
ÍÓ1 B9rv^ 77UCMOSliJ raw OUTPUTS10
i
C5,t T í? AlLCAPACíTOfiSO.!^I Jl. t Jft^ |l7
n YCCC1+ *5V7Q.10V V4"d- . VQUAGEOOUBlin
Q* *10V70-10V y.
rfT?í*| T2M
Rloai /i RlM
r^ i
^ \Kan 1 \ R2n
- i J 4t,(N.C]EN | ^Sk
GND i
-1S
7 -W
15
RS-232OUTPIÍIS
tJ •
U -,
K-232
9
18
figure 6. MAX222/MAX242 Pin Confíguratíon and Typical Operating Circuit
54LS/74LS244 PfN CONFIGURATtON
&ORDERING CODE (See Sectlon 9 forfurther Package and Orderlng informallon)
PACKAGES
Plástic OIP
Ceramic DIP
FlatpaV.
PINCONF.
FIg. A
Fig.A
COMMERCIAL RANGESvcc*5V±5%¡ TA-O-C io -f7o*c
N74LS2-WN
N74LS244F
MILITARY RANGES
VGC°SV ¿ 10%: TA— S5*c lo -M2s*c
S54LS244F
INPUT AND OUTPUT LOADING AND FAN-OUT TABLEA
PINS
Inpul. /W^ÍJIIL EniA)
« . . 'OHtmA)Outputs ,u"; ..IQL (mA)
54/74 54H/74H 54S/74S B4LS/74LS
20-0.2
-12/-15<fl)12/2-lta)
Figure A
TRUTH TABLE
ÍNPUTS
5Ea
LLH
<a
LH
X
SébLLH
Ib
LHX
OUTPUTS
Ve
LH(2)
*b
LH(2)
H - H>OH volUa* l«*lL * LOW VOH>D* lw»lX - Doo'IofB(?) - Wgn imp»d*nc* (cll) st.le
DC CHARACTERISTICS OVER OPERATING TEMPERATURE RANGE(b)
PAR A METER
VQH Oulptit HIGH voltage
VQI. Oulpui LOW voltage
Oulput shod[fie rwo circuil current
'CCH Supply current HIGH
'COL Supply current LOW
ICGZ Supply currenf "of["
TEST CONDITIONS
Vj = 2V
Vc5E=vIL
^CC = Min
VJ-VILVÜE=VIL
'OH=~3i0mA
lOH=-12mA
OH^-'SmAte)
'OL=12mA
IOL=24mACc5
VGC * Max, VOUT ™ av
VCC = Max. Vt = 4.5V
VOE = OVVCG = Max. vj = ov
V^E = OV
Vcc - Max, V| = OVVOÉ * 4.5V
54/74
Min Max
S4H/74H
Min Max
54S/74S
Min Max
54LS/74LS
Min
2.4
2.0
2.0
-40
Max
0.4
0.5
-120
23
40
43
UNIT
V
V
V
V
V
mA
mA
mA
mA
NOTES• Ihn slohsd numbera iridíenla dllloranl Oírtmalnc Víluos /oí MHrtaiy/Commwciil
tump«tature «ngei reaDoctíwtv.b. FO( l.m.Iy de CfiaiaUvrUli» «e» «tiO* lionl CCH el lot 5Í/Í4 nnd 5<H/74H. VKl aoa
mud» bickcay.f lorSJS/7<S and 5*LS'7«LS tpeclUcillon.c This pinsmeler lar Commetclal Rnnoo only.
AC CHARACTERISTICS: TA=25°C (See SBctfon 4 for Waveforms and Condltlons)
PARAMETER
'PLH Propagatíon delay
'PHL Prapagation delay
1P2H Enable to HIGH
IpZL Enable lo LOW
tpHz Dlsable Irom HIGH
'PLZ Disable (rom LOW
TEST CONDITIONS
Waveform 2
Wavelorm 2
Waveform 6
Waveform 7
Wavelorm 6
Wavelorm 7
ÑUTE
CL = 45pF
CL- 5ppW)
CL = 45pF
CL=SpF(d)
54/74
MIn Max
54H/74H
MIn Max
54S/74S
MIn Max
54LS/74LS
Cu = 45pFRL = 667ÍÍ
M(n Max
18
18
23
28
35
18
30
25
UNIT
ns
ns
ns
ns
ns
ne
ns
ns
lo guutnl** th»t ai» diaabled ind can no I«D« driwe ihe bu».
54LS/74LS373 LOGIC SYMBOL
DESCRIPTIONThe "373' ¡a an B-Brt Transparent Latch wilh3-atate bullered outputa, The latch outptitalollow the dala Inputa when the latch Enable¡a HQH, and they are álable when the En-able ¡A LOW.The 3-alate oulput buffets aracontrolled by an active LOW Outptit Enable(OE~) ¡nput. A HIGH on the ÜE'inpiit locces theelght outputs to the hlgh fmpedance "ofl"atete. When 0~E ¡a LOW. the lalched orIransparent data appears at the outputa.
FEATURES• B-BIt tranoparent latch• 3-State oulput buffets• Common Latch Enable Input with
hystareata• Common 3-etate Output Enable
control• Independen! latch and 3-«tate buffer
opdratlon• See "363" lor MOS compatible output
vertíon
i i u u 17I 1 1 I I I I IO0 O) D; Oj DI
c
06
QU Ü| O] Oj O«
Di D* D/
DI Q» a,
OWD - Pin )0
PIN CONFIGURATION
ORDERING CODE (S»« Sectlon 9 for further Package and Orderlng Information)
PACKAGES
Plaatíc DIP
Ceramíc DtP
Flalpak
COMMERCIAL RANGESVCC=5VS5%¡TA-CTC lo-í-70-C
N74LS373N
N74LS373F
MILITARY RANGESVcc"5V± I0%' TA— SS-C 10 4-125-C
S54LS373F
OQ [T
°o ÍAoí {T
Oí (T
oí [T
t>j [T
ib °3 CE
CNO (15
JÜ °7
75] DT
17]
«I*15] Os
m 05 .«] f-jf] 0,
13 =
INPUT AND OUTPUT LOADING AND FAN-OUT TABLE(a)
PINS DESCRIPTION
E Latch Enable (activa HfGH) Input .'' í!I]L (mA)
D0-D7 Parallel Data inpula I í AÍ
ÜE Output Enable (acllve LOWJ ínput 1'IH/tfXí?I|L ímA)
Q0-Q7 3-State outpuls !OH ¡""^JIOL ímA5
54/74 54S/74S 54LS/74LS
20-0.4
20-0.4
20-0.4
-1/-2.6t«)12/24(a)
NOTE
a. Tí« •(••hwí numbarn (ndinte dilfocent paiimelric v«(u«» (oí II emp»;»(«* r«no»t i«>p*cltvv|y.
FUNCT10NAL DESCRIPTIONTile "373" Is Octal Transparent Latch coup-led to eighl 3-átate output bufferi, The twosectiona oí the davice are controlled Inde-pendantty by Latch Enable (E) and OutputEnable (OE) control gales.
The data on the D Inputs transiórred to thelitch outputo when irte Latch Enable (E) in-pul IB HIGH. The latch camaina tranaparentto the data inputs while E Ifi H1GH, andstores the dala presen! ona setup time be-lora tha HIGH-lo-LOW enable tranaition. Theenable gata has about 400mV oí hyaterealabuilt m to betp minimiza problema thflt ttlgnaland ground nolaa can cause on the latohlnQoperatlon.
The 3-state output bullera are deafgned todtlve heavlly loaded 3-8tate buaea, MOSmemorias, or MOS microprocessors, Theactive LOW Output Enable (ÜE) controls allelghl 3-slale bullera independen! of thelatch operation. When 0€ IB LOW, thelatched or franaparent data appears at theoutputa. When OE ís HIQH, the ouiputa are ínthe hlgh impedenca "olí" slate, whichmeens they will neíther drive ñor load thebúa.
LOGIC DIAGRAM
MODE SELECT—FUNCTION TABLE
OPERATING MODES
Enable & read reglater
Latch & raad ragister
Latch reglster &díaabls outputs
INPUTS
OE
LL
LL
HH
E
HH
LL
LL
Dn
LH
1h
1h
INTERNAL REGISTER
LH
LH
LH
OUTPUTS
QO-O?
LH
LH
(Z)(2)
K •= HK3H vollaoBlh - HiGH volUo*
I B LOW votUg* IBVVÍ «w setup I(2) - HKjri fmpediflea -o«" «lite
*«lup llm« pnor lo )h* HlGH-la-LQW «nabln trtnsitlon[
prior lo m. HiGH-lú-tOW «ubi* Irinsil
í [>0(til (•"
(11
í,
MI
AC D
5
CI
' AE n
o
IB)
J
e ii
o
INI
Ae D
a
1")
AE Q
5
(«I
¿c n
5
J,E U
3
E
s
DC CHARACTER1ST1CS OVER OPERATING TEMPERATURE RANGE|b)
PARAMETER
VQL Output LOW voltage
VQH Oulput HIGH voltage
'OS Output short circult current
'Ce Suppíy currant
TEST CONOmONS
VCG WinVQe-VjL
IOL = l2mA
IOL - 24mA
VCC = Min, VQE = V[[_IOH = s*6 Fan Out Tab|fl
VCC - Max. VoUT - OV
VGC *= MaxMU
Com
54/74
Mln Max
54S/74S
Mln Max
54LS/74LS
Mfn
2.4
-30
Max
0.4
0.5 (0)
-too
44
40
UN1T
V
V
V
mA
mA
mA
l»ti»llct, laalniidc lionl cov«flof 5417-i «nd 6*H/7HH, nnd IBS c. "mi. p*i»msl«f lor Commtrcisl Hiñas
AC CHARACTERISTICS: TA=25°C (S»« S.ctlon 4 lor T»«t Cfrcultl and Condltiona)
PAR ÁMETE R
tpLH Propagation delay'PHL Latch Eneble to outpul
IpLH Propaaatlon delaytpHL °ata to outpul
tpzH Enabla tima to HIGH leval
tpZL Enable lima lo LOW level
ÍPHZDisable time from HIGH level
VLZDisable lime from LOW level
TEST CONDITIONS
Figure 1
Figure i
Figura 2
Figuro 3
Figuro 2
Figure 2, C[_ = 5pFÍd)
Figura 3
Figure 3, CL = 5ppW)
54/74
Mtn Max
54S/74S
Min Max
54LS/74LS
C|_ = 45pFflL - 66711
Mln Max
3040
1832
20
2B
45
22
24
22
UHIT
nene
nsn»
na
na
ns
na
ns
ns
AC SETUP REQUIREMENTS; TA = 25°C (Seo Sectlon 4 lorTost Clrcults and Condiliont)
PA RAM ÉTER
1\ Latch Eneble pulse wrdlh
tg Selup lime Data to Latch Enable
ln Hold time Data lo Latch Enable
TEST CONDITIONS
Figure 1
Figure 5
Figure 6
54/74
Mln Max
54S/74S
Min Max
54LS/74LS
Mln
15
3.0
10
MaxUNIT
na
na
na
d. The»» Itsls B;« lor ratarence only. Thoy rsp/ojanl tha delny 1¡m« lo Duarinla* Ihtl ictsnceii diubteiJ inií can no longar drlve I he bu»
AC WAVEFORMS
LATCH ENABLE TO OUTPUT DELAYSAND LATCH ENABLE PULSE WIDTH
• \ \ £_ _je /" _ \ IPMl—j — 'PLM —4
. . ... [ \ -tvu T£VM
VM • I.6V tcx 5417* ind Sisn*3; VM - 1.3V lof S4LSI74I.S
Figure 1
3-STATE ENABLE TIME TO HIOH LEVEL
AND DISABLE TIME FROM HIGH LEVEL
OE V vu -J- y«
— ««-| -.««- rOSV
o ^¿VM ^^ — — • -.\yt
VM - I.6V loi &4IU and 6ÍS/74S; VM - I.3V lor S4LSIJ41S
Figure 2
\ WAVEFORMS (Cónl'd)
3-STATE ENABLE TIME TO LOW LEVELAHD DISABLE TIME FROM LOW LEVEL
t1.SV lor 64/74 iM 6*SíT4S¡ Vw " 1.3V lol 54LS/7«LE
Figure 3
DATA SETUP AND HOLD TIMES
PROPAGATION DELAY DATATO O OUTPUTS
Tho studfld «i**» indicóle wri«n Ih* «pul íi curmilled lo chañen tor prodtct»fc[» oulput
Vy' I-5V tpi 54/74 45<Si74S;V|,,- I.3V ÍOf S4tSí7*L3
Figura 5.
d 543/7*3; VU - 1.
Figure 4
ANEXO 4
CARACTERÍSTICAS DE LAS MEMORIAS 24C02A Y 93AA46
•'•!*!
*'*•*w «
24C01A/02A/04ATM
1K/2K/4K 5.0V PC Serial EEPROMs
FEATURES
• Low power CMOS technology• Hardware write protect• Two wire serial interface bus, 12C™ compatible
• 5.0V only operation• Selí-timed write óyele (including auto-erase)• Page-write buffer• 1 ms write cycle time for single byte• 1,000,000 Erase/Write cycles guaranteed
• Data retention >200 years• 8-pin DIP/SOICpackages• Available for extended temperature tanges
- Commercial (C): 0°C to +70°C- Industrial (I):. -40'C to +85'C- Automotive (E): -40"C to +125"C
DESCRIPTION
The Microchip Technology Inc. 24C01A/02A/04A is a1K/2K/4K bit Electrically Erasable PROM. The deviceis organized as shown, wíth a standard two wire serialinterface. Advanced CMOS technology allows a signif-icant reduction in powerover NMOS serial devices. Aspecial feature in the 24C02A and 24C04A provideshardware write proteciionforthe upperhalf oí the block.The 24C01A and 24C02A have a page write capabiliíyof two bytes and the 24C04A has a page length of eightbytes. Up to eight 24C01A or 24C02A devices and upto four 24C04A devices may be connected to the sametwo wire bus.
This device offers fast {1 ms) byte write andextended (-40°Cto 125°C) temperature operation. Itis recommended that all other applications useMicrochip's24LCXXB.
PACKAGETYPES
OrganizationWrite ProtectPage WriteBuffer
24C01A
128x8
None2 Bytes
24C02A
258x8080-OFF2 Bytes
24C04A
2 x 256 x 8
100-1 FF8 Bytes
DIP r
A1L
A2E
Vss E
8-lead
SOIC AOL¡I
A2CÜ
VSS ¿I
14-lead ,_SOIC NC C-
AO LÍ
A1 CÍ
A2 LÍ
Vss [í
* 'TEST" pin in 24C
1 8
2 N) |0 N) 7
o o oo o o
4 5
1 8
2 fo ro ro 7O O 0O O 0
q í* [0 -J- oo > > > o
4 5
; 2 13.3 ro ro ro 12
- . O O O ..... 4 o o o 11
*>. ro -»•
: s > > > 10! 6 9
; ? 8
301A
^VCC
HSCL
U SDA
Ib vcc
Ib wp*
ÍD NC
ÍD Vcc
^3 WP
I¡Il SCL
I¡U SDA
^UNC
BLOCK DIAGRAM
Vcc
Vss
SDA -*H
SCL
-»-
-^-
,[_
-(
r"*
-fc-
DataBuffer(FIFO)
Dala Reg.
~i
1 SlaveAddr. 1
i•-»•
rControlLogic
i i1 1
AO A1
i iI I
A2 WF
1
'j-*n Vpp | RAVAmp
I 1 'T
A P id od i MerI V AOto Ar
A7s e /w
s r
| Increment
>
r
noryray
i
A8
I2C is a trademark of Philips Corporation.
1996 Microchip Technology Inc. DS11183D-page 1
24C01A/02A/04A
1.0 ELECTRICAL CHARACTERISTICS
1.1 Máximum Ratinas*
vcc 7.ovAII inpuis and ouiputs w.r.t. Vss -0.6V to Vcc +1 .OVStorage temperatura -65"C to +150"CAmbient temp. with power applied -65"C ío +125"CSoldering temperatura of leads (10 seconds) +300'CESD protection on a!l pins 4 kV
"Notice: Stresses above those usted under "Máximum ratíngs"may cause permanent damage to the devlce. This is a stress rat-ing only and functional operation of the devíce at those or anyother condítions above those ¡ndicated in the operatíonal íistingsof this specification is not implied. Exposure to máximum ratingconditions for extended periods may affect device reliability.
TABLE1-1: PIN FUNCTIONTABLE
Ñame
AO
AO, A1 , A2
VSS
SDA
SCL
TEST
WP
vcc
Function
No Function for 24C04A only, Mustbe connected to Vcc or Vss
Chip Address Inputs
Ground
Serial Address/Data I/O
Serial Clock
(24C01 A only) Vcc or Vss
Write Protect input
+5V Power Supply
TABLE 1-2: DC CHARACTEFNSTICS
Vcc = +5V (±1 0%) Commercial (C): Tamb = 0°C ío +70°CIndustrial (I): Tamb= -40°C to +85°CAutomotive (E): Tamb= -40°C to +125°C
Parameter
Vcc detector threshold
SCL and SDA pins:High level input voltageLow level input voltageLow level output voltage
A1 & A2 pins:High level input voltageLow level input voltage
Input leakage current
Ouíput leakage current
Pin capacitance(all inputs/outputs)
Operating current
Stand by current
Symbol
VTH
VIHVILVOL
VIHVILILI
ILO
ClN,COUT
Ice Write
Ice Write
IceRead
ICCS
Min.
2.8
Vcc x 0.7-0.3
VCC - 0.5-0.3—
—
—
—
—
Max.
4.5
Vcc + 1Vcc x 0.3
0.4
VCC + 0.50.5
10
10
7.0
3.5
4.25
750
100
Units
V
VVV
VV
JlA
uA
PF
mA
mA
^A
HA
Conditions
IOL = 3.2 mA (SDA only)
VIN = OV to Vcc
VOUT = OV to Vcc
VIN/VOUT = OV (Note)Tamb = +25'C,í = 1 MHz
FCLK = 1 00 kHz, prog ram cycle time = 1 ms,Vcc = 5V, Tamb = O'C to +70'C
FCLK = 100 kHz, program cycle time = 1 ms,Vcc = 5V, Tamb = (I) and (E)
Vcc = 5V, Tamb= (C), (I) and (E)
SDA=SCL=Vcc=5V (no PROGRAM active)Note: This parameter is periodically sampled and not 100% tested
FIGURE 1-1: BUSTIMING START/STOP
SCL
SDA
TSU.'STA
VHYS
THD:STATsu:sro
-ÍJ-
STOP
DS11183D-page2 © 1996 Microchip Technology Inc.
24C01A/02A/04A
TABLE 1-3: AC CHARACTERISTICS
Parameter
Clock f requencyClock high timeClock low timeSDA and SCL rise timeSDAandSCLfalltimeSTART condition hold time
START condition setup time
Data input hold timeData input setup timeData output delay timeSTOP condition setup timeBus free time
Input filíer time constant(SDAandSCLpins)Program cycletime
Endurance
Symbol
FCLK
THIGHTLOW
TRTF
THD:STA
TSUlSTA
THD:DATTSU:DAT
TAA
Tsu:SroTBUF
Ti
Twc
—
Min.
—
40004700—
—
4000
4700
0
250
300
47004700
— •
.. —
1M
Typ
_
—
—
—
—
—
—
_
—
—
—
—
.4.4N—
Max.
100
—
—
1000300
—
— •
—
—
3500—
100
1N—
Units
kHzns
nsns
nsns
ns
nsns
nsns
ns
msms
cycles
Remarks
After this period the íirstclock pulse is generatedOnly relevant for repeatedSTART condition
(Note 1 )
Time the bus must be freebefore a new transmissioncan start
Byte modePage mode, N=# of bytes25°C, Vcc = 5.0V, BlockMode (Note 2)
Note 1: As transmítterthe device must provide this intemal mínimum delay time to bridge the undefined región (mín-imum 300 ns) of the falling edge of SCLto avoíd unintended generation oí START or STOP conditions.
2: This parameter is not tested but guaranteed by cha ráete rization. For endurance estimates in a specífíc appli-cation, please consult the Total Endurance Model which can be obtained on our BBS or website.
FIGURE 1-2: BUSTIMING DATA
TF
SCL
SDAIN
SDAOUT
TSU:STA-
TAA-
. TLOW
^ THIGH
THD:DATTHDISTA
-THD:STA
TR
TSUIDAT TSUISTO-
TAA TBUF
© 1996 Microchip Technology Inc. DS11183D-page 3
24C01A/02A/04A
2.0 FUNCTIONAL DESCRIPTIONThe 24C01A/02A/04A supports a bidirectional two wirebus and data transmission protocol. A device thatsends data onto the bus is defined as transmitter, anda device receiving data as receiver. The bus has to becontrolled by a master device which generaies theserial clock (SCL), controls the bus access, and gener-ales the START and STOP conditions, while the24C01A/02A/04A works as slave. Both master andslave can opérate as transmitter or receiver but themaster device determines which mode is activated.
Up to eight 24C01/24c02s can be connected to the bus,selected by the AO, Al and A2 chip address inputs. Upto four 24C04As can be connected to the bus, selectedby Al and A2 chip address inputs. AO must be tied toVcc or Vss forthe 24C04A. Otherdevices can be con-nected to the bus but require different device codesthan the 24C01A/02A/04A (refer to section SlaveAddress).
3.0 BUS CHARACTERISTICSThe following bus protocol has been defined:
• Data transíer may be initiaíed only when the bus isnot busy.
• During data transfer, the data line must remaínstable whenever the clock line is HIGH. Changesin the data line while the clock line is HIGH will beinterpretad as a START or STOP condition.
Accordingly, the following bus conditions have beendefined (Figure 3-1).
3.1 Bus not Busy(A)
Both data and clock lines remaín HIGH.
3.2 Start Data Transfer (B)
A HIGH to LOW transition of the SDA line while theclock (SCL) is HIGH determines a START condition. Allcommands must be preceded by a START condition.
3.3 Stop Data Transfer (C)
A LOW to HIGH transition of the SDA line while theclock (SCL) is HIGH determines a STOP condition. Alloperations must be ended with a STOP condition.
3.4 DataValídfD)
The state of the data line represents valid data when,after a START condiíion, the data line is stable for theduration of the HIGH period of the clock signal.
The data on the line must be changed during the LOWperiod of the clock signal. There ¡s one clock pulse perbit of data.
Each data íransfer is initiated with a START conditionand termínated with a STOP condition. The number ofthe data bytes transferred between the START andSTOP conditions is determined by the master deviceand istheoretically unlimited.
3.5 Acknowledqe
Each receiving device, when addressed, is obligad togenérate an acknowledge after the reception of eachbyte. The master device must genérate an extra clockpulse which ¡s associated with this acknowledge bit.
Note: The 24C01A/02A/04A does not genérateany acknowledge bits ¡f an ínternal pro-gramming cycle is in progress.
The device that acknowledges has to pulí down theSDA line during the acknowledge clock pulse in such away that the SDA Une ¡s stable LOW during the HIGHperiod of the acknowledge related clock pulse. Ofcourse, setup and hold times must be taken intoaccount. A master must signal an end of data to theslave by not generating an acknowledge bit on the lastbyte that has been clocked out of the slave, In thiscase, the slave must leave the data line HIGH to enablethe master to genérate the STOP condition.
FIGURE 3-1: DATA TRANSFER SEQUENCE ON THE SERIAL BUS
(A)r-pi
SDA
ce
(B)
START)NDITIC
\ ,
\~N
(D)
/ \-
-y vADDRESS OR DATA
ACKNOWLEDGE ALLOWEDVALIÓ TO CHANGE
f D)
J J
r. \0 r
(A)
STOPCONDITION
DS11183D-page4 © 1996 Microchip Technology Inc.
24C01A/02A/04A
4.0 SLAVE ADDRESSThe chip address ¡nputs AO, A1 and A2 of each 24C01 A/02A/04A musí be externally connected to either Vcc orground (Vss), assigning to each 24C01A/02A/04A aunique address. AO is noí used on the 24C04A andmust be connected to either Vcc or Vss. Up to eight24C01A or 24C02A devices and up to four 24C04Adevices may be connected ío the bus. Chip selection ¡sthen accomplished through software by setting the bitsAO, A1 and A2 of the slave address to the correspondinghard-wired logic levéis of the selected 24C01A/02A/04A.After generating a START condition, the bus mastertransmits íhe slave address consisting of a 4-bit devicecode (1010) for íhe 24C01A/02A/04A, followed by thechip address bits AO, A1 and A2. In the 24C04A, theseventh bit of that byte (AO) is used to select the upperbiock (addresses 100—1FF) or the lower block(addresses 000—OFF) of íhe array.
The eighth bit of slave address determines if íhe masterdevice wants to read or write to the 24C01A/02A/04A(Figure 4-1).
The 24C01A/02A/04A monitors the bus for its corre-sponding slave address ali the time, It generates anacknowledge bit if the slave address was true and it isnot in a programming mode.
FIGURE 4-1: SLAVE ADDRESSALLOCATION
START
.'
I
!
READ/WRITE
¿LAV¿ADDRESÍl i l i
1 0 1 0 A2
1
1R/W A
\1
AO
5.0 BYTE PROGRAM MODEIn this mode, the master sends addresses and one databyte to the 24C01A/02A/04A.
Foliowing the STARTsignal from the master, the devicecode (4-bÍts), the slave address (3-bits), and the R/Wbit, which is logic LOW, are placed onto the bus by themaster. This indicates to íhe addressed 24C01A/02A/04A that a byíe wiih a word address will follow after ithas generated an acknowledge bit. Therefore the nextbyte transmitled by the master is the word address andwill be written into íhe address poiníer of íhe 24C01 A/02A/04A. After recefvíng the acknowledge of the24C01A/02A/04A, the masterdevíce transmiís íhe dataword ío be written ¡nto the addressed memory location.The 24C01A/02A/04A acknowledges again and themaster generates a STOP condition. This initiates theinternal programming cycle of the 24C01A/02A/04A(Figure 6-1).
6.0 PAG E PROGRAM MODETo program the 24C01A/02A/04A, the master sendsaddresses and data to the 24C 01 A/02 A/04 A which isthe siave (Figure 6-1 and Figure 6-2). This ¡s done bysupplyíng a START condition followed by the 4-bitdevice code, the 3-bit slave address, and the R/W bitwhich is defined as a logic LOW for a write. This indi-cates to the addressed slave that a word address willfollow so the slave outputs the acknowledge pulse tothe master during the niníh clock pulse. When íhe wordaddress is received by íhe 24C01A/02A/04A, ií placesil in íhe lower 8 bíls of the address poiníer definíngwhich memory locaiion is to be written. (The AO bittransmitted with the slave address is the ninth bit of theaddress pointerforthe24C04A).The24C01A/02A/04Awill genérate an acknowledge after every 8-bítsreceived and store íhem consecutively in a RAM bufferuntil a STOP condition is detected. This STOP condi-tion initiates the internal programming cycle. The RAMbuffer is 2 bytes for the 24C01A/02A and 8 byíes for the24C04A. If more íhan 2 bytes are transmitted by themaster to the 24C01A/02A, the device will not acknowl-edge the data transfer and the sequence wilí beaborted. If more than 8 bytes are transmitted by themaster to the 24C04A, it will rail over and overwrite thedata beginning with the first received byte. This doesnot affect erase/wriíe cycles of the EEPROM array andis accomplished as a result of only allowing the addressregisters bottom 3 bits to increment while the upper 5bits remain unchanged.
If the master generates a STOP condition after trans-mitting the first data word {Point 'P' on Figure 6-1), byteprogramming mode is entered.
The internal, completely self-timed PROGRAM cyclestarts after the STOP condition has been generated bythe masíer and all received daía bytes in íhe pagebuffer will be written in a serial manner.
The PROGRAM cycle íakes N miiliseconds, whereby Nis íhe number of received data bytes (N max = 8 for24C04A, 2 for 24C01A/02A).
© 1996 Mícrochip Technology Inc. DS1ll83D-page5
24C01A/02A/04A
FIGURE 6-1: BYTE WRITE
sBUS ACTIVITY ]" CONTROLMASTER S BYTE
y -A.
SDALINE S
ABUS ACTIVITY C
K
SWORD _.T. T
ADDRESS UAIA O^ W P
I ! I I I I I I I I I IP
I I I I I I I I I I I IA AC CK K
FIGURE 6-2: PAGE WRITE
sT
BUS ACTIVITY AMASTER R CONTROL WORD
T BYTE ADDRESS (n)•A* ^.
SDALINE |S| I I n u i l .I ¡ I I I I I I I I I I
ABUS AGTIVITY C
K
ST
DATA n DATA n + 1 DATA n + 7 °-V _^A. >^
I I I I ! I I I I I I I I I I M I I I I I I ]
I I I I I I I I ! I I I I I I l\ I I I I IIA A A AC C C CK K K K
7.0 ACKNOWLEDGE POLLINOSínce the device will not acknowledge during a writecycle, this can be used to determine when the cycle iscomplete (this feature can be used to maximize busthroughput). Once the stop condition for a write com-mand has been issued from the master, the device ini-íiates the internally timed write cycle. ACK polling canbe initiated immediately. This involves the master send-ing a start condition followed by the control byte for awrite command {R/W = 0). If the device is stiil busy withthe write cycle, then no ACK will be returned. If thecycle ¡s complete, then the device will return the ACKand the mastercan then proceed with the next read orwrite command. See Figure 7-1 forflow diagram.
FIGURE 7-1: ACKNOWLEDGE POLLINGFLOW
SendWrite Command
Send StopCondition to
Initiate Write Cycle
Send Start
Send Control Bytewith R/W = 0
NODid Device
AcknowledgeACK =
DSl1183D-page 6 © 1996 Microchip Technology Inc.
24C01A/02A/04A
8.0 WRITE PROTECTIONProgrammíng of the upper half oí the memory will notíake place ¡f the WP pin of the 24C02A or 24C04A isconnected to Vcc f-t-S.OV). The device will accept slaveand word addresses but if the memory accessed iswrite protected by the WP pin, the 24C02A/04A will notgenérate an acknowledge after the first byte of data hasbeen received, and thus the program cycle will not bestarted when the STOP condition is asserted. Polarityof the WP pin has no effect on the 24C01 A.
9.0 READMODE
This mode illusírates master device reading data fromthe24C01A/02A/04A.
As can be seen from Figure 9-2 and Figure 9-3, themaster first sets up the slave and word addresses bydoing a write. (Note: Although this ís a read mode, theaddress pointer must be written to). During this periodthe 24C01A/02A/04A generales the necessaryacknowledge bits as defined in the appropriate section.
The master now generales another START conditionand transmits the slave address again, except this timethe read/write bit is set into the read mode. After theslave generates the acknowledge bit, ít then outputsthe data from the addressed íocation on to the SDA pin,increments the address pointer and, ¡f ¡t receíves anacknowledge from the master, will transmit the nextconsecutive byte. This auto-increment sequence isonly aborted when the master sends a STOP conditioninstead of an acknowledge.
Motel: if the master knows where the addresspointer ís, itcan begín the read sequenceat the current address (Figure 9-1) andsave time transmitting the slave and wordaddresses.
Note 2: In all modes, the address pointer will notincrement through a block (256 byte)boundary, but wílí rotate back to the firstlocatíon in that block.
FIGURE 9-1: CURRENT ADDRESS READ
BUSACTIVITYMASTER
SDA UNE
BUS ACTIVITY
START
CONTROLBYTE DATAn
STOP
NO
ACK
FIGURE 9-2: RANDOM READ
S
BUSACTIVITY I CONTROLMASTER £ BYTE
T, -A-
SDALINE LJ U
BUS ACTIVITY
ST S
WORD A CONTROL yADDRESS (n) R BYTE DATA (n) o
— . , -A, , T, A . ,
I I I I I I I I U I I I | I ~~| ' I
I ! i i i i i i i M i l I I I I i iA A Ac e cK K K
-A , p
"" Pl i l i
NoACK
© 1996 Microchip Technology Inc. DSH183D-page7
24C01A/02A/04A
FIGURE 9-3: SEQUENTIAL READ
ST
BU|ACTIVlTY CO^ROL DAJAn DATAn + 1 DATAn + 2 DATAn + X R.A >\. *
... ~T I I I I I I i l I ! ! I I I I I
SDALINE • I , , , - I I .A A A
BUS ACTIVITY C C CK K K
l i l i \\ i l ¡ l l l U!l i l i \ i i i i i i I I
A NC OK
ACK
10.0 PIN DESCRIPTION
10.1 AQ. A1, A2 Chip Address Inputs
The levéis on these inputs are compared with the cor-responding bits ¡n the slave address. The chip isselected ¡f the compare is true. For 24C04 AO is nofunction.
Up to eight 24C01 A/02A's or up to four 24C04A's canbe connected to the bus.
These inputs must be connected to either Vss or Vcc.
10.2 SDA Serial Address/Datalnput/Output
This is a bidirectional pin used to transfer addressesand data into and data out of the device. It ís an opendrain terminal, therefore the SDA bus requires a pull-upresistor to Vcc (typical 10KÍ2).
For normal datatransfer, SDAis allowed to changeonlyduring SCL LOW. Changes during SCL HIGH arereserved for indicating the START and STOP condi-tions.
10.3 SCL Serial Clock
This input is used to synchronize the data transfer fromand to the device.
10.4 WP Wríte Protection
This pin must be connected to either Vcc or Vss for24C02A or 24C04A. It has no effect on 24C01 A.
If tied to Vcc, PROGRAM operaiions onto the uppermemory block will not be executed. Read operationsare possible.
If tied to Vss, normal memory operation is enabled(read/write the entire memory).
This feature allows the userto assign the upper half ofthe memory as ROM which can be protecíed againstaccidental programming. When write Ís disabled, slaveaddress and word address will be acknowledged butdata will not be acknowledged.
Note 1: A "page" is defined as the máximum num-ber of bytes that can be programmed in asingle write cycle, The 24C04A page Ís 8bytes longr the 24C01A/02A page is 2bytes iong.
Note 2: A "block" Ís defíned as a contínuous áreaof memory with dístínct boundaríes,Theaddress poiníer can not cross the bound-ary from one block to another. It will how-ever, wrap around from the end of a blockto the first location in the same block. The24C04A hastwo blocks, 256 bytes each,The 24C01A and 24C02A each nave onlyone block.
DS11183D-page 8 © 1996 Microchíp Technology Inc.
93AA46/56/661K/2K/4K 1.8V Microwire® Serial EEPROM
FEATURES
• Single supply with programming operation downto1.8V
• Low power CMOS technology- 70 ¿iA typical active READ current at 1.8V- 2 jjAtypical standby current atl.SV
• ORG pin selectable memory confíguration
- 128 x 8- or 64 x 16-bit organizaron (93AA46)- 256x8-or128x 16-bítorganization
(93AA56)- 512 x 8 or 256 x 16 bit organizaron (93AA66)
• Self-timed ERASE and WRITE cycles(including auto-erase)
• Automatic ERAL before WRAL
• Power on/off data protection circuitry• Industry standard 3-wíre serial I/O• Device status signal during ERASE/WRITE cycles
• Sequential READ function• 10,000,000 ERASE/WRITE cycies guaranteed on
93AA56 and 93AA66
• 1,000,000 E/W cycles guaranteed on 93AA46
• Data retention > 200 years
• 8-pin PDIP/SOIC(SOIC in JEDEC and EIAJ standards)
• Temperatura ranges supported
- Commercia! (C): 0°C to +70°C
DESCRIPTION
The Mícrochíp Technology Inc. 93AA46/56/66 are 1K,2K and 4K low voltage serial Electricaíly ErasablePROMs.The device memory is configured as x8 orxl6bits depending on the ORG pin setup. AdvancedCMOS technology makes these devices ideal for lowpower non-volatile memory applicaíions. The 93AASeries is available in standard 8-pin DIP and surfacemount SOIC packages. The rotated pin-out 93AA46X/56X/66X are offered in the "SN" package only.
PACKAGETYPES
BLOCK DIAGRAM
ORG
es
I~L
iMDDE
DECODELOGIC
.. OUTDUF
í
Microwire is a registered trademark of National Semiconductor Incorporated.
1996 Microchíp Technology Inc. DS20067G-page 1
93AA46/56/66
1.0 ELECTRICAL CHARACTERISTÍCS TABLE1-1: PIN FUIMCTfON TABLE
1.1 Máximum Ratinas
VCC 7.0VAll inputs and outputs w.r.t. Vss.... -0.6V to Vcc+l.OVStorage temperature.. -65*C to +150"CAmbientlemp. with power applied -65*C to +125*CSoldering temperature of leads {10 seconds)........+300'CESD protection on all pins 4 kV
"Notice: Stresses above trióse usted under "Máximum ratings"may cause permanent damage to the devíce. This ¡s a stress rat-ing only and functional operation of the device at those or anyother condítions above those Indicated ín the operational listíngsof thís specifícation is not implied. Exposure to máximum ratfngcond'rtíons for extended periods may affect device reiiability.
TABLE 1-2; DC AND AC ELECTRICAL CHARACTERISTÍCS
Ñame
CS
CLK
Di
DO
VSS
ORG
NÚ
VCC
Function
Chip Select
Serial Data Clock
Serial Data Input
Serial Data Output
G round
Memory Confíguration
Not Utilized
Power Suppíy
Vcc = +1 ,8V ío +5.5V Commercial {C}: Tamb = 0*C to +70*C
Parameter
High level input voltage
Low level input voltage
Low level output volíage
High level output volfage
Input leakage curren!Output leakage currentPin capacitance(all inputs/outputs)Operating current
Standby current
Clock frequency
Clock high timeClock iow timeChip select setup timeChip seleci hold timeChip select Iow timeData input setup timeData input hold timeData ouiput delay timeData output disable timeStatus valid timeProgram cycle time
Endurance93AA4693AA56/66
Symbol
VIH1
VIH2VIL1
VIL2VOLlVOL2VOH1
VOH2luILO
ClN, COUT
Ice writeIce read
• ices
FCLK
TCKHTCKLTcssTCSHTCSLTDISTDIHTPDTezTSV
TwcTecTWL
— -
Min
2.00.7 VCC
-0.3-0.3——2,4
VCC-O.2-10-10
• — •
—
250250500
250100100
1M10M
Typ
———————————
—
70
2
4816
—
Max
Vcc+1VCC+1
0.80.2 VCC
0.40.2
——10107
31
500
10030
21
400100500101530
1M10M
Units
VVVVVVVVpAuA
PF
mAmAHAMAuAuAuA
MHzMHznsnsnsnsnsnsnsnsnsnsmsmsms
—
Condítions
Vcc > 2.7VVcc < 2.7VVCC £ 2.7VVCC < 2.7VIOl_=2.1 mA;Vcc = 4.5VlOL=100fiA;Vcc = 1.8VIOH = -400uA; Vcc = 4.5VIOH = -100uA; Vcc = 1.8VVlN = 0.1VtoVccVour=0.1VtoVccVlN/VOUT = OV (Note 1 & 2)Tamb^+25'C, Fci_K=1 MHzFCLK=2 MHz; VCC=5.5V (Note 2)FCLK =2 MHz; Vcc = 5.5VFci_K=1 MHz; Vcc = 3.0VFCLK=1 MHz; Vcc = 1.8VCLK = CS = OV;VCC = 5.5VCLK=CS = OV;VCC = 3.0VCLK - CS = OV; Vcc = 1 .8VVCC £ 4.5VVCC < 4.5V
Relatíve to CLKRelatíveíoCLK
Relativa to CLKRelatíve to CLKCL=100pFCL=100pF(Note2)CL=100pFERASE/WRITE modeERAL mode {Vcc - 5V ± 1 0%)WRAL mode (Vcc = 5V ± 1 0%)
25°C, Vcc = 5.0V, Block Mode(Note 3)
Note 1: This parameter is tested at Tamb = 25°C and FCLK = 1 MHz.2: This parameter ¡s periodically sampled and not 100% tested.3: This parameteris not tested but guaranteed by characterization,
catión, please consult the Total Endurance Model whích can beForendurance estimates in a specific appii-obtained on our BBS or website.
DS20067G-page 2 © 1996 Mícrochip Technology Inc.
93AA46/56/66
TABLE 1-3: INSTRUCTION SET FOR 93AA46: ORG = 1 (X 16 ORGANIZATION)
Instructíon
READEWENERASEERALWRITEWRALEWDS
SB
1111111
Opcode
1000
110001
0000
Address
A5 A4 A3 A2 A1 AO
1 1 X X X XA5 A4 A3 A2 A1 AO
1 0 X X X XA5 A4 A3 A2 A1 AO
0 1 X X X X0 0 X X X X
Data In
———
D15-DOD15-DO
—
Data Out
D15 - DO
HIgh-Z(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
H¡gh-Z
Req. CLK Cycles
999
25259
TABLE 1-4: INSTRUCTION SET FOR 93AA46: ORG = O (X 8 ORGANIZATION)Instructíon
READEWENERASEERALWRITEWRALEWDS
SB
1
1
1
1
1
1
1
Opcode
10
00
1100
01
00
00
Address
A6A5A4A3A2A1 AO
1 1 X X X X XA6 A5 A4 A3 A2 A1 AO1 0 X X X X X
A6 A5 A4 A3 A2 A1 AO
0 1 X X X X X0 0 X X X X X
Data In
————
D7-DO
D7-DO
—
Data Out
D7-DOH¡gh-Z
(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
HÍgh-Z
Req. CLK Cycles
1810
10
10
18
18
10
TABLE 1-5: INSTRUCTION SET FOR 93AA56: ORG = 1 (X 16 ORGANIZATION)Instruction
HbAÜEWENERASEERALWRITEWRALEWDS
SB
1
111111
Opcode
10001100
01
00
00
Address
XA6A5A4A3A2A1AO1 1 X X X X X XX A6 A5 A4 A3 A2 A1 AO
1 0 X X X X X XXA6A5A4A3A2A1 AO
0 1 X X X X X XO O X X X X X X
Data In
——
——
D15-DO
D15-DO
—
Data Out
D15-DOH¡gh-Z
(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
H¡gh-Z
Req. CLK Cycles
27
11
11
11
27
27
11
TABLE 1-6: INSTRUCTION SET FOR 93AA56: ORG = O (X 8 ORGANIZATION)Instruction
READEWENERASEERALWRITEWRALEWDS
SB
1
1
1
1
1
1
Opcode
1000
1100
01
00
00
Address
XA7A6AÍ>A4A3A2A1 Aü1 1 X X X X X X XXA7A6A5A4A3A2A1 AO
1 O X X X X X X XX A7 A6 A5 A4 A3 A2 A1 AO0 1 X X X X X X Xo o x x x x x x x
Data In
————
D7-DOD7-DO
—
Data Out
D7-DOHigh-Z
(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
High-Z
Req. CLK Cycles
20
121212
20
20
12
TABLE 1-7: INSTRUCTION SET FOR 93AA66: ORG = 1 (X 16 ORGANIZATION)Instructíon
READEWENERASEERALWRITEWRALEWDS
SB
1
1
1
1
1
1
Opcode
001100
01
00
00
Address
1 1 X X X X X XA7 A6 A5 A4 A3 A2 Al AO
1 0 X X X X X XA7A6A5A4A3A2A1 AO
0 1 X X X X X XO O X X X X X X
Data In
————
D15-DOD15-DO
—
Data Out
H¡gh-Z(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
High-Z
Req. CLK Cycles
27
11
11
11
27
27
11
TABLE 1-8: INSTRUCTION SET FOR 93AA66: ORG =0 (X 8 ORGANIZATION)Instruction
READEWENERASEERALWRITEWRALEWDS
SB
1
1
1
1
1
1
1
Opcode
10001100
01
00
00
Address
A8 A7 AS A5 A4 A3 A2 Al AO
1 1 X X X X X X XA8 A7 A6 A5 A4 A3 A2 A1 AO1 O X X X X X X XA8 A7 A6 A5 A4 A3 A2 A1 AO
0 1 X X X X X X XO O X X X X X X X
Data In
——
——
D7-DO
D7-DO
—
Data Out
D7-DOHigh-Z
(RDY/BSY)(RDY/BSY)(RDY/BSY)(RDY/BSY)
HÍgh-Z
Req. CLK Cycles
20
12
12
12
20
20
12
© 1996 Microchip Technology Inc. DS20067G-page 3
93AA46/56/66
2.0 FUNCTIONAL DESCRIPTIONWhen the ORG pin is connected ío Vcc, the (xl 6) orga-nization is selected. When it is connected to ground,the (x8) organízation is selected. instructions,addresses and write data are ciocked into the DI pin onthe rising edge of the clock (CLK). The DO pin is nor-mally held in a high-Z state except when reading datafrom ihe device, or when checking the READY/BUSYstatus during a programming operation. The ready/busy status can be verified during an Erase/Write oper-ation by polling the DO pin; DO low ¡ndicates that pro-gramming is still in progress, while DO high ¡ndicatesthe device is ready. The DO will enterthe high-Z stateon the falling edge of the CS.
2.4 READ
2.1 START Condition
The START bit is detected by the device if CS and DIare both HIGH with respectto the positive edge oí CLKfor the íirst time.
Betore a START condition is detected, CS, CLK, and DImay change in any combination (except to that of aSTART condition), without resulting in any device oper-ation (READ, WRITE, ERASE, EWEN, EWDS, ERAL,and WRAL). As soon as CS is HIGH, the device is nolongerin the standby mode.
An instruction following a START condition will only beexecuted if the required arnount of opcode, addressand data bits for any particular instruction is ciocked in.
Afíer execuíion of an instruction (Le., clock in or out ofthe last required address or data bit) CLK and DIbecome don't care bits until a new start condition isdetected.
2.2 DI/DO
It is possible to connect the Data In and Data Out pinstogether. However, with this configuration it is possiblefor a "bus conf lict" to occur during the "dummy zero" thatprecedes the READ operation, if AO is a logic HIGHleve!, Under such a condition the voltage level seen atData Out is undefíned and will depend upon the relative¡mpedances of Data Out and the signal source drivingAO. The higher the current sourcing capability of AO,the higher the voltage at the Data Out pin.
2.3 Data Protection
During power-up, all programming modes of operationare inhibited until Vcc has reached a level greaterthan1.4V. During power-down, the source data protectioncircuitry acts to inhibit all programming modes whenVcc has fallen below 1.4V at nominal conditions.
The EWEN and EWDS commands give additional pro-tecíion against accidentally programming during nor-mal operation.
After power-up, the device is automatically in theEWDS mode. Therefore, an EWEN instruction must beperformed beforeany ERASE or WRITE instruction canbe execuíed.
The READ instruction outputs the serial data of theaddressed memory location on the DO pin. A dummyzero bit precedes the 16 bit (x16 organization) or 8 bit(x8 organization) outputstring. The outputdaía bits willíoggle on the rising edge of the CLK and are stable afterthe specified time delay (Tpo). Sequential read is pos-sible when CS is held high. The memory data wiíi auto-matically cycle to the next register and outputsequentially.
2.5 Erase/Write Enable and Disable(EWEN.EWDS)
The 93AA46/56/66 power up in the Erase/Wriíe Disable(EWDS) state. All programming modes must be pre-ceded by an Erase/Write Enable (EWEN) instruction.Once the EWEN instruction is executed, programmingremains enabled until an EWDS instruction is executedor Vcc is removed from the device. To protect againstaccidental data disturb, the EWDS instruction can beused to disable all Erase/Write functions and should fol-low al! programming operations. Execution of a READinsíruction is independeni of both the EWEN andEWDS instructions.
2.6 ERASE
The ERASE instruction forces all data bits of the spec-ifíed address to the logical "1" state. CS is brought lowfollowing the loading of the last address bit. This fallingedge of the CS pin initiates the self-timed programmingcycle.
The DO pin ¡ndicates the READY/BUSY status of thedevice if CS ¡s brought high after a mínimum of 250 nslow (Test). DO at logical "O" ¡ndicates thaí program-ming is still in progress. DO at lógica! "1" ¡ndicates thatthe register at the specified address has been erasedand the device is ready for another instruction.
The ERASE cycle takes 4 ms per word typical.
2.7 WRITE
The WRITE ¡nstrucíion ¡s followed by 16 bits (or by 8bits) of data which are written ¡nto the specifiedaddress. After the last data bit is put on the DI pin, CSmust be brought low before the next rising edge of theCLK clock. This falling edge of CS ¡nitiaíes the self-timed auto-erase and programming cycle.
The DO pin ¡ndicates the READY/BUSY status of thedevice if CS ¡s brought high after a mínimum of 250 nslow (Test) and before the entire write cycle is complete.DO at logical "O" indicates that programming ¡s still inprogress. DO at logical "1" indicates that the register atthe specified address has been written with the dataspecified and the device ¡s ready for another ¡nstruc-tion.
The WRITE cycle takes 4 ms per word_typ¡cal.
DS20067G-page 4 © 1996 Microchip Technology Inc.
93AA46/56/66
2.8 Erase Al! (ERAU 2.9 WriteAIKWRAU
The ERAL instruction will erase the entíre memoryarray to the lógica! "1" state.The ERALcycIe is ¡denticalto the ERASE cycle except forthe different opcode. TheERALcycIe ¡s completely selMimed and commences atthe falling edge of the CS. Clocking of the CLK pin is notnecessary afterthe device has entered the self clockingmode. The ERAL instruction ¡s guaranteed at 5V ±10%.
The DO pin indicates the READY/BUSY status of thedevice if CS is brought high after a mínimum of 250 nslow {TCSL) and before the entire write cycle is complete.
The ERALcycIe takes (8 ms typicaí).
The WRAL instruction will wriie the entire memory arraywith the data specified in the command. The WRALcycle is completeíy self-timed and commences at thefalling edge of the CS. Clocking of the CLK pin is notnecessary afterthe device has entered the self clockingmode. The WRAL cornmand does ¡nclude an auto-matic ERAL cycle for the device. Thereíore, the WRAL¡nstruction does not require an ERAL instruction butthechip must be ¡n the EWEN status. The WRALinsíruc-tion is guaranteed at 5V ± 10%.
The DO pin indicates the READY/BUSY status of íhedevice if CS is brought high after a minimum of 250 nslow (Test).
The WRAL cycle takes 16 ms typicaí.
FIGURE 2-1: SYNCHRONOUS DATATIMING
VIHCS -
VIL
VIHCLK
VIL
TDISVIH. .
01 v VIL
VnnDO VOH
TsvDO VOH
Tcss
'-
/(PROGRAM) ,, \L
TCKH
S
/
±
TDIH
y'\O
V
TCKL
X
_\
STATUS VALID
TPD
TCSH
Tez"* *
Tez
\
FIGURE 2-2: READ TIMING
CLK
TRI-STATE*
Tri-State is a regístered trademark of National Semiconductor Incorporated.
© 1996 Microchip Technology Inc. DS20067G-page 5
93AA46/56/66
FIGURE 2-3: EWENTIMiNG
es
CLK
FIGURE 2-4: EWDSTIMING
es
CLK
DI
U
1 \ O O O / X
FIGURE 2-5: WRITETIMING
CLK
1 \ 0 / 1 VAnAVA AGADxDI
DO
TWC
DS20067G-page 6 © 1996 Microchip Technology Inc.
93AA46/56/66
FIGURE 2-6: WRALTIMING
TRl-STATE READY \ TRl-STATE
Guaranteed at Vcc = +4.5V to +6.0V.
FIGURE 2-7: ERASE TIMING
es_ TCSL
-»-\-*—»
DI 1 1 1 \2 AO
TRI-STATE
T- CHECK STATUS\Y
-TSV
BUSY
re;
TWC
READYTRl-STATE
FIGURE 2-8: ERAL TIMING
CLK
-r -Tf- CHECK STATUS -V STANDBY
Guaranteed at Vcc = 5.0V ±10%.
TEC
© 1996 Microchip Technology Inc. DS20067G-page 7
93AA46/56/66
3.0 PIN DESCRIPTION
3.1 ChipSelect(CS)
A HIGH level selects the device. A LOW level deselectsthe device and forces ¡t ¡nto standby mode. However, aprogramming cycle whích is already initiated and/or inprogress will be completed, regardless oí the CS ínputsigna!. If CS ¡s brought LOW during a program cycle,the device will go into standby mode as soon as the pro-gramming cycle is completed.
CS must be LOW for 250 ns mínimum (Test) betweenconsecutivo instructions. If CS is LOW, the interna! con-trol logic is held in a RESET status.
3.2 Serial Clock (CLK)
The Serial Clock is used to synchronize the communi-cation between a master device and the 93AAXX.Opcode, address, and data bits are clocked in on thepositiva edge of CLK. Data bits are also clocked out onthe posííive edge of CLK.
CLK can be stopped anywhere in the transmissíonsequence (at HIGH or LOW level) and can be continuedanytime with respect to clock HIGH time (TCKH) andclock LOW time (TCKL). This gives the controlling mas-ter freedom ¡n preparing opcode, address, and data.
CLK is a "Don't Care" if CS is LOW (device deselected).If CS is HIGH, but START condition has not beendetected, any number of clock cycles can be receivedby the device without changíng its status (Le., waitingfor START condition).
CLK cycles are not requíred during the self-timedWRITE (i.e., auto ERASE/WRITE) cycle.
After deiection of a start condition the specífied numberof clock cycles (respectively LOW to HIGH transitas ofCLK) must be provided. These clock cycles arerequired to clock in ali required opcode, address, anddata bits before an instruction is executed (see instruc-tion settruth table). CLK and DI then become dont careínputs waiting for a new start condition to be detected.
Note: CS must go LOW between consecutiveinstructions.
3.3 Data In (DI)
Data In ¡s used to clock in a START bit, opcode,address, and data synchronously with the CLK input.
3.4 Data Out (DO)
Data Out is used in the R EAD mode to output data syn-chronously with the CLK input (Tpo after the positiveedge of CLK).
This pin also provides READY/BUSY status informationduring ERASE and WRITE cycles. READY/BUSY sta-tus information ¡s available on the DO pin if CS isbrought HIGH after being LOW for mínimum chip selectLOW time (Test) and an ERASE or WRITE operaíionhas been initiated.
The status signal is not avaiiable on DO, if CS is heldLOW or HIGH during the entire WRITE or ERASEcycle. In all other cases DO is in the HIGH-Z mode. Ifstatus is checked after the WRITE/ERASE cycle, a pull-up resistor on DOis required to read the READY signal.
3.5 Orqanization (ORG)
When ORG ¡s connected to Vcc, the (x16) memoryorganizaron is selected. When ORG is tied to Vss, the(x8) memory organizaron is selected. ORG can only befloated for clock speeds of 1MHz or less for the (x16)memory organizaron. For clock speeds greater íhan 1MHz, ORG must be tied to Vcc or Vss.
DS20067G-page 8 © 1996 Microchíp Technology Inc.