організації пам'яті
Малюнок 4 - Карта адрес DS1307
Карта адрес для RTC і регістрів ОЗУ представлена ??на Малюнку 4 Регістри RTC розташовані в осередках адрес від 00h до 07h. Регістри ОЗУ розташовані в осередках адрес від 08h до 3Fh. У процесі багатобайтові доступу, коли адресний покажчик досягає 3Fh (кінець простору ОЗУ), він переміщається на клітинку 00h - початок простору RTC.
Дана мікросхема наділена 64 байтами пам'яті. Перші вісім байт - робітники. У них зберігається час, дата, день тижня. Решта виділені під потреби користувача. У них можна зберігати наприклад якісь налаштування або ще що-небудь. Природно, коли резервне живлення пропадає, вся інформація в цій пам'яті руйнується. Вся робота з годинником (читання і установка часу/дати) зводиться до того, щоб читати і записувати потрібні комірки пам'яті.
Малюнок 5 - Пам'ять DS 1307
Всі числа в пам'яті зберігаються в двійково-десятковому форматі. Це означає що в одному байті може зберігається відразу дві цифри. Наприклад число 0? 23 - містить в собі цифру 2 і цифру 3. На кожну цифру виділяється по 4 біта. Навіщо так зроблено? Для зручності та економії пам'яті. Крім часу і дати в пам'яті зберігаються кілька біт налаштувань:
· Clock Halt - управляє годинами. Коли біт встановлений то годинник коштує. Щоб запустити хід годинника необхідно записати в цей біт 0. Після підключення батареї резервного живлення, цей біт заставлений і годинник не вважають час! Про це потрібно пам'ятати.
· 24/12 - цей біт вибору режиму годин. Коли цей біт дорівнює одиниці то використовується 12-ти годинний режим. В іншому випадку 24-х годинний. Якщо використовується 12-ти годинний режим то п'ятий біт показує AM або PM зараз. Якщо біт дорівнює 1 то значить PM. У 24-х годинному режимі цей біт використовується для зберігання десятків годин спільно з бітом 4.
· Output - управляє станом ноги SQW/OUT. Біт встановлений - на нозі лог 1. скинуто - на нозі 0. Для управління таким чином, біт SQWE повинен бути скинутий. SQWE - коли біт встановлений, на нозі SQW/OUT з'являються прямокутні імпульси.
· RS1, RS0 - цими бітами задається частота імпульсів. Залежність частоти від комбінації біт знаходиться в таблиці нижче:
Таблиця 1 - Залежність частоти від комбінації біт.
Таблиця 2 - Висновку SQW/OUT.
OUT (Output control - управління виходом) - цей біт управляє логічним рівнем на виведення SQW/OUT, коли вихід сигналу з прямокутними імпульсами відключений. Якщо SQWE=0, то логічний рівень на виведення SQW/OUT дорівнює 1, якщо OUT=1, і 0, якщо OUT=0. (Square Wave Enable - включення сигналу з прямокутними імпульсами) - коли цей біт встановлений в 1, включається генерація прямокутних імпульсів. Їх частота залежить від значення бітів RS0 і RS1. (Якщо частота вихідного сигналу встановлена ??в 1Гц, регістри годин оновлюються по задньому фронту цих імпульсів). (Rate Select - вибір частоти) - ці біти керують частотою прямокутних імпульсів, коли біт SQWE=1. У Таблиці 1 наведені частоти, які можна вибрати за допомогою бітів RS.
2.3 Підключення до двухпроводной послідовній шині даних
підтримує обмін даними по протоколу I2C по двухпроводной двобічної шині. Пристрій, який передає дані на шину, є передавачем, а пристрій, що приймає дані, - приймачем. Пристрій, що управляє передачею даних, називається ведучим. Пристрій, яким управляє ведучий, називається веденим. Провідний пристрій генерує синхроімпульси (serial clock - SCL), управляє доступом до шині і генерує умови START і STOP. DS1307 працює на шині як ведене пристрій. Типова конфігурація шини з використанням протоколу I2C показана на рисунку 6.
Малюнок 6 - Типова конфігурація двухпроводной шини.
2.4 Процес передачі даних по двухпроводной шині
Основні принципи передачі даних по шині I2C:
) Передача даних може бути ініційована тільки коли шина вільна.
) Під час передачі дані на лінії SDA можуть мінятися тільки коли на лінії SCL низький рівень, в іншому випадку зміна даних буде інтерпретуватися як керуючий сигнал.
Таким чином, можливі наступні стану шини:
Шина не зайнята - на лініях SDA і SCL зберігається високий рівень.
Початок передачі даних (умова START) - зміна стану лінії SDA з високого на низький, в той час як на лінії SCL високий рівень.
Закінчення передачі даних (умова STOP) - зміна стану лінії SDA з низького на високий, у той час як на л...