Estoy tratando de conectar DS1307 RTC con la MCU mencionada. Quiero hacer un temporizador de por vida que indique el tiempo que este proyecto ha funcionado en el campo y mostrar este temporizador en una pantalla LCD.
Soy nuevo en los microcontroladores, pero el uso de bibliotecas LCD e I2C ya integradas en el compilador MikroC pro para PIC espero salvarme de la programación de bajo nivel.
Ahora si entendí bien, los pasos para escribir o leer algo del RTC serían:
1) I2C_Start();
2) I2C_Write(DS1307_Address);
3) I2C_Write(Register Address);
4) I2C_Write(Data to be written);
5) I2C_Stop();
y para leer:
1) I2C_Start();
2) I2C_Write(DS1307_Address);
3) I2C_Write(Register Address);
4) I2C_Repeated_Start();
5) I2C_Write(DS1307_Address);
6) I2C_Rd();
7) I2C_Stop();
Mi problema es que, ¿cuál será DS1307_Address
, si es el único dispositivo en el autobús?
Mi enfoque será configurar el BIT7 de 00h o CH
bit del DS1307 bajo siempre que el dispositivo esté funcionando, y configurarlo alto justo antes de apagarlo. No quiero que el RTC cuente el tiempo del proyecto también. ¿Es factible este enfoque?
Mi esquema es el siguiente:
Según la hoja de datos , página 12:
El byte de la dirección del esclavo contiene la dirección DS1307 de 7 bits, que es 1101000, seguida del bit de dirección (R/W), que para una escritura es 0.
Entonces, la dirección que está buscando es 1101000 .
Eugenio Sh.
brahans
Mohsin
Mohsin
Eugenio Sh.
Mohsin
Mohsin
Eugenio Sh.
I2C_Repeated_Start
función. Echa un vistazo a los ejemplos en esta página.usuario59864
Mohsin
Eugenio Sh.