Gd32f103 как прошить
В общем, попались такие микросхемы — 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 |
Gd32f103 как прошить

Микроконтроллеры GIGADEVICE. Инструкция по освоению
Микроконтроллеры GIGADEVICE. Инструкция по освоению
Статья была опубликована в журнале Компоненты и технологии №7 2017 г.
авторы: Хафизов Даян, Смирнов Григорий, Александр Сыров, alexandr.syrov@eltech.spb.ru
На сегодняшний день рынок 32-битных микроконтроллеров на основе ядра Cortex-M3 довольно широк. Популярностью у разработчиков цифровых устройств на основе микроконтроллеров пользуется продукция таких производителей, как Microchip, ST Microelectronics, NXP и т.д. Однако, недавно появился еще один производитель, готовый составить им конкуренцию – GigaDevice со своей линейкой микроконтроллеров GD32. В данной статье будет рассказано о микроконтроллерах GD32, приведено сравнение с ближайшим конкурентом, а также представлены примеры работы с одним из представителей семейства GD32 в популярной IDE Keil MDK-ARM.


Бюджетные 8-ми битные микроконтроллеры!
- Запатентованная технология FPPA – до 4х ядер на одном микроконтроллере
- Память программ от 1 кБ до 8 кБ (1 KW = 2 KБ)
- Большинство операций выполняются за один такт
- Микроконтроллеры для сенсорного управления сертифицированы СS10V
- Частота ядра до 8 МГц
- Кол-во выводов от 6 до 28
Рисунок 1. Логотип компании GigaDevice
Компания GigaDevice (рис.1) была создана в 2005 году в Пекине и вышла на китайский рынок с микросхемами памяти. В 2008 году GigaDevice начали выпуск микросхем памяти SPI NOR FLASH с напряжением питания 3,3 В по технологии 180 нм. Примечателен тот факт, что это первая полностью самостоятельная разработка в Китае. За последующие 5 лет GigaDevice укрепили свои позиции на рынке микросхем памяти и значительно улучшили технологии производства, быстро осваивая более высокие технологические нормы. Сейчас компания производит SPI NOR FLASH с напряжением питания 1,8 В по технологии 65 нм и занимает третье место в мире по объемам продаж в сегменте микросхем энергонезависимой памяти с объемом производства более 1 млрд микросхем в год. Компания GigaDevice в высокой степени сконцентрирована на инженерной работе, так в компании больше половины состава сотрудников – инженеры. Кроме этого, у компании GigaDevice более 100 патентов и около 500 заявок на патенты.
В 2013 году компания GigaDevice приобрела лицензию на ядро ARM Cortex-M3 и объявила о начале производства собственных 32-битных микроконтроллеров GD32. Внешнее сходство и сходство в наименованиях с микроконтроллерами от ST Microelectronics подталкивает к мысли о полном «копировании», но это не так. Несмотря на идентичность в расположении контактов и схожесть характеристик, отличия между GD32 и STM32 есть:
- рабочая частота до 108 МГц для семейства GD32F1 (у STM32F1 до 72 МГц),
- объем FLASH памяти до 3 Мб (у STM32F2 не более 1 Мб),
- объем оперативной памяти до 256 Кб (у STM32 не более 128 Кб),
- и проч.
По сравнению с «одноклассником» STM32F1, микроконтроллеров GD32F1 обладают лучшим набором характеристик. В случае, когда не хватает flash-а для программы или хранения данных, или же не хватает быстродействия, оптимально использовать GD32F1. Также большим плюсом GD32 является более низкая, нежели у конкурентов, цена.
Ну что же, плюсы и минусы есть у всех. Проверим работоспособность микроконтроллеров GD32 на реальном железе. Возьмем отладочную плату GD32103E-EVAL (рис. 2) и рассмотрим несколько простых примеров.

