Documente Academic
Documente Profesional
Documente Cultură
PRCTICA N4
1. Objetivo:
Desarrollar
una
aplicacin
que
permita
comunicar
el
cientos de aos.
Se organizan por pginas para facilitar su direccionamiento y
almacenamiento de la informacin.
Utilizan para su funcionamiento una tensin nica (5Volts o 3,3Volts)
Son compatibles con el protocolo serial I2C (Marca registrada de Philips)
Bajsimo costo.
Amplia variedad de encapsulados para adaptar el modelo necesario, de
acuerdo al tamao de la aplicacin.
I2C,
los
dispositivos
estn
identificados
Los
dispositivos
conectados
al
o
intercalar
bus
las
pueden
funciones
la
2.4 Sincronizacin:
Todos los maestros generan sus propias seales de reloj sobre la lnea SCL
para transferir datos. Los datos son vlidos solo durante el periodo en que
se encuentra en nivel lgico alto la seal de reloj. Por lo tanto es necesaria
una seal de reloj para arbitrar la transferencia de todos los bits. Para la
mayora de los microcontroladores incluyendo el PIC 18 la seal de reloj
SCL es generada por un contador que cuenta en forma descendente un
valor previamente programado.
La sincronizacin de la seal de reloj es realizada utilizando la conexin
AND cableada del interface I 2C a la lnea de reloj SCL. Esto significa que
una transicin de nivel alto a bajo en la lnea SCL causar que los
dispositivos que deseen iniciar la comunicacin empezaran a contar su
periodo en bajo y una vez que un dispositivo ha generado una seal de reloj
en bajo mantendr la seal de reloj en ese estado hasta que se alcance un
estado alto.
Bit R/W
DESCRIPCIN
0
Direccin de llamada general
1
Byte de inicio
0000001
0000010
0000011
00001XX
11111XX
11110XX
X
X
X
X
X
X
Direccin CBUS
Reservado para diferentes formatos de bus
Reservado para propsitos futuros
Cdigo de modo maestro
Reservado para propsitos futuros
Direccionamiento en modo esclavo de 10
bits
DESCRIPCIN
Configura el mdulo I2C por software
Determina si el bus I2C est libre y
enva una seal de START
Soft_I2C_Read(ack)
Lee un byte del esclavo y responde con
una seal NOACK (ack == 0) o ACK
(ack == 1)
Soft_I2C_Write(dato)
Enva un byte dato por el bus I2C
Soft_I2C_Stop()
Enva una seal de STOP
Soft_I2C_Break()
Todas las funciones de la biblioteca
Software_I2C pueden bloquear el flujo
de programa. Si se ejecuta esta funcin
desde la funcin de interrupcin se
producir el desbloqueo del programa.
Para el microcontrolador ATMEGA se tiene otro conjunto de libreras que cumplen
las mismas funciones que en la tabla anterior.
FUNCIN
TWI_Init()
TWI_Start()
TWI_Busy()
TWI_Read()
TWI_Write(dato)
TWI_Stop()
TWI_Break()
TWI_Status()
TWI_Close()
DESCRIPCIN
Configura el mdulo I2C por software
Determina si el bus I2C est libre y
enva una seal de START
Sealiza el estado del bus
Lee un byte del esclavo y responde con
una seal NOACK (ack == 0) o ACK
(ack == 1)
Enva un byte dato por el bus I2C
Enva una seal de STOP
Todas las funciones de la biblioteca
Software_I2C pueden bloquear el flujo
de programa.
Retorna el estado del bus
Cierra la conexin del bus
Trabajo de laboratorio:
PRIMERA FIRMA:
Transcribir el siguiente programa ejemplo utilizando el microcontrolador ATMEGA
128 y el software MikroC Pro for AVR.
void main(){
DDRB = 0xFF;
PORTB = 0;
TWI_Init(100000);
TWI_Start();
TWI_Write(0xA2
TWI_Write(2);
TWI_Write(0xAA);
TWI_Stop();
Delay_100ms();
TWI_Start();
TWI_Write(0xA2);
TWI_Write(2);
TWI_Stop();
TWI_Start();
TWI_Write(0xA3);
PORTB = TWI_Read(0u);
TWI_Stop();
}
SEGUNDA FIRMA:
En el circuito anterior, aumentar una pantalla LCD, dos pulsadores y la bocina
(Piezo Buzzer), donde la tarea que realizar es la siguiente:
Por cada pulso que hagamos en el botton Guardar, las variables se guardaran
(contador) internamente en el AVR, despus de haber realizado el guardado de
los valores, pulsamos el botton Leer para que nos pueda motrar en el LCD los