Таймер для экспонирования фоторезиста

Доброго времени суток!
Развитие современных технологий толкнуло к освоению изготовления печатных плат с помощью фоторезиста. Печатаем фотошаблон, накатываем фоторезист, делаем из них бутерброд… Теперь нужно экспонировать. Как измерять время экспозиции? Можно, конечно, бегать с часами и дергать вилку из розетки. Но это не true way. Наш метод — изготовление таймера. Под катом пост на тему «Я и мой сраный таймер»

Что было надо и что получилось
Прежде всего, я использую лампу КЛЛ, 26W, цоколь Е27. Очень удобно, балласт внутри. То есть, коммутировать нужно 220V переменки. Питание, естественно, от сети.

Экспозицию нужно записывать в ПЗУ (EEPROM), не вводить же каждый раз заново.

Дисплей. Функционал устройства мизерный, хватит простого LEDа. В сети много конструкций со строчными (знакогенераторными) дисплеями, имхо, перебор.

Максимальное время экспозиции — 60 минут 59 секунд. Не думаю, что понадобиться больше. Минимальное — 1 секунда.

Кнопки — традиционно 3 штуки, старт и установка времени (инкремент и декремент).

Еще один момент — как узнать о завершении экспонирования? Опять бегать и смотреть на дисплей? А заодно и на включенную лампу? Нее, добавим звуковую сигнализацию (пищалку).

Итак, общая концепция «черного ящика»:
1. Разъем для подключения сетевого питания
2. Розетка для подключения нагрузки
3. LED — 4 разряда (минуты: секунды), двоеточие
4. Тактовые кнопки, 3 штуки
5. Пищалка

Корпус. Если устройство без корпуса, это не устройство, а средство для сбора пыли. Я выбрал N8AA производства AMBOX (думаю, у Kradex тоже найдется нечто подобное). Купил я его в 9В, на то время примерно за 1.5$. Но с ебучим темпом инфляции, ну, вы понели…

В этом корпусе можно расположить две платы, что очень удобно в данном случае — можно разделить силовую часть и управляющую.

На одном торце расположим разъем питания и выключатель, на другом — розетку и пищалку. На морде дисплей, кнопки. И еще два светодиода — питание и нагрузка (питание в общем-то не нужно, но для симметрии я поставил).

Сначала фото того, что получилось, а потом (если останется желание читать) — обсуждение внутренностей.



 

Да, розетку поставил совковую. Потому что была, а буржуйских в продаже не видел.

Силовая часть
Блок питания — линейный. Ибо импульсный избыточно. А не развязанный, хм… Не люблю я их.



Места в корпусе полно, есть куда втулить завалявшийся китайский трансформатор. Я его пробовал в устройстве с ИК-приемником (дежурный режим), греется зараза. А тут малое время работы, как раз сойдет.
Под трансформатор вырезано прямоугольное отверстие, отлично сидит и не дергается.


Мост КЦ407, до этого ни разу не паянный, жалко же выбрасывать.

Коммутирующий элемент — симистор. Ставить реле как-то рука не поднимается, хоть и место есть. Как водиться, опторазвязка MOC3043. Схема самая что ни есть типовая, она приведена в даташите на MOC3043 (даташит есть во вложении).

Думаю, симистор можно было и без радиатора ставить, но так спокойней.



Примечание: На плате я не установил конденсатор снаббера, поэтому при включении/отключении питания таймера нагрузка слегка мигает. Установка конденсатора должна решить этот маленький баг.

Устройство управления

Микроконтроллер — STM8S003F3P6. Дешевле я не видел, да еще с такой кошерной начинкой. Даже встроенный модуль для пищалки есть. Кварц поставил, все-таки время считать.


Дисплей — CC56-21GWA, если это о чем то говорит. Высота 19мм, таких полно в магазинах.

К дисплею еще сдвиговый регистр идет — классика жанра, 74HC164. У меня он был в DIP.

