- Часы не работает генератор
- 052-Как запустить неработающий часовой кварц (32768 Гц).
- 052-Как запустить неработающий часовой кварц (32768 Гц). : 31 комментарий
- Добавить комментарий Отменить ответ
- Вторая жизнь кварцевых часов «Made in China». Собираем генератор импульсов
- 052-Как запустить неработающий часовой кварц (32768 Гц).
- 052-Как запустить неработающий часовой кварц (32768 Гц). : 31 комментарий
- Добавить комментарий Отменить ответ
Часы не работает генератор
052-Как запустить неработающий часовой кварц (32768 Гц).
Казалось-бы, банальное дело, запустить часовой кварц. Какие могут быть проблемы? Есть микроконтроллер и две его ножки, которые специально предназначены для подключения кварца. Есть часовой кварц. Припаять кварц – дело двух секунд. Еще минута нужна для того, чтобы добавить пару строк инициализации таймера в программу. Вот вроде и все. НО, после того как я три дня запускал этот долбанный часовой кварц, я понял, что вопрос не так прост, как я думал.
А предыстория была такой. Друг попросил меня сделать ему простые часики, без наворотов, на 7-сегментных индикаторах. Плевое дело. Микроконтроллер был взят ATmega48 (умеет работать с часовым кварцем), быстренько написана программа, вытравлена печатка. После сборки часов и отладки программы (динамическая индикация, кнопки и т.д.) дошла очередь до часового кварца. До этих часиков я уже пару раз применял часовой кварц в своих проектах и ничего не предвещало беды :), но случилось непредвиденное – часовой кварц наотрез отказался запускаться. Вообще!
В попытках разобраться, что-же мешает заработать моему часовому кварцу я первым делом обратился к даташиту на микроконтроллер (ATmega48). Информации по асинхронному режиму и подключению таймера там оказалось очень мало. Дальше я начал искать решение проблемы на форумах. Вот тут было разнообразие решений и советов вплоть до ритуальных танцев с бубнами, что тоже не особо мне помогло. Пришлось путем проб и ошибок (не путать с «методом тыка»!) самому разбираться, что к чему. В результате героических потугов, наступания на какие только можно грабли и убитых трех дней, родился практический опыт подключения часового кварца, с которым я здесь и поделюсь.
Итак, какие грабли нас ожидают при запуске часового кварца?
1 Схемотехника.
1.1 Конденсаторы.
В даташите на микроконтроллер довольно пространно упоминается то, что к часовому кварцу должны быть подключены конденсаторы, а про их емкость вообще узнать трудно. Часовой кварц, скорей всего, заработает и без конденсаторов, но лучше их поставить это улучшит стабильность частоты и поможет кварцу быстрей запускаться.
Емкость конденсаторов должна быть в пределах 12-22 пФ.
1.2 Разводка дорожек под кварц.
Тут даташит и апноты дают нам четкие указания. Дорожки от ножек микроконтроллера до кварца должны быть минимальной длинны, земляная» дорожка для конденсаторов должна быть отдельной, то есть через нее не должны протекать посторонние токи (особенно это касается сильноточных и высокочастотных цепей).
1.3 Корпус часового кварца.
Железный корпус часового кварца обязательно припаяете к земле (к той к которой припаяны конденсаторы). Незаземленный корпус будет работать как антенна, внося искажения в работу кварца, ухудшая точность хода Ваших часов.
1.4 Грязь на плате.
Часовой кварц довольно нежная штука и сопротивления в пару мегаом между ножками вполне хватит для его остановки. Как показала практика, жидкий флюс, если его плохо смыть, дает достаточное сопротивление, для того чтобы кварц не работал. После пайки тщательно вымойте плату. Очень часто во флюсах содержится кислота, что и дает проводимость между ножками. Для нейтрализации кислоты промойте плату слабым раствором соды (пищевой) и тщательно отмойте чистой водой.
2 Программирование.
2.1 Инициализация асинхронного режима таймера.
Для того чтобы таймер работал от часового кварца, его (таймер) необходимо перевести в асинхронный режим. Для перевода таймера (почти у всех микроконтроллеров это таймер 2) в этот режим нужно записать 1 в бит AS2. Но не все так просто, нужно соблюсти определенный алгоритм запуска. По даташиту процедура включения асинхронного режима для таймера 2 следующая:
1. Запретить прерывания от таймера/счетчика 2 — OCIE2x, TOIE2;
2. Переключить его в асинхронный режим 1 -> AS2;
3. Записать новые значения в регистры TCNT2, OCR2x и TCCR2x;
4. Дождаться сброса флагов TCN2UB, OCR2xUB и TCR2xUB;
5. Сбросить флаги прерываний таймера/счетчика 2;
6. Разрешить прерывания (если требуется).
Обязательно соблюдайте такую последовательность. Вот листинг правильной инициализации асинхронного режима таймера2.
/* запрещаем прерывания */ cli(); /* 1. Запрещаем прерывания Timer/Counter2 обнуляя OCIE2х и TOIE2. */ TIMSK2 &=
052-Как запустить неработающий часовой кварц (32768 Гц). : 31 комментарий
интересно, но с китайским кварцом от дешевых часов таймер запустился сразу (и точность кстати очень даже неплохая), а вот покупной кварц «советского типа» запускатся никак не хочет, правда не пробовал с внешними конденсаторами.
Про китайский кварц — это я из личного опыта. Делал часы с цифровой коррекцией. Так вот я не мог коррекцией точно скорректировать уход времени — он плавал. Хотя, это наверно, на какой кварц нарвешся.
Про кварцы «советского типа» ничего не скажу — никогда не пользовался.
Евгений,здравствуйте!Вы написали,как запустить кварц,а как проверить работает он или нет не написали.я недавно начал заниматься МК,поэтому много чего не знаю.Напишите пожалуйста,как Вы проверяете работу кварцевого генератора у микроконтроллера.На сайтах пишут,что осциллограф будет садить напряжение с генератора и он перестанет работать.На другом сайте нашел,что можно вобще подсоединить светодиод с резистором к ген.если будет светиться,значит ген работает.Я пробовал мультиметром мерять на кварце.На одной ноге показывает 0.7в,на другой 2.4в
Если речь идет о кварце для задающего генератора микроконтроллера, то тут все просто — микроконтроллер просто не будет программироваться при нерабочем кварце.
А вот с часовым кварцем намного сложнее. Он очень чувствительный и при замере мультиметрами/осциллографами запросто можно его остановить. Как простой вариант решения этой проблемы можно посоветовать впаять этот кварц в заведомо рабочую схему (например, те-же дешевые китайские часы — часы тикают, значит кварц работает). Или набросать небольшую программку которая — бы дрыгала ногой микроконтроллера по прерываниям от часового кварца.
Евгений,я действительно спрашивал о проверке кварца задающего генератора МК.Есть устройство на МК и ЖК индикаторе(WH1602)На индикаторе горят верхние сегменты и ничего не показывает.Как проверить, работает задающий генератор МК или нет?
А микроконтроллер программируется? Что за микроконтроллер?
Да,МК программируется и читается.PIC16F876A.Дело не в конкретном МК,а вообще как проверить задающий генератор.
Осциллографом. Вольтметром (должно присутствовать половинное питание).
Косвенно — работает ли программирование, программа…
В AVR микроконтроллерах есть ножка, которую при помощи установки фьюзов можно сделать выходом частоты задающего генератора — на ней уж точно можно, не боясь посадить сигнал, смотреть осциллографом.
Я писал уже,что проверял мультиметром.На одной ноге показывает 0.7в,на другой 2.4в.Так и должно быть?
Да, но это еще не значит, что он рабочий.
?…А как же его проверить без осциллографа?Выходит,никак?
У меня еще вопрос возник(извини за назойливость).Будет ли генерация на МК без обвязки,т.е.подключить кварц с конденсаторами и подать питание?
Кварц с конденсаторами и есть вся необходимая для работы обвязка.
Никак немогу запустить кварц хотя до этого 2 недели все работало прекрасно, все по «феншую» короткие дорожки, 2 кондера 22пф 1206,кварц припаян к минусу. Просто перестал запускатся и все тут, пробовал заменить тоже самое Ж(((((((((( главное если чемнибуть металическим коснутся одной из ног то вроде тикает но стоит убрать тутже перестает или посли 1000 касаний чудом запускается . ВАЩЕ ЖООООООООООООООООО
Кстати все начилось после того как наулице похолодало хз(давление изменилость, температура в комнате упала на пару градусов,помех больше стало,активность солнца нета . ) главное работало до этого без нареканий.
По питанию ничего не менялось? Может конденсаторы добавить?
Программа не менялась?
С питанием проблема :O мк задуман на питание от 3,3(LP2985)НО к вводам мк подключен через резисторы 330ом 7мисегментник с обшим плюсовым(катодом или анодом хз планировал с общим минусом но нетот сегментник взял) подключеным к + 5 через дидод (питание от усб а именно от программатора авр910(PROTTOSS) который подключен к мк). Но до этого работало все стабильно при включении питания кварц пускался.фильтра по питанию на плате с мк нет.От 910го
10см шлейфа до мк и ровно столькоже от мк до 7сегментника.
Здравствуйте , у меня индикатор общий анод. Все сделал нормально и Fuse , часового кварц поставил правильно . не работает . может у вас есть готовый проект на микроконтроллер Atmega8 и Fuse если можно. заранее спасибо.
Фьзы тут не причем, микроконтроллер для работы с часовым кварцем настраивается в программе — листинг в статье.
Спасибо. ещё один вопрос у меня программатор ChipBlaster clone
Atmega8 память 8kb а у меня 6кб hex file . он не прошивает . говорит file размер большой. что делать ?
В мегу8 не влазит 6кБ HEX?
Странно, хексы обычно больше реально занимаемого места в МК (раза в два).
Остальные МК шьются нормально?
У меня код для USB HID устройство а поэтому такой большой .hex code.
У вас есть программа для USB HID? очень нужно заранее спасибо .
Вот такая проблема говорить что «Programmer Evaluation version file size limit exceeded
«
У вас есть программа для USB HID? очень нужно заранее спасибо .
Вот такая проблема говорить что «Programmer Evaluation version file size limit exceeded«
Вы пользуетесь пробной версией программы (или программатора) у которой установлено ограничение на величину прошивки.
Кварц не так дорого стоит чтобы его ремонтировать, по-этому лучше купить чем паять.
Скажите, какой есть способ перешить фьюзы, (случайно) запрограммированные на низкочастотный кварц? В программе не было предусмотрено его присутствие! пытался подать на xtal1 1МГц (затем 1кГц) с внешнего МК — это могло повлиять на его работу?
МК — atmega 48 pu!
Если никакими способами не получается программировать от внешних тактовых сигналов, то фьюзы можно будет изменить только высоковольтным программатором.
Запустил свой кварц. Помог пункт 1.4 Не ожидал что флюс с грязькой может так влиять. Перед этим пробовал все пункты. Но только спиртом протер, заработало без проблем, и без всяких кондеров.
тоже долго не мог запустить кварц. Подсмотрел случайно на часы реального времени DS1307 на плате на одном из ног кварца был установлен резистор на землю 1мом. Запустились все кварцы с пол тика)))
Спасибо за статью, получилось загнать ATmega8 в спячку. Вопрос: а на чем должен тактироваться камушек в рабочем режиме! Настроил на внутренний 1 МГц, это правильно?
Поделюсь своим опытом.
ATMega48PA и часовой кварц 32768. Отладочная плата Pinboard II (не реклама).
Стоит только прошить фьюзы на Low Frequency Crystal Oscillator (CKSEL3…0=0101, SUT1…0=10), как сразу же после этого не удаётся соединиться программатором с контроллером, т.е. на низкой частоте нет связи.
Как я это решал? Доктором привожу контроллер к заводским настройкам, перетыкаю контроллер в отладочную плату, прошиваю прошивку, и последним действием прошиваю нужные мне фьюзы для 32768.
Для перепрошивки контроллер опять необходимо пихать в доктора. Та же ситуация при внутренней генерации от 128кГц.
Есть выход проще? Что я делаю не так?
Шью через SinaProg, выбираю разные скорости — бесполезно.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вторая жизнь кварцевых часов «Made in China». Собираем генератор импульсов
Ниже предоставлена пошаговая инструкция как из сломанных кварцевых часов сделать генератор импульсов частотой в 1 Гц. Собранный генератор довольно точен и может использоваться во многих проектах.
К счастью, при поломке часов ломается их механическая часть, электронная же намного «живучей». Наша жертва в данном случае — 1$ часы «Made in China».
Шестеренки можно сохранить — может быть пригодятся.
Теперь аккуратно (!) отсоединяем катушку. Она пригодиться для следующих проектов.
Выше предоставлена схема устройства. Дополнительно нам понадобятся два диода 1N4148 и резистор сопротивлением 1 кОм.
Диоды и резистор могут быть установлены на плате.
На схеме расположенной выше показана схема в действии. Питание — 3 В. Использован обычный светодиод. Мигает каждую секунду, как по часам.
Перевод: Ale)(ander, по заказу РадиоЛоцман
052-Как запустить неработающий часовой кварц (32768 Гц).
Казалось-бы, банальное дело, запустить часовой кварц. Какие могут быть проблемы? Есть микроконтроллер и две его ножки, которые специально предназначены для подключения кварца. Есть часовой кварц. Припаять кварц – дело двух секунд. Еще минута нужна для того, чтобы добавить пару строк инициализации таймера в программу. Вот вроде и все. НО, после того как я три дня запускал этот долбанный часовой кварц, я понял, что вопрос не так прост, как я думал.
А предыстория была такой. Друг попросил меня сделать ему простые часики, без наворотов, на 7-сегментных индикаторах. Плевое дело. Микроконтроллер был взят ATmega48 (умеет работать с часовым кварцем), быстренько написана программа, вытравлена печатка. После сборки часов и отладки программы (динамическая индикация, кнопки и т.д.) дошла очередь до часового кварца. До этих часиков я уже пару раз применял часовой кварц в своих проектах и ничего не предвещало беды :), но случилось непредвиденное – часовой кварц наотрез отказался запускаться. Вообще!
В попытках разобраться, что-же мешает заработать моему часовому кварцу я первым делом обратился к даташиту на микроконтроллер (ATmega48). Информации по асинхронному режиму и подключению таймера там оказалось очень мало. Дальше я начал искать решение проблемы на форумах. Вот тут было разнообразие решений и советов вплоть до ритуальных танцев с бубнами, что тоже не особо мне помогло. Пришлось путем проб и ошибок (не путать с «методом тыка»!) самому разбираться, что к чему. В результате героических потугов, наступания на какие только можно грабли и убитых трех дней, родился практический опыт подключения часового кварца, с которым я здесь и поделюсь.
Итак, какие грабли нас ожидают при запуске часового кварца?
1 Схемотехника.
1.1 Конденсаторы.
В даташите на микроконтроллер довольно пространно упоминается то, что к часовому кварцу должны быть подключены конденсаторы, а про их емкость вообще узнать трудно. Часовой кварц, скорей всего, заработает и без конденсаторов, но лучше их поставить это улучшит стабильность частоты и поможет кварцу быстрей запускаться.
Емкость конденсаторов должна быть в пределах 12-22 пФ.
1.2 Разводка дорожек под кварц.
Тут даташит и апноты дают нам четкие указания. Дорожки от ножек микроконтроллера до кварца должны быть минимальной длинны, земляная» дорожка для конденсаторов должна быть отдельной, то есть через нее не должны протекать посторонние токи (особенно это касается сильноточных и высокочастотных цепей).
1.3 Корпус часового кварца.
Железный корпус часового кварца обязательно припаяете к земле (к той к которой припаяны конденсаторы). Незаземленный корпус будет работать как антенна, внося искажения в работу кварца, ухудшая точность хода Ваших часов.
1.4 Грязь на плате.
Часовой кварц довольно нежная штука и сопротивления в пару мегаом между ножками вполне хватит для его остановки. Как показала практика, жидкий флюс, если его плохо смыть, дает достаточное сопротивление, для того чтобы кварц не работал. После пайки тщательно вымойте плату. Очень часто во флюсах содержится кислота, что и дает проводимость между ножками. Для нейтрализации кислоты промойте плату слабым раствором соды (пищевой) и тщательно отмойте чистой водой.
2 Программирование.
2.1 Инициализация асинхронного режима таймера.
Для того чтобы таймер работал от часового кварца, его (таймер) необходимо перевести в асинхронный режим. Для перевода таймера (почти у всех микроконтроллеров это таймер 2) в этот режим нужно записать 1 в бит AS2. Но не все так просто, нужно соблюсти определенный алгоритм запуска. По даташиту процедура включения асинхронного режима для таймера 2 следующая:
1. Запретить прерывания от таймера/счетчика 2 — OCIE2x, TOIE2;
2. Переключить его в асинхронный режим 1 -> AS2;
3. Записать новые значения в регистры TCNT2, OCR2x и TCCR2x;
4. Дождаться сброса флагов TCN2UB, OCR2xUB и TCR2xUB;
5. Сбросить флаги прерываний таймера/счетчика 2;
6. Разрешить прерывания (если требуется).
Обязательно соблюдайте такую последовательность. Вот листинг правильной инициализации асинхронного режима таймера2.
/* запрещаем прерывания */ cli(); /* 1. Запрещаем прерывания Timer/Counter2 обнуляя OCIE2х и TOIE2. */ TIMSK2 &=
052-Как запустить неработающий часовой кварц (32768 Гц). : 31 комментарий
интересно, но с китайским кварцом от дешевых часов таймер запустился сразу (и точность кстати очень даже неплохая), а вот покупной кварц «советского типа» запускатся никак не хочет, правда не пробовал с внешними конденсаторами.
Про китайский кварц — это я из личного опыта. Делал часы с цифровой коррекцией. Так вот я не мог коррекцией точно скорректировать уход времени — он плавал. Хотя, это наверно, на какой кварц нарвешся.
Про кварцы «советского типа» ничего не скажу — никогда не пользовался.
Евгений,здравствуйте!Вы написали,как запустить кварц,а как проверить работает он или нет не написали.я недавно начал заниматься МК,поэтому много чего не знаю.Напишите пожалуйста,как Вы проверяете работу кварцевого генератора у микроконтроллера.На сайтах пишут,что осциллограф будет садить напряжение с генератора и он перестанет работать.На другом сайте нашел,что можно вобще подсоединить светодиод с резистором к ген.если будет светиться,значит ген работает.Я пробовал мультиметром мерять на кварце.На одной ноге показывает 0.7в,на другой 2.4в
Если речь идет о кварце для задающего генератора микроконтроллера, то тут все просто — микроконтроллер просто не будет программироваться при нерабочем кварце.
А вот с часовым кварцем намного сложнее. Он очень чувствительный и при замере мультиметрами/осциллографами запросто можно его остановить. Как простой вариант решения этой проблемы можно посоветовать впаять этот кварц в заведомо рабочую схему (например, те-же дешевые китайские часы — часы тикают, значит кварц работает). Или набросать небольшую программку которая — бы дрыгала ногой микроконтроллера по прерываниям от часового кварца.
Евгений,я действительно спрашивал о проверке кварца задающего генератора МК.Есть устройство на МК и ЖК индикаторе(WH1602)На индикаторе горят верхние сегменты и ничего не показывает.Как проверить, работает задающий генератор МК или нет?
А микроконтроллер программируется? Что за микроконтроллер?
Да,МК программируется и читается.PIC16F876A.Дело не в конкретном МК,а вообще как проверить задающий генератор.
Осциллографом. Вольтметром (должно присутствовать половинное питание).
Косвенно — работает ли программирование, программа…
В AVR микроконтроллерах есть ножка, которую при помощи установки фьюзов можно сделать выходом частоты задающего генератора — на ней уж точно можно, не боясь посадить сигнал, смотреть осциллографом.
Я писал уже,что проверял мультиметром.На одной ноге показывает 0.7в,на другой 2.4в.Так и должно быть?
Да, но это еще не значит, что он рабочий.
?…А как же его проверить без осциллографа?Выходит,никак?
У меня еще вопрос возник(извини за назойливость).Будет ли генерация на МК без обвязки,т.е.подключить кварц с конденсаторами и подать питание?
Кварц с конденсаторами и есть вся необходимая для работы обвязка.
Никак немогу запустить кварц хотя до этого 2 недели все работало прекрасно, все по «феншую» короткие дорожки, 2 кондера 22пф 1206,кварц припаян к минусу. Просто перестал запускатся и все тут, пробовал заменить тоже самое Ж(((((((((( главное если чемнибуть металическим коснутся одной из ног то вроде тикает но стоит убрать тутже перестает или посли 1000 касаний чудом запускается . ВАЩЕ ЖООООООООООООООООО
Кстати все начилось после того как наулице похолодало хз(давление изменилость, температура в комнате упала на пару градусов,помех больше стало,активность солнца нета . ) главное работало до этого без нареканий.
По питанию ничего не менялось? Может конденсаторы добавить?
Программа не менялась?
С питанием проблема :O мк задуман на питание от 3,3(LP2985)НО к вводам мк подключен через резисторы 330ом 7мисегментник с обшим плюсовым(катодом или анодом хз планировал с общим минусом но нетот сегментник взял) подключеным к + 5 через дидод (питание от усб а именно от программатора авр910(PROTTOSS) который подключен к мк). Но до этого работало все стабильно при включении питания кварц пускался.фильтра по питанию на плате с мк нет.От 910го
10см шлейфа до мк и ровно столькоже от мк до 7сегментника.
Здравствуйте , у меня индикатор общий анод. Все сделал нормально и Fuse , часового кварц поставил правильно . не работает . может у вас есть готовый проект на микроконтроллер Atmega8 и Fuse если можно. заранее спасибо.
Фьзы тут не причем, микроконтроллер для работы с часовым кварцем настраивается в программе — листинг в статье.
Спасибо. ещё один вопрос у меня программатор ChipBlaster clone
Atmega8 память 8kb а у меня 6кб hex file . он не прошивает . говорит file размер большой. что делать ?
В мегу8 не влазит 6кБ HEX?
Странно, хексы обычно больше реально занимаемого места в МК (раза в два).
Остальные МК шьются нормально?
У меня код для USB HID устройство а поэтому такой большой .hex code.
У вас есть программа для USB HID? очень нужно заранее спасибо .
Вот такая проблема говорить что «Programmer Evaluation version file size limit exceeded
«
У вас есть программа для USB HID? очень нужно заранее спасибо .
Вот такая проблема говорить что «Programmer Evaluation version file size limit exceeded«
Вы пользуетесь пробной версией программы (или программатора) у которой установлено ограничение на величину прошивки.
Кварц не так дорого стоит чтобы его ремонтировать, по-этому лучше купить чем паять.
Скажите, какой есть способ перешить фьюзы, (случайно) запрограммированные на низкочастотный кварц? В программе не было предусмотрено его присутствие! пытался подать на xtal1 1МГц (затем 1кГц) с внешнего МК — это могло повлиять на его работу?
МК — atmega 48 pu!
Если никакими способами не получается программировать от внешних тактовых сигналов, то фьюзы можно будет изменить только высоковольтным программатором.
Запустил свой кварц. Помог пункт 1.4 Не ожидал что флюс с грязькой может так влиять. Перед этим пробовал все пункты. Но только спиртом протер, заработало без проблем, и без всяких кондеров.
тоже долго не мог запустить кварц. Подсмотрел случайно на часы реального времени DS1307 на плате на одном из ног кварца был установлен резистор на землю 1мом. Запустились все кварцы с пол тика)))
Спасибо за статью, получилось загнать ATmega8 в спячку. Вопрос: а на чем должен тактироваться камушек в рабочем режиме! Настроил на внутренний 1 МГц, это правильно?
Поделюсь своим опытом.
ATMega48PA и часовой кварц 32768. Отладочная плата Pinboard II (не реклама).
Стоит только прошить фьюзы на Low Frequency Crystal Oscillator (CKSEL3…0=0101, SUT1…0=10), как сразу же после этого не удаётся соединиться программатором с контроллером, т.е. на низкой частоте нет связи.
Как я это решал? Доктором привожу контроллер к заводским настройкам, перетыкаю контроллер в отладочную плату, прошиваю прошивку, и последним действием прошиваю нужные мне фьюзы для 32768.
Для перепрошивки контроллер опять необходимо пихать в доктора. Та же ситуация при внутренней генерации от 128кГц.
Есть выход проще? Что я делаю не так?
Шью через SinaProg, выбираю разные скорости — бесполезно.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник