Программатор для stm32 своими руками

Программатор для stm32 своими руками

Домашняя страница

Circuit designer engineer blog

О блоге

Контактная информация и описание деятельности. Разработка схемотехники. Трассировка печатных плат. Разработка встраиваемого программного обеспечения. Работа на заказ.

Самодельная и доступная альтернатива продаваемому программатору от STMicroelectronics. Является выдержкой и компиляцией нескольких статей и схем найденных в интернете. Реализация в минимально возможном форм-факторе.

У любого разработчика встраиваемого софта должен быть программатор для устройств которые он использует. В моём случае микроконтроллеры фирмы STMicroelectronics, а так же Milandr (российские процессоры на ядре ARM).

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

Решено было сделать программатор самостоятельно. За основу легли схемы отладочных плат для различных МК, в итоге получился полнофункциональный отладочный модуль и не только для stm32, но и для stm8 и даже миландровских чипов (проверено пока только на К1986ВЕ92, но думаю и другие тоже будут шиться и отлаживаться).

  • программирование и отладка STM32;
  • программирование и отладка STM8;
  • программирование и отладка ARM Миландр.

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

Ядром является контроллер stm32f103, который и используется во всех отладочных платах. На его входах и выходах устройства, я имею ввиду разъем для подключения программируемого микроконтроллера, установлены диоды для защиты от статики, диоды выбраны достаточно маленькие, но легко доступные и без особых сложностей впаиваемыми, даже людьми с ослабленным зрением, сам я впрочем и не жалуюсь со своими единичками на обоих глазах.

В качестве разъема для подключения к компьютеру используется microUSB, выбор пал только лишь из-за его современности по сравнению с его мини братом. У меня же самого на плате стоит именно мини, когда собирал заложенного микро не было в наличии.

Читайте также:  Windows 10 не работает диспетчер устройств

Домашняя страница

Circuit designer engineer blog

О блоге

Контактная информация и описание деятельности. Разработка схемотехники. Трассировка печатных плат. Разработка встраиваемого программного обеспечения. Работа на заказ.

Самодельная и доступная альтернатива продаваемому программатору от STMicroelectronics. Является выдержкой и компиляцией нескольких статей и схем найденных в интернете. Реализация в минимально возможном форм-факторе.

У любого разработчика встраиваемого софта должен быть программатор для устройств которые он использует. В моём случае микроконтроллеры фирмы STMicroelectronics, а так же Milandr (российские процессоры на ядре ARM).

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

Решено было сделать программатор самостоятельно. За основу легли схемы отладочных плат для различных МК, в итоге получился полнофункциональный отладочный модуль и не только для stm32, но и для stm8 и даже миландровских чипов (проверено пока только на К1986ВЕ92, но думаю и другие тоже будут шиться и отлаживаться).

  • программирование и отладка STM32;
  • программирование и отладка STM8;
  • программирование и отладка ARM Миландр.

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

Ядром является контроллер stm32f103, который и используется во всех отладочных платах. На его входах и выходах устройства, я имею ввиду разъем для подключения программируемого микроконтроллера, установлены диоды для защиты от статики, диоды выбраны достаточно маленькие, но легко доступные и без особых сложностей впаиваемыми, даже людьми с ослабленным зрением, сам я впрочем и не жалуюсь со своими единичками на обоих глазах.

В качестве разъема для подключения к компьютеру используется microUSB, выбор пал только лишь из-за его современности по сравнению с его мини братом. У меня же самого на плате стоит именно мини, когда собирал заложенного микро не было в наличии.

Читайте также:  Engine config чем открыть

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

Контроллеры STM32 можно прошить двумя путями.
1) Через встроеный бутлоадер (бутлоадер, это такая маленькая программка внутри каждого микропроцессора STM32, которая прикидывается программатором — это если по простому). Прошивка в таком варианте происходит через UART (для связи с компьютером используется переходник USB>COM)

2)Внешним программатором. Из внешних программаторов на данный момент есть большой выбор. Это может быть и ваша отладочная плата STM32 Discovery, и китайский аналог ST-LINK V2 mini, и оригинальный ST-Link.

Первым вариантом я не пользовался, но сложного в нём вроде ничего нет. Нужно скачать утилиту STM32 ST-LINK Utility и на вашем прошиваемом микроконтроллере выставить определённый сигнал на ножкеножках BOOT0BOOt1. Допустим возьмём для примера самый дешёвый и простой микроконтроллер STM32F030F4P6 в корпусе TSSOP20. У него есть ножка BOOT0, которую если мы замыкаем на массу — то у нас контроллер будет прошиваться через SWD (то есть от внешнего программатора), а если на эту ножку подать напряжения питания, то контроллер будет стартовать с встроенного бутлоадера, и ждать пока мы его прошьём через UART, то есть с помощью программы ST-LINK Utility.

Вторым вариантом намного проще работать, так как помимо того что вы можете прошивать свои микроконтроллеры так ещё и в режиме реального времени отлаживать свои программы (дебажить))
Для прошивки в таких случаях используется всего 4 ножки (по минимуму)
1)Vcc — питание 3 Вольт
2)VSS(Gnd) — масса
3)SWCLK
4)SWDIO

Такой вариант подключения для прошивки используется в том случае, если вы не сконфигурировали ножки SWCLK и SWDIO в качестве портов ввода-вывода. Если же вы эти ножки используете в качестве портов ввода-вывода, то прийдётся ещё подключать "физичесу" линию сброса. — RST . В таком варианте у нас получается 5 проводов для подключения
1)Vcc — питание 3 Вольт
2)VSS(Gnd) — масса
3)SWCLK
4)SWDIO
5)NRST

Читайте также:  Как проверить компланарность векторов зная их координаты

Вот так выглядит распиновка на плате STM32F4Discovery разъёма для программирования внешних микроконтроллеров. Пин VDD_Target является пином, для снятия показаний напряжения с прошиваемого устройства. Этот если по простому — для согласования уровня напряжений между программатором и прошиваемым устройством.

Вот так выглядит разъём программатора ST-LINK V2 mini. В нём есть дополнительные средства для работы с STM8 и т.д, поэтому для работы с STM32 нам нужны пины
1)Vcc — питание 3 Вольт
2)SWDIO
3)VSS(Gnd) — масса
4)SWCLK
10)NRST

Вот так выглядит схема подключения для прошивки нашего простейшего микроконтроллера STM32F030F4P6

Как видите, никаких заморочек нет. На этом думаю всё, если будут вопросы, то пишите в коментах, я добавлю эти нюансы в статью.

Ссылка на основную публикацию
Adblock detector