Например TDA7294

РадиоКот > Чердак

Китайские "сделай сам" часы на микроконтроллере STC15F204EA

Автор: Zhuk72
Опубликовано 01.02.2017.
Создано при помощи КотоРед.

    Наверное многим из вас знакомы эти часы, они постоянно попадаются тем, кто гуляет по Алиэкспресс, Ибей и другим подобным им онлайн торговым площадкам. У них не очень высокая цена (по крайней мере была) и они привлекают к себе внимание и вызывают желание купить. Я также поддался искушению заиметь у себя в спальне такие часы, и, после долгих сравнений цен и разновидностей, подобрал себе комплект с синими индикаторами и наличием терморезистора и датчика освещенности в лице фоторезистора.

    Через пару-тройку недель я получил этот набор и спаял его. Все прошло без эксцессов, часы заработали сразу и заняли свое место в спальне. Но в первый же вечер пришлось отвернуть их к стене, а затем и вовсе приходилось укладывать их лицом вниз, так как, несмотря на наличие датчика освещенности, уровней яркости было всего 2. Но даже низкий уровень давал чересчур яркий свет, эдакая замена ночника вкупе с часами. Кроме того не нравилась работа терморезистора, который к тому же надо было настраивать по другому термометру. Не нравилось "западное" отображение даты, когда первым отображается месяц, а потом уже число. Да и перелистывание показаний (45 секунд время, и по 5 секунд дата, день недели и температура) иногда раздражало, когда кидаешь взгляд на часы, а там что-то другое. Кроме того хотелось иметь нормальный почасовой сигнал, с коротким писком, а не сирену, которая издавалась вместо него. В результате начались поиски в сети информации по этим часам на предмет альтернативной прошивки.

    Из найденного по данным часам было 2 варианта. Автор первого варианта просто распаял на дополнительной плате Атмегу88, выводы которой он вывел в соответствии с цоколевкой стокового микроконтроллера, и вставил этот бутерброд в панельку вместо "родного". В отличие от него, автор второго варианта взялся за изучение данного микроконтроллера и добился определенных успехов.

    Изначально я также хотел пойти по пути первого автора и сделать переходник с каким-нибудь PIC16 в SOIC корпусе. Но, честно говоря, не хотелось портить вид на плату, ибо корпус у часов прозрачный, и тогда я тоже взялся за изучение микроконтроллера STC15F204EA, надеясь на то, исходники от автора второго варианта, помогут мне, так как Си я только начал осваивать, а с 51-м семейством, представителем которого является STC15F204EA, я был знаком только понаслышке. Это достаточно простой 8-битный  МК с объемом памяти программ 4 кБ, EEPROM 1 кБ и ОЗУ в 256 байт. Из периферии у него только 10-битный АЦП на 8 каналов. В отличии от своего прародителя от Intel, он является однотактным и работает на частотах до 35 МГц.

    Проблемы начались с самого начала, поскольку автор (он Линуксоид) писал их под sdcc, а я выбрал себе Keil uVision. Пришлось многое адаптировать, удалять, заменять, разбираться с незнакомыми мне, как новичку в Си, структурами и написаниями. Одно время я даже отложил эти часы в долгий узкий ящик, увлекшись другим проектом (о котором я может еще напишу). Тем не менее с месяц назад мне пришло ЛС, в котором я пообещал совершенно незнакомому мне человеку ускорить возвращение к часам, и примерно за неделю я это обещание выполнил, в чем и отчитываюсь. Забегая вперед, скажу, что на данный момент от первоначальных исходников осталась только малая часть файла ds1302.c (чтение-запись в/из RTC), которую я переделал под свой вкус и дополнил под свои нужды. Все остальное изначально переделывалось, а затем удалялось и писалось заново.

    Итак, в ZIP архиве 01.zip собраны все файлы, необходимые для прошивки. Что вам понадобится: программа STC-ISP на момент написания статьи версии 6.85F с этого сайта и программатор, который представляет из себя UART переходник с СОМ или USB порта с уровнями TTL 5В. В случае СОМ порта это может быть МАХ232 или его аналог, в случае же USB - любой какой найдете. Обычно они собраны на FT232, PL2303, CP2102/2104 и СН340. Выглядят они примерно так:

    Кроме того, в часах необходимо будет распаять 4-штырьковый разъем, место под который имеется на плате. Оно обозначено как Р31, Р30, GND и 5V. Контакт 5V нам не нужен, а остальные подключаете соответственно к выходу UART адаптора (вывод Р30), входу UART адаптора (вывод Р31) и к общему проводу (GND). Далее запускаете скачанную программу, выбираете свой СОМ порт, скорости оставляете как есть, нажимаете кнопку "Open Code File" и выбираете из указанного выше архива hex файл. При этом в окне справа появится дамп памяти. Ниже выбираете из списка частоту 11.0592 МГц и выставляете фьюзы как указано на этой картинке:

    Теперь, когда вы все проверили (хотя неправильно выставленными фьюзами ЭТОТ контроллер вы НЕ убьете), отключаете питание часов, жмете в программе кнопку "Download/Program" и подаете на часы питание. Если все сделано правильно, в окошке под дампом вы должны увидеть, как побежит информация о микроконтроллере, его ревизия, выставленная частота, фьюзы и прочее. По окончании прошивки, которая длится 3-4 секунды, часы запустятся сами. Как видите, процедура весьма простая и безопасная.

    Кроме самой прошивки в архиве имется также 2 оригинальных схемы: одна из них - это поставляемая с набором, другая -  найденная в сети и более качественная. Также есть нарисованная мной в sPlan схема и ее GIF аналог. Есть в архиве и схема под Протеус, можете погонять, но не удивляйтесь скачущим показаниям - это так он воспринимает псевдо-ШИМ, на реальном устройстве этого не будет.

    Управление.
    Нижняя кнопка (НК) - это кнопка ФУНКЦИЯ, верхняя кнопка (ВК) - ПЛЮС. В обычном рабочем режиме краткое нажатие ВК, сопровождающееся коротким сигналом, разрешает/запрещает перелистывание информации на экране (45 секунд время и по 5 секунд дата, день недели и температура). Длинное (более секунды) нажатие этой же кнопки разрешает/запрещает подачу почасового сигнала. Диапазон часов для него выставляется в настройках, о чем ниже. Данная функция, когда включена, отображает точку в последнем разряде при отображении часов.
    Короткое нажатие НК в рабочем режиме переключает выводимую на индикатор информацию (часы, дата, день, температура), длинное нажатие НК вводит часы в режим настройки. В этом режиме коротким нажатием НК ходите по пунктам настройки, коротким нажатием ВК увеличиваете показания по одному, а удержание ее автоматически перебирает значения. В режиме настройки 1. Часы:Минуты, 2. Число.Месяц, 3. День недели, 4. Год, 5. СТАРТ.СТОП (т.е. начало и конец почасового сигнала). В любой момент длинное нажатие НК выводит из режима настройки и сохраняет все данные в памяти DS1302. Для сброса всех данных при отключенных часах нажимаете обе кнопки и подаете питание. После этого кнопки отпускаете.

    Из того, что осталось в процессе разработки, это замена терморезистора на DS18B20. Подключаться он будет к тому же порту, что и терморезистор (Р1.7). Как только это будет готово, выложу обновленную прошивку. А пока придется смириться с тем, что у вас в комнате температура будет нулевой :-) (на дисплее отображается 0.00*).

    Кроме этих часов в продаже имеется и другой их вариант, но на 20-ногом контроллере STC15F204EA. В данных часах отсутствуют термо- и фоторезисторы (из-за отсутствия свободных выводов), поэтомупри перелистывании последним пунктом показывается год. Их программирование абсолютно аналогичное, все необходимые файлы находятся в ZIP архиве 02.zip, но перед этим ознакомьтесь с прилагаемой схемой и сравните ее с приложенной к вашему набору. Дело в том, что имеются разновидности, несовместимые по ногам. Оба выложенных мной варианта - это часы с перевернутым третьим индикатором (для двоеточия), но есть часы с отличным от них цельным индикатором с центральным двоеточием. В принципе прошивку можно адаптировать и под них, если они сделаны на том же МК, но лучше не рисковать. Если есть вопросы, лучше заранее проконсультируйтесь со мной, предъявив схему, фото и какие-либо другие уши, лапы и хвост документы.

И напоследок: Ни автор, ни редация сайта не несут ответственности за испорченные в результате ваших действий часы, компьютеры и другую домашнюю технику и живность! Все, что вы делаете, вы делаете на свой страх и риск!

 

Всем удачи в программировании!


Файлы:
Схема часов (28-ног)
Схема часов (20-ног)
Комплект файлов для прошивки (20-ног)
Комплект файлов для прошивки (28-ног)


Все вопросы в Форум.


ID: 2486

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

8