Здравствуйте уважаемые коты. .
Есть потребность в изготовлении задающего генератора с цифровой коррекцией хода для электронных часов на советских БИС . Так как знания в программировании МК у меня нулевые, поэтому и прошу помощи. Требуется программа для МК позволяющая выдавать на выходе МК сигнал частотой 32768Гц. с возможностью коррекции/подстройки с помощью джамперов. Так как пишу в теме про PIC, значит программа в идеале могла бы быть под PIC16F628. Проект далеко не коммерческий, поэтому пишу в этом разделе, а не в "Есть работа". Уверен что программа простейшая, и не составит ни какого труда для опытного программиста. Может кто откликнется?
P.S технические подробности обязательно сообщу, если кто заинтересуется/предложит помощь.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Так вроде и у советских часовых микрух входы генератора под такой кварц имелись...
Зачем дополнительную городушку, да еще с цифровой коррекцией коррекцией для бытового варианта цеплять? Тем более, что с согласованием уровней тоже поблемы повылазить могут (для той же 145-й серии). И ежли на МК, так может проще сразу секунд-генератор, чем дробленку выдавать - базовые генераторы МК предпочитают целые величины - даже с дробленкой для UART и то иногда проблемы бывають...
BOB51 писал(а):Так вроде и у советских часовых микрух входы генератора под такой кварц имелись
Имеются естественно. Генератор нужен для модификации уже готовых часов с целью повышения точности хода. Согласование уровней и т.д. и т.п. для меня не представляет абсолютно никаких проблем. Нужна прошивка, вот с этим беда.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Родэрик писал(а):а каков должен быть шаг поправки?
И самое главное - зачем он, если можно просто собрать точный и хорошо откалиброванный генератор на 32767 ?
Подстройку частоты можно сделать с помощью подстроечного конденсатора.
±1мкс. в секунду
Херня получится. Тем более, с 10 мкс. Уход периода на 1 мкс., при частоте 32 Кгц, даст уход частоты на 1 Кгц. О какой точности тут может идти речь ?
А в чем проблема-то?
Вы не знаете как сделать интерфейс такой регулировки или не знаете как сделать саму эту регулировку?
Но саму секунду регулировать достаточно проблематично - придется сильно завышать тактовую частоту. Гораздо проще делать коррекцию времени в течении суток, увеличивая или уменьшая коэффициент деления входного прескалера по алгоритму Брезенхема.
korob писал(а):Я говорю о итоговой коррекции (после деления на 32768) ±1мкс. в секунду.
Можно формировать 1 секунду самим контроллером и гораздо точнее. Собрал на макетке имитатор 176ИЕ12 на ATtiny2313. Пока формируется импульсы Т1...Т4 и секунда.
Спойлер
Жаль, что ориентируетесь на PIC. Можно было бы порезвиться.
korob писал(а):знания в программировании МК у меня нулевые
Ну так есть повод их приподнять до первого уровня.
Раз Вы открыли тему в ПИКах, значит берите доступный Вам контроллер и начинайте.
Часы на контроллерах можно выполнить по двум схемам тактирования. Либо кварц 32768 используют в качестве тактового генератора самого МК, либо на этом кварце делают второй генератор (он есть в МК и подключен к 1-му таймеру), а сам МК работает от внутреннего RC-генератора с достаточно высокой тактовой частотой. Обычно 4 или 8 МГц. Основное время МК спит, а на первом таймере делают генератор прерываний, который и реализует раз в секунду просыпание контроллера и инкремент времени.
Коррекция хода достигается периодическими разовыми торможениями - ускорениями этого генератора прерываний путем изменения его предделителя и/или предустановки самого таймера в прерывании.
Схему таких коррекций в течении суток выполняют по алгоритму Брезенхема, что позволяет уменьшить "муар" результирующей шкалы времени.
Последний раз редактировалось КРАМ Пн мар 21, 2016 16:51:34, всего редактировалось 1 раз.
akl писал(а):Можно формировать 1 секунду самим контроллером
Дело в том что нужно для
korob писал(а):модификации уже готовых часов с целью повышения точности хода
akl писал(а):Жаль, что ориентируетесь на PIC. Можно было бы порезвиться.
Да я не религиозен в этом вопросе. Просто озвученных контроллеров у меня полтора ведра , надёргал из списанной системы ТВ кодирования. Так что если ATtiny, пусть будет ATtiny.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Так вопрос таки открытым остался:
чего имитировать?
одну линию с меандром 32768 Гц
или
одну линию с меандром 1 Гц
или
две линии соответствующие подключению кварца заданной частоты к выводам целевой БИС
?
Насчет цифровой коррекции "условными енотами" - так любой промежуточный предделитель на 16-разрядном таймер-счетчике с данной задачей с успехом справится.
BOB51 писал(а):
Насчет цифровой коррекции "условными енотами" - так любой промежуточный предделитель на 16-разрядном таймер-счетчике с данной задачей с успехом справится.
Если на выходе 1 Гц хотим получить, то можно. Для выхода 32678 - не получится.
BOB51 я тоже себе это представляю как управляемые счётчик-делитель, который раз в секунду в зависимости от значения коррекции меняет коэффициент счёта в ту или иную сторону.
P.S Нужен выход 32768Гц. А коррекция осуществлялась бы таким способом, что бы после деления до секунд (уже в часах) её можно было бы варьировать ±1мкс. в секунду.
Для выхода 32678 - не получится.
Почему?
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
korob писал(а):я тоже себе это представляю как управляемые счётчик-делитель
А что он делить будет, если на выходе нужна частота в 32768 ?
Предположим, делитель будет 8-ми биный, это деление на 256. Тогда входная частота перед делителем должны быть 8388608 Гц.
Что Вы тут хотите корректировать ? Делить не на 256, а например, на 255 ? Тогда частота на выходе будет 32896 Гц. И причём тут мкс./сек. , тоже непонятно...
Ну например по-умолчанию делим тактовую 8МГц.(если такое возможно) на 244, раз в секунду меняем коэффициент счёта делителя на 245/243 на одно/два/три/и т.д. (в зависимости от необходимой коррекции) заполнения счётчика, а потом снова делим на 244. Через секунду всё повторяем. Т.е. из общего деления мы выкидываем/добавляем один или несколько тактов входной частоты 8МГц. Разве так не выйдет?
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
1. https://datasheets.maximintegrated.com/ ... S32kHz.pdf
2. Как уже говорили частоту двигать подстроечным конденсатором. Часто подстроечник уже есть возле "гробика". Зачем вам именно цифровая коррекция?
3. Из дешевого ВЧ мусора сложно сделать генератор со стабильностью 10^-6. Будет плавать как кварц, так и ёмкости. Температура ушла и приехали. В результате получится не лучше чем с генератором на кварце 32768. Если только не делать термостат или подбирать емкости по ТКЕ.
4. Почему бы не обновить начинку часов? Скажем на том же пике и M41T81 или его внутр. часах с программной коррекцией.