Рисунок 2. Внешний вид отладочной платы GD32103E-EVAL
Начало начал. Помигаем светодиодами.
Несмотря на то, что микроконтроллеры GD32 и STM32 не являются абсолютно идентичными устройствами, они являются совместимыми как по выводам, так и по карте регистров в рамках одного семейства. Следовательно, микроконтроллер GD32F103ZET6 будет совместим по выводам с STM32F103ZET6. Таким образом, мы можем воспользоваться популярным среди разработчиков генератором исходного кода STM32CubeMX для создания демонстрационного проекта (рис. 3). В данном случае, ключевым отличием GD32F103ZET6 от «собрата» STM32F103ZET6 являются максимальная частоте работы ядра: 108 МГц у GD, против 72 МГц у STM. Также отметим, что микроконтроллеры серии GD32F103 могут иметь до 3 Мб встроенной Flash памяти против 1 Мб у STM32. Это может стать решающим преимуществом GD32F103 перед STM32.

Рисунок 4. Настройки RCC для GD32F10x
Далее генерируем исходный код для Keil. После установки AddON-ов от GigaDevice в закладке Device появилась возможность выбрать MCU GD32 (рис. 5). В нашем случае выбираем GD32F103ZE.

Рисунок 5. Конфигурирование Keil для работы с GD32
В файле main.c добавляем в цикл:
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1);
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0);
HAL_Delay(1000);
Затем собираем проект и приступаем к «прошивке» контроллера. На отладочной плате GD32103E-EVAL уже присутствует программатор GD-Link (так же, как и почти на всех отладочных наборах у STM). Так что после установки утилиты от GigaDevice, можем прошивать микроконтроллер и заниматься отладкой программы из Keil. В закладке Debug выбираем CMSIS-DAP Debugger (рис. 6) и в настройках указываем определившийся адаптер (рис. 7). Жмем «OK», прошиваем контроллер, перезапускаем контроллер, наблюдаем за двумя мигающими светодиодами ☺

Рисунок 6. Настройка программатора.

Рисунок 7. Окно выбора режима программатора
Итак, пока получается, что мало того, что для работы с GD32 можно использовать программное обеспечение от STM, так еще и библиотека HAL корректно работает.
Работа с UART, АЦП и таймерами.
Светодиодами помигали, теперь сделаем что-то посерьезнее. Будем снимать данные с АЦП и передавать их в UART. И делать это будем через прерывание от таймера.
Сделаем новый проект в STM32CubeMX. UART заведем на контакты PA9 (TX) и PA10 (RX), на PC3 заведем вход АЦП (рис. 8).

Рисунок 8. Конфигурирование входов-выходов для работы с UART и АЦП
Настроим UART как показано на рис. 9. Для этого перейдем на вкладку Configuration и выберем USART1.

Рисунок 9. Настройки UART
Также настроим ADC. Большая часть настроек остается по умолчанию.

Рисунок 10. Настройка АЦП
АЦП на входе PC3 подключен к потенциометру на 10 кОм (рис. 11). В новом проекте будем снимать значение напряжения с АЦП. Опрос АЦП будем производить в прерывании от таймера TIM6.

Рисунок 11. Подключение потенциометра к контакту РС3
Перейдем на вкладку Clock Configuration. В данном случае воспользуемся настройкой тактирования ядра и периферии, установленными по умолчанию: ядро тактируется частотой 48 МГц, тактирование периферии конфигуратор рассчитает автоматически (рис. 12).

Рисунок 12. Настройки тактирования

