Часы на газоразрядных индикаторах

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 42
Зарегистрирован: Пн ноя 17, 2014 21:35:05
Откуда: Воронеж / Москва

Сообщение MihailDenisov »

Да, то что просто так рил тайм клок заменить не выйдет это понятно.
По поводу -M - точности от неё ожидать вообще не следует, по документации она намного менее точная чем просто 3231 (5ppm против 2ppm соответственно), да и вообще позиционируется как low-cost.
Паяльником запаять не проблема, думаю. При наличии паяльника с терморегуляцией, качественного флюса и припоя это не такая уж сложная задача.
Ещё у неё есть дополнительные выводы. Интересно будет попробовать использовать вывод, который раз в секунду срабатывает. Подключить на ножку с прерыванием, и по каждому прерыванию обновлять время.
Вообще так много идей, что аж стало понятно, что первый мой экземпляр такого устройства выйдет в свет очень не скоро. Потому что не совсем понятно, как реализовать. Пока медленно но верно пишу в свободное время под mega328p на ArduinoIDE. Есть ли у кого общедоступные наработки в этом направлении? Явно попахивает прерываниями в большом количестве. При том динамическая индикация в идеале не должна подтормаживать (тоже делать на прерываниях по таймеру? О_о ). Управление хочется попробовать на энкодере с кнопкой.
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

Я под себя написал шикарную библиотеку для работы с этой микрухой, через нее можно делать всё, что душе угодно. Но там местами есть костыли (не влияющие на правильность работы) для корректной работы с железом stm32.
И да, при работе с модулем TWI я не пользуюсь прерываниями, как раз, что бы не подвисала индикация. Еще причина тому - часы не такая вещь что бы требовалось максимальная занятость ядра, больше 90% времени программа ничего не делает (ждет события).
Вложения
ds3231.h
(1.95 КБ) 364 скачивания
ds3231.c
(7.51 КБ) 484 скачивания
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Реклама
akl
Друг Кота
Сообщения: 4463
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

[uquote="MihailDenisov",url="/forum/viewtopic.php?p=3204565#p3204565"]... Явно попахивает прерываниями в большом количестве. При том динамическая индикация в идеале не должна подтормаживать (тоже делать на прерываниях по таймеру? О_о ). Управление хочется попробовать на энкодере с кнопкой.[/uquote]Во всех программах часов использую одно прерывание таймера с автосбросом по совпадению. Этого достаточно. Всё остальное время в течение секунды или минуты для 4 индикаторов камень спит. Например или c часовым кварцем.
Открыл глаза
Аватара пользователя
Сообщения: 42
Зарегистрирован: Пн ноя 17, 2014 21:35:05
Откуда: Воронеж / Москва

Сообщение MihailDenisov »

[uquote="Волосатый",url="/forum/viewtopic.php?p=3204641#p3204641"]И да, при работе с модулем TWI я не пользуюсь прерываниями, как раз, что бы не подвисала индикация.[/uquote]
Если я правильно понимаю, то Вы допускаете прерывание во время передачи данных, а так как тактирует ведущий, то на целостность данных это не влияет?
И ещё: можно ли как-то использовать эту библиотеку в ArduinoIDE, ну или хотя бы в AtmelStudio. Просто увидел строку #include "mcu_i2c.h", я так понял это заголовочный файл от STM32?
Извиняюсь за тупые вопросы, если они такие :? Я не особо "шарю" в проге и в микроконтроллерах. Так, на уровне новичка :D Но желание совершенствоваться и создавать имею.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

Поскольку шина i2c построена на аппаратных возможностях контроллера, другие прерывания не будут мешать передаче данных. Максимум передача текущего байта закончится и через какое-то время обмен данными возобновится после выхода из прерывания.
"mcu_i2c.h" тоже сам писАл из чьей-то библиотеки, специально под железо STM32. У вас это будет своя библиотека. В коде используются всего 2 функции:

Код: Выделить всё

mcu_i2c_write_byte(DS3231_ADDRESS_WRITE, n, send_data);
// отправить данные
// DS3231_ADDRESS_WRITE это адрес чипа на шине - 0b11010000
// n это количество передаваемых на чип байт
// send_data массив с данными

mcu_i2c_read_addr_byte(DS3231_ADDRESS_READ, n, raw_data, byte_address);
// считать данные по адресу
// DS3231_ADDRESS_READ это 0b11010001
// n это количество получаемых с чипа байт
// raw_data массив в который будут записаны данные
// byte_address адрес регистра с которого будем получать данные
Тут уж вам придется либо что-то изменить в моем коде, либо имеющиеся функции обмена данными переделать под мой формат :)
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 102
Зарегистрирован: Вс июн 10, 2012 10:40:38
Откуда: Магдебург, DE

Сообщение crackintosh »

Извините что встреваю, но зачем липить к STM32 еще и 1307 (или 3231) ?
В STM32 есть свой RTC который по отзывам ничем не хуже.
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

Пробовал, хуже.
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 102
Зарегистрирован: Вс июн 10, 2012 10:40:38
Откуда: Магдебург, DE

Сообщение crackintosh »

Может проблема не в STM32 а в неправильно написаном коде?
Многие проэкты созданы на STM32 без внешки. Пока никто не жаловался.
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

