Как и чем прошить STM32 STM32F103C8T6 на примере blue pill.
Данное руководство по прошивке микроконтроллеров STM32. В частности и на примере blue pill, на которой установлен контроллер STM32F103C8T6. Если вы знакомы с ардуино, то понимаете, что контроллер можно прошить программатором, либо через встроенный загрузчик. Но в отличии от AVR, и arduino в семействе STM32 загрузчик уже зашит в микроконтроллер. Да, не нужно прошивать загрузчик в пустой кристалл! Он уже зашит с завода, и зашит так, что он не может слететь. Что бы вы не вытворяли с STM32 загрузчик не слетит.
Кто сидит на arduino знакомы с этой проблемой, чуть косяк с прошивкой, чуть она длиннее положеного или указали не тот камень и прошивка затирает загрузчик arduino. При этом, что бы его восстановить нужен программатор. Есть в STM32 еще одна прекрасная вешь, это отсутствие фьюз! то есть конфигурирование микроконтроллера происходит из программы! Не нужно указывать откуда тактироваться, какие режимы включать и т.д. Тиким образом STM32 может по ходу выполнения кода сам себя разгонять — когда нужна производительность, вжарить на максимальной частоте, а потом снизить тактовую частоту и экономить батарейку.
И при этом его в отличии от AVR не окирпичить неправильно зашитыми фьюзами! Неграмотными действиями при прошивке вы не убьете STM32, не переживайте! Да AVR можно восстановить высоковольтным программатором, но у всех ли он есть? Я собирал AVR FUSE BIT DOCTOR для этого. Был грешок, косячил с тактированием.
Теперь о 2х самых распространенных. Это через этот самый загрузчик и через отладочный разьем. В первом случае потребуется USB то UART переходник. Кто пользуется ардуино у них эти переходники или есть, или распаяны на плате с ардуино.
Если нету, то лучше купить внешний, например такой

Прошивка STM32 (STM32F103C8T6 )через UART, через выстроенный загрузчик.
Для прошивки через встроенный загрузчик потребуется программа Flash Loader Demonstrator.
Во первых переходник нужно переключить на напряжение 3,3 вольта.

Заем подключить этот переходник к компьютеру и к самой голубой таблетке, а на таблетке переставить перемычку. Эта перемычка говорит контролеру, с чего загружаться. В данном случае будет загружена не прошивка, а загрузчик. Подключать стоит TX к RX а RX к TX. Если перепутаете, то ничего страшного не произойдет. Просто программа не увидит контроллер, и потом провода можно поменять местами. Нельзя путать только + и — питания.

Запустить программу Flash Loader Demonstrator и выбрать в ней COM порт, к которому подключена плата (если в компьютере у вас нет ком порта, то в списке будет всего 1 порт, не ошибетесь).

Дальше, если все верно подключено, то программа выведет вот такое вот окно.

Тут выбирать больше не чего, и нужно нажать кнопку NEXT. На следующей вкладке программы, на которой тоже ничего интересного, просто служебная информация, которая мало кому интересна, трогать тут ничего не нужно, и смело можно жать NEXT.

А вот на следующей вкладке нужно выбрать файл который нужно прошить.

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

Шкала пробежит 2 раза, один раз прошивка, второй раз сравнение того, что прошилось с оригинальным файлом, так программа проверяет, все ли правильно прошилось и не попал ли какой мусор. После этого программа гордо выведет на экран вот такое вот окно.

Поздравляю! Прошивка в плате, что бы она запустилось, нужно вернуть перемычку на плате на место.
Прошивка через отладчик.
Быстрее и удобнее все же прошивать СТМ32 программатором через SWD разьем. Если соберетесь программировать под STM32 то вам понадобится отладчик! Это очень удобная вешь. При отладке можно построчно выполнять код в микроконтроллере, и при этом видеть в каком состоянии какая переыерия, и в каком регистре какое значение! даже на компе нет таких возможностей, как в STM32. В общем рекомендую брать STLINK — на вырост так сказать, при этом стоит он столько же, сколько и голубая таблетка.
Плата Stlink ST-Link V2

Соответственно это все китайские клоны, но они прекрасно работают и даже в них самих можно обновить прошивку через программу STM32 ST-LINK Utility.
Прошить контроллер так же просто как и с помощью загрузчика, даже еще проще. Для начала нужно подключить STLINK к bluepill. В голубой таблетке для этого выведены отдельные 4 линии, для питания и отладки. На платах есть вся необходимая маркировка, схема не нужна.

Дальше необходимо запустить программу STM32 ST-LINK Utility

Для открытия файла с прошивкой необходимо выбрать File->OpenFile и выбрать файл для прошивки