Рисунок 13. Конфигурирование таймера TIM6
Таймер TIM6 сконфигурируем так, чтобы прерывание от него срабатывало 1 раз в секунду. Поскольку периферия тактируется с частотой 48 МГц, то для получения периода в 1 секунду значение предделителя приравниваем к 47999, а регистр счетчика – к 999 (рис. 13).
Сгенерируем проект и откроем его в Keil. Все обработчики прерываний находятся в файле stm32f1xx_it.c. Находим обработчик прерывания от таймера TIM6 и вставляем туда функцию отправки данных в UART, как на рис. 14.
HAL_UART_Transmit – функция HAL для отправки данных в UART, сгенерированная STM32CubeMX. Эта и другие функции HAL для UART находятся в файле stm32f1xx_hal_uart.c
transmitBuffer – в данном случае массив, который мы объявили глобально и в который просто записали строчку, которую хотим передавать в UART.
Проблема прошивки платы ffp0173_aquila_main_board_v1..0.1 c чипом gd32f103 на на последний марлин 2.1.1
Я в этом деле новичок но очень хочется настроить ЛР и повысить скорость и качество печати , и так Принтер Voxelab Aquila с цветным экраном, что было сделано. Скачал последний марлин с ОФ сайта и конфигуратор в конфигураторе моего принтера нет но его все обзывают клонам Creality Ender 3 поэтому использовал готовые сборки от него, компилировал через Visual Studio Code , скомпилировалось без ошибок закинул на флешку стал прошивать принтер а он не запускается, просто белый экран (экран я тоже отдельно прошил ), пробовал разные варианты менял прошиватели в Platform.ini, пробовал ставить прошиватели от рабочих версий марина версий 1,3,5 и 2,0 но все бестолку либо компилятор выдает ошибку либо аквила не запускается, в Google нашел статью https://www.reddit.com/r/VoxelabAquila/comments/mfee8a/solution_for_firmware_flash_on_aquila_boards_with/ была похожая проблема с чипом gd32, в кратце на gd32 флэш памяти 256кб оперативы 48кб а прошиватель рассчитан на чип с памятью 512кб и оперативой 64кб ,там была ссылка https://github.com/Voxelab-64/Marlin/blob/091a28308faa37df94dacb65f981d5390daa7bff/buildroot/share/PlatformIO/ldscripts/creality.ld что можно в прошивке по пути Marlin/buildroot/share/PlatformIO/ldscripts/creality.ld поменять код и вроде должно все заработать, сделал все по инструкции но толку 0, возможно это работала на старых версиях марлина либо я что- то не то делаю, для моей платы нужна именно последняя прошивка 2.1.1 так как там устранили баг с зависанием во время работы ЛР драйверов TMC 2208 аналоги которых у меня и стоят, может кто подскажет что я делаю не так ?
Популярные вопросы
Проблема печати TPU с поддержками
Всем добрый день.
Прошу помощи с советом как можно напечать TPU (от FDPlast) с поддержками.
Нарисовал простой кожух.
bltouch снимает пробу в центре стола 9 раз
Ребята, подскажите мне пожалуйста, не могу разобраться: при выполнении команды G29 — все точки сетки стола (настроено 9) берутся в центре стола, это и.
Easyelectronics.ru
Кто-нибудь встречал подобные микрухи? Впервые столкнулся с этой микросхемой в китайском модуле 5-мегапиксельной камеры с RS-232 интерфейсом. Думал попробовать считать прошивку, но пока не рискнул. Может там засада какая-нибудь, т.к. под эти микросхемы на baidu ещё и программаторы отдельные, так что не совсем понятно можно ли их считать или прошить ST-LINK-ом. Защита небось от считывания тоже установлена. Частота 108МГц, если верить производителю http://www.gigadevice.com/product-category/11.html?locale=en_US. Документацию так и не удалось скачать, только что-то нашёл про совместимость по коду. На Ali смотрю кто-то даже заказывал, значит есть знающие люди
Заголовок сообщения: Re: Ещё раз про клоны STM32 (GD32F103)
Добавлено: 21 ноя 2014, 08:19
посмотрите распиновка питания соответствует stm32? и разведены ли на плате выводы для прошивки соответствующие SWD на stm32? если есть второе и соответствует первое, то можно попробовать подключиться программатором, скорее всего это будет обычный SWD, так самим китайцам было бы проще сделать, чем городить свой огород, а то что чип другой-пофиг, SWD везде одинаковый, это стандарт как и JTAG, один парень писал что наши маландровские кортексы шил и отлаживал через stm32 дискавери, вроде IARом, никаких проблем =)
Заголовок сообщения: Re: Ещё раз про клоны STM32 (GD32F103)
Добавлено: 21 ноя 2014, 11:49
Документация живет тут, осталось тока понять чего они за нее хотят.
Тут можно посмотреть без регистрации.
Заголовок сообщения: Re: Ещё раз про клоны STM32 (GD32F103)
Добавлено: 21 ноя 2014, 12:42
Интересно!
Судя по всему это копии STM32F10х, отличия: выше мах частота — 108МГц и есть чипы с большим объемом флеш — до 3Мб!
Заголовок сообщения: Re: Ещё раз про клоны STM32 (GD32F103)
Добавлено: 21 ноя 2014, 16:35
Tester500 писал(а):
осталось тока понять чего они за нее хотят.
Зарегиться не судьба ?
Любопытная инфа нарылась (корявый перевод гугля с китайского):
Цитата:
GD32 и сходства и различия с STM32
1 ) Периферийное Pin определение: одни и те же определения, контактный одного и того же типа,
2 ) Cortex M3 ядра : STM32F103 ядро R1P1 версия , ядро STM32F205 R2P1 ,
GD32 ядро R2P1 версия этого ядра некоторых исправлений R1P1
3 ) регистров чипа ,
Внешний адрес IP- регистр : Логические адреса совпадают , главным образом, на основе регистров STM32 и физический адрес ,
У позитивное развитие .
4 ) файл библиотеки : библиотека потребность же оптимизация изменить файл заголовка
5 ) средства компиляции : точно так же, пример : Keil MDK , IAR
6 ) Модель Нейминг : идентичны
Цитата:
2. Разница между периферийными аппаратными средствами
1 ) Диапазон напряжения ( АЦП ) : GD32F : 2.6-3.6V STM32F : 2.0-3.6V ( внешнее напряжение )
GD32F : 1.2V ( напряжение питания ядра ) STM32F : 1.8V ( напряжение питания ядра )
2 ) BOOT 0 Pin : Флэш выполнения , boot0 на STM32 вакантным , GD32 должны быть вне
Министерство выпадающий ( от выполнения флэш , boot0 должны упасть до )
3 ) параметры ESD : STM32 режим тело 2KV , режим воздуха 500V
GD32 человеческого тела Модель 4KV ( бета 5 кВ ) , режим воздуха 10KV ( бета 15кВ )
Цитата:
3. Внутренние структурные различия
1 ) Время начала: GD32 время же начало , в связи с GD работать немного быстрее , что необходимо расширить власть времени
Конфигурация ( 2 мс )
2 ) частота часы : GD32F10 частоты серии частота 108MHZ STM32F10 серии 72 МГц
3 ) Выдержка стирания : GD32 является 60 мс / страница , STM 30 мс / страница
4 ) FLASH Емкость: GD32 максимальная емкость 3M Байт
5 ) SRAM пространство : GD32F103 серии , GD32F105 \ 107 большой емкости SRAM 96K серия
6 ) В.Б. внешняя экспансия автобус ФКЦБ : выход конфигурация шины GD32 100PIN , STM32 144PIN и 256k или более
Только настроить выход шины
Цитата:
4. Разница мощности ( до 128к ниже мощности в качестве эталона )
1 ) Режим сна Sleep : GD32F : 12.4mA STM32F10X : 7.5mA
2 ) режим Deep Sleep Deep Sleep : GD32F : 1.4mA STM32F10X : 24uA
3 ) Режим ожидания Stand By : GD32F : 10.5uA STM32F10X : 3.4uA
4 ) Выполнить Мощность : GD32F : 32.4mA / 72М STM32F10X : 52mA / 72М
Цитата:
Разница 5. Внутренняя FLASH
1 ) Интернет-провайдер : стирать раз есть разногласия с STM32 , использовать новое программное обеспечение ISP
2 ) ИАП : стереть то же время , по слову письменного , стерты странице
3 ) Срок хранения : 100000 раз стереть данные, хранящиеся в течение более чем 20 лет
4 ) функция шифрования : В дополнение к обычным чтением и 96 запрещают идентификационный номер шифрование , данных GD32 записи
Вспышка ,непрерывный логический адрес , имеющий память , а физические характеристики адрес разрыва .
Два , GD32 подробное описание и анализ совместимости
Заголовок сообщения: Re: Ещё раз про клоны STM32 (GD32F103)
Добавлено: 21 ноя 2014, 23:11
На китайских форумах проскакивало — изготовитель раньше флэш память выпускал, имеет ряд патентов, решили нырнуть в контроллеры. На тех же форумах призывы — поддержим отечественного производителя. Хотя есть и жалобы: информация в основном на иностранном (англ.) языке