Professional Documents
Culture Documents
ATMega328P
TEMA 3
RECURSOS INTERNOS
Octubre / 2018
Interrupciones
• Ventajas:
• El programa principal se simplifica.
• Se realizan dos o más tareas en forma simultánea. 2
Interrupciones en los AVRs
Se tienen diferentes fuentes de Interrupción:
Por inicialización o Reset.
Interrupciones externas.
Ante cambios en las terminales.
Interrupciones por los temporizadores, pueden ser por
comparación, captura o desbordamiento.
Al completar una transferencia serial (puerto SPI).
Ocasionadas por el puerto serie (USART), por transmisión,
recepción o buffer vacío.
Por el convertidor analógico digital.
Al finalizar una escritura en EEPROM.
Por el comparador analógico.
Por la interfaz serial a dos hilos (TWI).
Al escribir en memoria de programa.
3
El número real de interrupciones depende del dispositivo.
Interrupciones en los AVRs
8
3.1 INTERRUPCIONES EXTERNAS
Microcontroladores
9
M. C. Felipe Santiago Espinosa
Octubre 2018
INTERRUPCIONES EXTERNAS
12
El estado de las interrupciones se refleja en el registro EIFR (External
Interrupt Flag Register):
13
Ejemplo 1: Conmutar el bit menos significativo de
Port B, cada que se presiona un botón
ATMega328
INT0 PortB.0
14
EJEMPLO 2: CONTADOR DE EVENTOS
UP/DOWN
INT0
PORTB
INT1
Microcontroladores
16
M. C. Felipe Santiago Espinosa
Octubre de 2018
INTERRUPCIONES POR CAMBIOS
Las interrupciones PCIE0, PCIE1 y PCIE2 son provocadas
por cualquier cambio en las terminales de los puertos.
17
HABILITACIONES INDIVIDUALES
19
EJEMPLO 3: PUERTAS DE UN AUTOMÓVIL.
20
Suponga que todas las puertas están cerradas cuando el sistema se energiza.
EJEMPLO 3: PUERTAS DE UN AUTOMÓVIL.
Microcontroladores
22
M. C. Felipe Santiago Espinosa
Octubre de 2018
TEMPORIZADORES/CONTADORES
Un Timer/Counter es un registro de n bits que se incrementa
automáticamente en cada ciclo de reloj o por eventos externos.
24
Eventos en los temporizadores
Desbordamiento: CARGA
TCNTn TOVn
Tamaño (TCNTn)
MAXVAL = 2 -1
Coincidencia por comparación (Compare match):
OCRn
= OCFn
TCNTn
25
ICR1
ICP1 ICF1
Eventos en los temporizadores
Temporizador Eventos
Timer 0 Desbordamiento y coincidencia por comparación (2)
Timer 1 Desbordamiento, coincidencia por comparación (2) y
captura de entrada.
Timer 2 Desbordamiento y coincidencia por comparación (2)
26
Atención y respuesta a los eventos.
Sondeo (polling).
El programa principal evalúa de manera frecuente el estado
de las banderas.
Uso de Interrupciones
Las interrupciones se habilitan en el registro TIMSK
(Timer Interrupt Mask Register) de cada temporizador.
También se debe activar el habilitador global de
interrupciones (bit I en SREG).
Respuesta automática
Ante eventos de coincidencia por comparación, algunas
terminales relacionadas pueden ponerse en alto, en bajo o
conmutarse de manera automática.
Fundamental para generar señales a una frecuencia deseada o 27
para realizar una modulación por ancho de pulso (PWM).
ORGANIZACIÓN Y REGISTROS DEL
TEMPORIZADOR/CONTADOR 0
TCNT0 (Time r /Counte r 0), es el r egistr o de 8 bits d e l
temporizador/ contador 0.
28
TEMPORIZADOR/
CONTADOR 0
Se tienen dos registros para el control del temporizador/contador 0:
TCCR0A y TCCR0B (Timer/Counter Control Register):
TCCR0A:
7 6 5 4 3 2 1 0
COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
TCCR0B:
7 6 5 4 3 2 1 0
FOC0A FOC0B - - WGM02 CS02 CS01 CS00
30
Bits WGM0[2:0] (Waveform Generation Mode): Para definir
el modo de operación, de 8 modos posibles, 4 no son PWM y
de ellos sólo 2 son válidos:
31
Bits COM0A[1:0] y COM0B[1:0] (Compare Output Mode): Con estos
bits se configura una respuesta automática en OC0x, ante
eventos de comparación.
Para los modos que no son PWM se tiene:
(x puede ser A o B)
PWM RÁPIDO
34
Bits FOC0A y FOC0B: forzan u obligan un evento de
comparación, si se configuró una respuesta automática, ésta
tambien va a realizarse. FOC0A se relaciona con el registro
OCR0A y FOC0B con el registro OCR0B.
7 6 5 4 3 2 1 0
- - - - - OCF0B OCF0A TOV0
38
TEMPORIZADOR/
CONTADOR 1
REGISTROS DE CONTROL
Se tienen tres registros para el control del temporizador/contador 1:
TCCR1A, TCCR1B y TCCR1C (Timer/Counter Control Register):
TCCR1A:
7 6 5 4 3 2 1 0
COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10
TCCR1B:
7 6 5 4 3 2 1 0
ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
TCCR1C:
7 6 5 4 3 2 1 0
FOC1A FOC1B - - - - - - 40
Bits WGM1[3:0] (Waveform Generation Mode):
Modo WGM13 WGM12 WGM11 WGM10 Descripción MAX
0 0 0 0 0 Normal 0xFFFF
1 0 0 0 1 PWM con Fase Correcta, 8 bits 0x00FF
2 0 0 1 0 PWM con Fase Correcta, 9 bits 0x01FF
3 0 0 1 1 PWM con Fase Correcta, 10 bits 0x03FF
4 0 1 0 0 CTC OCR1A
5 0 1 0 1 PWM Rápido, 8 bits 0x00FF
6 0 1 1 0 PWM Rápido, 9 bits 0x01FF
7 0 1 1 1 PWM Rápido, 10 bits 0x03FF
PWM con Frecuencia y Fase
8 1 0 0 0 ICR1
Correcta
PWM con Frecuencia y Fase
9 1 0 0 1 OCR1A
Correcta
10 1 0 1 0 PWM con Fase Correcta ICR1
11 1 0 1 1 PWM con Fase Correcta OCR1A
12 1 1 0 0 CTC ICR1
13 1 1 0 1 Reservado -
14 1 1 1 0 PWM Rápido ICR1
15 1 1 1 1 PWM Rápido OCR1A
CAPTURA DE ENTRADA
Un evento en la terminal ICR1 hace que el temporizador se copie
en ICR1 y que la bandera ICF1 sea puesta en alto.
Bits involucrados:
0 Flanco de bajada
1 Flanco de subida
43
TEMPORIZADOR/
CONTADOR 2 44
REGISTROS DE CONTROL
Se tienen dos registros para el control del temporizador/contador
2: TCCR2A y TCCR2B (Timer/Counter Control Register):
TCCR2A:
7 6 5 4 3 2 1 0
COM2A1 COM2A0 COM2B1 COM2B0 - - WGM21 WGM20
TCCR2B:
7 6 5 4 3 2 1 0
FOC2A FOC2B - - WGM22 CS22 CS21 CS20
45
Bits CS2[2:0] (Clock Select): Bits de selección de la fuente de reloj.
46
El temporizador 2 puede operar con un cristal externo de 32.768
kHz.
Con el pre-escalador se consiguen periodos de desbordamiento que
son fracciones o múltiplos de segundos reales.
Factor de pre- Frecuencia del
Periodo de desbordamiento
escala temporizador 2
1 32. 768 kHz 1/128 s
8 4. 096 kHz 1/16 s
32 1. 024 kHz 1/4 s
64 512 Hz 1/2 s
128 256 Hz 1s
256 128 Hz 2s
1024 32 Hz 8s
47
El desbordamiento se realiza cada 256 ciclos.
Registro para controlar la operación asíncrona del temporizador 2.
7 6 5 4 3 2 1 0
- EXCLK AS2 TCN2UB OCR2AUB OCR2BUB TCR2AUB TCR2BUB
Recursos a emplear:
51
3.4 CONVERTIDOR ANALÓGICO-
DIGITAL
Microcontroladores
52
M. C. Felipe Santiago Espinosa
Octubre de 2018
CONVERSIÓN ANALÓGICO A DIGITAL
53
3. Cuatificación 4. Señal digital
CONVERTIDOR ANALÓGICO A DIGITAL
0000
0001
0001
0100
0111
1100
ADC 1101
1110
1111
1111
……
0011
0011
……
54
ADC DE APROXIMACIONES
SUCESIVAS
56
ADC en el ATMega328P
58
Bit 5 – ADLAR: ADC Left Adjust Result. Ajusta el resultado del
ADC a la izquierda.
Si ADLAR = 0 : Si ADLAR = 1
D9 D8 ADCH D9 D8 D7 D6 D5 D4 D3 D2
D7 D6 D5 D4 D3 D2 D1 D0 ADCL D1 D0
Mux [ 3 : 0 ] Entrada
SEL
0000 ADC0
GND 0001 ADC1
Voltaje .... ....
interno
0110 ADC6
ADC7 Entrada
ADC6 analógica 0111 ADC7
1000 Sensor de Temperatura
ADC1
.... Sin uso
ADC0
1110 Voltaje interno (1.1 V)
59
1111 0V
REGISTRO ADCSRA. REGISTRO A DE CONTROL Y
ESTADO DEL ADC.
El ADC requiere de una señal de reloj entre 50 kHz y 200 kHz para
obtener una máxima resolución.
ADPS [ 2 : 0 ] Factor de
División
RE SE T
ADEN 000 2
PREESCALADOR
START
DE 7 BITS 001 2
CLK PCK/128 010 4
PCK/16
PCK/32
PCK/64
PCK/2
PCK/4
PCK/8
011 8
100 16
ADPS[2:0] 101 32
110 64
111 128
CLK del ADC
61
REGISTRO ADCSRB. REGISTRO B DE CONTROL Y
ESTADO DEL ADC.
63
EJEMPLO 7
Conecte un potenciómetro en el canal 0 del ADC y “mueva” un LED
encendido en el puerto B, dependiendo de la posición del
potenciómetro.
Rango Salida (Binario)
0 – 127 0000 0001
128 – 255 0000 0010
256 – 383 0000 0100
384 – 511 0000 1000
512 – 639 0001 0000
640 – 767 0010 0000
768 – 895 0100 0000
896 - 1023 1000 0000
64
EJEMPLO 8
• Con el timer 0, genere una señal PWM de 8 bits en modo no invertido. El
ciclo de trabajo debe ser proporcional al voltaje producido por un
potenciómetro conectado al canal 0 del ADC, como se muestra en la
figura:
+ 5V
65
EJEMPLO 9
Manipule un servomotor controlando su posición con la ayuda de
un potenciómetro conectado a una entrada analógica, como se
muestra la figura:
Microcontroladores
67
M. C. Felipe Santiago Espinosa
Octubre de 2018
COMUNICACIÓN SERIAL A TRAVÉS DE LA USART
TXD RXD
RXD TXD
CLK
68
69
TRAMA SERIAL
70
Espera I D0 D1 D2 D3 D4 D5 D6 D7 P S
70
ORGANIZACIÓN DE LA USART
En el ATMega328 se le denomina USART0 y se compone de 3 bloques
principales:
0 - Asíncrona
1 - Síncrona
El bit U2X0 (bit 1 del registro UCSR0A) sirve para
seleccionar entre Asíncrona Normal o Asíncrona a Doble
Velocidad.
73
CÁLCULO DEL BAUD RATE
MODO BAUD-RATE UBRR
f OSC f OSC
Normal asíncrono BAUD UBRR0 1
16UBRR0 1 16BAUD
f OSC f OSC
Asíncrono a doble velocidad BAUD UBRR0 1
8UBRR 0 1 8BAUD
f OSC f OSC
Síncrono maestro BAUD UBRR0 1
2UBRR 0 1 2 BAUD
BAUDRATE Re al
Error [%] 100% 1
BAUDRATE
74
RAZONES DE TRANSMISIÓN TÍPICAS
fosc = 1.0 MHz fosc = 1.8432 MHz fosc = 8.0 MHz
Baud
Rate Normal Doble Vel. Normal Doble Vel. Normal Doble Vel.
(bps) UBRR0 Error UBRR0 Error UBRR0 Error UBRR0 Error UBRR0 Error UBRR0 Error
MAX 62 500 bps 125 000 bps 115 200 bps 230 400 bps 500 000 bps 1 000 000 bps
TEMPORIZACIÓN EXTERNA
Para recepción síncrona la señal de reloj se toma de la terminal XCK.
fOSC
f XCK
4
76
BLOQUE DE TRANSMISIÓN
78
REGISTROS DE CONTROL Y ESTADO
REGISTRO UCSR0A
BANDERAS
Bit 7 – RXC0 : USART0 Receive Complete. Indica que hay un dato por
recepción. Puede generar una interrupción. Se limpia al leer al buffer de
entrada (UDR0).
80
REGISTRO UCSR0B
8 7,6,...,1,0
RXB8 UDR
82
REGISTRO UCSR0C
UMSEL01 UMSEL00 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
83
REGISTRO UCSR0C
84 Bits 5 y 4 – UPM0[1:0]: Parity Mode. Configuran al bit de
paridad.
UPM01 UPM00 Configuración
0 0 Sin bit de paridad
0 1 Reservado
1 0 Paridad Par
1 1 Paridad Impar
86
EJEMPLO 10:
TxD
RxD
PORTD.2
PORTB
Escriba un programa que envíe un carácter ASCII imprimible
por el puerto serie cada vez que se presione un botón.
Los caracteres ASCII imprimibles están en el rango de 0x20 a
0x7E. Además, en cualquier momento podrá arribar serialmente
un dato, por lo que éste deberá mostrarse en el puerto B.
Realice la comunicación a 9600 bps.
87
3.6 INTERFAZ SPI
Microcontroladores
88
M. C. Felipe Santiago Espinosa
Octubre de 2018
INTERFAZ SPI
SPI (Serial Peripheral Interface): estándar de comunicaciones
usado para transferir paquetes de 8 bits entre circuitos
integrados.
La transferencia es síncrona, un dispositivo es Maestro y otro
es Esclavo.
Es posible el manejo de un sistema con múltiples Esclavos.
El Maestro es la parte activa del sistema, provee la señal de
reloj para la transmisión.
El Maestro tiene que enviar datos para poder leer de el
Esclavo. el Esclavo no puede ser activo por sí mismo.
La interfaz se puede encontrar en memorias, sensores, ADCs,
DACs, etc., usualmente funcionando como Esclavos. 89
INTERFAZ SPI
Generador SCK
de reloj
Unidad
Memoria,
Memoria, Unidad Registro de
MOSI
Registro de de
7 ... 3 2 1 0 7 ... 3 2 1 0 control CPU,
CPU, de control etc.
etc. SPI desplazamiento desplazamiento SPI
MISO
SS
MSB LSB M
CONTROL LÓGICO
DE LOS PINES
MOSI
REGISTRO DE DESPLAZAMIENTO (8 BITS) S
Reloj S
CLK I/O SCK
LOGICA M
DIVISOR DEL RELOJ
/2 /4 /8 /16 /32 /64 /128 SS
BUS DE DATOS
SELECTOR
(gen. Int.)
CONTROL
93
MODOS DE TRANSFERENCIA SPI
Las transferencias son sincronizadas con la señal de reloj
(SCK), un bit es transferido en cada ciclo.
La sincronización de los datos con el reloj es flexible.
El usuario puede definir la polaridad de la señal de reloj y la
fase del muestreo de datos.
La polaridad se refiere al estado lógico de la señal de reloj
mientras espera a que haya transferencias.
La fase define si el primer bit será muestreado en el primer
flanco de reloj (en fase) o en el flanco siguiente.
94
MODOS DE TRANSFERENCIA SPI
En el registro SPCR se tienen 2 bits para definir estos
parámetros:
95
... SCK ...
... SS ...
... SS ...
96
c) Modo 2: CPOL = 1, CPHA = 0 d) Modo 3: CPOL = 1, CPHA = 1
SEÑAL DE HABILITACIÓN SS
La señal de la terminal SS no se genera automáticamente,
debe ser generada por software porque sólo de esta forma es
posible un esquema Maestro-Esclavos.
ATMega328
(PB5) SCK
(PB4) MISO
(PB3)MOSI
(PB2) SS
PB1
PB0
ATMega328 ATMega328 ATMega328
SCK (PB5)
MISO (PB4)
PORTD
MOSI (PB3)
SS (PB2)
ATMega328 Esclavo 1
ATMega328
PORTD
(PB3) MOSI MOSI (PB3)
(PB2) SS SS (PB2)
PB1
PB0
PC0
Esclavo 2
SEL.
PC1 ATMega328
SCK (PB5)
PC2
MISO (PB4)
PORTD
SS (PB2) 101
Esclavo 0
EJEMPLO 12: MANEJO DE UN DAC.
Realice un programa que maneje un dispositivo MCP4821, que es un
DAC de 12 bits. Utilice dos puertos de entrada en el ATMega328 para
enviar el dato digital al dispositivo.
102
3.7 INTERFAZ TWI
Microcontroladores
103
M. C. Felipe Santiago Espinosa
Octubre de 2018
INTERFAZ TWI
(TWO WIRE INTERFACE)
Interfaz compatible con el bus I2C, estándar desarrollado
por Philips Semiconductor (ahora NXP Semiconductor).
Aplicable para el manejo de LCDs y LEDs, puertos I/O
remotos, RAMs, EEPROMs, RTC, ADCs, DACs, cámaras
CCD, etc.
Los dispositivos deben contar con los mecanismos de
hardware necesarios para cubrir los requerimientos
inherentes al protocolo.
El protocolo TWI maneja un esquema Maestro-Esclavo, sin
embargo, cualquier dispositivo puede transmitir en el bus.
104
INTERFAZ TWI
(TWO WIRE INTERFACE)
Los dispositivos se comuniquen a través de un bus bidireccional
de 2 líneas: Una para reloj (SCL) y otra para datos (SDA).
Pueden ser hasta 128 dispositivos.
Se requiere de 2 resistores de Pull-Up externos, se impone una
AND alambrada.
Vcc
SDA
SCL
105
INTERFAZ TWI
(TWO WIRE INTERFACE)
Términos para los diferentes dispositivos:
106
CONDICIONES DE INICIO Y PARO
Y DATOS
SDA
SCL
SDA
SCL
107
PAQUETES DE DIRECCIÓN
Un paquete de dirección tiene una longitud de 9 bits:
7 bits para la dirección del esclavo (inicia con el MSB)
1 bit de control (R/W)
1 bit de reconocimiento
Dirección
MSB LSB R/W ACK
SDA
SCL
INICIO 1 2 7 8 9
Dato
MSB LSB ACK
SDA desde el
transmisor
SDA desde el
receptor
SCL desde el
maestro
1 2 7 8 9
110
PAQUETES COMPLETOS:
DIRECCIÓN Y DATOS
Dirección Dato
MSB LSB R/W ACK MSB LSB ACK
SDA
SCL
INICIO 1 2 7 8 9 1 2 7 8 9 PARO
111
SISTEMAS MULTI-MAESTROS
Si dos o más Maestros intentan iniciar una transmisión al
mismo tiempo las señales de reloj pueden tener ligeros
desfasamientos.
Las transmisiones se sincronizan con el reloj resultante en
SCL debido a la AND alambrada.
SCL del
maestro A
SCL del
maestro B
SCL en el
BUS
112
SISTEMAS MULTI-MAESTROS
Sólo un Maestro podrá concluir con la transmisión, éste se
determina por un proceso de arbitración.
Los Maestros monitorean la línea SDA después de colocar un
dato.
Si el valor leído no coincide con el valor colocado, se ha perdido
la arbitración.
SDA A =/ SDA, el maestro A
pierde la arbitración
SDA del
maestro A
SDA del
maestro B
SDA en el
BUS
114
SCL SDA
ORGANIZACIÓN DE LA
Control de
Filtro
Control de
Filtro
INTERFAZ TWI
Slew-rate Slew-rate
Control de Supresión
Pre-escalador
INICIO/PARO de ruido
115
GENERADOR DE BIT RATE
Define la frecuencia de la señal SCL (para un Maestro).
La frecuencia depende del Registro de Bit Rate (TWBR) y de
los bits de pre-escala (TWPS[1:0]) ubicados en el registro de
estado (TWSR).
La frecuencia de SCL se genera de acuerdo con la ecuación:
117
Unidad de Comparación de Dirección
7 6 5 4 3 2 1 0
TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE TWAR
118
Unidad de Control
Monitorea los eventos del bus y genera respuestas de
acuerdo a la configuración definida en el registro TWCR.
Si un evento requiere atención, la bandera TWINT se pone
en alto y del registro de estado (TWSR) se puede obtener el
código que identifica al evento.
El registro TWSR tiene información relevante sólo si la
bandera TWINT se puso en alto y puede deberse a que:
Se transmitió una condición de INICIO o INICIO REPETIDO.
Se direccionó un esclavo con una SLA+R o SLA+W.
Se perdió una arbitración.
La interfaz TWI fue direccionada, con su dirección de Esclavo o
por una GCA.
Se recibió un dato.
119
Ocurrió una condición de PARO o INICIO REPETIDO,
mientras estaba direccionada como Esclavo.
Registros para el manejo de la
Interfaz TWI
Registro para el manejo de datos (TWDR)
El registro TWDR es el buffer para transmisión y recepción
de datos.
En modo transmisor, TWDR contiene el próximo dato a ser
transmitido.
En modo receptor, TWDR contiene el último dato recibido.
El registro TWDR puede ser leído o escrito sólo después de
que la bandera TWINT se puso en alto.
120
Registro de Bit Rate (TWBR)
121
Registro de dirección de esclavo (TWAR)
7 6 5 4 3 2 1 0
TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE TWAR
122
Registro de Control (TWCR)
7 6 5 4 3 2 1 0
TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE TWCR
Dispositivo 1 Dispositivo 2
Dispositivo 3 ..... Dispositivo n
Maestro Esclavo R1 R2
Transmisor Receptor
SDA
SCL
127
Para una condición de inicio, en TWCR se debe escribir:
128
Después de transmitir la SLA+W y recibir reconocimiento, la
bandera TWINT se pondrá en alto y en el registro TWSR se
tendrá el estado 0x18.
El MCU Maestro está listo para enviar uno o varios datos.
Cada dato a enviar debe colocarse en TWDR.
El envío inicia al limpiar la bandera TWINT, colocando en
TWCR el valor mostrado anteriormente.
El fin de envío se marca con la puesta en alto de TWINT y si
hubo reconocimiento el código de estado es 0x28.
Esta secuencua se repetirá con cada uno de los datos.
130
Estados posibles en el modo Maestro Transmisor
Dispositivo 1 Dispositivo 2
Dispositivo 3 ..... Dispositivo n
Maestro Esclavo R1 R2
Receptor Transmisor
SDA 132
SCL
El modo MR generalmente es la continuación de un modo
MT, porque el maestro debe notificar el esclavo que recibirá
información.
El cambio de MT a MR se realiza mediante un inicio repetido.
133
Después de ello, el maestro debe establecer una condición de
paro o inicio repetido.
Estados posibles en el modo Maestro Receptor
Dispositivo 1 Dispositivo 2
Dispositivo 3 ..... Dispositivo n
Esclavo Maestro R1 R2
Receptor Transmisor
SDA
SCL
137
Estados posibles en el modo Esclavo Receptor
Código de Posibles acciones a realizar en la
Estado del bus y de la interfaz serial
Estado interfaz, en respuesta al estado
Se ha direccionado como Esclavo con una
0x60
SLA+W y enviado un ACK
Se perdió una arbitración en una SLA+R/W
0x68 como Maestro, se ha direccionado como
esclavo con una SLA+W y enviado un ACK
Se ha direccionado como Esclavo con una GCA
0x70
y enviado un ACK 1. Recibir un byte de datos y regresar
Se perdió una arbitración en una SLA+R/W un ACK (TWEA = 1)
0x78 como Maestro, se ha direccionado como 2. Recibir un byte de datos y regresar
esclavo con una GCA y enviado un ACK un nACK (TWEA = 0)
Se ha recibido un byte de datos y respondido
0x80 con un ACK, previamente se había
direccionado con una SLA+W
Se ha recibido un byte de datos y respondido
0x90 con un ACK, previamente se había
138
direccionado con GCA
Código de Posibles acciones a realizar en la
Estado del bus y de la interfaz serial
Estado interfaz, en respuesta al estado
Se ha recibido un byte de datos y
1. Conmutar a un modo de Esclavo no
0x88 respondido con un nACK, previamente se
direccionado, desactivando la interfaz
había direccionado con una SLA+W
para no reconocer su propia SLA o la
Se ha recibido un byte de datos y GCA (TWEA = 0)
0x98 respondido con un nACK, previamente se 2. Conmutar a un modo de Esclavo no
había direccionado con una GCA direccionado, capaz de reconocer su
propia SLA o la GCA (TWEA = 1)
3. Conmutar a un modo de Esclavo no
direccionado, desactivando la interfaz
para no reconocer su propia SLA o la
Se ha recibido una condición de PARO o GCA y enviar un bit de inicio, cuando el
0xA0 de INICIO REPETIDO, mientras aún bus esté disponible
estaba direccionado como Esclavo 4. Conmutar a un modo de Esclavo no
direccionado, capaz de reconocer su
propia SLA o la GCA y enviar un bit de
139
inicio, cuando el bus esté disponible
Modo Esclavo Transmisor
Vcc
Dispositivo 1 Dispositivo 2
Dispositivo 3 ..... Dispositivo n
Esclavo Maestro R1 R2
Transmisor Receptor
SDA
SCL
141
Estados posibles en el modo Esclavo Transmisor
142
Código de Posibles acciones a realizar en la
Estado del bus y de la interfaz serial
Estado interfaz, en respuesta al estado
143
Estados Misceláneos
n bytes
Maestro Auto-incrementa
Transmisor la dirección de
acceso
Escritura en la RAM
146
Reconocimiento Reconocimiento Reconocimiento
de Esclavo de Esclavo de Esclavo
Maestro Maestro
Transmisor Receptor