Что бы подключиться к контроллеру необходимо нажать эту кнопку. Контроллер уже должен был быть подключен к программатору, а программатор (отладчик, STLINK, называйте как хотите), к USB порту. Драйвера на ST-Link искать не нужно, они автоматически ставятся с утилитой.

Для запуска процесса прошивки необходимо выбрать пункт Target->Program или Target->Program & Verufyty. Во втором случае помимо прошивки, произойдет еще чтение зашитой прошивки обратно и сравнение её с оригиналом, на предмет косяков и мусора. Так вы будете знать, зашилась прошивка верно, или что то пошло не так.

Сама прошивка занимает немного времени.

После успешной прошивки увидите вот эту надпись.

Поздравляю! микроконтроллер прошит.
И ничего в этом сложного не было. В любом случае, если остались вопросы, то пишите в группу в VK
Ch32f103c8t6 как прошить
В общем, попались такие микросхемы — GD32F103CBT6. Судя по даташиту на них, это китайские клоны процессоров STM32F103CBT6. Все одинаково, видимых различий не обнаружено.
Но при попытке программировать их, программатором ST-Link, происходит лажа. Процессоры превращаются в камень. После такой попытки программатор перестает их видеть вообще.
Кто-нибудь работал с ними? Может, у них есть различия в алгоритме программирования? Или есть какие-то дополнительные особенные фьюзы?
Если для них требуется особенный программатор, то как он называется, и где его взять?
| Меню пользователя Alex9797 |
| Посмотреть профиль |
| Отправить личное сообщение для Alex9797 |
| Найти ещё сообщения от Alex9797 |
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,605 раз(а) в 3,604 сообщении(ях)
Re: Клон STM32F103 — GD32F103. Чем программировать?
Тема эта возникла с того, что год назад шеф принес мне две небольшие китайские платы, на которых были эти процессоры. Он обратил внимание на то, что очень уж похожие были их названия на STM32. Попросил покопаться, в просветах между основной работой. Я срисовал полную схему с этих плат. В инете нашел даташит на эти процы. И по всему выходило, что это аналоги STM32. По крайней мере внешняя распиновка, и описание функций выводов — совпадали полностью.
Следующим шагом была попытка прошить их своей программой. Выводы для программирования SWD на платах были уже выведены на разъем. Подключил ST-Link. Если бы он не видел «своего» процессора, то и не дошло бы до начала процесса программирования. То есть, процессор он видел.
Конечно, я был уверен, что защита от считывания программы была установлена. Поэтому естественно было, что программатор сообщил, что прочитать память нет возможности. Но прошивать мою программу — не отказался. Я нажал «Пуск». Пошел процесс прошивки. А когда он закончился, программатор уже не видел процессор.
Убедившись окончательно, что ничего больше не получится, я выпаял китайский проц, и впаял на его место обычный STM32F103. Он прошился без проблем.
Через некоторое время снова появилось свободное время. Занялся второй платой. Она точно такая же, как и первая. Только теперь я не стал сразу прошивать своей программой. Сначала я попытался просто стереть китайскую программу. То есть, в ST-LINK утилите просто снял галочки с битов защиты.
И все, уже этого оказалось достаточно, чтобы и второй проц стал невидимым.
| Меню пользователя Alex9797 |
| Посмотреть профиль |
| Отправить личное сообщение для Alex9797 |
| Найти ещё сообщения от Alex9797 |
Плата разработчика CH32F103C8T6 клон STM32 Type-C