Кнопки с круглыми поршнями. Акцентирую, на ногах 11 и 12 внешние pull-up резисторы. Эти выводы контроллера open-drain, без встроенных подтяжек. Я невнимательно читал даташит, и потом долго не мог понять, почему кнопки плавают…



Пищалка пьезо, резонанс вроде 1кГц. Успешно демонтирована откуда-то, но в магазинах их полно.
Пробовал ставить электромагнитную (через транзистор, естественно), но звук был намного тише (это те что без генератора). И жрет она 10-15мА. Единственное достоинство, на мой взгляд — их можно выдирать из старых китайских будильников.





Обратите внимание, как установлен шлейф. Очень удобно, провода не отламываются.
Пищалка приклеена к корпусу двусторонним скотчем.
Выводы программирования SWIM подпаивал проводами. Тут стоило бы добавить питание от программатора, но я не подумал.



Поскольку таймер делал не на выставку, не хотелось заморачиваться с колпаками для кнопок и шильдиком. Три кнопки, запомнить не сложно: START/STOP, INC, DEC.

Описание работы

При включении таймер подает звуковой сигнал. На дисплей выводиться время экспозиции. Важный момент — время, которое вы использовали в прошлый раз. Запоминается автоматически, ничего нажимать не надо.

Для запуска нажимаем кнопку START (внезапно, да?). Подается звуковой сигнал, четыре возрастающих тона. Нагрузка, то бишь лампа, включается только после завершения звукового сигнала. На дисплее обратный отсчет.

По достижению заданного времени экспозиции нагрузка отключается, затем идет звуковой сигнал (четыре убывающих тона). На дисплее 00:00. Время, которое вы использовали, запоминается в EEPROM.

Нажимаем еще раз START, и получаем на дисплее время экспозиции (вместо нулей).

Как изменить время экспозиции? Нажать одновременно кнопки INC и DEC. Устанавливаемые разряды (минуты или секунды) начнут мигать. Приращение/уменьшение времени осуществляется кнопками INC, DEC. Быстрый набор при удержании присутствует:) Переход между минутами и секундами кнопкой START.

Максимально возможное время экспозиции — 60 минут 59 секунд. Минимально возможное — 00 минут 01 секунд.

Выход из режима установки — одновременным нажатием кнопок INC и DEC.

Еще один момент — если экспозиция запущена, ее запросто можно отключить, нажав кнопку START (т. е., она же являеться и кнопкой STOP).

Видео в аскетичном телефонном качестве прилагается.


Вот ссылка

Прошивка

Не вижу смысла в рамках этого поста описывать прошивку. Все исходники во вложении, также можно посмотреть файл «About_UF-Timer.txt» Проект сделан в IAR.

Прошивал контроллер с помощью STM8L-Discovery.

Важно! Если кто надумает повторить проект! Питание таймера 5В, а уровни STM8L-Discovery 3В. Либо согласовывать, либо запитывать целевой МК от программатора (что я и сделал).

Небольшой, но важный нюанс. Модуль бипера этого МК может тактироваться либо от LSI (встроенный RC-генератор, по умолчанию), либо от HSE(внешний кварц). Но, чтобы нормально работать на частоте резонанса пьезоизлучателя, нужна калибровка. Для калибровки нужно использовать встроенный таймер в режиме захвата. Об этих и других увлекательных вещах можно почитать в RM0016.
Без калибровки я пробовал, не понравилось (128 kHz ± 12.5%, 16кГц — не мало, да?). Почему бы не использовать HSE, кварц-то установлен? Тут тоже не все так просто. Переключение на бипера на тактирование от HSE осуществляется через Option bytes.
В общем, я запустил утилиту STVP и во вкладке OPTION BYTE сделал следующее:

до

после

То же самое можно бы сделать в прошивке, но мне было лень

Вложение

