Часы на STM32F100RB. Составление принципиальной схемы

Как уже было оговорено, устройство будет располагаться на двух платах.
Одну назовем "Процессорный модуль", а вторую — "Модуль индикации".
Начнем с процессорного модуля.

Первым делом необходимо обеспечить процессор питанием и возможностью  программирования.

Это схема питания. В ней стабилизатор на 3.3 вольта

и керамические конденсаторы. Конденсаторов можно

натыкать побольше (маслом каши не испортишь).

У контроллера по три вывода для подключения плюса питания

и земли. В принципе, они в обьеденины внутри контролле ра (я

проверял омметром ), но обычно подключают все выводы.

Но я частенько жульничаю, и подключаю только к одному

из выводов (так удобнее плату разводить). Пока из-за этого проблем не возникало, хотя в серьезных устройствах, думаю, лучше так не делать.

Теперь обеспечим возможность прошивки контроллера:

 

По линиям TX и RX осуществляется связь с компом.

Все остальное необходимо для запуска встроенного загрузчика.

Для этого необходимо удерживая нажатой  кнопку "PROG"  кратковременно нажать кнопку "RESET".

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

В принципе, можно не ставить кнопку   "RESET", а рестарт контроллера производить кратковременным снятием питания.

Зачем кнопка  "PROG" заведена на вывод "?" ?.

У нее будет двойное назначение: вход в встроенный загрузчик и ввод информации от пользователя(корекция часов или минут, пока не определился). Какой это будет вывод определим позже, при разводке платы, какой удобно, тот и возьмем.

 

Теперь о подключении индикаторов. Будем использовать динамическую индикацию. Для тех, кто не знает что такое динамическая индикация, проведу небольшой ликбез (т.е. ликвидация безграмотности):

Необходимо подключить индикатор, состоящий из четырех семисегментных разрядов (ну и восьмой разряд — точка). Если пытаться решить эту задачу что называется влоб, необходимо 8 х 4 = 32 вывода контроллера. Прилично. А еще к каждому сегменту нужно тянуть дорожку. Это расточительство. И тут на помощь приходит динамическая индикация. Сегменты всех индикаторов соеденяются вместе и подключаются к контроллеру (это всего 8 ног). А вот общий провод светодиодов каждого разряда коммутируется контроллером посредством транзисторного ключа (еще 4 ноги).  Выводится информация на сегменты, которая соответствует первому разряду и открываем ключ первого разряда, затем то же делаем для всех разрядов. Получается, что поочередно отображаются все разряды, но делается это до безобразия быстро, и наши глаза, в силу их инерционности, видят инфрмацию всех разрядов

Вот так выглядит модуль индикации:

Номинал токоограничительных резисторов в цепи сегментов пока не знаю.

Но думаю, что примерно 85 Ом ил немного больше.

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

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

Транзисторы любые маломощные.

Ток через транзистор не превысит 100мА, частота переключения меньше 1000 Гц.

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

В качестве индикатора использую четырехразрядный семисегментный светодиодный  индикатор. Цвет свечения — зеленый. Для комнатных часов это хороший вариант.

Остается на процессорный модуль добавить кварц для RTC, резервную батарею и комнатный датчик температуры. В результате получилось следующее:

 

Процессорный модуль полностью (картинка кликабельна)

image 

На схеме  показан светодиод. Он для контроля. Будет показывать работоспособность модуля. Я всегда стараюсь ставить контрольный светодиод.

Теперь необходимо сделать печатную плату  для процессорного модуля и модуля индикации.

Комментарии (16) на “Часы на STM32F100RB. Составление принципиальной схемы”

  • Отличная статья для неопытных.

  • kontroller:

    Дальше поэтапно рассмотрю написание программы. Пока застрял на изготовлении платы.

  • Забавно, в целом мне понравилось. :-)

  • прочитала с удовольствием

  • Не ставил бы подтяжку на RESET, там встроенный резюк :)
    Блог супер :)

    • kontroller:

      Я стараюсь всегда ставить дополнительную подтяжку на RESET. В контроллере подтяжка есть, но порядка 100kOm. Ставлю 10к, чтобы уменьшить вероятность сброса от наведенной помехи. Может быть это излишество, но стараюсь это делать. Хотя и без него будет работать.

  • Саня:

    Доброе время суток! а почему у Вас НЧ кварц подключен к выводам 2 и 3, а не к 3 и 4, как указано в датащите??? или это просто опечатка?

  • Саня:

    Подскажите пожалуйста! изготовил плату с МК STM32F103VGT6, ошибок печати не обнаружено, все выводы BOOT притянуты к земле, вывод RESET притянут через 10к к +3,3V. сигналы тактирования и данных с программатора приходят. но на самом выводе RESET постоянно висит «0″. при включении проскакивает сигнла длительностью 200-300нс, потом короткий пик и молчанка. соответственно контроллер не стартует! в чем может быть причина??? или все не так просто??? заранее спасибо! :)

    • kontroller:

      На «землю» короткого нет ?

      • Саня:

        нету! нашел! питание аналоговой части было ниже 2,4В. переключил стабилизаторы МК стартонул! все определяется. вот теперь вопрос с PLL! на внешний переходит нормально, а вот флеш настроить не могу!

  • DragonSmile:

    Впредь рекомендую вместо биполярных транзисторов с резисторами ставить полевые транзисторы с малым напряжением включения (к примеру IRLML2402). Соответственно индикатор нужен с общим катодом (а данные на него выдаются без инверсии).

    Суммарный ток на сегменты в STM32 ограничен 150 миллиамперами, если взять по 15мА на сегмент — номинал резисторов будет около 68-100 Ом

  • ujin:

    согласен полностью насчет полевиков…

  • Аноним:

    напряжение питания МК 3.3В, напряжение питания индикаторов 5В.
    не сгорит ли МК, если напряжение 5В попадет на ножку МК?

  • Антон:

    Не удачное подключение транзисторов,для питания светодиодов, они будут работать в активном режиме, и скорее все греться, а точнее они будут работать в режиме эмиттерного повторителя! питание 5V, а на выходе контроллера 3,3v минус падение на переходе база эмиттер, на эмиттере будет примерно 2,7v…. все остальные 2,3v будут падать на транзисторе это не правильно, транзистор должен работать в ключевом а не в активном режиме…

Оставить комментарий

Spam Protection by WP-SpamFree