Мы даем гарантию на любой товар приобретенный в нашем магазине: 6 месяцев на товары, кроме батареек и аккумуляторов 14 дней на батарейки и аккумуляторы В случае наступления гарантийного случая товар бесплатно ремонтируется, меняется на аналогичный или возвращается полная сумма его стоимости Внимательно ознакомьтесь с условиями гарантии
Вы можете задавать вопросы письменно по e-mail или по контактным телефонам нашего магазина
166 грн
- Описание
- Отзывы (9)
- Задать вопрос
Клон популярной платы разработчика с микроконтроллером ARM Cortex-M3 CH32F103C8T6, который является аналогом микроконтроллера STM32F103C8T6. На плате собраны все необходимые элементы для начала работы с данным семейством микроконтроллеров. Для программирования контроллера можно использовать как программатор ST-Link так и последовательный порт (утилитой от производителя).
Удобное размещение выводов позволяет применять ее с беспаечными макетными платами и программировать не вынимая из макетки.
Характеристики:
- Модель: CH32F103C8T6
- Ядро: ARM Cortex-M3
- Режим отладки: SWD
- Рабочая частота: 72 МГц
- Память программ: 64 КБ
- Память данных: 20 КБ
- Напряжение питания: 2.0-3.6 В
- Кварцевый резонатор: 8 МГц и 32768 кГц
- Разъемы: USB Type-C для питания платы и связи с компьютером (для программирования после заливки загрузчика)
- Размер: 5.3 x 2.2 см
Ссылки:
- интеграция с Arduino IDE
- Утилита для программирования
- Утилита для ISP программирования
- схема
Отзывы покупателей про Плата разработчика CH32F103C8T6 клон STM32 Type-C
Денис (30.09.2020)
Процессор не до конца совместим с stm32 . Столкнулся что при установе бита защиты от чтения запись в флеш больше невозможна, на честном stm работает. Потратил на этот баг 3 дня . Допускаю еще некоторое количество подобных моментов присутствует Плюс сайт производителя более недоступен и даташита нет .
Олег_К (05.11.2020)
Еще мне попался екземпляр который не запускался RTC в режиме LSE_CLOCK, от кварца 32768 который стоит на плате. Замена кварца ничего не дала. Выпаивал из оригинала, который работал без проблем. В режимах LSI и HSE работает. Если не нужен режим RTC, то в остальном работает без проблем. Так что имейте ввиду. Хочу заказать еще такой но подороже и протестировать его. Хотя это относится не только к этому контроллеру. Сейчас тестирую STM32F411, но и у нее RTC в режиме LSE время за сутки уходила на несколько минут, хотя здесь замена кварца устранила проблему.
Валера12 (05.04.2020)
«На борту немає завантажувача через Serial»
наскiлько це точно?
можливо у когось iнша iнфа ?
Треба прошити контролер через програматор на готовий бутлоадер з працею Arduino IDE
Дима (19.03.2019)
Выше все верно написали про ИД чипа. Я использую System Workbench for STM32 от ST Microelectronics. Я нашел иной способ подменить ИД:
Делаю дубликат скрипта для оригинальной STM32F10x. Я нашел его у себя в двух местах :
/Ac6/SystemWorkbench/plugins/fr.ac6.mcu.debug_2.4.0.201902141520/resources/openocd/scripts/target/stm32f1x.cfg
/Ac6/SystemWorkbench/plugins/fr.ac6.mcu.debug_2.4.0.201902141520/resources/openocd/st_scripts/target/stm32f1x.cfg
Открываем и сохраняем эти два файла с новыми именами — например «cs32f10x.cfg». Важно — старые не перезаписываем так как они могут пригодится для оригинальных STM32f10x. Открываем наши оба дубликата и находим строки :
# this is the SW-DP tap id not the jtag tap id
set _CPUTAPID 0x1ba01477 core_id == STM32VL_CORE_ID
+ || sl->core_id == STM32VL_CS_CORE_ID
|| sl->chip_id == STLINK_CHIPID_STM32_F3
|| sl->chip_id == STLINK_CHIPID_STM32_F3_SMALL
|| sl->chip_id == STLINK_CHIPID_STM32_F303_HIGH
Владимир (19.02.2019)
st-util 1.5.1-17-g67b2078
2019-02-19T08:51:44 INFO usb.c: — exit_dfu_mode
2019-02-19T08:51:44 INFO common.c: Loading device parameters.
2019-02-19T08:51:44 WARN common.c: Invalid flash type, please check device declaration
2019-02-19T08:51:44 INFO gdb-server.c: Chip ID is 00000000, Core ID is 00000000.
2019-02-19T08:51:44 INFO gdb-server.c: Listening at *:4242.
Написать отзыв:
Есть вопросы по «Плата разработчика CH32F103C8T6 клон STM32 Type-C» ?
Клоны STM32: хороший, плохой, злой
После того, как некий продукт становится популярным, у компаний, которые могли бы его создать, но не сделали этого, неизбежно возникает желание прокатиться на волне его популярности. Это — лишь вопрос времени. Именно этот феномен в ответе за то, что было создано так много ужасных детских игрушек и компьютерных игр. Проявляется он и в мире электроники. Поэтому неудивительным должно выглядеть то, что произошло с чрезвычайно успешной серией микроконтроллеров (Microcontroller Unit, MCU) STMicroelectronics, основанных на ARM. На долю этих контроллеров выпало немалое количество имитаций, клонов и явных подделок.

