Есть в природе вот такая забавная штучка на базе микроконтроллера STM32F103.
В своём составе имеет:
- Микроконтроллер STM32F103RBT6 на базе ядра ARMv7-M (Cortex-M3). В корпусе LQFP64.
- Трёхкоординатный датчик ускорения.
- Цветной графический дисплей 128x128 точек.
- Кнопка, USB-интерфейс, звукоизлучатель, светодиоды, площадки для подключения устройств расширения.
- Встроенный JTAG отладчик с подключением к ПК через USB.
Версия OpenOCD из репозитория поддерживает встроенный отладчик под именем rlink
.
Если отладка на реальном железе не нужна, можно пойти другим путём и воспользоваться встроенными возможностями контроллера STM32 - загрузчиком через UART1.
STM32 Loader
Простейший загрузчик можно получить по адресу https://github.com/jsnyder/stm32loader .
В данный момент программа находится в разработке, но уже позволяет читать, стирать, записывать и проверять Flash память МК.
Доработка
STM32 Primer для возможности загрузки через последовательный порт UART1 требует некоторых доработок.
Нам потребуется внести изменения в следующих зонах платы:
Шаг 1
Для подключения к ПК нам потребуется Serial порт с TTL3.3v уровнями сигнала. Очень хорошо на эту роль подходит дата-кабель от мобильных телефонов на базе чипа Prolific PL-2303.
Следует учесть, что вывод TX
serial порта мы подключаем к точке RxD
на плате, а вывод RX
порта к точке TxD
.
Шаг 2
Резистор R48
подтягивает ногу процессора Boot1
к питанию. Нам же надо переместить его так, что бы вывод был подтянут к земле.
Шаг 3
Резистор R42
нулевого сопротивления заменяем резистором номиналом 10К.
Для того, что бы МК после сброса входил в режим загрузчика, точка Boot0
должна быть притянута к напряжению питания (лог. 1). Это можно сделать либо замыканием выводов посадочного места резистора R49
, либо прямым подключением к выводу nRTS
TTL Serial порта.
Шаг 4
Для внешнего сброса МК можно подпаятся к точке Reset
. Это может быть обычная кнопка между Reset
и GND
или транзисторный ключ подключённый к выводу nDTR
TTL Serial порта.
Итог
В результате мы получим примерно такую конструкцию
comments powered by Disqus