Форум РадиоКот https://radiokot.ru/forum/ |
|
Часы на газоразрядных индикаторах https://radiokot.ru/forum/viewtopic.php?f=3&t=3210 |
Страница 2091 из 2422 |
Автор: | MihailDenisov [ Чт окт 12, 2017 13:10:57 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Да, то что просто так рил тайм клок заменить не выйдет это понятно. По поводу -M - точности от неё ожидать вообще не следует, по документации она намного менее точная чем просто 3231 (5ppm против 2ppm соответственно), да и вообще позиционируется как low-cost. Паяльником запаять не проблема, думаю. При наличии паяльника с терморегуляцией, качественного флюса и припоя это не такая уж сложная задача. Ещё у неё есть дополнительные выводы. Интересно будет попробовать использовать вывод, который раз в секунду срабатывает. Подключить на ножку с прерыванием, и по каждому прерыванию обновлять время. Вообще так много идей, что аж стало понятно, что первый мой экземпляр такого устройства выйдет в свет очень не скоро. Потому что не совсем понятно, как реализовать. Пока медленно но верно пишу в свободное время под mega328p на ArduinoIDE. Есть ли у кого общедоступные наработки в этом направлении? Явно попахивает прерываниями в большом количестве. При том динамическая индикация в идеале не должна подтормаживать (тоже делать на прерываниях по таймеру? О_о ). Управление хочется попробовать на энкодере с кнопкой. |
Автор: | Волосатый [ Чт окт 12, 2017 14:27:53 ] | |||
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах | |||
Я под себя написал шикарную библиотеку для работы с этой микрухой, через нее можно делать всё, что душе угодно. Но там местами есть костыли (не влияющие на правильность работы) для корректной работы с железом stm32. И да, при работе с модулем TWI я не пользуюсь прерываниями, как раз, что бы не подвисала индикация. Еще причина тому - часы не такая вещь что бы требовалось максимальная занятость ядра, больше 90% времени программа ничего не делает (ждет события).
|
Автор: | akl [ Чт окт 12, 2017 17:32:38 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
... Явно попахивает прерываниями в большом количестве. При том динамическая индикация в идеале не должна подтормаживать (тоже делать на прерываниях по таймеру? О_о ). Управление хочется попробовать на энкодере с кнопкой. Во всех программах часов использую одно прерывание таймера с автосбросом по совпадению. Этого достаточно. Всё остальное время в течение секунды или минуты для 4 индикаторов камень спит. Например или c часовым кварцем.
|
Автор: | MihailDenisov [ Чт окт 12, 2017 23:01:07 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
И да, при работе с модулем TWI я не пользуюсь прерываниями, как раз, что бы не подвисала индикация. Если я правильно понимаю, то Вы допускаете прерывание во время передачи данных, а так как тактирует ведущий, то на целостность данных это не влияет? И ещё: можно ли как-то использовать эту библиотеку в ArduinoIDE, ну или хотя бы в AtmelStudio. Просто увидел строку #include "mcu_i2c.h", я так понял это заголовочный файл от STM32? Извиняюсь за тупые вопросы, если они такие Я не особо "шарю" в проге и в микроконтроллерах. Так, на уровне новичка Но желание совершенствоваться и создавать имею. |
Автор: | Волосатый [ Пт окт 13, 2017 00:21:42 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Поскольку шина 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 адрес регистра с которого будем получать данные Тут уж вам придется либо что-то изменить в моем коде, либо имеющиеся функции обмена данными переделать под мой формат |
Автор: | crackintosh [ Пт окт 13, 2017 06:40:52 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Извините что встреваю, но зачем липить к STM32 еще и 1307 (или 3231) ? В STM32 есть свой RTC который по отзывам ничем не хуже. |
Автор: | Волосатый [ Пт окт 13, 2017 09:43:11 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Пробовал, хуже. |
Автор: | crackintosh [ Пт окт 13, 2017 10:24:25 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Может проблема не в STM32 а в неправильно написаном коде? Многие проэкты созданы на STM32 без внешки. Пока никто не жаловался. |
Автор: | Волосатый [ Пт окт 13, 2017 14:45:34 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Может и в коде, особо не разбирался, если честно. И не верю я что нестабилизированный кварцевый генератор может хоть чуть-чуть приблизится к точности стабилизированного. Были попытки программной корректировки (правда на AVR), примерно как у akl но попроще, но из-за изменения комнатной температуры все потуги были тщетными. Шло точно месяц, потом резко уходило. П.С. считаю ошибку 10 секунд в год существенной. |
Автор: | uldemir [ Пт окт 13, 2017 16:16:14 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Может проблема не в STM32 а в неправильно написаном коде? Мне стм-ный ртц не понравился. Для установки времени нужно обязательно стопить часы. Хотяя, может у других кристаллов иначе - я делал на 051-м. Зато есть флаг и команда перехода на летнее время и назад. Вот у микрочиповского такого нет. Зато можно крутить время на ходу. Ну и немного дебильный доступ к регистрам, через регистры-указатели. Зато ЦНХ у стм32 имеет меньшую дискретность, чем у ПИК-ов. Хотя, нафига я это пишу?
Многие проэкты созданы на STM32 без внешки. Пока никто не жаловался. |
Автор: | Wandal [ Пт окт 13, 2017 17:19:33 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Цитата: команда перехода на летнее время и назад Несомненно это очень полезная функция. |
Автор: | uldemir [ Пт окт 13, 2017 17:30:41 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
У меня - да. Через пару недель мы переходим на зимнее. |
Автор: | mss_ja [ Пт окт 13, 2017 17:39:03 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Цитата: "uldemir" Хотя, нафига я это пишу? ) |
Автор: | crackintosh [ Пт окт 13, 2017 17:44:48 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Хотя, нафига я это пишу? Как нафига? Для меня, важно например. Я только начал осваивать STM32. Для меня Ваши пояснения важны. |
Автор: | uldemir [ Пт окт 13, 2017 17:57:58 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Мне показалось, что вы, наоборот, попробовали и сделали часы на stm32 и потому недоумеваете. Собственно, снова, если брать многоногий stm32, то нет смысла цеплять 1307. Получается практически тоже самое - есть вход резервного питания и часы продолжают идти, стабильность, как у простого кварца. И только один недостаток - нельзя на ходу крутить время. А если такого вывода нет, как у кристаллов в корпусе LQFP32 (у еще менее ногих часто выводы для кварца отсутствуют, если чо), то снова заморочки с детектированием пропадания основного питалова и переход в режимы пониженного потребления и просыпание из них. Но у ds3231 генератор то - термокомпенсированный. Это уже другой уровень. И тут уже внутренние часики по точности пролетают. Хотя можно заморочиться термостабильностью - но это опять другого класса конструкция. Как сделать "резервную" термостабильность? |
Автор: | watchmaker [ Пт окт 13, 2017 21:27:08 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Цитата: Но у ds3231 генератор то - термокомпенсированный. Это уже другой уровень. И какую точность он с этой компенсацией выдаёт? Если будет давать пять секунд в год в течение двадцати лет - тогда есть какой-то смысл, иначе нафиг оно надо... |
Автор: | Волосатый [ Пт окт 13, 2017 22:01:26 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
У любого кварца уходит частота со временем, и ds3231 не исключение. В даташите написано, ±1ppm в первый год и ±5 с 0 по 10 года. |
Автор: | crackintosh [ Пт окт 13, 2017 23:08:35 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
А кому-то эта суперточность нужна? Даже если за месяц уйдет на 1 мин, я от этого ссума не сойду. Немцы например, решили проблему по другому - синхронизация по WiFi или по радиоканалу NTP. Получается атомная точность |
Автор: | Волосатый [ Сб окт 14, 2017 00:36:30 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Раз вам не нужна, пользуйтесь встроенными в МК средствами, никто вас не заставляет ставить дорогущую микросхему, еще и шину и2ц поднимать Я же процитирую себя. Волосатый писал(а): считаю ошибку 10 секунд в год существенной. Вайфай прикошачивать к часам по-моему более упоротая идея, чем ставить термостабилизированный генератор Но своё мнение никому не навязываю, нравится - ставьте Можно вообще цезиевые часы поставить, вашим внукам их подводить не придется |
Автор: | watchmaker [ Сб окт 14, 2017 01:20:38 ] |
Заголовок сообщения: | Re: Часы на газоразрядных индикаторах |
Цитата: А кому-то эта суперточность нужна? Даже если за месяц уйдет на 1 мин, я от этого ссума не сойду. У меня обычный дешёвый кварц без всякой компенсации спокойно настраивается до 3 секунд в месяц. А вот точнее - уже приходится крутить цифровую настройку один-два раза в год - частота медленно едет в плюс. |
Страница 2091 из 2422 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |