Форум на Kuban.ru (http://forums.kuban.ru/)
-   Радиолюбитель (http://forums.kuban.ru/f1060/)
-   -   Проблема с часами реального времени ds3231 (http://forums.kuban.ru/f1060/problema_s_chasami_real-nogo_vremeni_ds3231-7989022.html)

zzz_spider 03.09.2016 16:26

Проблема с часами реального времени ds3231
 
День добрый, дорогие форумчане. Начну свою грустную историю с того, что вроде не новичок в программировании контроллеров и изготовлении на их базе всяких умных, и не очень, устройств.Кстати, пользую в основном CodeVisionAVR, но не суть...
Столкнулся с такой траблой: Решил усовершенствовать часы, обеспечив, как пишется в даташитах, экстремальную точность хода. До этого работал с ds1307, как правило в SOIC-8, корпусе. Там все ясно, какой кварц поставишь, такую точность, и получишь. Таки решил перейти на более продвинутый RTC. А именно ds3231... Заказал в Поднебесной партию таких чудо-устройств. Дождался, ага. Благо, плата давно была готова, и прошит контроллер (кстати, использовал библиотеку под ds1307, ибо протокол почти одинаков), впаял первый экземпляр. Облом, не заработало. Второй, то-же самое. Ладно, мы не робкого десятка, паяем третий, и, вуа-ля, часы затикали. Круто. Тока стали меня терзать сомнения по точности хода. Чо-та они отстают. И, так, нехило отстают. Блин, засада. Ладно, нашел еще один рабочий экземпляр. Та-же история. Ну, думаю, подогнали друзья-китайцы некачественный продукт. Купил-таки пару микросхем в Промэлектронике. И что вы думаете? Ничего не поменялось. Самое странное, что частота генератора стабильна как скала и соответствует даташиту. Думал, может библиотека виновата. написал с помощью стандартных команд i2c.То-же самое! Друзья, может мне кто нибудь помочь? Весь интернет перерыл - результат нулевой.

IntelMan 03.09.2016 20:50

Обвеску DS3231 по питанию и на выходе генератора сделали по даташиту? Осциллограмму выходного сигнала и его точную частоту можно узнать (что там с мГц после запятой 32768,[u]ХХХ[/u] )...

zzz_spider 05.09.2016 05:31

Вся обвязка по даташиту. Отставание по времени, примерно 2 сек. в минуту. Отставание не слабое. Осциллограф после запятой показал 5, далее не доступно импульсы практически прямоугольные.

IntelMan 08.09.2016 16:25

Это отдельные микросхемы или готовые ардуиновские модули? Отклонение не должно выходить за +/- 10 сек/мес.

zzz_spider 08.09.2016 16:42

Что-вы, это самые, что ни-наесть отдельные микросхемы. Я их, и, решил использовать вместо ds1307 за их заявленную "экстремальную" точность. Ладно-бы можно было списать на партию из Китая, так, ведь, нет, из "Промэлектроники" - туда-же...

IntelMan 08.09.2016 16:48

Они их тоже в Китае берут (скорее всего)... :)

zzz_spider 08.09.2016 17:03

Таки-да, только одно непонятно. Импульсы 32 кГц идут четко по даташитному и частота как вкопаная

IntelMan 08.09.2016 17:51

Если частота 32768 Гц на контрольном выходе (её нужно частотомером измерять... не осциллографом... какой осциллограф, кстати?), то проблему нужно искать в передаче по каналу I2C или в программе...

zzz_spider 08.09.2016 18:40

Понятно, что частотомером, но к моему АКИП 4115/2А проблем не было. Да, и, как-то странно, что-бы сразу микросхема врать начала, и у осциллографа крыша поехала. По поводу I2C, мысли такие: Ну, хорошо, допустим, в момент обращения к микросхеме часов, останавливается генератор (маловероятно). Более того на осциллограмме обращение к RTC никак не отражается. При отключении основного питания контроллера, обращения к часам не происходит вообще. Тикает только генератор, питаемый от батарейки. После пары часов простоя, включаем контроллер, смотрим на показания, и, о-па, часики-то отстали...

IntelMan 08.09.2016 18:59

Дурная мысль пришла в голову... "Может частота импульсов падает при переходе в автономный режим работы?"... Такого быть не должно,но вдруг...

IntelMan 08.09.2016 19:05

В режиме самописца осциллографа посмотреть бы процесс перехода в "автономку" и обратно на выходе частоты микросхемы... может какие задержки есть...

zzz_spider 09.09.2016 04:45

Тогда почему отстают не переходя в автономный режим? И еще вопрос знатокам: Должны-ли быть какие данные в регистре 10Н присутствовать? Данные с регистра температуры вполне адекватные, а в регистре Agging Offset - стерильная чистота, то бишь 00.

IntelMan 13.09.2016 00:35

Частота генерации меняется (соответственно ошибки хода времени меняются в одну и в другую стороны) с помощью этих регистров. Вносится кодовая поправка и увеличивается (или уменьшается) массив емкостей, включенный с кварцем, ускоряя (замедляя)частоту генерации... в даташите на стр. 14-15 написано про это...

IntelMan 13.09.2016 00:37

The crystal aging offset register provides an 8-bit code to add to the codes in the capacitance array registers. The code is encoded in two's complement. One LSB represents one small capacitor to be switched in or out of the capacitance array at the crystal pins. The offset register is added to the capacitance array register under the following conditions: during a normal temper¬ature conversion, if the temperature changes from the previous conversion, or during a manual user conver¬sion (setting the CONV bit). To see the effects of the aging register on the 32kHz output frequency immedi¬ately, a manual conversion should be started after each aging register change.
Positive aging values add capacitance to the array, slowing the oscillator frequency. Negative values remove capacitance from the array, increasing the oscillator frequency.
The change in ppm per LSB is different at different tem¬peratures. The frequency vs. temperature curve is shift¬ed by the values used in this register. At +25°C, one LSB typically provides about 0.1 ppm change in frequency.

IntelMan 13.09.2016 00:59

На стр.7 даташита есть температурные кривые отклонений частоты генератора микросхемы при старении кварца, соотнесенные с семибитными значениями кодов регистра (-128...+128)... Их естественно в бинарном виде нужно вносить в регистр (типа 0010011). Все изменения желательно контролировать нормальным частотомером на выходе частоты микросхемы...

IntelMan 13.09.2016 01:07

Если я правильно понял даташит, то изменение в коде регистра на один младший разряд отклоняет частоту генерации на 0.1 ppm... Т.е. можно менять текущую (при коде 0000000) частоту на +/- 12.8 ppm, что очень неплохо...

IntelMan 13.09.2016 01:23

С другой стороны, этот регистр дает изменение частоты в реальном пересчете +/- 0,4 Гц (если я не ошибаюсь), что может служить только для точной корректировки часов, а у Вас запредельные отклонения по времени... Возможно искать нужно не здесь...

zzz_spider 14.09.2016 16:56

Еще одна мысль: Может быть каким-то образом на вывод "res" проникают помехи и это приводит к постоянному перезагрузу камня. Ну, а это, хотя, и происходит быстро, останавливает счетчик... Может такое быть?

IntelMan 14.09.2016 21:31

Сложно сказать, не видя схемы и монтажа деталей... Просмотрите во времени на цифровом осциллографе все помехи в критичных точках схемы и возможные срывы (или изменения) частоты генерации... В два канала "заряжайте" его (самописца режим, например), на один генерацию 32 кГц, на другой сигналы с точек, проведите анализ данных...

болт 17.09.2016 00:06

посмотри ютуб по этому модулю. у человека даже из-за не отмытой платы он врал. и по предыдущему модулю тоже есть смысл посмотреть

zzz_spider 17.09.2016 06:14

А можно ссылочку на видео?

болт 18.09.2016 04:40

да забей ds1307 или ds3231. даже на иностранческом языке можно что-то понять если в теме. кстати, в первом модуле должна быть не батарейка, а аккум и это тоже влияет на точность. и цена модуля может колебаться в зависимости от его комплектации. и комменты надо читать

zzz_spider 19.09.2016 04:51

Стоп, Господа. Какая-то ерунда получается. Допустим, часы с экстремальной точностью хода, и зависит это от частоты генератора. Так? Тогда, вопрос: Как влияет на точность хода аккумулятор или батарея? Я все понимаю, что данное явление имеет место быть. Но не понимаю почему? Как? Еще понимаю, что может влиять вывод "резет", постоянно сбрасывая камень в перезагрузку. А другие факторы? Непонятно. Какая точность может быть, если, вдруг, на плату села муха, и, все, точность ушла. Тогда-уж лучше ds1307.

IntelMan 19.09.2016 13:18

Никак батареи или аккумуляторы (при условии их полного заряда)не должны влиять на частоту генерации, они только поддерживают работу устройства в моменты отсутствия напряжения от внешнего источника питания. Они могут "накосячить" только при их глубоком разряде, когда устройство начинает срываться в отключку... Что касается RST, то здесь нужно смотреть всю схему и монтаж на плате на возможные помехи и наводки... Если в схеме есть завязка на микроконтроллер, то нужно разобраться с прошивкой, возможны программные поступления сигнала на RST... Даже, если на плату сядет стая мух, маловероятно, что частота сместиться...)

zzz_spider 20.09.2016 17:12

Сегодня провел очередной эксперимент и обнаружил, что на ноге "res", напряжение около 0! Это как? Сначала погрешил на сопротивление подтяжки. Заменил. Результат тот-же. Такое ощущение, что сама микросхема придавила ногу к земле через встроены полевик. Кстати, с какой целью он там?

IntelMan 20.09.2016 18:52

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

zzz_spider 20.09.2016 18:56

Ок. То есть, Уровень низкий - камень в работе? Или я чего-то не догоняю, или придавили ногу к земле - камень встал?


Текущее время: 15:00. Часовой пояс GMT +3.