bueno.voy a explicar lo que por encima he entendido del funcionamiento de este circuito.
este circuito despues del envio del comando START.hay que direccionarlo con una direccion que se haya programado mediante el uso
de los pin A0..A5 en el circuito comprado por internet.estos pin estan conectados a masa mediante unas resistencias.y es posible ponerlos a
nivel 1.si soldamos los puentes.
si no soldamos nada,por defecto la direccion es 0x80 para la escritura y 0x81 para la lectura.esto nos da un tatal de 64 direcciones programables.
tambien tenemos 4 registros de direcciones programables.
SUBADR1 0x02
SUBADR2 0x03
SUBADR3 0x04
ALLCALLADR 0x05
estos registros pueden ser leidos y escritos.los valores por defecto son estos:
SUBADR1 =E2h escritura , E3h lectura
SUBADR2 =E4h escritura , E5h lectura
SUBADR3 =E8h escritura , E9h lectura
ALLCALLADR =E0h escritura , E1h lectura
por defecto esto registros estan deshabilitados.para habilitarls hay que poner a 1 los bit correspondientes del registro MODE1.
estos registros tambien pueden ser programados para cambiar sus direcciones.solo hay que escribir en ellos el valor deseado de direccion.
me he vuelto loco intentando hacer que funcionara esto de programar las direcciones.ya que lo intente con el proteus.y parece ser
que este no funciona en la simulacion.
una vez que se envie la direccion.se envia el comando que vallamos a gestionar.luego el dato que queramos ingresar en dicho registro.y Stop
esto seria para una secuencia de escritura.A(acknowledge) es un bit recibido del PCA.
Start,Direccion escritura,Comando,Dato,Stop S xx A xx A xx P
En el caso de querer leer un registro.seria:
Start,Direccion escritura,Registro a leer,Restart,Direccion lectura,Dato recibido,Nacknowledge,Stop S xx A xx A xx Sr xx A xx N P
En el caso anterior se refiere a la lectura de un registro.en el caso de leer o escribir en serie.habria que activar el bit AI(autoincremento)
esto seria una forma de escribir con el autoincremento activado:
S 80 A 00 A 20 A P
S 80 A 06 A 00 A 00 A 00 A 08 A 00 A 00 A 00 A 08......00 A 00 A 00 A 08 P
con la antreior secuencia.estariamos introduciendo los valores LED0_ON_L=00 , LED0_ON_H=00 ,LED0_OFF_L=00 ,LED_0_ON_L=08... a partir del registro
06(LED0) hasta donde paremos la transmision pon P(stop) el valor introducido 00 00 00 08 corresponde a un PWM del 50%