Часы на газоразрядных индикаторах
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Коты, кто использует DS3231, приходилось трогать регистр Aging Offset, что бы часы шли точнее?
Собрал несколько экземпляров, всем потребовалось поднастроить этот регистр в районе -23 +/-3, у всех по-разному.
Собрал несколько экземпляров, всем потребовалось поднастроить этот регистр в районе -23 +/-3, у всех по-разному.
Опыт приходит сразу после того, как он был нужен...
- Реклама
- SLvik
- Друг Кота
- Сообщения: 7622
- Зарегистрирован: Ср май 28, 2008 00:32:54
- Откуда: г. Россия
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Я делал такую операцию, но с другой микросхемой DS1340.
Написал прогу чтобы можно было подстраивать ход часов.

Написал прогу чтобы можно было подстраивать ход часов.
Очень нравится неон

Мой проектик часиков с термометром на любых 6ти газоразрядных лампах + куча функций
Ещё один - попроще

Светодиодный проект

My video on youtube nic SLvik78
Мой проектик часиков с термометром на любых 6ти газоразрядных лампах + куча функций
Ещё один - попроще
Светодиодный проект
My video on youtube nic SLvik78
- Topaloff
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Вс фев 03, 2013 00:47:59
- Откуда: Киев
Re: Часы на газоразрядных индикаторах
Волосатый, а как вы контролируете ход ваших часов? Чипы вряд ли калибруются, значит все разные. Термокопменсация работает, а частота от эталонной может отличатся. 
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Есть такой сайт https://time100.ru с эталонным временем. Насколько я понял, страница в реальном времени синхронизируется с сервером, поэтому на странице всегда актуальное время. Сравниваю время на часах с временем страницы, на глаз изменяю волшебный регистр и подвожу часы, что бы шли ровно со страницей и глазу разницу было не заметно. Повторяю процедуру раз в сутки или несколько суток до прекращения ухода.
Я как-то спрашивал здесь кто-как калибрует, получил ответ, что хорошим частотомером. Но для меня покупка такого агрегата не вариант и подумал сделать тестовую плату с МК и DS3231 с выведенным сигналом SQW на разъем. Отдать другу, который работает в конторе с доступом к хорошим частотомерам и он откалибрует регистр по сигналу SQW, МК запомнит это значение и при каждом включении будет записывать его в регистр aging. Таким образом, получу точный источник секундных интервалов. Далее на своих часах подпаяться к SQW и лог. анализатором наблюдать период между, к примеру, фронтами импульсов с часов и с калиброванной микры, калибровать вручную и как только период перестал изменятся, часы откалиброваны.
В моих часах этот регистр можно изменить из пользовательского меню, если нужно
Я как-то спрашивал здесь кто-как калибрует, получил ответ, что хорошим частотомером. Но для меня покупка такого агрегата не вариант и подумал сделать тестовую плату с МК и DS3231 с выведенным сигналом SQW на разъем. Отдать другу, который работает в конторе с доступом к хорошим частотомерам и он откалибрует регистр по сигналу SQW, МК запомнит это значение и при каждом включении будет записывать его в регистр aging. Таким образом, получу точный источник секундных интервалов. Далее на своих часах подпаяться к SQW и лог. анализатором наблюдать период между, к примеру, фронтами импульсов с часов и с калиброванной микры, калибровать вручную и как только период перестал изменятся, часы откалиброваны.
В моих часах этот регистр можно изменить из пользовательского меню, если нужно
Опыт приходит сразу после того, как он был нужен...
- Topaloff
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Вс фев 03, 2013 00:47:59
- Откуда: Киев
Re: Часы на газоразрядных индикаторах
Респект. Я поставил программу на телефон. Тоже с временем в Сети сравниваю. Сделал синхронизацию для любых часов по wifi, но это esp8266 нужно в каждые часы ставить. Витает идея сделать прибор, который будет сравнивать частоту 1Гц от esp8266 или GPS или просто DS3231 с подопытными часами и на дисплей выводить, на сколько спешат/отстают. Было бы хорошо обойтись без логического анализатора, сделать самостоятельное устройство. Нужно начинать... 
- Реклама
- RoboC
- Мудрый кот
- Сообщения: 1795
- Зарегистрирован: Ср апр 04, 2012 09:55:53
- Откуда: Северодонецк
- Контактная информация:
Re: Часы на газоразрядных индикаторах
По температуре они будут плавать 100℅.
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Re: Часы на газоразрядных индикаторах
Пользуюсь таким. По мне, более официально.
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Так это ясень пеньRoboC писал(а):По температуре они будут плавать 100℅.
Предполагается, что калибровка калибровочных и калибруемых микросхем будет происходить при комнатной температуре, с выдержкой минимум полчаса после включения. Таким образом, калибруемые микросхемы будут откалиброваны в стандартных и нормальных температурных условиях для их эксплуатации. Даже если комнатная температура изменится на 1 градус, особой погоды это не сделает, в конечном счете мы же не в космос часы запускаем
Мной этот способ особо не изучен, но считаю, что задержки в прохождении сигнала (тобиш пинг) будет различаться на единицы-десятки милисекунд, что сведет долговременную калибровку на нет. Поправьте меня, если не прав.Topaloff писал(а):Сделал синхронизацию для любых часов по wifi
С самого начала была такая идея, пару десятков страниц назад я эту идею поднимал. Но так как кот создание жутко ленивое, было решено пойти простым путем - калиброванная DS3231 и лог. анализаторTopaloff писал(а):Витает идея сделать прибор, который будет сравнивать частоту 1Гц от esp8266 или GPS или просто DS3231 с подопытными часами и на дисплей выводить, на сколько спешат/отстают.
akl, посмотрел ссылку, там есть такая фраза
что для однократной калибровки явно много. Толи дело синхронизировать периодически, собственно для чего протокол NTP и был придуман.В версии 4 способен достигать точности 10 мс
Опыт приходит сразу после того, как он был нужен...
Re: Часы на газоразрядных индикаторах
Причем здесь NTP. Речь шла о визуальном сравнении настраиваемых часов с эталонным временем.Волосатый писал(а):Сравниваю время на часах с временем страницы, на глаз изменяю волшебный регистр и подвожу часы, что бы шли ровно со страницей и глазу разницу было не заметно. Повторяю процедуру раз в сутки или несколько суток до прекращения ухода.
Сомневаюсь, что логический анализатор будет проще периодометра. Все равно, должна быть опора. Вы же из Питера, где мне удалось купить выбраковку что-то типа ГИАЦИНТА. Частота у него после выбрасывания всех цепей подстройки частоты оказалась 5'000'004,786Гц. А пофиг, забил это число в программу и получал точные 1000 секунд. Мне спешить некуда и иметь каждые 16,(6)минуты точную отсечку вполне устраивало. Это было давно, сейчас есть стандарт частоты, от которого тактируется частотомер и процедура настройки часов заметно упрощается.Волосатый писал(а):...было решено пойти простым путем - калиброванная DS3231 и лог. анализатор
Предположим, что есть такой прибор и с его помощью получили отклонение генерации 1 секунды. И..? Ладно если в качестве генератора используется DS-ка с регистром подстройки... Можно часостроителю в момент изменения минуты на настраиваемых часах сделать Print Screen сайта опорного времени; через сутки в такой же момент еще один снимок экрана. Полученное абсолютное отклонение пересчитывается в ppm, которое заносится в DS323x или делается программная коррекция. Т.е. необходимость в приборе сравнения отпадает.Topaloff писал(а):Витает идея сделать прибор, который будет сравнивать частоту 1Гц от esp8266 или GPS или просто DS3231 с подопытными часами и на дисплей выводить, на сколько спешат/отстают. Было бы хорошо обойтись без логического анализатора, сделать самостоятельное устройство. Нужно начинать...
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Там он ни причем. На глаз определять время можно откуда угодно. Про NTP речь зашла как о источнике точных секундных интервалов для калибратора.akl писал(а):Причем здесь NTP.
Логический анализатор есть и стоит 500 рублей у китайских братьев. Его точность совершенно побоку, нам главное уловить изменение времени между спадами двух сигналов с калиброванной и калибруемой DS3231. Можно кстати взять цифровой осцилл и ловить разницу им.akl писал(а):Сомневаюсь, что логический анализатор будет проще периодометра. Все равно, должна быть опора.
Как я уже озвучил, сам протокол допускает ошибку до 10мс, так что этот метод не годится.akl писал(а):на настраиваемых часах сделать Print Screen сайта опорного времени
Опыт приходит сразу после того, как он был нужен...
Re: Часы на газоразрядных индикаторах
Здравствуйте жители данного форума! Давно хотел собрать часы на ин 12 но като не было времени и ламп.Сейчас преобрел 6 ламп ин12 !!!! Как бы мне раздобыть архивчик с печаткой прошивкой и тд?
- Topaloff
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Вс фев 03, 2013 00:47:59
- Откуда: Киев
Re: Часы на газоразрядных индикаторах
http://robocua.blogspot.com/ Спасибо RoboC!
и https://www.google.com
Копаю Aging Offset для DS3231. Программист с меня слабый. Использую библиотеку для DS1307.
Как правильно записать в регистр значение? rtc_write(0x10, -128); ?? Или побитово? Как быть со знаком?
Люди так калибруют. Какой нужен частотомер для таких задач?
Копаю Aging Offset для DS3231. Программист с меня слабый. Использую библиотеку для DS1307.
Как правильно записать в регистр значение? rtc_write(0x10, -128); ?? Или побитово? Как быть со знаком?
Люди так калибруют. Какой нужен частотомер для таких задач?
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Зависит от реализации библиотеки. Скорее всего формальный параметр там целочисленное 8битное. Вам надо записать 8битное со знаком. Проще будет сделать такую же функцию, но которая принимает 8битное число со знаком.Topaloff писал(а):rtc_write(0x10, -128); ?? Или побитово?
Посмотрел свой код, я передаю число со знаком в функцию, которая принимает беззнаковое число, разрядность 8 бит. Все работает правильно. Компилятор GCC. На других может работать по-другому.
А можно просто сделать преобразование из знакового в беззнаковое:
Код: Выделить всё
unsigned = (~ signed) + 1;Опыт приходит сразу после того, как он был нужен...
- Topaloff
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Вс фев 03, 2013 00:47:59
- Откуда: Киев
Re: Часы на газоразрядных индикаторах
В даташите пишут, что "The code is encoded in two’s complement, with bit 7 representing the sign bit." Насколько я понял, число записывается обычное, а знак ставится на 7 бите. Как это правильно написать? А я изначально завел signed char. И пишу rtc_write(0x10, signed char); Не ясно, как нужно...
add to or subtract from the codes in the capacitance array
registers. The code is encoded in two’s complement, with
bit 7 representing the sign bit. One LSB represents one
small capacitor to be switched in or out of the capacitance
array at the crystal pins. The aging offset register capacitance
value is added or subtracted from the capacitance
value that the device calculates for each temperature
compensation. The offset register is added to the capacitance
array during a normal temperature conversion, if
the temperature changes from the previous conversion, or
during a manual user conversion (setting the CONV bit).
To see the effects of the aging register on the 32kHz output
frequency immediately, 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 temperatures.
The frequency vs. temperature curve is shifted
by the values used in this register. At +25°C, one LSB
typically provides about 0.1ppm change in frequency.
Use of the aging register is not needed to achieve the
accuracy as defined in the EC tables, but could be used
to help compensate for aging at a given temperature.
See the Typical Operating Characteristics section for a
graph showing the effect of the register on accuracy over
temperature.
if (PIND.0==0 && PIND.1==0){ //Коррекция хода часов
pik();
while (PIND.0==0 || PIND.1==0);
on=0b0011;
aging_offset=rtc_read(0x10);
while(1){
if(PIND.0==0 && aging_offset<99)aging_offset++;
if(PIND.1==0 && aging_offset>-99)aging_offset--;
if(aging_offset<0){
min=~aging_offset+1;
DOT_ON;
}
else{
min=aging_offset;
DOT_OFF;
}
delay_ms(200);
if (PIND.0==0 && PIND.1==0){
rtc_write(0x10,aging_offset);
on=0b1111;
break;
}
}
Спойлер
The aging offset register takes a user-provided value toadd to or subtract from the codes in the capacitance array
registers. The code is encoded in two’s complement, with
bit 7 representing the sign bit. One LSB represents one
small capacitor to be switched in or out of the capacitance
array at the crystal pins. The aging offset register capacitance
value is added or subtracted from the capacitance
value that the device calculates for each temperature
compensation. The offset register is added to the capacitance
array during a normal temperature conversion, if
the temperature changes from the previous conversion, or
during a manual user conversion (setting the CONV bit).
To see the effects of the aging register on the 32kHz output
frequency immediately, 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 temperatures.
The frequency vs. temperature curve is shifted
by the values used in this register. At +25°C, one LSB
typically provides about 0.1ppm change in frequency.
Use of the aging register is not needed to achieve the
accuracy as defined in the EC tables, but could be used
to help compensate for aging at a given temperature.
See the Typical Operating Characteristics section for a
graph showing the effect of the register on accuracy over
temperature.
Спойлер
Не пинать!!!if (PIND.0==0 && PIND.1==0){ //Коррекция хода часов
pik();
while (PIND.0==0 || PIND.1==0);
on=0b0011;
aging_offset=rtc_read(0x10);
while(1){
if(PIND.0==0 && aging_offset<99)aging_offset++;
if(PIND.1==0 && aging_offset>-99)aging_offset--;
if(aging_offset<0){
min=~aging_offset+1;
DOT_ON;
}
else{
min=aging_offset;
DOT_OFF;
}
delay_ms(200);
if (PIND.0==0 && PIND.1==0){
rtc_write(0x10,aging_offset);
on=0b1111;
break;
}
}
Re: Часы на газоразрядных индикаторах
Число представлено в обычном дополнительном коде с диапазоном коррекции -12,8...+12,7ppm.Topaloff писал(а):В даташите пишут, что "The code is encoded in two’s complement, with bit 7 representing the sign bit." Насколько я понял, число записывается обычное, а знак ставится на 7 бите.
Шаманство какое-то. 12*32768/100'000'000=0,00393216Гц соответствует LSB регистра коррекции для DS3232. Как ему удается менять с шагом 0,001Гц непонятно. Для DS3231 чуток получше 32768/10'000'000=0,0032768, но все равно больше 0,001Гц. По мне, проще найти стандартный частотомер, перевести в режим измерения периода (1,10, 100, 1'000, 10'000) и подать на него меандр 1Гц с DS-ки, задействовав лапу INT/SQW оной. Меняя значения регистра коррекции добиться максимального приближения к 1 секунде.Topaloff писал(а):Люди так калибруют. Какой нужен частотомер для таких задач?
Re: Часы на газоразрядных индикаторах
Как думаете реализовать корректировку? Править прошивку или уже в готовых часах кнопками? Хорошая идея, частотомер взять не проблема.Topaloff писал(а):Копаю Aging Offset для DS3231.
- Topaloff
- Потрогал лапой паяльник
- Сообщения: 349
- Зарегистрирован: Вс фев 03, 2013 00:47:59
- Откуда: Киев
Re: Часы на газоразрядных индикаторах
Уже написал сервисное меню. Остается проверить и отладить, пронаблюдать, как влияют настройки. Естественно, будет работать только в ds3231.
Re: Часы на газоразрядных индикаторах
ну, про 1307 вполне можно забыть. Во всяком случае в этом проекте.Topaloff писал(а):Уже написал сервисное меню. Остается проверить и отладить, пронаблюдать, как влияют настройки. Естественно, будет работать только в ds3231.


