![]() |
![]() |
||||||||||||
Китайские "сделай сам" часы на микроконтроллере STC15F204EA
Автор: Zhuk72 Наверное многим из вас знакомы эти часы, они постоянно попадаются тем, кто гуляет по Алиэкспресс, Ибей и другим подобным им онлайн торговым площадкам. У них не очень высокая цена (по крайней мере была) и они привлекают к себе внимание и вызывают желание купить. Я также поддался искушению заиметь у себя в спальне такие часы, и, после долгих сравнений цен и разновидностей, подобрал себе комплект с синими индикаторами и наличием терморезистора и датчика освещенности в лице фоторезистора. Через пару-тройку недель я получил этот набор и спаял его. Все прошло без эксцессов, часы заработали сразу и заняли свое место в спальне. Но в первый же вечер пришлось отвернуть их к стене, а затем и вовсе приходилось укладывать их лицом вниз, так как, несмотря на наличие датчика освещенности, уровней яркости было всего 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 аналог. Есть в архиве и схема под Протеус, можете погонять, но не удивляйтесь скачущим показаниям - это так он воспринимает псевдо-ШИМ, на реальном устройстве этого не будет. Управление. Из того, что осталось в процессе разработки, это замена терморезистора на DS18B20. Подключаться он будет к тому же порту, что и терморезистор (Р1.7). Как только это будет готово, выложу обновленную прошивку. А пока придется смириться с тем, что у вас в комнате температура будет нулевой :-) (на дисплее отображается 0.00*). Кроме этих часов в продаже имеется и другой их вариант, но на 20-ногом контроллере STC15F204EA. В данных часах отсутствуют термо- и фоторезисторы (из-за отсутствия свободных выводов), поэтомупри перелистывании последним пунктом показывается год. Их программирование абсолютно аналогичное, все необходимые файлы находятся в ZIP архиве 02.zip, но перед этим ознакомьтесь с прилагаемой схемой и сравните ее с приложенной к вашему набору. Дело в том, что имеются разновидности, несовместимые по ногам. Оба выложенных мной варианта - это часы с перевернутым третьим индикатором (для двоеточия), но есть часы с отличным от них цельным индикатором с центральным двоеточием. В принципе прошивку можно адаптировать и под них, если они сделаны на том же МК, но лучше не рисковать. Если есть вопросы, лучше заранее проконсультируйтесь со мной, предъявив схему, фото и какие-либо другие уши, лапы и хвост документы. И напоследок: Ни автор, ни редация сайта не несут ответственности за испорченные в результате ваших действий часы, компьютеры и другую домашнюю технику и живность! Все, что вы делаете, вы делаете на свой страх и риск!
Всем удачи в программировании!
Файлы: Все вопросы в Форум.
|
|
||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |