Часы загнали меня в тупик!

Вот на днях собрал я простые электронные часы на микроконтроллере PIC16F628A для автомобиля жигули место штатной кукушки вот по этой схеме(схему прилагаю)
Собравши часы и подключивши их к питанию, они заработали сразу без проблем. А вот когда подключил резервное питание и отключил основное, то на индикаторе остались гореть все циферки, только в пол накала. В чем может быть проблема??? помогите очень надо)
Прикрепления:
Вложение1

55 комментариев к “Часы загнали меня в тупик!”

  1. Основное питание 5 вольт, а резервное 4,5 минус падение 0,7 вольт на диоде – это 3,8 вольта всего. Увеличить резерв до 6 В.

  2. моторист

    MAESTRO, извините я чуть не так выразил данную проблему. Когда отключаю основное питание то включается резервное питание(для поддержания хода часов), но при резервном питании цифры на индикаторе не должны светится, а у меня светятся в пол накала. Вот в чем проблема, что думаете?

  3. Думаю что либо так и должно быть, (прошивка под это написана), либо МК глючит.

  4. Цитата MAESTRO ()
    Думаю что либо так и должно быть

    нет, индикация должна погаснуть полностью

    Проверь развязку, диод Д1. Сначала на резервном (инд в пол накала) от паяй вывод диода, если потухнут, и см далее

  5. моторист

    -igRoman-, конечно индикация должна погаснуть полностью иначе она посадит батарейку за несколько минут, и не какого эффекта от резервного питания не будет. Но это я так к слову). Диод VD1 даже выпаивал из схемы, и все ровно индикатор светится в пол накала. Долго думал и пришол к такому выводу, что когда подаю напряжение питания на 14 и 5 ножку контроллера, то контроллер автоматически отрабатывает вшитую в него программу, и соответственно выдает управляющие воздействия на 1,2,17,18 ножку контроллера(замерил напряжение на этих выводах 0.98В), далее идет падение через резистор 1к(замерил после резистора около 0.6В), и этот ток с напряжением 0.6В протекает через перехот база-эмитор транзистора КТ315 и зажигает индикатор который горит в чуть меньше чем в пол накала. Теперь я думаю как это исправить не меняя прошивки, так как я этом не селен. Может вы что то подскажете?

  6. моторист

    Вот видео работы часов.
    Плата в Lay.

  7. моторист, увы сейчас нет возможности, предлагаю спросить на сайте автора

    попробуй увеличить номиналы резисторов в базах

  8. моторист

    -igRoman-, а вы не подскажите как дописать уже существующую программу так , что б при отключении основного питания(5Вольт) и подачи резервного от батарейки(4.5 минус падение на диоде=гдето 3.8Вольта) чтоб PIC16F628A переходил в спящий режим, и при этом отключались порты RA0-RA3, а то когда питаю от батарейки, то на портах RA0-RA3 присутствую управляющие сигналы и эти сигналы протикают через переход база-эмитер и поступают на индикатор, и при этом индикатор чуть-чуть светится и часы потребляют 1.8ма что посадит батарею за пару часов ??? короче чтоб контроллер потреблял наименьшее количество тока(исходник прилагаю, схема часов в первом сообщении)
    Прикрепления:
    Вложение1

  9. Попробуй заменить ключи с npn на pnp и подкорректировать “Таблицу выборки знакоместа”, так как такое включение инвертирует сигнал. Через обратносмещенный переход транзистора ток не пойдет. Программу не тестил.
    Прикрепления:
    Вложение1

  10. моторист

    msmmmm, диод исправен и установлен правельно. выпаял R3 в этоге один сегмент не горит и что дальше делать даже не знаю(

  11. Предыдущее сообщение отредактировано. Прочитай.

  12. моторист

    msmmmm, транзистор 315 менял на 361 раньше это привело к тому , что от батарейки индикатор не горел(все класно), а от основного питания на индикаторе китайские иэрроглифы. А от в программе изменить выборку под 361 это вариант. Теперь мне надо скачать какойто компилято Asm файла чтоб в Hex превратить. Какой скачать не посоветуете???

  13. MPLAB IDE, для этого контроллера хватит v6.60. Это стандартный компилятор, отладчик и редактор для PIC.

  14. моторист

    msmmmm, спасибо за помощь, завтра буду побывать. Проверю на железе так сразу отпишусь.

    Добавлено (20.07.2014, 13:58)
    ———————————————
    msmmmm, проверил ваш кусочек программы в протеусе и вжелезе- не работает(на экране иероглифы, кнопки нажимаю – мигания. Я думаю что в программе что то еще надо изменить, а вот что??? в програмировании я не селен. Буду рад если вы поможете переписать программу)

  15. Поигрался МПЛабом – все работает нормально. Нужно еще заменить

    ind_start
    movlw b'11110000' ;Выключаем все знакоместа индикатора
    на
    ind_start
    movlw b'11111111' ;Выключаем все знакоместа индикатора

    но эта недоделка влияет очень кратковременно и зрительно видна быть не должна… Осциллограф есть? Нужно посмотреть сигналы на коллекторах транзисторов. При таком включении возможно их недозакрывание, т.к. напряжение питания индикатора выше напряжения питания контроллера. Тогда им нужно будет помочь закрыться.

  16. моторист

    msmmmm, изменил то что вы посоветували и всеравно в протеусе неработает(в железе не пробывал), оригинальная прошивка работает без проблем. Почему так???

  17. У меня в протеусе работает. Пардон…

    ind_start
    movlw b'11111111' ;Выключаем все знакоместа индикатора
    movwf PORTA

    и еще

    movlw 0x20
    subwf FSR,W ;Уменьшаем указатель косвенной адресации на H'20' (т.е. результат будет от 0 до 3, т.к. 4 знака)
    call ind_cnv ;И идем на таблицу конвертирования (выборки) нужного знакоместа
    andwf!!!!!!!! PORTA,f ;Выводим выбранное знакоместо в ПОРТ А (все, цифра светиться)

    восклицания – где изменить
    Прикрепления:
    Вложение1
    Вложение2

  18. моторист

    msmmmm, залил прошивку, заменил транзисторы и все заработало. Ток потребления в резервном режыме упал с 1.825ма до 0.565ма. Мне чето кажется что это многовато. Посмотрел на форуме часов люди пишут что потребление 135мка. Как уменьшить потребление?

  19. Сначала, я думаю, нужно замерить потребление контроллера без нагрузок, и, исходя из этого сделать выводы о целесообразности дальнейших телодвижений. Потребление контроллера по даташиту сильно зависит от напряжения питания и тактовой частоты. Указанные в начале даташита 120uA – это для 1 МГц, 2 В питания. Дальше в графиках цифры побольше, но желательно измерить конкретно этот экземпляр и при 4,5 В и 4МГц. Если потребление будет больше 0,3 мА – дальнейшие изыскания считаю нецелесообразными. Автор часов, скорее всего, не ставил перед собой задачи экономии, т.к. в этом случае выбрал бы тактовую частоту пониже, вплоть до 32768 Гц – тогда ток потребления был бы пару десятков микроампер.
    Теперь по уменьшению потребления внешними цепями.
    Схема ключевая, то есть избыточная по току базы. Входное сопротивление транзистора, включенного с ОЭ – несколько кОм. Сопротивление, ограничивающее ток базы 1 кОм. Можно увеличить сопротивление резистора до максимальной величины, при которой сохраняется ключевой режим работы транзистора. Т.к. транзистор – усилитель тока, а ток Э-К приблизительно равен произведению тока базы и коэффициента усиления транзистора в схеме с общим эмиттером (h21э), то чем больше h21э, тем меньший ток нужен для его насыщения, тем большее можно ставить сопротивление в базовую цепь и, соответственно, меньше будет потребление от выходов контроллера.
    Возможно хватит простого увеличения номинала сопротивлений. Если нет – подобрать транзисторы с бОльшим h21э. Не найдется, или не хватит – налепить дарлингтонов, там коэфф за 1000, хватит за глаза.
    Это для основного режима. В резервном режиме ток внешними цепями потребляться не должен, так как имеем два встречно-последовательно включенных диода (переход Б-К и светодиод).
    Да, если емкость батарейки около 1000 мА*ч, то, при потреблении 0,5мА, схема будет работать 2000 часов, а это почти 3 месяца.

  20. моторист

    msmmmm, извините что долго не отвечал, только сегодня домой приехал. Завтра начну замеры по вашим советам. Как сделаю так сразу отпишусь.

  21. Когда будешь мерить, можешь попробовать низкочастотный вариант – часовой кварц 32768Гц, слово конфигурации 3F00, схема та же, но, возможно, придется увеличить емкость конденсаторов согласно даташита. Это счетчик полусекунд. Если по питанию устроит, допишу, чтобы работал как часы :D.
    Прикрепления:
    Вложение1

  22. моторист

    В общем замерял ток потребления в резервном(4.5В от батарейки через диод) режиме-375мкА(это я все отключил от контроллера кроме кварца и конденсаторов). Я так понял мне надо заменить кварц на 32768 , заменить конденсаторы и перепрошить контроллер вашей прошивкой. Что такое слово конфигурации 3F00?

  23. Ток нормальный для 4 МГц, куда еще 200 мкА идут, пока не понятно. Если текут все-таки через транзисторы, можно попробовать увеличить резисторы в базах.
    Слово конфигурации состоит из битов конфигурации (смотри самое начало asm файла), зашивается в контроллер во время программирования. Это то же, что и фьюзы у микроконтроллеров AVR, только у PIC их так не обзывают.

    __CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;Слово конфигурации – соответствует 3F01.
    Так как нам нужен низкочастотный генератор LP, то меняем XT_OSC на LP_OSC – тогда слово конфигурации будет 3F00.
    Программа может давать тусклое свечение индикаторов, но главное – оценить потребление тока в дежурном режиме, остальное подкорректируем.

  24. моторист

    В общем результаты такие: ток потребления в резервном режиме 20мкА(то что надо). Нашел какойто кварц похожый на часовой с маркировкой KSD2D и конденсаторы на 100пФ. Включил, сначала думал что не работает так как ничего не отобразилось на индикаторе, а потом через 20секунд включился счетчик и начал считать. Это так и должно? или кварц плохой?
    Кстати свечение цифр нормальное не тусклое.

  25. Долговато запускается, может емкости подобрать надо. Программа должна работать сразу – там инициализация и сразу счет. А с точностью как?

  26. моторист

    точность гдето 1:2
    Программу под часы поможете переделать?

  27. моторист

    Хорошо попробую пока ету. А я чето думал что надо в проге только предделитель или делитель под другой кварц изменить и все. Или так не получится?

  28. Попробовать никто не мешает, но программа на 4МГц и 32кГц – это 2 большие разницы. Для работы на такой низкой частоте программа должна быть не только работоспособной, но и эффективной, а в оригинале только программа обработки нажатия кнопок положит динамическую индикацию напрочь. Кроме того, зачем-то устанавливаются и обрабатываются флаги мигания точек в 1, 3 и 4-м разрядах; считаются часы до 24-х и минуты до 60-и, потом проводится перевод в двоично-десятичную форму; зачем-то сбрасывается сторожевой таймер, который в слове конфигурации выключен и т.д.
    При высокой тактовой частоте всем этим можно не заморачиваться, но в нашем случае лучше сделать как лучше (а плохо и само получится).
    Проще дописАть свою.

  29. Появилось 15 минут свободного времени… Теперь с кнопками, баги выловить и можно пользоваться.
    Прикрепления:
    Вложение1

  30. моторист

    Часы работают), но обнаружил следующие баги: немного мигает 4-я цифра в такт с двоеточием(остальные нормально); кнопки плохо реагируют на одиночные нажатия, если копку зажать, то цифры изменяются нормально, а вот если одиночно, то надо нажать 2-9 раз на копку что бы изменилась цифра; и еще можете убрать незначащий ноль как в оригинальной прошивке. Ну и вродибы все. Точность хода нормальная.

  31. Мигание, похоже, убрал (я их в симуляциях не вижу, даже на сильно пониженных скоростях, но один баг нашел), незначащий ноль потушил, там всего 2 команды добавилось, а вот кнопки делал так специально, там нет одиночных или длительных нажатий. Все просто, как в часах-будильнике на знаменитой часовой микросхеме кр145ик1901, на ней раньше масса часов делалось – нажал кнопку, получаешь инкремент часов или минут в такт с миганием точек, т.е. каждые пол-секунды. Т.к. режимом установки времени пользоваться часто не приходится, ИМХО, париться с разными режимами ввода значений смысла нет. Но если прям напрягает…
    Прикрепления:
    Вложение1

  32. моторист

    Бок с миганием 4-й цифры исправился и ноль погас, все отлично.
    И все же, не сочтите за мою наглость, не могли б вы все таки подкоректировать работу кнопок, чтоб цифры изменялись при одноразовом нажатии)

  33. Попробуй так. Пришлось размазать программу обработки нажатий кнопок по динамической индикации. В протеусе вроде бы работает нормально.
    Прикрепления:
    Вложение1

  34. моторист

    Прошивка работает как часы! Скоро соберу и обещаю выложить фотки готового устройства)

  35. Нормально, только тёмно-красное стекло осталось поставить. А при откл. питания резерв какой имеется?

  36. моторист

    MAESTRO, конечно, батарейки на 4.5В. Красного стекла под рукой не было, поставил что было. Зато видно скелет часов, да и хозяину понравилось.

    Добавлено (08.10.2014, 12:37)
    ———————————————
    msmmmm, а возможно сделать такое, что б время в часах настраивалось следующим образом: зажимаем обе кнопки, ждем 5 секунд, потом начинает мигать индикатор(кроме двоеточия) ну только цифры, кнопкой часы- настраиваем часы, а кнопкой минуты- настраиваем минуты, потом опять зажимаем обе кнопки, ждем 5 секунд и возвращаемся в обычное состояние. Это наверно надо написать подпрограмму обработки кнопок, если я не ошибаюсь, можете помочь?

  37. В принципе, можно и зайца научить курить, но программу придется сильно перепахать, почти заново написать. Программа для часов – одно из первых упражнений для начинающих изучать ассемблер для МК, можешь попробовать сам поиграться. Я дома появлюсь через пару недель, не получится – помогу. Разбираться, правда, будет тяжело – писал без комментов. Не удивляйся некоторым извратам, там есть “чудеса”, вроде бы усложняющие программу, но на самом деле позволяющие исключить пару лишних команд вне цикла динамической индикации.
    Прикрепления:
    Вложение1

  38. моторист

    Это исходник самой последней версии прошивки часов, что вы мне скидывали?

  39. Это то, что есть у меня на флэшке. Должно быть ОНО. Можешь скомпилировать, сравнить НЕХ-ы и прогнать протеусом.

  40. моторист

    да без комментариев очень трудно понять. Да и с коментами навряд ли что то смогу дописать сам. Надеюсь на вашу помощь)

  41. Ok, пиши ТЗ. Только очень быстро не получится, работы выше крыши.

  42. моторист

    ТЗ такое:
    1.зажимаем две кнопки;
    2.ждем 3 секунды;
    3.переходим в режим настройки часов, при котором индикатор мигает с частотой 1.5Гц или как лучше с точки зрения программирования, двоеточие не мигает;
    4.настройка ЧЧ и ММ как обычно;
    5.выходим из режима настройки, зажимаем опять две кнопки;
    6.ждем 3 секунды;
    7.переходим в обычный режим часов.
    Ну вот как то так, если что то не так написал, прошу сильно не ругать)

  43. Двоеточие не мигает – это светится или потушено? Есть предложение во время настройки часов и минут для улучшения считывания показаний индикатора отключать мигание настраиваемого параметра.
    Т.е. нажал две кнопки -> вошел в режим настройки, цифры мигают.
    Нажал ЧЧ или ММ -> соответствующая секция перестала мигать, цифры меняются.
    Отпустил -> короткая задержка немигания -> мигают обе секции.
    Нажал две кнопки -> вышел из режима настройки, двоеточие замигало.

    Часы во время настройки идут или останавливать?

    Если хватит скорости, пробовать делать автоматический переход из режима настройки в рабочий, и если “да”, то через какое время ненажатия кнопок?

    Я после выходных опять пропаду, но за это время, думаю, в основном все сделаю.

  44. моторист

    1.Двоеточие потушено;
    2.по поводу считывания показаний индикации – мне нравится), только задержка при входе в настройку 3 сек обязательна; цифры изменяются как при зажатой кнопке так и при одинарном нажатии;
    3.часы думаю лучше останавливать;
    4.а можно сделать автоматический(думаю 10мсек хватит) и обычный выход?

  45. Может и сыровато, но в протеусе работает. Интересно только, как будешь в две кнопки одновременно попадать, чтоб из режима настройки выйти, если от любого одиночного тычка цифра меняется, а частота опроса кнопок почти 60Гц. Выход автоматом через 15с ненажатия кнопок.
    Если совсем катастрофа получится – выложи видео.
    Прикрепления:
    Вложение1
    Вложение2

  46. моторист

    Спасибо большое) попробую…

    Добавлено (15.12.2014, 19:28)
    ———————————————
    Здрайствуйте) msmmmm, вот появилось немного времени и решил проверить вашу новую прошивку часов и вот что получилось, а получилось очень классно, все работает нормально, и выход через 15с и даже получается выходить кнопками, если одновременно нажимать. Так что очень вам благодарен за вашу помощь), большое спасибо!!!

  47. моторист, если не трудно, глазком взглянуть, а также собрать в архив схему, печатку, прошивку новую
    и сюда ,если не напряжно

    вот еще есть прикольная схема простая, с анимацией. Люблю я такие приколы, да и необычно
    Тут вотъ

  48. Хорошо. Осталось только тёмно-красное стекло сверху поставить. Счастливый владелец шестёрки? smile

  49. моторист

    MAESTRO, хорошо что этот обладатель не я! у меня AVEO)
    А вот стекла красного не было, так бы обязательно вырезал. И без стекла нечего)

  50. Тогда взять тёмную бутылку пластиковую, например от пива или колы. От неё и вырезать.

  51. моторист

    Хорошая идея, вот когда буду менять батарейку в часах по расчету летом 2015 г. вот тогда и добью их)

Комментарии закрыты.