Например TDA7294

Форум РадиоКот :: Просмотр темы - Часы на газоразрядных индикаторах
Форум РадиоКот
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% времени программа ничего не делает (ждет события).

Вложения:
ds3231.h [1.95 KiB]
Скачиваний: 341
ds3231.c [7.51 KiB]
Скачиваний: 464

Автор:  akl [ Чт окт 12, 2017 17:32:38 ]
Заголовок сообщения:  Re: Часы на газоразрядных индикаторах

... Явно попахивает прерываниями в большом количестве. При том динамическая индикация в идеале не должна подтормаживать (тоже делать на прерываниях по таймеру? О_о ). Управление хочется попробовать на энкодере с кнопкой.
Во всех программах часов использую одно прерывание таймера с автосбросом по совпадению. Этого достаточно. Всё остальное время в течение секунды или минуты для 4 индикаторов камень спит. Например или c часовым кварцем.

Автор:  MihailDenisov [ Чт окт 12, 2017 23:01:07 ]
Заголовок сообщения:  Re: Часы на газоразрядных индикаторах

И да, при работе с модулем TWI я не пользуюсь прерываниями, как раз, что бы не подвисала индикация.

Если я правильно понимаю, то Вы допускаете прерывание во время передачи данных, а так как тактирует ведущий, то на целостность данных это не влияет?
И ещё: можно ли как-то использовать эту библиотеку в ArduinoIDE, ну или хотя бы в AtmelStudio. Просто увидел строку #include "mcu_i2c.h", я так понял это заголовочный файл от STM32?
Извиняюсь за тупые вопросы, если они такие :? Я не особо "шарю" в проге и в микроконтроллерах. Так, на уровне новичка :D Но желание совершенствоваться и создавать имею.

Автор:  Волосатый [ Пт окт 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 а в неправильно написаном коде?
Многие проэкты созданы на STM32 без внешки. Пока никто не жаловался.
Мне стм-ный ртц не понравился. Для установки времени нужно обязательно стопить часы. Хотяя, может у других кристаллов иначе - я делал на 051-м. Зато есть флаг и команда перехода на летнее время и назад. Вот у микрочиповского такого нет. Зато можно крутить время на ходу. Ну и немного дебильный доступ к регистрам, через регистры-указатели. Зато ЦНХ у стм32 имеет меньшую дискретность, чем у ПИК-ов. Хотя, нафига я это пишу?

Автор:  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 секунд в год существенной.

Вайфай прикошачивать к часам по-моему более упоротая идея, чем ставить термостабилизированный генератор :shock: :))) Но своё мнение никому не навязываю, нравится - ставьте :) Можно вообще цезиевые часы поставить, вашим внукам их подводить не придется :))) :facepalm:

Автор:  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/