Пожалуй, подделки — это главная проблема. Дело в том, что эти чипы прикидываются, судя по их маркировке, настоящими STM32. Но при этом характеристики их совместимости с другими компонентами могут очень сильно отличаться от характеристик настоящих чипов. Если говорить об имитациях и клонах, которые маркированы по-своему, то тут ситуация выглядит немного более запутанной. Ведь вполне можно представить себе, что компании, производящие такие микроконтроллеры, по чистой случайности, спроектировали такие чипы, которые, и в плане распиновки, и в плане регистров, полностью совместимы с крайне популярными микросхемами-конкурентами. Это, пожалуй, было бы самой искренней формой подхалимажа.
Поговорим о том, какие существуют подделки и имитации STM32, и о том, каково это — с чем-то подобным столкнуться.
Анатомия фальшивки
В начале сего года был опубликован хороший разбор, посвящённый поддельным микросхемам STM32F103, встречающихся на платах Blue Pill. На корпусах подделок можно видеть такую же маркировку, что и на корпусах настоящих STM32. Однако подделки можно распознать, присмотревшись к схеме расположения углублений на корпусах и к качеству нанесения маркировки.

Слева — настоящая микросхема STM32, а справа — поддельная. На её корпусе есть дополнительные углубления
Подделки не всегда отличаются тем же функционалом, что и оригинальные микроконтроллеры. Автор вышеупомянутой статьи отмечает, что многие из этих микросхем нельзя даже нормально прошить, или хотя бы запустить на них универсальный пример Blinky. Возможно даже то, что эти подделки, на самом деле, сделаны на основе бракованных кристаллов интегральных схем STM32F103 или подобных им, которые кто-то продаёт на чёрном рынке.

STM32FEB — это не настоящий STM32
Куда коварнее, возможно, чипы, которые можно назвать «полуподделками». Они, на первый взгляд могут выглядеть как настоящие. Но их выдаёт маркировка. Выглядит она как STM32FEBKC6. У компании STMicroelectronics нет компонентов с такой маркировкой. Наличие на чипе подобной маркировки служит важным признаком его поддельности. Это — клон STM32, столкнувшись с которым, можно нажить себе кучу проблем. Хотя подобные микроконтроллеры и работоспособны, они представляют собой урезанную версию STM32F103, в которой реализованы не все возможности настоящих чипов. О них, кроме того, очень сложно найти подробные сведения.
Копии талантливых подражателей
А тут мы поговорим о самых хитрых клонах, представленных в виде MCU CS32F103. Такие клоны работают точно так же, как настоящие чипы, на них нормально запускается код Blinky, скомпилированный для STM32F103. Некоторые из них могут быть даже маркированы как микросхемы производства STMicroelectronics. Это усложняет их уверенную идентификацию.

CS32F103 — более честный клон
Некоторые из них производит китайская компания CKS (中科芯微), которая, по всей видимости, создала полноценную версию STM32F103, дойдя даже до исправления дефектов, описанных в документации STMicroelectronics. Подробнее об этих микроконтроллерах можно почитать здесь.
Главное отличие этих копий от оригиналов становится заметным при получении сообщения об ошибке «UNEXPECTED idcode: 0x2ba01477» в ходе загрузки кода на них. Правда, эту проблему можно решить, например, используя соответствующий конфигурационный скрипт в OpenOCD.
Клоны производства GigaDevice
Возможно, самый известный создатель клонов STM32 — это компания GigaDevice со своими микроконтроллерами GD32. Как отмечено в этом материале, GD32F103, по-видимому, является более быстрой и функциональной версией STM32F103. GD32F103 имеет более высокую тактовую частоту и более быструю флеш-память. А изучение разобранного чипа показало, что в корпусе имеются две микросхемы. Одна — это основной чип, а вторая — это флеш-хранилище. А такое внутреннее устройство GD32F103 позволяет довольно гибко менять размер памяти чипов, производимых GigaDevice.

Разобранный GD32F103. Поверх основной микросхемы видна отдельная флеш-микросхема
На первый взгляд чипы GD32 выглядят привлекательнее, чем STM32F1. Их тактовая частота выше (108 против 72 Мгц), в них более быстрая память. Хотя флеш-хранилище GD32 должно было бы работать очень медленно, так как это — SPI ROM, в микроконтроллере используется SRAM главного чипа в роли «кеша» для флеш-хранилища, что приводит к тому, что это хранилище быстрее того, которое входит в состав основного чипа. Оно не пребывает в состоянии ожидания даже при работе микроконтроллера на полной доступной ему тактовой частоте.
Минус использования SRAM в связке с флеш-памятью заключается в том, что это повышает энергопотребление устройства. Это, кроме того, вызывает задержку при загрузке (небольшую), вызванную тем, что содержимое SPI ROM копируется в SRAM до того, как сможет загрузиться прошивка. В зависимости от конкретной ситуации это может быть и достоинством, и недостатком. Это, естественно, тот же подход, который используется в микроконтроллере ESP8266, где для хранения прошивки тоже используется внешняя SPI ROM.
Правда, если говорить о других устройствах GD32, то, видимо, их разработчики не так сильно стремились к созданию прямых клонов. Так, микроконтроллер GDF303 использует ту же периферию, что и GDF103, хотя периферия STM32F3, пожалуй, лучше. Это, кроме того, не позволяет использовать GDF303 на платах, рассчитанных на STM32F3xx. На решение вопроса об использовании GD32 может повлиять отношение того, кто решает этот вопрос, к периферии STM32F1.
Они повсюду

