news : VI SENTITE INGANNATI DAI PRODOTTI MY-WAY E 4YOU DI BANCA121 E MPS ? CLICCA QUI

in ricostruzione..

in costruzione.....

Real Time Clok con DS1307 e bus I2C(iic)

Progetto realizzato con la DemoBoard V1, di seguito trovate lo schema di collegamento.

La batteria non è strettamente necessaria per eseguire delle prove dato che viene utilizzata solo in mancanza di alimentazione.

Sorgenti PIC C e .hex

Il timer DS1307 utilizza il bus "I2C" per la comunicazione dei dati con frequenza massima di 100 KHz (SCL) per cui il consiglio è di leggere un tutorial su questo bus per capire meglio quello che si sta facendo.

 

Nella tabella seguente sono visibili i registi a 8 bit che andremo a leggere o scrivere.

addres reg.

registro

00h secondi
01h minuti
02h ore
03h giorno(lun:dom)
04h data giorno
05h mese
06h anno
07h control

 

 

 

 

Il registro "control" , in questo progetto non utilizzato , serve per attivare l'uscita SQW e impostarrne la frequenza.

Ci sono inoltre 56 byte di ram tamponata libera ( dall'indirizzo 08h al 3Fh) su cui possiamo leggere e scrivere qualsiasi cosa.

I dati sono in formato BCD per cui i primi 4 bit (lsb) rappresenteranno le unità  mentre i restanti 4 le decine (msb).

ES. 0001 0010 = ( 1 * 10 ) + 2 = 12

SCRITTURA MASTER ---> RTC

NOTE COMANDO DIREZIONE SUB pic c
  START -------> iic_start()
11010000 = address , write bit SLAVE ADDRESS+ write bit -------> iic_write(char value)
  ACK <------- bit iic_r_ack()
n=indirizzo DATA ADDRESS n ------->

iic_write(char value)

  ACK <------- bit iic_r_ack()
dato all'indirizzo n DATA n ------->

iic_write(char value)

  ACK <------- bit iic_r_ack()
  ACK <------- bit iic_r_ack()
  STOP -------> iic_stop()

Descrizione comandi

Inizialmente , le linee SCL e SDA devono essere entrambe a livello logico alto.

COMANDO

DESCRIZIONE

START SDA si porta a 0 , pausa 5uS, SCL si porta a zero , pausa 5uS
   
STOP SCL si porta a 1 , pausa 5uS, SDA si porta a 1,pausa 5uS

nb . Il timer deve essere attivato nella fase di iniziazione portando a "0" il bit 7 del registro con indirizzo  "0" detto CH bit (clock halt).