Необычные часы. Есть идеи?
Перевел выход строба 0.25 сек на PB6, а выход строба 60 сек на PB3. Перевел PB7 на вход с подтяжкой ( у этого камня, оказывается, RESET объединен с PB7
).
- Реклама
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
Привет всем. Пришли таки мне тиньки 2313-20. Собрал сегодня на ней и
дергаются стрелки, меньше чем на меге, но все таки видно. Как можно от нее избавиться, кроме конденсаторов, или забить и конденсаторы поставить?
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
Попробовал исходник скомпилировать в AVR Studio, но выдает ошибку, в ассемблере совсем ни как, просто решил начать освоение программы и сразу грабли.
- Вложения
-
- Безымянный.JPG
- (78.86 КБ) 886 скачиваний
Начал осваивать AVR STUDIO - правильно. Нужно дать определения регистров как в проге для tiny26. В тексте естественно поменять.
В старенькой 3.21 такие определения регистров и выводов прокатывали, а в 4.хх уже нет.
Укажи точную программу и схему, по которым будешь отлаживать. Дело в том, что мое рабочее место крепко затопило. А на нем были оба компа-рабочий и домашний.
Пишу с компа коллеги, пока его нет.
В старенькой 3.21 такие определения регистров и выводов прокатывали, а в 4.хх уже нет.
Укажи точную программу и схему, по которым будешь отлаживать. Дело в том, что мое рабочее место крепко затопило. А на нем были оба компа-рабочий и домашний.
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
У меня AVR Studio 4.16 bild 628. Схема с первой страницы, я собрал в железе, все работает, но есть дрожание. Все исправил, компилится
Я вот подумал, а что если шкалу оделить не на 240, а на, например 360, теоретически дерганье должно уменьшиться. Или я не правильно понимаю?
- Реклама
Дёрганье или дрожание? Т.е. раздражает факт того что видны шаги из одной позиции в другую? или как? 240 шагов на миллиамперметре с 50-ю делениями - увы, видно. я конечно, для часовой стрелки собираюсь забабахать все 10бит, но для минутной у меня таких ресурсов нет - обойдусь 60-ю. Кстати, будильник наконец уговорил. Был запутавшись немного.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
Нет, не шаги, а именно дрожание стрелок. Ну значит пора PIC расчехлять и плату натирать
Когда мы сможем увидеть и собрать часы с будильником?
Если стрелки дрожат, то похоже что программный PWM имеет небольшой джиттер. Надо бы как-нибудь почитать про AVRы, что интересного есть в этих микроконтроллерах.
Платы натирать рано. Я далеко не каждый день сажусь за эту работу. Тут попутно сделал счетчик импульсов и генератор временных интервалов (что вместе составлять должно частотомер) на Xilinx-е, понемногу двигаю свой лабораторный блок питания. И далеко не каждый день все удается. Вот пибикалку написал вслепую со второго раза - надо будет этот вариант в другую схему применить. Сегодня боролся с энергосберегающим режимом - он меня поборол. Похоже из-за моей лени, глохнет генератор с часовым кварцем. Все-же надо припаять на кварц конденсаторы 33пФ. От 5 вольт работает, а при переходе на батарейное питание - прерывания куда-то пропадают.
Платы натирать рано. Я далеко не каждый день сажусь за эту работу. Тут попутно сделал счетчик импульсов и генератор временных интервалов (что вместе составлять должно частотомер) на Xilinx-е, понемногу двигаю свой лабораторный блок питания. И далеко не каждый день все удается. Вот пибикалку написал вслепую со второго раза - надо будет этот вариант в другую схему применить. Сегодня боролся с энергосберегающим режимом - он меня поборол. Похоже из-за моей лени, глохнет генератор с часовым кварцем. Все-же надо припаять на кварц конденсаторы 33пФ. От 5 вольт работает, а при переходе на батарейное питание - прерывания куда-то пропадают.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
млин, самое время заводить тему "помогите". Почему-то перестало просыпаться. на RB6 импульсы видны - генератор пашет. Иногда бывает просыпается. Иногда как надо - в течение секунды, иногда приходится ждать дольше. но обычно бесконечно долго.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
Так поделись схемой и исходниками, соберу и вместе подумаем, моя голова хоть и маленькая еще, но все таки 
- Сообщения: 1188
- Зарегистрирован: Пт авг 21, 2009 03:22:12
Эхе-хе...котята слепые... Второй месяц тычетесь носом, никак не можете сделать...
Ваша проблема в том, что делаете не на том, чем надо, а на том, что есть.
Я не спорю, этот подход имеет право на существование - сам так часто делаю - но в данном случае проще купить нужный микроконтроллер, чем героически преодолевать трудности созданные собой же, точнее совсем неправильным выбором элементной базы.
Итак, что надо:
1. формировать секундные интервалы, считать время - это может практически любой микроконтроллер с 16-битным таймером
2. формировать 3 канала ШИМ сигнала - тут уже любой не подойдет.
Мой выбор в данном случае - ATMega48 (88, 168). У этого МК два 8-битных таймера TMR0, TMR2, каждый из которых может формировать 2 ШИМ сигнала (итого уже 4, больше чем нам надо), и еще один 16-битный TMR1 (тоже с двумя ШИМ) его задействуем для формирования секундных интервалов.
Осталось быстренько прочитать про задание режима FAST PWM и взять Bascom AVR, пусть даже и демо версию - она до 4 КБайт (мега48) работает нормально.
На все (программирование и пайку макета на соплях и) я потратил пару часов. Конечно, это еще не совсем часы - кнопок установки времени нет - но уже тикают. И никакого дрожания стрелок кроме естественного для микроамперметров успокоения.
У этих часов пара проблем, от которых не избавиться:
- чувствительность показаний к стабильности напряжения питания МК
- зависимость показаний от угла зрения.
А вот и пара роликов:
1. 23_59_40_xvid.avi - это такое время установлено, виден переход на время 00:00:00
2. seconds_xvid.avi - счетчик секунд крупным планом.
P.S. Микроамперметры разношерстные, но уж какие нашел, все равно в корпус не вставлять
Блин, ролики не прицепляются. Залью на на ютьюб
Смотрите на ютьюбе:
23_59_40_xvid.avi - http://www.youtube.com/watch?v=hTg8k3vYQGY
seconds_xvid.avi - http://www.youtube.com/watch?v=Eso06_RGMJE
Ваша проблема в том, что делаете не на том, чем надо, а на том, что есть.
Я не спорю, этот подход имеет право на существование - сам так часто делаю - но в данном случае проще купить нужный микроконтроллер, чем героически преодолевать трудности созданные собой же, точнее совсем неправильным выбором элементной базы.
Итак, что надо:
1. формировать секундные интервалы, считать время - это может практически любой микроконтроллер с 16-битным таймером
2. формировать 3 канала ШИМ сигнала - тут уже любой не подойдет.
Мой выбор в данном случае - ATMega48 (88, 168). У этого МК два 8-битных таймера TMR0, TMR2, каждый из которых может формировать 2 ШИМ сигнала (итого уже 4, больше чем нам надо), и еще один 16-битный TMR1 (тоже с двумя ШИМ) его задействуем для формирования секундных интервалов.
Осталось быстренько прочитать про задание режима FAST PWM и взять Bascom AVR, пусть даже и демо версию - она до 4 КБайт (мега48) работает нормально.
На все (программирование и пайку макета на соплях и) я потратил пару часов. Конечно, это еще не совсем часы - кнопок установки времени нет - но уже тикают. И никакого дрожания стрелок кроме естественного для микроамперметров успокоения.
У этих часов пара проблем, от которых не избавиться:
- чувствительность показаний к стабильности напряжения питания МК
- зависимость показаний от угла зрения.
А вот и пара роликов:
1. 23_59_40_xvid.avi - это такое время установлено, виден переход на время 00:00:00
2. seconds_xvid.avi - счетчик секунд крупным планом.
P.S. Микроамперметры разношерстные, но уж какие нашел, все равно в корпус не вставлять
Блин, ролики не прицепляются. Залью на на ютьюб
Смотрите на ютьюбе:
23_59_40_xvid.avi - http://www.youtube.com/watch?v=hTg8k3vYQGY
seconds_xvid.avi - http://www.youtube.com/watch?v=Eso06_RGMJE
whom how. Можно и так. Я же эту задачу использую просто как полигон для отработки узлов и навыков. Раньше мне ни разу не нужен был PWM. Что это такое теоретически знаю, но практической конструкции ещё ни одной небыло. А не вру, была - нарисовал статейку, но она еще не опубликована - наверно слишком похабно написана. Попутно, получил любимый звук будильника, который оказалось формируется очень просто (в предыдущих конструкциях мучался с аппаратным мультивибратором). Конечно нарываюсь и на грабли. Вот найду эти грабли - стану чуть опытнее. А часы у меня и так уже идут. И первый ход у меня тоже пошел через пару часов после паяния макетки. Я на сверхзадачах застрял. Без этого конструкцию назвать законченной нельзя. Но благородный дон может выложить что-нибудь более осязательное чем ютубное видео и остальные заценят ;-)
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Кстати, ошибку нашел. Похоже, получил переполнение стека. Получил интересное знание: несмотря на то, что укладывая спать микроконтроллер замаскировал все прерывания кроме как от TMR1, прерывания от TMR0 всё равно получает управление. И вот борясь с этим эффектом сделал плюху, с которой три вечера боролся. И похоже понимаю, почему мой первый выложенный код не работал в протеусе. Возможно, он так же как MPLABовский отладчик не симулирует кварцевый генератор на TMR1. Если кто читает из знающих, может поделится инфой как это дело отлаживать? А то я не спец. MPLAB запускаю только в тех случаях когда в мозгах короткое замыкание и не могу понять, почему код не работает как было задумано. А GPSIM это вообще мрак и с локализацией проблемы, надо коментарии обрубать, чтобы что-либо отладить. Вот так и трудимся - симуляция в голове и в железе. Поставил в контрольной точке светодиод - пока была ошибка 2 раза вспыхивает, а на третий остаётся гореть. Теперь старательно мигает. Можно обратно код прилизывать ;-).
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 1188
- Зарегистрирован: Пт авг 21, 2009 03:22:12
Не, программный ШИМ в этой задаче - это изврат. Можно, конечно, но не нужно. Слишком медленно получается, отсюда проблемы с фильтрацией. Все, что может быть сделано аппаратно, должно делаться аппаратно: задал режим работы и больше не отвлекаешься постоянно, оно само по себе работает.uldemir писал(а):whom how. Можно и так. Я же эту задачу использую просто как полигон для отработки узлов и навыков. Раньше мне ни разу не нужен был PWM. Что это такое теоретически знаю, но практической конструкции ещё ни одной небыло.
Ты никогда программно не получишь 3 ШИМ с более-менее приличным разрешением на ультразвуковой частоте.
Не может благородный дон, не дают ему. А хотел модельку в протеусе положить с парой прошивок: тестовой, для настройки частоты генератора и шкал микроамперметров и еще "полуживой часовой", той что на ролике.Но благородный дон может выложить что-нибудь более осязательное чем ютубное видео и остальные заценят
Если не лень будет, приделаю к схеме/прошивке 3 кнопки корректировки времени.
Ну я тоже сторонник аппаратных решений, потому вначале и говорил, что без проблем можно сделать на CPLD - тут меня правда высмеяли. Хотя, why not.bolek писал(а):Не, программный ШИМ в этой задаче - это изврат. Можно, конечно, но не нужно. Слишком медленно получается, отсюда проблемы с фильтрацией. Все, что может быть сделано аппаратно, должно делаться аппаратно: задал режим работы и больше не отвлекаешься постоянно, оно само по себе работает.
А зачем ультразвук? Вот у меня один ШИМ аппаратный идет на 3.9кГц, а программный на 70 Гц при 4 МГц тактовой. Я вполне доволен. Будильник правда не очень. И сделать еще три таких же программных ШИМ - раз плюнуть. Можно конечно задрать тактовую на 20МГц и тогда программный ШИМ будет уже 350Гц, но это уже экстенсивный путь развития. Пока 70 герц хватает - жужжания и подергивания стрелок я не наблюдаю. Может только не нравится то, что разрешающая способность в 60 шагов маловата.bolek писал(а):Ты никогда программно не получишь 3 ШИМ с более-менее приличным разрешением на ультразвуковой частоте.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Вот почти окончательный результат:
Схема совсем не изменилась. Кнопки S1-S3 - установка часов, минут и сброс секунд. S4, S5 - кнопки с фиксацией - выключение будильника 1 и 2 (или наоборот). Выход Alarm2 с открытым стоком - лог.0 при срабатывании будильника и(!) при переходе в спящий режим при пропадании питания. Делитель R8/R7 настроить так, чтобы при 4-5 вольтах на входе был 1 вольт на выходе (r7 надо уменьшить до 2 ком?) Хотя не обязательно, думаю батарейка кратковременно сможет дать 20мА. В спящем режиме у меня оно ело 10 мкА от батарейки. C3 возможно надо бы побольше, потому как компараторы при таких номиналах видят пульсации и если кнопка без фиксации, то сразу будильник не выключишь - надо ждать пока уровень PWM не превысит установленный потенциометром уровень на величину пульсаций. Может, завтра попробую прицепить микрофарад или 5 и посмотрю, что будет. Если использовать для установки будильника тот же индикатор, что и для показаний часов - надо поставить повторитель на операционнике. Потому как отключение индикатора немного повышает напряжение на входе компаратора. Функции калибрации индикаторов еще нет, хоть там всего то пару строчек дописать, но лень.
Схема совсем не изменилась. Кнопки S1-S3 - установка часов, минут и сброс секунд. S4, S5 - кнопки с фиксацией - выключение будильника 1 и 2 (или наоборот). Выход Alarm2 с открытым стоком - лог.0 при срабатывании будильника и(!) при переходе в спящий режим при пропадании питания. Делитель R8/R7 настроить так, чтобы при 4-5 вольтах на входе был 1 вольт на выходе (r7 надо уменьшить до 2 ком?) Хотя не обязательно, думаю батарейка кратковременно сможет дать 20мА. В спящем режиме у меня оно ело 10 мкА от батарейки. C3 возможно надо бы побольше, потому как компараторы при таких номиналах видят пульсации и если кнопка без фиксации, то сразу будильник не выключишь - надо ждать пока уровень PWM не превысит установленный потенциометром уровень на величину пульсаций. Может, завтра попробую прицепить микрофарад или 5 и посмотрю, что будет. Если использовать для установки будильника тот же индикатор, что и для показаний часов - надо поставить повторитель на операционнике. Потому как отключение индикатора немного повышает напряжение на входе компаратора. Функции калибрации индикаторов еще нет, хоть там всего то пару строчек дописать, но лень.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
А может просто питание нестабильное?diman27 писал(а):Привет всем. Пришли таки мне тиньки 2313-20. Собрал сегодня на ней и :( дергаются стрелки, меньше чем на меге, но все таки видно. Как можно от нее избавиться, кроме конденсаторов, или забить и конденсаторы поставить?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 203
- Зарегистрирован: Вт июл 28, 2009 17:58:25
Да нет, с питанием проблем нет, от лабораторного бп запитывал.uldemir писал(а):А может просто питание нестабильное?
- Сообщения: 392
- Зарегистрирован: Сб дек 12, 2009 02:15:45
Этож насколько оно не стабильное должно быть, чтоб на глаз было видно дрыганье стрелок. я думаю при такой нестабильности контроллер врядли работал бы.uldemir писал(а):А может просто питание нестабильное?
А вообще очень интересная тема, слежу за ней. может даже повторю если чего внятного и законченного родите.
Ну, поначалу, питая от полудохленькой батарейки от зажигания светодиода стрелка сдвигалась. Контроллер при этом продолжал работать. Вообще, нынче контроллеры и вся логика чертовски надежные, в отличие от времен 580-x процессоров. Хотя я это связываю с большими токами по земляным шинам. Сейчас 4 МГц, а ток 20мА.
Вот приложил все: схема, исходник, прошивка. Калибровочный режим вызывается удерживанием кнопки установки часов при подаче основного питания. Время, естессно, не сбрасывается и при отпускании продолжает показывать как надо.

Ну, я вроде уже родил, что смог. Осталось только конструктив, но эт не по мне.neon-f писал(а):А вообще очень интересная тема, слежу за ней. может даже повторю если чего внятного и законченного родите.
Вот приложил все: схема, исходник, прошивка. Калибровочный режим вызывается удерживанием кнопки установки часов при подаче основного питания. Время, естессно, не сбрасывается и при отпускании продолжает показывать как надо.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


