roboforum.ru

Технический форум по робототехнике.
Текущее время: 08 июл 2025, 11:54

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Часы ds1307
СообщениеДобавлено: 27 фев 2010, 11:00 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Столкнулся с проблемой: Сделал платку на которой установил RTC ds1307, включил, установил правильное время, а часы то и не ходят. Выключил- обратно включил - так и не ходят. Оказывается при установке времени следует обратить внимание на 7й бит по адресу 0x0h (установка секунд). Это бит разрешения/запрета осцилляции CH. По-умолчанию он установлен в 1 - запрет осцилляции. Так как в моем проекте секунды я не учитывал потому и не обратил внимания на установку этого бита в 0.

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 13 апр 2010, 20:51 
Не в сети

Зарегистрирован: 13 апр 2010, 20:47
Сообщения: 6
вообще-то это в даташите жирным шрифтом выделено, что при включении состояние регистров неопределено и запускать надо ручками. Немного недопонимаю логику разработчиков, ну да ладно...
А вот как справиться с другими граблями? У меня на двух разных чипах одна и та же проблема - никак не хотят записываться 3,4,5 регистры, то есть день, число и месяц. Время записывается, год тоже - а эта троица всегда единица. И при этом еще не происходит переход на следующий день. То есть ставлю 23:59, жду минуту и вижу, что время обнулилось, а дата так и осталась 01/01/10


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 14 апр 2010, 22:41 
Не в сети
Аватара пользователя

Зарегистрирован: 23 апр 2009, 17:03
Сообщения: 2639
Откуда: Москва, Самара
прог. языки: C#
походу надо в 4,5,6 писать, а не в 3,4,5

#define DS1307_DATE_REG 4
#define DS1307_MONTH_REG 5
#define DS1307_YEAR_REG 6

3 должен быть вычисляемый (день недели) :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 15 апр 2010, 05:49 
Не в сети

Зарегистрирован: 13 апр 2010, 20:47
Сообщения: 6
Ну да, так и есть, 3 - день недели, 4 - число, 5 - месяц, 6 - год. Я почему и мучаюсь с этими часами - не хочет устанавливать именно день недели, число и месяц. Год и время устанавливается, а эти три - никак. Четыре чипа (три из одной партии) - на всех одна и та же беда. И не переходит в полночь на следующий день.
А по поводу дня недели - его задаешь и он сам должен циклично его перещелкивать в полночь, так что с ним заморочек нет особых. Если бы он еще задавался....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 15 апр 2010, 09:46 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Приведи свою схему подключения часов (я понимаю что она типа стандартная - все равно приведи)

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 15 апр 2010, 10:42 
Не в сети
Аватара пользователя

Зарегистрирован: 23 апр 2009, 17:03
Сообщения: 2639
Откуда: Москва, Самара
прог. языки: C#
эт наверное не ко мне вопрос,
но все же.. я с спаркфана брал, там и схема есть
http://www.sparkfun.com/commerce/produc ... ucts_id=99
у меня все работало. Может ему батарея нужна постоянно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 15 апр 2010, 10:52 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Да, конечно вопрос к marsden. А вообще батарея действительно нужна часам постоянно - без нее у меня тоже что то не работало

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 19 апр 2010, 21:09 
Не в сети

Зарегистрирован: 13 апр 2010, 20:47
Сообщения: 6
galex1981 вот схема - стандартнее некуда http://s57.radikal.ru/i156/1004/3d/a57affcf65ee.bmp
на номиналы конденсаторов внимания не обращайте - накидал в протеусе, чтобы разводку платы сделать
Сегодня добил плату, до этого все на макетке делал, думал, может приколы из-за макетки, но увы... На нормальной плате то же самое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 19 апр 2010, 23:35 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2700
Откуда: Где-то в Латинской Америке
Может ставить CH=1 перед записью в регистры, а потом запускать часы CH=0? Делал RTC на PCF8583, так там это рекомендовалось в ДШ. А если не остановишь перед записью, то записывалась какая-то хрень.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 20 апр 2010, 08:43 
Не в сети

Зарегистрирован: 13 апр 2010, 20:47
Сообщения: 6
сделал так, при записи секунд в нулевой регистр ставлю бит 7, записываю все данные, опять записываю в секундный регистр уже со сброшенным битом - результат тот же - часы идут, год правильный, число/месяц - 01/01 :(((


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 11 май 2010, 13:12 
Не в сети

Зарегистрирован: 13 апр 2010, 20:47
Сообщения: 6
После довольно долгого периода мытарств нашел косяк. Косяк где-то в программе (писано на ассемблере) в работе с ОЗУ - данные считывались в оперативку, потом выдавались в СОМ-порт. Вот тут где-то и случилось обнуление месяца и числа. Если напрямую считываю с часов и выдаю в порт - все нормально, так что часики не виноваты и они мне нравятся больше, чем pcf8583


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы ds1307
СообщениеДобавлено: 11 май 2010, 13:28 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Ну вот, говорил же - где то глюк есть. Или железо или программа ;)

_________________
if(!Operate) Read(pDatasheet);


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO