Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кто работал с часами DS3231S?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
invertor79
(DS3231S - Сверхточные RTC со встроенными I2C интерфейсом, TCXO и резонатором)

Спешат на 2 секунды в час.
Измеряю осцилом частоту на ножке 1 (выход встроенного генератора), вместо 32768 Гц там 32258 Гц.

В часах есть регистр Aging Offset для корректировки частоты генератора, его изменение от 0x7F (127) до 0xFF (-127) никак не влияет на частоту генератора (самый старший бит регистра - знак).

Что я делаю не так, не пойму?
invertor79
Странно - за ночь, часы в выключенном приборе (при работе от резервной батарейки) перестали спешить.
Включаю прибор - опять спешат...

Похоже спешат они от повышенной температуры.
Когда прибор выключен, температура в DS3231 (считываю внутренний термодатчик) +20 град. при работающем +29...32 град.
Но ведь часы вроде как термокомпенсированные? Такое впечатление, что внутренняя термокомпенсация не работает.
Опрашиваю часы по прерыванию от них раз в секунду.

Поменял микросхему - та же фигня.
DS
Я пользую такие часы, все работает, как задумано, даже специально их грел, не уходили. Что то у Вас в алгоритме работы с I2C неправильно, пишется в регистры какая-нибудь хрень. И питание проверьте обязательно - внутренней перестройкой нельзя загнать генератор так далеко. Это он уже не на кварце, а на каких то RC генерит. Вобщем, не в режиме микросхема.
rezident
Если думаете что причина в температуре, то выключенный прибор подержите при повышенной температуре и сравните. Только мне кажется, что причина в софте. Может вы какие-то неправильные команды подаете? Или, например, случайно секунды каждый раз сбрасываете при чтении.
Kuzmi4
У меня похожие вещи творились на НТ1381 - там на кварц надо было влепить по н-цать пикофарад - тогда стали нормально ити. Правда тогда у мнея разброс был - то спешили , то отставали..
DS
В 3231 кварц внутри микросхемы. Еще раз обращаю внимание - кварц не может генерить на частоте 32258 Гц, какая бы там не стояла подстройка. Косяк, значит капитальный.
xemul
Цитата(invertor79 @ May 3 2007, 15:22) *
(DS3231S - Сверхточные RTC со встроенными I2C интерфейсом, TCXO и резонатором)

Спешат на 2 секунды в час.
Измеряю осцилом частоту на ножке 1 (выход встроенного генератора), вместо 32768 Гц там 32258 Гц.

Часы при 32258 Гц тактовой должны отставать, а не спешить. Наверное, просто тщательнее надоsmile.gif
invertor79
Цитата(DS @ May 4 2007, 16:19) *
Я пользую такие часы, все работает, как задумано, даже специально их грел, не уходили. Что то у Вас в алгоритме работы с I2C неправильно, пишется в регистры какая-нибудь хрень. И питание проверьте обязательно - внутренней перестройкой нельзя загнать генератор так далеко. Это он уже не на кварце, а на каких то RC генерит. Вобщем, не в режиме микросхема.


А что может быть с питанием? Блокировочные кондеры стоят, 5В стабильно держится. На I2C у меня одновременно сидели граф. индикатор TIC149 и емкостная клава на AD7142 - работали нормально, убрал их на другую линию I2C, теперь часы одни на линии сидят. Регистры после записи читаю - в них то, что записал туда. Температура из часов читается нормально. При изменении частоты SQW, частота меняется правильно.
Счас питание протянул отдельно толстыми проводами прям от кондеров стабилизатора - то же.

Можно ваш код глянуть как вы с часами обмениваетесь (в какой последовательности регистры пишите читаете и т.д.), что у вас в Aging Offset записывается при инициализации?

Цитата(xemul @ May 4 2007, 13:43) *
Часы при 32258 Гц тактовой должны отставать, а не спешить. Наверное, просто тщательнее надоsmile.gif


Да, насчет частоты я погорячился, осциллограф старый, видать раскалибровался и фигню показывает...
Контроллер у меня работает на 16МГц, счас им померял частоту на выводе SQW при 1024 Гц - показания скачут от 1023,87-1025 Гц, смотрю осцилом, действительно, период сигнала дергается.

Бред - часы стали спешить секунд на 10 ежеминутно.
DS
Я ничего дополнительно в регистры не пишу, только включаю - выключаю генерацию секундного интервала на выходе. TWI аппаратный. Вы все-таки померяйте хорошим частотомером частоту генератора, может дело в каких нибудь косяках з записью регистров ?
Питание я имел в виду не толстыми проводами - к этому часы устойчивы, а напряжения в нормальном диапазоне и на дежурном и на основном ?

Дергается частота в момент обмена с контроллером или сама по себе ? Не может быть, что Вы что-нибудь все время пишите в часы и у них от этого счетчики сбиваются ?
invertor79
Цитата(DS @ May 4 2007, 20:12) *
Я ничего дополнительно в регистры не пишу, только включаю - выключаю генерацию секундного интервала на выходе. TWI аппаратный. Вы все-таки померяйте хорошим частотомером частоту генератора, может дело в каких нибудь косяках з записью регистров ?
Питание я имел в виду не толстыми проводами - к этому часы устойчивы, а напряжения в нормальном диапазоне и на дежурном и на основном ?

Дергается частота в момент обмена с контроллером или сама по себе ? Не может быть, что Вы что-нибудь все время пишите в часы и у них от этого счетчики сбиваются ?


Частотомер хороший достать без вариантов. sad.gif
Напряжение основное стабильное +5В - шума, пульсаций практически нет.
Резервное +3В, CR2032+0,1мкф.

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

Уже думал, может это резюки на SDA SCL по 1к так влияют? Поставил 5,6к - нифига...
Ноги свободные на земле - по даташиту...

Короче, часы пока заброшу и займусь другими частями проекта, на выходных закажу М41Т00М6 (не знаю что еще есть с калибровкой и не maxim-dallas smile.gif ) и через недельку попробую их вместо DS3231 прицепить на соплях.

Кстати обе глючные DS3231SN достал из одной ленты, мож партия с браком?
DS
Частота от калибровки меняется на миллионные доли, их без частотомера не увидеть. У меня питается так же, как у Вас. А каких-нибудь втекающих больших токов в ноги микросхемы, типа сброса, нету ? Это может влиять на генератор. А при батарейном питании ток не течет, и все нормально работает. Если работает от батарейки нормально, на брак не похоже. попробуйте основное питание тоже с батарейки подать.
invertor79
Цитата(DS @ May 4 2007, 20:44) *
Частота от калибровки меняется на миллионные доли, их без частотомера не увидеть. У меня питается так же, как у Вас. А каких-нибудь втекающих больших токов в ноги микросхемы, типа сброса, нету ? Это может влиять на генератор. А при батарейном питании ток не течет, и все нормально работает. Если работает от батарейки нормально, на брак не похоже. попробуйте основное питание тоже с батарейки подать.


Никаких втекающих больших токов нет. Сброс висит свободно (как по даташиту). Линию SQW специально разорвал между мегой и часами и воткнул в разрыв резистор 100 Ом. Посмотрел падение на нём. Никаких необычных выбросов нет. То-же сделал с SDA SCL - ничего...


О! Вчера вечером подал питание от стабилизатора +3,3В (только на ногу питания, резюки на I2C, SQW остались притянуты к +5В), оставил на ночь включенными.
Сейчас смотрю - идут точно.
Дефект внутреннего стабилизатора генератора получается?
DS
А дежурное и основное у Вас местами не перепутано ? Дело в том, что микросхема предназначена для работы в режиме основное >= дежурного. Хотя, судя по datasheet должна работать в любом случае. Без батарейки от пяти вольт также чудит ?
invertor79
Цитата(DS @ May 6 2007, 11:55) *
А дежурное и основное у Вас местами не перепутано ?

biggrin.gif
Шутите? Я не пью столько...
alex1234
Работаю с похожей микросхемой ds3232. Собрал схему - часы спешат. Посмотрел на частоту 8,192 кГц (выход INT/SQW) - заметно "невооружённым глазом" что частота "скачет", некоторые периоды короткие.

Причина - я не поставил кондёр на Vcc, хотя в даташите на это указывали.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.