Отладчик за копейки: делаем ST-Link из Maple Mini

5f8cc28fd00d435995b0c3255c73a96e.jpgНачав свое знакомство с STM32 с китайских клонов Leaf Maple Mini (потому что самый дешевый вариант, 4$), я столкнулся с неудобством. Поскольку на Maple IDE рассчитывать не стоит, значит, приходится работать с «голым» STM32. А раз ST-Link у меня нет, заливать программу я могу только по UART, что неудобно (и нет возможности отладки).

Но хабраюзер imwode ровно через 9 часов после моей публикации написал ответный материал, из которого я узнал прекрасное: отладчик ST-Link основан на том же микроконтроллере STM. При этом, прошивка отладчика умельцами вытащена и готова к загрузке на неродные устройства. Maple Mini подходит идеально: ничего лишнего, USB распаян, надо только несколько резисторов подключить.

Нужно:

1. Соединить PA5 и PB13 (D6 и D30 у Maple Mini). Это будет линия SWСLK.2. Между PB14 и PB12 (D29 и D31) поставить резистор в 220 Ом. PB14 (D29) — это линия SWDIO.3. PA0 (D11) подключить к делителю из двух резисторов в 4.7 КОм между +3.3В и GND.

И тут тоже грабли!

После прошивки, по идее, ПК должен распознать плату как ST-Link. Но нет. Как будто ничего вообще не подключено. На поиск граблей было потрачено энное количество времени, а надо было всего лишь повнимательнее посмотреть на схему Maple Mini, а конкретно — на реализацию линии USB D+. Она подтягивается к +3.3В через резистор 1.5 КОм, но включается подтяжка транзисторным ключом. Который управляется с ножки МК и по умолчанию выключен. А раз так, ПК просто не понимает, что подключено к USB-порту. Не будем вмешиваться в плату, а просто «повесим» еще резистор в 1.5 КОм между +3.3В и D+ (D23).

Теперь у нас появилось устройство ST-Link. Ставим ST-Link Utility, там и драйвер имеется. Обновляем прошивку нашего ST-Link (через эту самую Utility), и с отладчиком можно начинать работу. По крайней мере, я подключил к нему вторую Maple Mini: SWCLK к PA14 (D21), SWDIO к PA13 (D22) и успешно как залил откомпилированный Blink, так и произвел его дебаг средствами Coocox.

В принципе, устройство уже можно оснащать нормальным разъемом и запихивать в корпус. Не забыв перед этим добыть «нормальные» резисторы, а не то, что под руку подвернулось. Не помешает и какая-нибудь светодиодная индикация. Я думаю, многие самодельщики подтвердят, что переход от «спички, желуди, синяя изолента» к законченному устройству — самый сложный и длительный, ибо «зачем, оно и так работает, хоть и провода торчат во все стороны».

И, да, китайский ST-Link можно купить за те же 4$ на Aliexpress, например.

Основополагающая тема на Easyelectionics.Прошивка (тожe Easyelectronics).Описание Leaf Maple MiniST-Link UtilityМануал на «родной» ST-Link

© Habrahabr.ru