Настоящий MCU CH32F103 на плате Blue Pill
Хотя я и знала о вышеописанных подделках и клонах, я, тем не менее, недавно встретилась с кое-чем новым из этой сферы. Я купила несколько плат Blue Pill с чипами STM32F103 у крупного немецкого продавца, занимающегося импортом подобных вещей. Я этим не горжусь, но мне нужны были дешёвые платы для датчиков BlackMagic, а предложение выглядело очень уж заманчивым. В комментариях к товарам на Amazon одни говорили, что получили платы с настоящими чипами, другие же говорили о подделках.
Меня влекло нездоровое любопытство, я получила несколько таких плат, после чего, со смесью ужаса и удовольствия заметила, что на них установлены вовсе не обещанные контроллеры STM32F103C8T6. На них стояли чипы CH32F103C8T6. Хорошо хоть они не прикидывались настоящими STM32.
Микроконтроллер CH32F103 производит китайская компания WCH. Техническое описание и справочное руководство к этому чипу можно загрузить, но они есть только на китайском. Беглый просмотр этих документов создал впечатление, что перед нами чип, практически идентичный STM32F103, с таким же распределением памяти и с такими же периферийными регистрами.
Присоединив плату к ST-Link/V2 и подключившись к ней с помощью OpenOCD, я получила ту же ошибку CPUTAPID, которую выдают CS32F103 при использовании конфигурационного файла, рассчитанного на STM32F1xx. После того, как я отредактировала файл stm32f1xx.cfg , последовав найденным в интернете советам, я смогла без проблем прошить пример Blinkу из моего STM32-проекта Nodate.
Это говорит о том, что, по крайней мере, базовое управление тактированием и сбросом, GPIO и системный таймер достаточно похожи на то, что имеется в STM32. В результате система смогла пройти этот простой тест. Ещё мне хотелось бы исследовать то, как тут работают USART, DMA, SPI, I2C и I2S, узнать, соответствует ли их функционирование тому, что показывают STM32F103, которые имеются на нескольких моих платах. Если эти микроконтроллеры — это нечто вроде CS32F103, то я думаю, что они, скорее всего, будут работать так же, как STM32F103.
А когда я связалась с продавцом этих плат, сообщив о том, что в них нет обещанного чипа STM32, продавец сказал, что знал об этом, и заявил, что платы с настоящими STM32 появятся у них «через два месяца». Надо признать, после этого у меня возникло больше вопросов, чем ответов. Как минимум, я не понимаю, почему продаются платы, в которых установлен не тот микроконтроллер, который указан в их описании.
Пришло время для паники?
Внимательный читатель, возможно, заметил, что практически все рассмотренные клоны имитируют первое поколение микроконтроллеров STMicroelectronics на Cortex-M (серию STM32F1). В результате оказывается, что происходящее может обеспокоить лишь тех, кому нужно покупать платы Blue Pill для коммерческих проектов. Вряд ли это особо потревожит тех, для кого возня с STM32 — это хобби, и тех, кто держит у себя несколько дешёвых плат с Cortex-M3 на борту для разных «домашних» проектов. Если заказывать микроконтроллер и платы у надёжных поставщиков, вроде Digikey и Mouser, то о подделках тоже можно не волноваться.
Платы Blue Pill в последнее время претерпели некоторые улучшения, что выражается в выходе их новой версии с MCU STM32F4, которую, из-за её чёрного цвета, называют Black Pill. Хотя эти новые платы и немного дороже тех, что основаны на STM32F103, они дают разработчику значительно больше ресурсов и гораздо более интересную (как мне кажется) периферию. Это может повлиять на рынок плат, основанных на STM32F103, в результате чего ослабеет поток бесчисленных клонов, подделок и копий STM32F103.
Правда, так будет лишь до того момента, пока на рынок не попадут первые партии поддельных, клонированных и скопированных MCU STM32F401 и STM32F411. Вряд ли с этим можно что-то сделать.
А вам попадались поддельные STM32?