Может и в коде, особо не разбирался, если честно. И не верю я что нестабилизированный кварцевый генератор может хоть чуть-чуть приблизится к точности стабилизированного. Были попытки программной корректировки (правда на AVR), примерно как у akl но попроще, но из-за изменения комнатной температуры все потуги были тщетными. Шло точно месяц, потом резко уходило.
П.С. считаю ошибку 10 секунд в год существенной.
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7362
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

[uquote="crackintosh",url="/forum/viewtopic.php?p=3205509#p3205509"]Может проблема не в STM32 а в неправильно написаном коде?
Многие проэкты созданы на STM32 без внешки. Пока никто не жаловался.[/uquote]Мне стм-ный ртц не понравился. Для установки времени нужно обязательно стопить часы. Хотяя, может у других кристаллов иначе - я делал на 051-м. Зато есть флаг и команда перехода на летнее время и назад. Вот у микрочиповского такого нет. Зато можно крутить время на ходу. Ну и немного дебильный доступ к регистрам, через регистры-указатели. Зато ЦНХ у стм32 имеет меньшую дискретность, чем у ПИК-ов. Хотя, нафига я это пишу?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Грызет канифоль
Сообщения: 260
Зарегистрирован: Сб окт 31, 2015 03:14:43

Сообщение Wandal »

команда перехода на летнее время и назад
Несомненно это очень полезная функция.
Друг Кота
Аватара пользователя
Сообщения: 7362
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

У меня - да. Через пару недель мы переходим на зимнее.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Друг Кота
Аватара пользователя
Сообщения: 4323
Зарегистрирован: Сб дек 24, 2011 05:02:33
Откуда: Киев

Сообщение mss_ja »

"uldemir" Хотя, нафига я это пишу?
)
Встал на лапы
Аватара пользователя
Сообщения: 102
Зарегистрирован: Вс июн 10, 2012 10:40:38
Откуда: Магдебург, DE

Сообщение crackintosh »

[uquote="uldemir",url="/forum/viewtopic.php?p=3205834#p3205834"]Хотя, нафига я это пишу?[/uquote]

Как нафига? Для меня, важно например. Я только начал осваивать STM32. Для меня Ваши пояснения важны.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7362
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Мне показалось, что вы, наоборот, попробовали и сделали часы на stm32 и потому недоумеваете. Собственно, снова, если брать многоногий stm32, то нет смысла цеплять 1307. Получается практически тоже самое - есть вход резервного питания и часы продолжают идти, стабильность, как у простого кварца. И только один недостаток - нельзя на ходу крутить время. А если такого вывода нет, как у кристаллов в корпусе LQFP32 (у еще менее ногих часто выводы для кварца отсутствуют, если чо), то снова заморочки с детектированием пропадания основного питалова и переход в режимы пониженного потребления и просыпание из них.

Но у ds3231 генератор то - термокомпенсированный. Это уже другой уровень. И тут уже внутренние часики по точности пролетают. Хотя можно заморочиться термостабильностью - но это опять другого класса конструкция. Как сделать "резервную" термостабильность?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Поставщик валерьянки для Кота
Сообщения: 2200
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков

Сообщение watchmaker »

Но у ds3231 генератор то - термокомпенсированный. Это уже другой уровень.
И какую точность он с этой компенсацией выдаёт? Если будет давать пять секунд в год в течение двадцати лет - тогда есть какой-то смысл, иначе нафиг оно надо...
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

У любого кварца уходит частота со временем, и ds3231 не исключение. В даташите написано, ±1ppm в первый год и ±5 с 0 по 10 года.
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 102
Зарегистрирован: Вс июн 10, 2012 10:40:38
Откуда: Магдебург, DE

Сообщение crackintosh »

А кому-то эта суперточность нужна? Даже если за месяц уйдет на 1 мин, я от этого ссума не сойду. :-)
Немцы например, решили проблему по другому - синхронизация по WiFi или по радиоканалу NTP. Получается атомная точность :-)
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1288
Зарегистрирован: Пн апр 14, 2008 12:54:35
Откуда: Город ГЕРОЙ Ленинград

Сообщение Волосатый »

Раз вам не нужна, пользуйтесь встроенными в МК средствами, никто вас не заставляет ставить дорогущую микросхему, еще и шину и2ц поднимать :))
Я же процитирую себя.
Волосатый писал(а):считаю ошибку 10 секунд в год существенной.
Вайфай прикошачивать к часам по-моему более упоротая идея, чем ставить термостабилизированный генератор :shock: :))) Но своё мнение никому не навязываю, нравится - ставьте :) Можно вообще цезиевые часы поставить, вашим внукам их подводить не придется :))) :facepalm:
Опыт приходит сразу после того, как он был нужен...
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2200
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков

Сообщение watchmaker »

А кому-то эта суперточность нужна? Даже если за месяц уйдет на 1 мин, я от этого ссума не сойду.
У меня обычный дешёвый кварц без всякой компенсации спокойно настраивается до 3 секунд в месяц. А вот точнее - уже приходится крутить цифровую настройку один-два раза в год - частота медленно едет в плюс.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Контактная информация:
Ответить

Вернуться в «Умные мысли»