Во вложении вы найдете:
1. Схему в формате sPlan, там же чертежи «морды» и расположение плат в корпусе (увы, в SolidWorks я не силен)
2. Печатка в формате LayOut
3. Проект под IAR, с исходниками
4. Чертежи корпуса и даташиты
5. Фотографии (включая скрины прграммирования OptionByte)

Вопросы/предложения/пожелания складываем в комментарии.
  • +12
  • 23 января 2015, 01:05
  • Brunnen-G
  • 3
Файлы в топике: UF-Timer.tar, UF-Timer_Foto.tar, Base.tar

Комментарии (20)

RSS свернуть / развернуть
камрад, чтобы ссылка на кино нормально вставилась, надо, чтоб адриск был не «youtu.be бла-бла-бла», а «youtube.com бла-бла-бла»
0
Та я уже пробовал. Аккаунт на ютубе не мой, а товарища. Чуть попзжа обращусь к нему
0
<video>http://youtube.com/watch?v=vjCP0fQSB9w</video>
0
Делал так:
<video>http://youtube.com/embed/DwWKBM9olMg</video>

Это «Поделиться», html код
Чего не работает, не представляю
0
Оно работает только с той ссылкой, что я привел выше. Так что копируй код в топик и запомни — работает только ссылка этого вида, причем только http.
Такое впечатление, что на эти грабли наступают все.
0
Чертовски огромное спасибо!
0
да, за саму статью однозначный зачот!
0
Спасибо!
0
1. ИМХО, логичнее было бы после остановки таймера иметь возможность продолжить экспозицию.
2. В IAR, если он не совсем старый, есть встроенные средства для изменения Option bytes.
0
По второму: IAR Embedded Workbench IDE 6.1.6.1880 (6.1.6.1880), насколько устарел?
И где там эти средства? Если можно, дайте скрин…
0
0
Похоже мой иар устарел… Спасибо за наводку!
0
А как (чем) ты окно в корпусе так ровно вырезал?
+1
В splan совместил плату с корпусом, соблюдая размеры. Там же расчертил «морду».
Морду распечатал на кальке, приложил к корпусу и разметил все скальпелем.
Окно «грубо» выпилил микродрелью.
Затем довел тем же скальпелем и напильником, примеряя к уже запаянному в плате дисплею.
Тут не очень важно чем, просто не спешить.
0
так сплан же для схем, как ты в нем начертил корпус?
и что за опцианальные биты в стм8? аналог фьюзов в авр что ли?
а я думал они избавились от этого гимора
0
Ну, в splan же есть прямые линии и окружности, почему бы не начертить? И не то чтобы корпус, так, наброски.
Option Bytes
1. По назначению похоже на фьюзы. Защищенная область памяти с системными настройками.
2. По доступу — изменить можно как по SWIM, так и из приложения!
Но для доступа из прошивки нужны хитрые процедуры, вроде ввода ключей для разблокировки. Мне хотелось побыстрей закончить, поэтому я выбрал наиболее простой (но не наиболее правильный) путь.
0
Ну, в splan же есть прямые линии и окружности, почему бы не начертить?
я всегда думал, что размеры на экране и в реале не совпадут, т.к. прога не предназначена для таких работ

есть такая штука frontpanel designer от той же конторы вроде
но у меня всегда был вопрос: как совместить дырки крепления реального корпуса с дырками на плате
и кнопки на плате с будущими дырками на корпусе
и чтобы это еще можно было на чпу нарезать
0
Еще, акцентирую, в Option не внесен выбор источника тактирования.
Вот недавно достал из закромов снятую неизвестно откуда tiny2313. Запаял. Не прошивается.
Почему? Или настроено на кварц, или на генератор, залочен ISP или программатор лагает? Оно то решаемо, но вечер был испорчен :)
0
Оно то решаемо, но вечер был испорчен :)
о чем и речь
хотя вроде бы эти биты не позволяют уж совсем залочить контроллер, как это бывает в авр
0
Не, не представляю, как можно залочить STM.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.