Easyelectronics.ru

Электроника для всех
Текущее время: 18 ноя 2018, 15:27

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 10:22 
Заглядывает иногда

Зарегистрирован: 15 окт 2017, 15:22
Сообщения: 42
Работаю с DS1307. Вот что подумал, а ведь может такое быть, что пока считываю секунды, минуты уже могут измениться ? Например считал 59 секунда, потом по регистру идут минуты, а там не 34 минуты, а уже 35. Получается вместо 34 минуты 59 секунд, получил время 35 минут 59 секунд.

Если выключать во время считывания/записи тактирование, то это получается дополнительная искусственная задержка и без того не самого точного таймера.

Или во время считывания всех регистров, в них ничего не пишется ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 10:35 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:48
Сообщения: 3764
Откуда: Звенигород
Сначала стоило почитать даташит, тогда таких вопросов бы не возникло.
When reading or writing the time and date registers, secondary (user) buffers are used to prevent errors when the
internal registers update. When reading the time and date registers, the user buffers are synchronized to the
internal registers on any I2
C START. The time information is read from these secondary registers while the clock
continues to run.

_________________
От Парижа до Находки с водкой лучше, чем без водки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 11:24 
Заглядывает иногда

Зарегистрирован: 15 окт 2017, 15:22
Сообщения: 42
Действительно. Про чтение понятно.

А вот с записью нет.
Код:
The divider chain is reset whenever the seconds register is written. Write transfers occur on the I2C acknowledge from the DS1307. Once the divider chain is reset, to avoid rollover issues, the remaining time and date registers must be written within one second.


Означает ли это, я можно не успеть записать, если сменилась секунда ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 11:47 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 1188
Там написано что запись оставшихся регистров надо произвести в течении секунды (т.е. за 1 сек) после записи регистра секунд. После записи секунды счетчик сбрасывается и отчет секунды начинается сначала. Ну т.е. было скажем 10:43:55.546 (где 546 - мс), пишем 23 в секунду, будет 10:43:23.000 и надо в течение 999мс дописать остальные регистры просто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 12:23 
Заглядывает иногда

Зарегистрирован: 15 окт 2017, 15:22
Сообщения: 42
Хорошо. А если мне надо только изменить 7 бит по 0x00 адресу (CH). Я делаю так, сперва считываю количество секунд, потом меняю 7 бит и снова записываю обратно. Но опять же, может получится ситуация, что пока читал и писал прошло время и секунда сменилась.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 20:24 
Заглядывает иногда

Зарегистрирован: 26 сен 2015, 03:02
Сообщения: 78
На всякий случай предупреждаю, что на клонах DS1307 теневые регистры могут работать некорректно, или их вообще нет.
Поэтому надёжнее перепроверять каждое чтение/запись. Т.е. если два раза прочитали одно и тоже значение ЧЧ:ММ:СС, то всё нормально, если нет - повторяем.
Так же на запись.

А клоны - это 99% данных микросхем, т.к. оригинал стоит от 2.2$ при партии 100шт, а не как на Али за 0.5$ 1шт. вместе с платой и доставкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение/запись регистров DS1307
СообщениеДобавлено: 06 июл 2018, 20:24 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3746
Откуда: Кемеровская область, Киселевск
Roman1 писал(а):
Хорошо. А если мне надо только изменить 7 бит по 0x00 адресу (CH). Я делаю так, сперва считываю количество секунд, потом меняю 7 бит и снова записываю обратно. Но опять же, может получится ситуация, что пока читал и писал прошло время и секунда сменилась.


Твои ситуации никого не ебут, есть жесткий регламент в даташите будь добр исполнять их.

И это сразу надо писать где покупал микросхему.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: VladislavS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB