воскресенье, 19 февраля 2017 г.

Быстрый старт с Maple mini. STM32. Делаем программатор ST-Link V2.


Именно такие. Maple mini.

Прикупил две штучки Maple mini (STM32F103CB).
Из одной я сделаю копию программатора ST-Link V2, второй будет рабочей лошадкой. Этот программатор удобен для заливки прошивок, а также понадобится для дебага.
Программатор можно купить официальный, а можно купить на aliexpress. Ждать месяц не было желания, а у продавцов нашего города программаторов не было, поэтому решил делать свой.

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

Первые тесты.


Получив платки хочеться как можно быстрее попробовать их. Для этого скачиваем Leaflabs IDE отсюда под свою ОС. Запускаем. Подключаем платку через USB шнур и выбираем порт. И заливаем разные example скетчи: Blink или Button, которые находятся в File->Examples->Digital. Первая - мигает встроеным синим диодиком, вторая - делает из встроенной кнопочки переключатель сведтодиодика. Вот небольшая инструкция если появились какие-нибудь проблемы.
Прошивку ST-link'a через неё не зальешь + Leaflabs забросило развитие своего IDE (клон arduino IDE) + мне не нравится arduino стиль, поэтому идем дальше.

Пытаюсь прошить через UART или software часть ST-Link.


Если нету ST-Link'a или лень его делать, то МК можно шить через UART. Я же через UART залью прошивку ST-Link программатора.
Берем cp2102 или аналог и подключаем к Maple mini по схеме:
             Maple mini -> cp2102:
            RX (25 pin) -> TX;
            TX (26 pin) -> RX;
                       GND -> GND;
                          Vin -> Vcc (5 вольт);


Будьте осторожны максимальное напряжение STM32 - 3.3 вольта, а у USB -  5В. Vin можно запитать от 5В, т.к. на нем стоит преобразователь напряжения (его тоже использует USB вход на плате). Но Vcc - только 3.3 вольта! Преобразователя напряжения на нем нет!
Другая крайность состоит в том, что не стоит питать Vin меньше 5 вольт, т.к. для питания МК будет приходится значительно меньше 3.3 вольта и он может не запуститься.

Мой USB порт не тянет питание cp2102 и maple mini одновременно, поэтому пришлось навесить дополнительное наружное питание.

Скачиваем Flash Loader Demostrator. После того как все подключили, переходим в режим загрузчика. Для этого подключаем boot1 (2 pin) к GND, зажимаем кнопочку reset, потом зажимаем вторую кнопочку, отпускаем reset, отпускам вторую кнопочку.
Запускаем Flash Loader Demostrator, выбираем порт и нажимаем next, если все ок в следующем окне нам покажут сколько памяти в нашем чипе. Жмем next и выбираем количество памяти, остальное не трогаем. Жмем еще раз next и мы на странице upload/download прошивки.
Качаю эту прошивку и заливаю ее. На всякий случай сохранил ее у себя.

Hardware часть ST-Link программатора.


С прошитой maple сделал следующее:

1) Соединил 6 пин (PA6) и 30 пин(PB13).
2) Резистором 220 Ом соединил 29 пин (PB14) и 31 пин (PB12).
3) 11 пин (PA0) через 4.7 кОм резисторы соединил с Vcc и GND каждый.
4) 23 пин 1.5 кОм резистором соединил с Vcc (чтобы программатор обнаруживался).

Получилось это:
Копия ST-Link v2 из maple mini.























Теперь 29 пин (PB14) это SWDIO, а 30 пин (PB13) это SWCLK.

Тестируем программатор.

Программатор и рабочая лошадка.























SWDIO программатора подключаем к 22 пину (PA13) maple mini, SWCLK подключаем к 21 пину (PA14), Vcc с Vcc и GND с GND + дополнительно подключил внешнее питание.
Не подключай питание программируемого Maple через Vin пин, если напряжение меньше 5 В, как результат у меня не запускался чип и программатор его не обнаруживал.
Скачиваем и устанавливаем ST-Link Utility. Жмем ST-LINK -> Firmware update. В окне щелкаем Device connect. Если все сделал правильно, то строка с firmware version покажет текущую версию программатора. Если вылетает ошибка, внимательно все перечитай и проверь. Если текущая версия отобразилась, жмем Yes > > > > и пойдет процесс обновления прошивки программатора. Копия ST-Link v2 готова к использованию!

Шьем рабочую лошадку.


Теперь можно прошивать "рабочую лошадку".
Жмем Target -> Connect.
У меня почему-то коннект не происходил. В окне сообщения об ошибке советовали менять настройки. Менял и это тоже не помогало.
После нескольких часов проб я решил ввести maple в режим загрузчика также как и при UART'е.
Зажимаем кнопочку reset, потом зажимаем вторую кнопочку, отпускаем reset, отпускам вторую кнопочку.
И о чудо, программатор обнаружил maple mini. В дальнейшем переход в режим загручика отпал сам по себе, почему не знаю - магия!
File -> Open File и пробую залить простенькую программку.  Target -> Program & Verify.
И радуемся загоревшимуся светодиодику.

И...


В следующих постах я попробую написать простенькую программку и проверить дебагер на основе ST-Link.
Делал все через виртуальную машину (VMplayer) под WinXp. Поэтому в будущем попробую перейти на Ubuntu.

Комментариев нет:

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