GD32F103C8T6 The STM32 Twin

Jackson009
Вторник 11 августа 2015 г. 10:36
Кто -то может искать более высокую скорость STM32.Я хочу поделиться с вами новым GD32F103, который дает вам скорость 108 МГц.
Мы можем использовать ту же платформу STM32Duino, изменив следующее:-

Я только меняю. Следуя в STM32.час

\ Ide \ ardware \ arduino_stm32 \ stm32f1 \ system \ libmaple \ stm32f1 \ include \ series

#if stm32_f1_line == stm32_f1_line_performance
# ifndef stm32_pclk1
# определить STM32_PCLK1 54000000U // << от 36000000
# endif
# ifndef stm32_pclk2
# определить STM32_PCLK2 108000000U // << от 72000000


Протестированное оборудование:
Ввод/o = работа
Serial123 = работа
Таймер 1234 = работа
SPI 1/2 = работа
I2s = не сделано

Вам может потребоваться скорректировать задержку (100); Потому что это мигает быстрее.
Я все еще не проверяю задержку.
----------------------------------------------------------------------------------------------------------
Веселиться.!

Rogerclark
Вторник 11 августа 2015 г., 21:33
Спасибо.

Я заказал несколько досок у Таобао через Yoybuy, но я все еще жду подтверждения ордена.

Re: изменения кода

ХОРОШО. Я думаю, что нам нужно переместить их в папку вариантов или в доски.TXT или, возможно, прочитайте частоту процессора, определяющую значение и используйте его для переключения этих значений.


Что нам действительно нужно сейчас, так это то, работает ли USB на часах 108 МГц ?

Martinayotte
Вторник 11 августа 2015 г. 22:25
Не забудьте посмотреть на мою находку здесь: ViewTopic.PHP?f = 3&t = 478&начало = 20#P4656 В варианте, board_rcc_pllmul четко определяется как rcc_pllmul_9 для maplemini.
Он расположен в arduino_stm32/stm32f1/variants/maple_mini/wirish/boards_setup.CPP

Создав новый вариант GD32, будет легко определить board_rcc_pllmul для rcc_pllmul_11.
Потому что я думаю, что без этого только вышеупомянутого #Define не хватит...

Rogerclark
Вторник 11 августа 2015 г. 22:28
Мартин

Я подозреваю, что потребуется немало изменений, включая некоторые изменения в ядре и либо перенести вещи в вариант, либо добавить больше #Defines.

Кроме того, функции задержки () представляют собой жестко закодированные петли NOP, которые предполагают 72 МГц, так что это также должно быть изменено.

Mrburnette
Ср 12 августа 2015 г. 12:03
Rogerclark написал:Мартин

Я подозреваю, что потребуется немало изменений, включая некоторые изменения в ядре и либо перенести вещи в вариант, либо добавить больше #Defines.

Кроме того, функции задержки () представляют собой жестко закодированные петли NOP, которые предполагают 72 МГц, так что это также должно быть изменено.

Rogerclark
Ср 12 августа 2015 г. 12:56
Луча,

Вы, наверное, правы.

На самом деле, мне действительно нужно сделать все ядра в их собственные отдельные репо и повторные приспособления как субмодулы, но я не хочу терять историю коммита (что будет скрыто, если бы я это сделал).

Можно сохранить историю и переместить папку в свое собственное репо, но из того, что я прочитал, это не простой процесс, и имеет вероятность завинчивать репо и удалять файлы, если я облажаюсь.

Еще один вариант - перенести этот материал в мою другую учетную запись GitHub о STM32Duino, которую я создал, когда я настраиваю этот форум.

Но у меня нет времени на этот уровень реорганизации в данный момент.

Rogerclark
Ср 12 августа 2015 1:21
Ребята,

I Руководство по программированию для GD32 и с точки зрения USB, оно будет работать, когда устройство работает на 108 МГц


USB -часовой предварительный проклятор сейчас 2 бита вместо 1 бит, так что делитель 2.5 можно выбрать, что требуется для работы при 108 МГц
USBPS USB -часовой выбор
Установить и сбросить программное обеспечение для управления значением предварительного прекалера USB. USB -часы
Должно быть 48 МГц. Эти биты могут’t будет сброшен, если USB -часы включены.
00: (ck_pll / 1.5) выбрано
01: CK_PLL выбран
10: (CK_PLL / 2.5) выбрано
11: (CK_PLL / 2) Выбран
Похоже, он может работать в 48, 72 и 96 МГц.


Но это определенно означает, что нам нужно скопировать ядро ​​STM32F103 и сделать новое ядро ​​GD32F103, чтобы начать наклеивать этот материал.

Jackson009
Ср 12 августа 2015 г., 3:09
Вы можете увидеть мою доску, у которой нет Boot1.
Я не могу проверить USB-загрузочный загрузчик, пока я перепродал PIN-код Boot1.

общий. Это работает #define.
RTC = работа.
Я положил IDE в 2 папку. Для STM32 и GD32.
Но вам нужно менять рабочую папку каждый раз, когда вы переключаете STM32 или GD32.

Роджер,
Надеюсь, ты скоро получишь доску. Вам будет весело.
Я думаю, что вы можете искать гигадевице совместно.

Спасибо.

Rogerclark
Ср 12 августа 2015 г., 3:17
@Jackson009

Я не заплатил за экспресс -почтовые расходы, поэтому я думаю, что пройдет несколько недель, прежде чем прибудут доски.

Re: папка GD32F1

Мне нужно сделать новую папку для этого в репо.

Я могу сделать это сейчас, но я не могу проверить это.

Re: Boot1

Я не уверен, что ты имеешь в виду.

Если вы можете загрузить эскиз, вы можете загрузить загрузчик, даже если вам нужно запустить STM32Flash в командной строке

Я думаю, что вы можете искать гигадевице совместно. Я думаю, мне нужно подождать, пока у нас не появятся доски; 0)

Martinayotte
Ср 12 августа 2015 г., 3:44
Jackson009 написал: Я думаю, что вы можете искать гигадевице совместно.

Rogerclark
Ср 12 августа 2015 г., 4:00 утра
В интересах, я загрузил их «библиотеку прошивки» для устройства, и это похоже на стандартную периферийную Lib + CMSIS

Таким образом, в долгосрочной перспективе может быть возможно использовать работу, которую @sheepdoll проделал с использованием HAL SPL STM

Но я думаю, что чтобы мы быстрее заработали и работали, вероятно, целесообразно просто скопировать основную папку STM32F1 и внести некоторые изменения, чтобы заставить основы работать.

Остальное может прийти вовремя, если есть достаточный интерес.

При 108 МГц скорость этого устройства входит.
Мне будет интересно посмотреть, будут ли дисплеи, такие как ILI9341, будут работать на SPI Div2 I.E 56 МГц.

Rogerclark
Чт 20 августа 2015 г., 21:46
Что ж, после нажатия на неправильные кнопки на yoybuy, похоже, я заказал 20 из этих досок в двух отдельных заказах.

Так что, если я смогу сделать новое ядро ​​(которое, я подозреваю, является лишь слегка модифицированной копией ядра F103), я уверен, что буду перепродать эти доски, так как мне действительно не нужно 20 из них ;-)

Мне также нужно будет заставить загрузчик работать с этой доской, но я надеюсь, что это довольно незначительное изменение.

Ну, это всегда предполагает, что у USB есть 1.5K подтягивание, а если нет... Я буду делать много пайки ;-)

victor_pv
Пт 21 августа 2015 г. 5:00 утра
Rogerclark написал:Что ж, после нажатия на неправильные кнопки на yoybuy, похоже, я заказал 20 из этих досок в двух отдельных заказах.

Так что, если я смогу сделать новое ядро ​​(которое, я подозреваю, является лишь слегка модифицированной копией ядра F103), я уверен, что буду перепродать эти доски, так как мне действительно не нужно 20 из них ;-)

Мне также нужно будет заставить загрузчик работать с этой доской, но я надеюсь, что это довольно незначительное изменение.

Ну, это всегда предполагает, что у USB есть 1.5K подтягивание, а если нет... Я буду делать много пайки ;-)

Rogerclark
Пт 21 августа 2015 г. 5:23
Привет, Виктор

Я нашел руководство по программированию для GD32, и они добавили еще один бит в USB PLL -разделитель - ранее это был либо Div 1.5 или div 1 i.E, чтобы вы могли запустить STM32 на 72 МГц / 1.5 = 48 МГц USB или запустите STM32 на 48 МГц и использовал div 1

На GD32 он имеет 2 бита (4 комбинации), и они добавили перегородки на что -то вроде 96 МГц и на 108 МГц

Поэтому нам просто нужно установить еще один бит в регистре управления PLL.

Но, конечно, добавив немного в середине PLL Reg, вероятно, вытеснил некоторые другие биты вверх, поэтому я немного удивлен, что доска OP вообще работала вообще

Но в целом я думаю, что USB должен работать на основных часах 108 МГц.

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

Мои доски не должны быть здесь до середины сентября, так что пройдет некоторое время, прежде чем я смогу проверить любой из этих вещей.

Jackson009
Пн 24 августа 2015 г., 2:30
Роджер,
Кажется, ты получаешь много доски GD. Я пытаюсь получить GD32F103ZET6.
Но трудно найти.
Я уже получаю эту печатную плату STM32F103Zet6.
http: // мир.Таобао.com/item/5204590784 ... 7zp#деталь

Я покупаю образец GD32F103ZET6. Но в Таобао нет запасов.
Некоторые из них спрашивают > Информация о проекте / название компании перед цитатой.
Кажется довольно новым для GD32F103zet6.

Спасибо,
Jackson009

Rogerclark
Ср 26 августа 2015 г., 4:10
Мой первый пакет GD32F103 прибыл сегодня.

Они включили USB -серийный разъем (я думаю, как бесплатный / бонусный предмет).

Это произошла Tripple, пробитая через Yoybuy, что, похоже, действительно выдвинуло почтовые расходы. Я взвесил доски, и они дошли до 100G, но я думаю, что yoybuy сказал, что общий вес составил 400 г, так что это было 300 г упаковки.
Что ж, я уверен, что это не так, но у меня есть 2 пакета доски, поступающие из yoybuy (из -за моей ошибки при заказе), так что, возможно, следующая лота будет в коробке и т. Д. В противном случае я изо всех сил пытаюсь увидеть, как они думают, что это путем 400G.

В любом случае.

У меня не было времени, чтобы сделать что -то, кроме того, чтобы посмотреть на доску, используя серийный загрузчик STM, и он сообщает как 64K. Мне нужно было проверить, действительно ли у него есть более 64 тыс. Флэш -.E, как версия STM32F103C.

В качестве быстрого теста я подумал, что попытаюсь загрузить новый загрузчик и догадался, что светодиод находится на PC13 - что это, потому что загрузчик прошивает светодиод (намного быстрее, чем должен мигать).
Однако устройство вообще не появляется на USB, даже как непризнанное устройство, прежде чем я даже прошил загрузчик - это немного беспокоит, так как в большинстве случаев, если что -то подключено к USB, я, по крайней мере, получу известное устройство сообщение.

Похоже, что около 2 x 220 Ом резисторов вблизи USB -разъема, но трудно увидеть, к чему они связаны. Я надеюсь, что это USB D+ и D-, но 220 Ом кажется немного высоким для USB-резисторов, так как они обычно 22 Ом

В любом случае. Я посмотрю более подробный взгляд сегодня вечером

ZMEMW16
Ср 26 августа 2015 г. 8:52
220R будет 221
22r "" 220?

Jackson009
Ср 26 августа 2015 г. 9:01
Роджер,
Я не уверен, какую доску вы получите. Пожалуйста, посмотрите схему доски, которая у меня есть.
На USB -разъеме есть 22 Ом.

Спасибо,
Jackson009

Rogerclark
Ср 26 августа 2015 г., 10:02
Я думаю, что у меня такая же доска, что и ты.

Я снова проверил и думаю, что "220" на резисторах означает 22 x 10 ^ 0 i.E 22 x 1 = 22

Но. Доска не выглядит так, как USB D+ подтягивается высоко на 1.Резистор 5K, поэтому загрузчик не будет работать, так как он предполагает, что D+ будет плавать в VCC (3.3v, когда не управляется GPIO)

Текущий код загрузчика сбрасывает USB, как это
#define USB_DISC_BANK GPIOA #define USB_DISC 12 SET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC), (GET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC)) & crMask(USB_DISC)) | CR_OUTPUT_PP << CR_SHITF(USB_DISC)); gpio_write_bit(USB_DISC_BANK,USB_DISC,0); /* present ourselves to the host */ volatile unsigned int delay; for(delay = 0;delay<256;delay++); // volatile unsigned x = 1024; do { ; }while(--x);// wait a moment /* turn on the USB clock */ SET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC), (GET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC)) & crMask(USB_DISC)) | CR_INPUT << CR_SHITF(USB_DISC)); //Sets the PA12 as floating input

Rogerclark
Ср 26 августа 2015 г. 11:36
Обновлять

Я быстро посмотрел на изменение USB -прескалера, и, похоже, необходимо установить Bit 23, поэтому я изменил рег -конфигурацию PLL на это
SET_REG(RCC_CFGR, GET_REG(RCC_CFGR) | 0B100111010000010000000000);

Jackson009
Ср 26 августа 2015 г. 12:46
Привет, Роджер,
Пожалуйста, посмотрите на кристалл на доске.
GD -плата использует 12 МГц x 9pll = 108m.
STM32 использует. 8m x 9 PLL = 72 м.

Ваше здоровье!! :)

Rogerclark
Ср 26 августа 2015 г., 21:04
Привет, Джексон

Да. Я посмотрел на схему.

Кристаллический резонатор 12 МГц. Что означает настройки STM32 PLL E.g Основные часы из 9 х кристалла, дают 108 МГц вместо 72 МГц

Чтобы USB работал в загрузчике, USB -часы должны работать на 48 МГц, поэтому ему нужна другая конфигурация разделителя.

На STM32 бит 22 из регистра конфигурации PLL находится настройка разделителя, где 0 = делить на 1.5
(Интересно, что зарезервировано 23 на STM32)

На битах GD32 22 и 23 находятся USB -разделитель, а для работы на 108 МГц настройки должны быть 10.

т.е. Bit 23 Set, и Bit 22 Reset.

Поэтому я попытался изменить это в загрузчике, но USB все еще не появляется как устройство на моем ПК.

Это немного тревожно, так как большинство плат перечислены как неизвестное устройство в Windows, даже если у USB нет прошивки.

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

Ахулл
Ср 26 августа 2015 г. 22:18
Вам может повезло, наблюдая за деятельностью на линии USB TX от GDM32F103C8T6 на осциллографе или логическом анализатора. Это, по крайней мере, скажет вам, что * что -нибудь * происходит на силе на.

Rogerclark
Ср 26 августа 2015 г. 22:39
Привет, Энди,

Да. Я думаю, это следующий шаг.

Я не уверен, есть ли какие -либо другие изменения конфигурации на USB, I, E Различия между GD32 и STM32, кроме USB -часов.

Я немного удивлен, что по умолчанию это вообще не появляется на USB. я.E Даже не непринужденное устройство, которое заставляет меня думать, что чего -то не хватает в настройке или в оборудовании

Jackson009
Чт 27 августа 2015 г., 3:37
Роджер,

Я только меняю. Следуя в STM32.час

\ Ide \ ardware \ arduino_stm32 \ stm32f1 \ system \ libmaple \ stm32f1 \ include \ series

#if stm32_f1_line == stm32_f1_line_performance
# ifndef stm32_pclk1
# определить STM32_PCLK1 54000000U // << от 36000000
# endif
# ifndef stm32_pclk2
# определить STM32_PCLK2 108000000U // << от 72000000

Я вспыхиваю GD32 от USBTOSERIAL (CH340). Весь код, кажется, работает нормально.
Я думаю, что загрузочный загрузчик USB самый сложный.

Спасибо,
Джексон

Rogerclark
Четверг 27 августа 2015 г., 3:44
Спасибо, что сообщили мне, что ты изменил.
Я не знаю, есть ли у загрузчика много петель времени, которые необходимо изменить, но я отрегулирую петлю задержки сброса USB и сделаю его 1.В 5 раз длиннее или, возможно, в 2 ранее, так что задержка сброса на одинаковую продолжительность.


Re: USB

Я вспыхнул через USB в сериал, но я хочу, чтобы USB работал, так как это очень полезно, и большинство людей теперь используют USB для загрузки, отладки и т. Д

У меня есть более одной платы GD32, поэтому я попробую другую, если тот, который я попробовал, будет вина на USB.

Теоретически похоже, что мне просто нужно изменить разделитель USB PLL, но могут быть и другие различия.

Я думаю, что кто -то нашел список различий на российском веб -сайте, поэтому мне нужно будет найти это.

Спасибо

Rogerclark
Четверг 27 августа 2015 г., 11:20
Просто о чем -то, о чем нужно знать.

USB -гнездо на печатной плате была полностью снята с весом USB -кабеля.

Я даже не вставлял кабель, я думаю, что гнездо отключилась, когда я взял доску и положил ее на другой таблицу, в то время как длина USB -кабеля в 1 млн до сих пор была подключена.

Я не заметил, пока не забрал доску сегодня вечером.

Глядя на USB -гнездо, сдерживающие точки не показывали никаких признаков того, чтобы иметь на них какой -либо припой, поэтому я думаю, что качество производства на этих досках не так хорошо.

К счастью, я довольно хорошо получаюсь в ручной пайке.

После того, как я перепродал USB -разъем, я проверил, исправил ли это USB, но он не :-(

Я проверил соединения D+ и D-PINS от кабеля с GD32, и я вижу соединения прямо к GD32 на PA11 и PA12.

Таким образом, проблема не в плохом соединении, похоже, это проблема с программным обеспечением.

У меня не было времени, чтобы посмотреть на D+ или D-линии на прицеле, и, честно говоря, я не уверен, что я буду искать.

Мне нужно будет посмотреть, есть ли какая -либо информация в Интернете о том, какие сигналы я должен увидеть

Rogerclark
Чт 27 августа 2015 г. 11:25
КСТАТИ. Я нашел это руководство по миграции программного обеспечения.

Похоже, это не упоминает USB, на самом деле он не говорит много на самом деле

http: // www.zlgmcu.com/gigadevice/img/gd32f103xx_en.PDF

Я также видел этот список


(1) UART2 использовал dma1_channel_6 + dma1_channel_7 + uart_2 прерывание
(2) UART4 использовал DMA2_Channel_3 + DMA2_Channel_5 + UART_4 прерывание
(3) SPI1 использовал dma1_channel_2 + dma1_channel_3 + spi1 прерывание
(4) SPI2 использовал dma1_channel_5
(5) SPI3 с перерывом
(6) ШИМ с PB0, PB1, PC6, PC7
(7) ADC с PC0, PC1, PC2, PC3
(8) несколько GPIO
(9) с прерыванием Systick Systick
(10) Flash с исходной функцией библиотеки ST flash_unlock (), flash_programhalfword () и т. Д. Флэш может быть стерта и написана
(11) Придется использовать память RAM с батарейным батарейным батарейным батарейным батарейным батарейным батарейным батарейным батарейным питанием для сохранения данных
(12) нужно использовать watch_dog
(13) Полезный GPIO PB6, PB7 -> Exti9_5_irq прерывание
Другое поведение программного обеспечения:
(1) позвонить в SCB-> Vtor remap rump table
(?? В этом чипе внутри он только 96 -битный код) (2) для чтения 96 -битного UID
(3) Есть в программе в Open ROP и Close ROP (чип пуст)
(4) Функции, непосредственно получающий доступ к данным без вычисления (поддержка STM32, я не знаю, что эта линия не?)

Rogerclark
Чт 27 августа 2015 12:00
Обновлять

Я думаю, что нашел ошибку, которую я сделал с USB -загрузчиком

Я предполагал, что выбор максимального разделителя PLL был правильным значением для использования, я.E я выбрал 2.5
USB clock prescaler selection Set and reset by software to control the USB clock prescaler value. The USB clock must be 48MHz. These bits can’t be reset if the USB clock is enabled. 00: (CK_PLL / 1.5) selected 01: CK_PLL selected 10: (CK_PLL / 2.5) selected 11: (CK_PLL / 2) selected

Rogerclark
Чт 27 августа 2015 г., 22:50
Мне не очень повезло с USB на GD32

Я попытался изменить мультипликатор PLL, чтобы подтолкнуть GD32 до 120 МГц, и оставил USB -разделитель установленным на 2.5, следовательно, USB -часы должны быть правильной скоростью 48 МГц, но я все еще ничего не вижу на USB :-(

Так... Я изменил множитель PLL вниз на 6 x (12 МГц), чтобы часы были 72 МГц, я.e То же самое, что и STM32, и изменил биты USB PLL на 00, я.E 1.5 разделитель, отсюда USB -часы 48 МГц

Тем не менее, я все еще ничего не вижу на USB :-(

Я не совсем уверен, что у меня есть образец бита, правильный для rcc config reg, так как, когда я устанавливаю PLL для x 6 I.E, чтобы сделать 72 МГц, скорость светодиодной вспышки в загрузчике казалась неверной.

Поэтому я думаю, что мне нужно вернуться к первым принципалам на PLL и убедиться, что PLL для основных часов верен, например, запустите его на 72 МГц, а затем убедитесь, что на какую скорость работает USB - как бы я. я не совсем уверен, как я могу измерить USB -тактовую скорость. Возможно, я смогу просто поставить область на PA11 или PA12 и посмотреть на формы волны

Ахулл
Чт 27 августа 2015 г., 22:58
Rogerclark написал:... Возможно, я смогу просто поставить область на PA11 или PA12 и посмотреть на формы волны

Rogerclark
Четверг 27 августа 2015 г., 23:30
Привет, Энди,

Любая идея о том, что я должен увидеть ??

Rogerclark
Четверг 27 августа 2015 11:34
Просто для справки. Я нашел это

http: // www.Lemicro.CN/PDF/GD32%E4%B8%8E ... %A2%98.PDF

Который находится на китайском языке, поэтому вот перевод Google (извинения за потерю форматирования)
Страница 1
GD32 Введите совместимость с резюме STM32
A, GD32 и STM32 сходства и различия
1. То же самое
1)
Определение периферического штифта:
Определения одинаковых штифтов той же модели
2) Cortex M3 Core:
R1P1 Vernel Version STM32F103, STM32F205 ядра R2P1,
Версия ядра GD32 R2P1, эта ядра исправляет некоторые ошибки R1P1
3)
Чип внутренних регистров,
Внешний адрес регистра IP: тот же логический адрес, в основном основан на регистрах STM32 и физическом адресе,
Сделайте позитивное развитие.
4)
Файл библиотеки:
Те же библиотеки, оптимизированные файлы заголовков должны быть изменены
5)
Инструменты компиляции:
Точно
Например: Keil MDK, IAR
6)
Наименование модели:
Точно
2. Разница между периферийным оборудованием
1)
Диапазон напряжений (ADC): GD32F: 2.6-3.6 В
STM32F: 2.0-3.6V (внешнее напряжение)
GD32F: 1.2 В (напряжение ядра) STM32F: 1.8 В (основное напряжение)
2)
Загрузки 0 контактов:
Время выполнения флэш -среда, Boot0 на STM32 может быть приостановлен, GD32 должен быть снаружи
Секция Освещение (со времени выполнения Flash, Boot0 должен упасть до)
3)
Параметры ESD:
STM32 HBM 2KV, воздушный режим 500V
GD32 Режим тела 4 кВ (бета 5 кВ), режим воздуха 10 кВ (бета 15 кВ)
3. Внутренняя структура разницы
1) Время начала:
Время начала GD32 одинаково, потому что GD работает немного быстрее, необходимость расширить силу времени
Конфигурация (2 мс)
2) Частотные часы:
Серия GD32F10 с тактовой частотой 108 МГц STM32F10 72 МГц
3) Время стирания вспышки: GD32 - 60 мс / страница, STM 30MS / Page
4) Вспышка вспышки:
Максимальная емкость GD32 3M байта
5) Пространство SRAM:
GD32F103 Series, GD32F105 \ 107 SRAM SRAM 96K
6) VB внешняя шина расширения FSMC: GD32 100pin Настройка вывода шины, STM32 144PIN и выше 256K
Только настроить вывод шины
4. Разница в мощности (до 128 тыс. Или меньше емкости в качестве ссылки)
1) Спящий режим сна:
GD32F: 12.4MA STM32F10X: 7.5 мА
2) Глубокий спящий режим глубокий сон:
GD32F: 1.4MA STM32F10X: 24UA
3) Режим режима ожидания:
GD32F: 10.5UA STM32F10X: 3.4UA
4) Запустить питание:
GD32F: 32.4MA / 72M STM32F10X: 52MA / 72M
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 2
5. Внутренняя разница в вспышке
1) ISP:
Различивания времени стирания с помощью STM32, используйте новое программное обеспечение ISP
2) IAP:
Стереть то же время, согласно написанному слову, стерто по странице
3) Срок хранения:
10 миллионов раз перезагружены, удержание данных более 20 лет
4) Особенности шифрования:
В дополнение к традиционному чтению и 96 Запретить шифрование идентификационного номера, данные GD32 записывают
Флэш при сохранении логических адресов Непрерывные физические адреса не являются смежными свойствами.
Два, GD32 Подробное описание и анализ совместимости
1. Система
1) Разница в кристаллах запуска
Описание
Время начала, GD32 и STM32 время начала составляет 2 мс, фактически, эффективность GD Express,
В ST HSE_STARTUP_TIMEOUT (((UINT16_T) 0x0500) составляет 2 мс, но значение этого определения макроса
GD за короткое время больше, поэтому установите это значение для увеличения
Решение
Определения макрос:
#define hse_startup_timeout ((uint16_t) 0x0500)
Пересмотрено по адресу:
#define hse_startup_timeout ((uint16_t) 0xffff)
ПРИМЕЧАНИЕ: Местоположение макросов начала:
1, в V3.X Библиотека, его макросы начала определены в файле заголовка STM32F10X.час
(Путь: \ .. \ Библиотеки \ cmsis \ cm3). (Различные версии каталога, где библиотека также отличается)
2, в предыдущем V3.0 Библиотеки, его макросы начала определены в исходном файле STM32F10X_RCC.в
(Hsestartup_timeout)
(Путь: \ .. \ Библиотеки \ stm32f10x_stdperiph_driver \ src).
2) Некоторые клиенты используют активные кристаллические проблемы в продуктах GD32F103, обнаруженных в комплексе в MCU
Бит -штифт был вытянут до уровня 0.89 В, уровень не может быть поддержан на высоком уровне
Описание
Поскольку некоторое время активного кристаллического запуска слишком быстро, сигнал сброса не был завершен из-за
Решение
То есть до активного кристаллического входа и земли и конденсатора 30PF
3) GD32 MCU с тактовой частотой на уровне 108 МГц
Описание
GD32 увеличился благодаря внутреннему кэшу чипа, чтобы улучшить скорость выполнения кода в соответствии с той же рабочей частотой, принося
Высокий опыт работы.
Решение
Следовательно, если код будет полезен для цикла или во время петли, чтобы сделать точное время, время будет сделано
В скорости выполнения кода оставление времени цикла становится короче. Использование таймера таймера не затронут.
4) MCU серии GD32F105 / 107 настроен на 108 МГц, в чем разница
Описание
По регистрации конфигурации часов (rcc_cfgr), первые 21:18 бит
Pllmul [3: 0], а затем в сочетании со статьей 29 Pllmul [4], состоящий из пяти битва, чтобы определить множитель частоты PLL
Коэффициент, эта конфигурация для определения коэффициента умножения PLL с помощью программного обеспечения, а частота выходной сигналы определенно не является
Превышать самую высокую частоту (108 МГц).
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 3
2. Внутренняя вспышка
1) Набор чипов. Использование защиты для чтения
Описание
Поскольку Flash является собственной запатентованной технологией GD, Flash STM обеспечивается третьими лицами, поэтому GD
Flash и Flash STM немного отличаются. Президент GD Стройте время времени
Решение
После того, как законченные последовательности ключей должны прочитать этот бит, подтвердил ключ вступил в силу.
Итак, здесь должно быть вставлено
Пока (вспышка-> Герметичный & 0x200)!); // подождите Optwre
Или может просто вставить два NOP.
__Nop ();
__Nop ();
В библиотеках, только
Flash_status flash_eraseoptionbytes (void)
Flash_status flash_programoptionbytedata (uint32_t -адрес, данные uint8_t)
Flash_status flash_enablewriteprotection (uint32_t flash_pages)
Flash_status flash_readoutprotection (функциональная новичка)
Четыре функции должны быть изменены.
2) Программирование IAP в области применения IAP
Описание
Из -за собственного времени доступа к вспышке 0, с STM32 в флэш -стирании и программе на GD32
Существует разница, время стирания GD32 и программы немного длиннее, чем у STM32, рекомендуется стирать
Программное время и внести изменения.
Решение
Определение макроса
#define rasetimeout
((Uint32_t) 0x000b0000)
#Define ProgramTimeOut
((Uint32_t) 0x00002000)
Пересмотрено по адресу:
#define rasetimeout
((Uint32_t) 0x000fffff)
#Define ProgramTimeOut
((Uint32_t) 0x0000fffff)
Примечание: макросы времени стирания и программы определены в исходном файле STM32F10X_FLASH.в
(Путь: \ .. \ Библиотеки \ stm32f10x_stdperiph_driver \ src)
3) С конфигурацией загрузки IAR
Решение
В массовом производстве, когда первый будет программировать загрузку USB, в задней части загрузки автоматически работает
Bit Machine Software Software Applications. Если программа загрузки не работает автоматически, вам потребуется повторная пленка
Вторичный источник питания. Вызвать некоторые проблемы с производством. Причина в том, что программа не работает автоматически, если настройки программы
Читать защиту, если необходимо подождать flash_cr первое 9 [optwre] бит 1. Если нет набора слов продолжается
Происходит ошибка выполнения. Из -за медленной скорости выполнения, время выполнения программы для чтения регистра flash_cr
Этот бит уже установлен, GD относительно быстрая скорость выполнения, программа работает до этого времени, не установила этот бит, потому что
Это требует функции flash_readoutprotection внутри, чтобы добавить некоторый опрос, этот бит составляет 1 или плюс один
Некоторая задержка.
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 4
3. Программное обеспечение программирования ISP
1) Программирование ISP, программное обеспечение для программирования рекомендуется использовать официальные
Описание
Flash GD32 STM32 с разницей
Решение
Рекомендуется загрузить последнюю версию www.MCUISP.компонент MCUISP. GD32 также имеет специальное дополнение
Программное обеспечение для программирования (Gigadevice MCU ISP Progrommer)
Вы можете скачать http: // bbs.21ic.com/gd32 форум.
Если вы используете домашнее программное обеспечение для программирования ISP или офлайн, чтобы достичь полностью совместимых с предложенными ST и GD -изменениями
Следующие параметры.
1, Период тайм -аута на страницу увеличился до 300 мс, полный период времени ожидания чипа увеличился до 3 с
Верно.
2, Слово запрограммированный период времени ожидания увеличился до 2 мс, программирование страниц и т. Д. Тайм -аут увеличился до 300 мс.
Порты ввода / вывода
1)
IO -порт внешнее использование прерывания
Описание
Во время выключения, если изменение внешнего уровня штифта, после использования IMR немедленно пробится в открытый
Рутина обслуживания прерываний. Теория открыта до того, как прерывание, независимо от того, есть ли изменение уровня булавки, не тени
Ответ прерывания на включение.
Решение
Таким образом, решение растет или обнаруживает падение, отключив регистр прерываний переключения, не может сделать
С регистром маски IMR. Процедуры следующие:
Эксти-> FTSR & = Exti_line3;
// обнаружение закрытия краев для достижения тесного нарушения
Цель, Falling Использование FTSR Регистр, реестр RTSR Rising Использование RTSR
Эксти-> Pr = exti_line3;
Эксти-> Ftsr | = Exti_line3;
2) В режиме ожидания, специальные настройки PA8 PIN
Описание
В случае с низкой мощностью, PA8 MCU будет внутренне настроен на
PA8 из внутренней частоты MCU Мультиплексированный выход, когда настройки ультра-низкого питания должны плавать
Решение
В режиме ожидания, PA8 приостановлен без
3) Необходимо принять низкое энергопотребление
Описание
В случае использования низкопроизводительных часов программного обеспечения все порты (AF) отключились, независимо от того, является ли порт.
4) Когда взрывной ударный штифт
Описание
После ввода требуемого прерывания отключить прерывания
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 5
4. Таймер
1) Режим захвата ввода таймера требует, чтобы программное обеспечение очищает прерывание
Описание
По умолчанию режим захвата таймера STM по умолчанию может очистить аппаратное прерывание, GD, более строгие требования для конфигурации,
Сделано по программным прерываниям
Решение
Флаг снятия программного обеспечения
2) Настройка режима подсчета импульса таймера
Описание
Таймер различия использования
Решение
Режим подсчета импульса, значение нагрузки должно быть установлено больше, чем ожидаемое значение, или не считать
Если значение перезагрузки в ST не установлено (изначально 0), когда, CNT обычно может считать.
На GD, если значение перезагрузки не установлено на 0 для поддержания начального времени, потому что значение перезагрузки в нулевое значение даже
К импульсу приведет к сбросу всех регистров и, следовательно, не может должным образом подсчитать.
Модель
MCU серии GD32F1 (Flash 256KB и выше модели)
3) TIM, модуль ADC
Описание
Требования к модулям ADC -модуля, требования к модулям ADC
Решение
Поскольку внутренняя высокоскоростная и низкоскоростная двух периферическая шина, таймер, модуль ADC и другие обычно используемые периферийные устройства
Оба автобуса. GD32F103 / 101 Series Flash 128KB и следующие модели, таймер, ADC и т. Д.
Модуль условий идентифицирует триггерный сигнал, ширина сигнала триггера больше ширины, где часы модуля шины.
5. Серийный USART
1) USART непрерывно передаваем
Описание
Межбайтовое положение на холостом ходу
Решение
Для общих сообщений это не будет затронуто, только общее в общении имеет специальное соглашение, будет
Производить неточные данные
Следовательно, конкретные обстоятельства, чтобы изменить программу
6. I2c автобус
1) Специальная конфигурация оборудования I2C
Описание
GD I2C относительно STM - меньше флага
Решать
Метод
1, Измените определение макроса
#определять
I2c_event_slave_transmitter_address_matched
((Uint32_t) 0x00060002)
#определять
I2c_event_master_transmitter_mode_selected
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 6
((Uint32_t) 0x00070002)
2, Аппаратное обеспечение i2c после встречи для отправки 7bits адрес с машины завершено, у раба не было времени идентифицировать. (См. Заказчик
Приложения)
Мы можем отправить после завершения 7bits добавить задержку, чтобы машина полностью идентифицировала:
I2c_send7bitaddress (i2c1, eeprom_address, i2c_direction_transmitter);
ʱ??
int i = 0xfff;
while (i -);
ʱ??
3, функция ADDR обнаружения не может быть использована i2C_CHECKEVENT, потому что он будет очищать ADDR, вы можете использовать
I2C_GETFLAGSTATUS Функции.
Это
пока (! I2c_checkevent (i2c1,
I2c_event_master_transmitter_mode_selected));
Изменен while (i2c_getflagstatus (i2c1, i2c_flag_addr)!);
4, существует шаг на строгость программирования, с STM, желающим больше, чем мы сначала clear_ack, затем clear_arrd.
7. Приобретение АЦП
1) Настройки выборки АЦП
Описание
ADC Start
Решение
Тройной
1. Когда Adon = 0 после написания 1, необходимость ждать некоторое время t_wait, если библиотеки ST
Сразу за adc_cmd плюс задержка 20US, так что.
2. Если прерывание получает данные выборки, необходимость в программном обеспечении очищает прерывание.
8. SDIO
1) 1 -битный режим шины и 4 -битная конфигурация режима шины SDIO DAT 3 PIN
Описание
1, SDIO в 1 -битном режиме шины, DAT 3 PIN с низким, это приведет к SD -карте
Режим SPI.
Причина: не удалось инициализировать основную причину, потому что GD32 Chip Sdio Port Port Dat3
ОШИБКА.
2, в режиме 4, по вышеуказанному методу программа может должным образом инициализироваться, но не может читать и писать должным образом SD
Карта.
Причина: потому что был настроен DAT3 на выходе из толчка, поэтому в четырех режимах, а не
Под нормальным чтением.
Перед вызовом режима 4 порт настроен на комплексные задачи DAT3, можно решить с помощью ввода PushPul.
Решение
1, 1 -битный режим режима шины: Рекомендуется перед включением SDIO First SDIO DAT 3
PIN-код, настроенный в виде выходов с толчком, и для того, чтобы установить на высокий уровень, SDIO DAT 3 PIN
Ровный до
2, 4 -битное решение для режима шины: перед вызовом четыре режима настроенного порта DAT3
Мультиплексированный выход для решения проблемы.
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 7
2) Сразу после программы ожога может читать и писать должным образом SD -карту, выключено и включено, инициализация SD -карты не удается, вам необходимо вручную вручную
Сбросить один раз после нормального
Описание
На какой -то SD -карте GD32 выключено и снова, это приведет к тому, что сигнал тактового сигнала на SD -карте не является нормальным, что приведет к
SD -карта, чтобы отправить команды для сбоя.
Решение
В программе откройте часы SD -карты, увеличивайте небольшую задержку, чтобы гарантировать, что такточный сигнал SD -карты стабилен.
Эта задержка добавлена ​​места: в SDCARD.C (т.е. файл конфигурации SDIO), затем SD_ERROR
Sd_init (void) Эта функция найдена sdio_deinit (); Чтобы добавить задержку в спине.
Rcc_ahbperiphclockcmd (rcc_ahbperiph_dma2, enable);
Sdio_deinit ();
ʱ??
int i = 0xffff;
while (i -);
ʱ??
10. USB
А. USB_OTG
1) Когда клиенты используют оригинальные точки проекта STM32 DFU, чтобы отметить
Решение
Решать
Квадрат
Франция
1, в USB_IST.c, добавьте оператор, как показано в красном
для (i = 0; i <8; i ++) ep = _GetendPoint (i);
для (i = 0; i <8; i ++)
_SetendPoint (i, ep & 0x7070);
2, в USB_CONF.h в красном шрифте в следующем операторе изменения рисунка
#если
Определено (STM32L1XX_MD)
||
Определено (STM32L1XX_HD) ||
Определено (STM32L1XX_MD_PLUS)
#define inger_flash_sector_erase_time
100
#define inger_flash_sector_write_time
104
#еще
#define inger_flash_sector_erase_time 100
#define inger_flash_sector_write_time 100
3, Библиотека прошивки STM32F10X_FLASH.C Используйте вложения, которые будут заменены.
4, программное обеспечение, необходимое для чтения защиты бита, выбранного с использованием flash_unlock (); функция
int main (void)
ʱ??
#F определено (use_stm32l152d_eval)
Flash_unlock ();
Flash_clearflag (flash_flag_optverrusr);
#endif
Flash_unlock ();
Flash_readoutprotection (enable);
Flash_lock ();
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 8
2) Некоторая совместимость с USB
Решение
Решать
Квадрат
Франция
1. У некоторых U Disk есть три конечные точки, что приводит к очистке массива трансграничного ITF_DESC, поэтому хост не распознает устройство
Типы. USBH_CONF.H File USBH_MAX_NUM_ENDPOINTS, определенные 2, можно изменить на 3
Will: #define usbh_max_num_endpoints
2
Читать: #define usbh_max_num_endpoints
3
2. В конечной точке обработчик прерываний USB_OTG_USBH_HANDLE_HC_N_IN_ISR, для прерывания NAK,
V1.0.0 Версия процесса следующая:
еще if (hcint.беременный.Нак)
ʱ??
if (hcchar.беременный.eptype == ep_type_intr)
ʱ??
Unmask_host_int_chh (num);
Usb_otg_hc_halt (pdev, num);
Clear_hc_int (hcreg, nak);
ʱ??
еще if ((hcchar.беременный.eptype == ep_type_ctrl) ||
(HCCHAR.беременный.eptype == ep_type_bulk)))
ʱ??
/ * Повторно активируйте канал * /
HCCHAR.беременный.chen = 1;
HCCHAR.беременный.CHDIS = 0;
Usb_otg_write_reg32 (& PDEV-> регс.HC_REGS [num] -> HCCHAR, HCCHAR.D32);
ʱ??
PDEV-> хозяин.Hc_status = hc_nak;
ʱ??
Версия V2.1.0 процесс NAK выглядит следующим образом:
еще if (hcint.беременный.Нак)
ʱ??
if (hcchar.беременный.eptype == ep_type_intr)
ʱ??
Unmask_host_int_chh (num);
Usb_otg_hc_halt (pdev, num);
ʱ??
еще if ((hcchar.беременный.eptype == ep_type_ctrl) ||
(HCCHAR.беременный.eptype == ep_type_bulk)))
ʱ??
/ * Повторно активируйте канал * /
HCCHAR.беременный.chen = 1;
HCCHAR.беременный.CHDIS = 0;
Usb_otg_write_reg32 (& PDEV-> регс.HC_REGS [num] -> HCCHAR, HCCHAR.D32);
ʱ??
PDEV-> хозяин.Hc_status [num] = hc_nak;
Clear_hc_int (hcreg, nak);
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 9
ʱ??
Единственное отличие - это место clear_hc_int (hcreg, nak) в V1.0.0 выпуск и для Ctrl
Прерывание прерывания NAK на NAK не очищается, наши чипы, следовательно, будут генерировать несколько запросов на передачу, руководство
Вызвать ошибки передачи данных. Перенесен на нормальное после изменения формулировки на V2.1.1. (Обратите внимание, что в V2.1.0 - номер HC_STATUS
Группа, в v1.0.0 - это единый данных напрямую, если вы хотите избавиться от копии обратно [num])
Беременный.
USB Периферийные устройства Ограничения на частоту работы
Описание
Он имеет самую низкую потребность в частоте рабочей
HCLK составляет 56 МГц, максимальный коэффициент частоты APB1 4,56 / 4 = 14 МГц, чтобы правильно работать.
11. SPI
1) Требования к конфигурации ввода и вывода (STM32 не нуждается в таком запросе)
Решать
Метод
GD32 При использовании SPI конфигурация ввода -навода должна быть строго наблюдаемой мастер из конфигурации режима ввода и вывода,
STM32 не является таким требованием, соответствующий код выглядит следующим образом:
Конфигурация режима хоста IO (например, Host to SPI):
Gpio_initstructure.Gpio_mode = gpio_mode_af_pp;
Gpio_initstructure.Gpio_speed = gpio_speed_50mhz;
Gpio_initstructure.Gpio_pin = gpio_pin_5 | Gpio_pin_7;
Gpio_init (gpioa, & Gpio_initstructure);
Gpio_initstructure.Gpio_mode = gpio_mode_in_floating;
Gpio_initstructure.Gpio_pin = gpio_pin_6;
Gpio_init (gpioa, & Gpio_initstructure);
IO настроен в режиме рабов (пример Slave In Spi2):
Gpio_initstructure.Gpio_mode = gpio_mode_in_floating;
Gpio_initstructure.Gpio_speed = gpio_speed_50mhz;
Gpio_initstructure.Gpio_pin = gpio_pin_13 | Gpio_pin_15;
Gpio_init (gpiob, & Gpio_initstructure);
Gpio_initstructure.Gpio_mode = gpio_mode_af_pp;
Gpio_initstructure.Gpio_pin = gpio_pin_14;
Gpio_init (gpiob, & Gpio_initstructure);
3) В такточном сигнале SPI GD32 на высоком уровне необходимо настроить на высокий уровень, чтобы обеспечить стабильность данных,
Конкретный код следующим образом: код красного шрифта
Решать
Метод
Spi_initstructure.Spi_direction = spi_direction_2lines_fullduplex;
Spi_initstructure.Spi_mode = spi_mode_master;
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN
Страница 10
Spi_initstructure.Spi_datasize = spi_datasize_8b;
Spi_initstructure.Spi_cpol = spi_cpol_high;
Spi_initstructure.Spi_cpha = spi_cpha_2edge;
Spi_initstructure.Spi_nss = spi_nss_soft;
Spi_initstructure.Spi_baudrateprescaler = spi_baudrateprescaler_256;
Spi_initstructure.Spi_firstbit = spi_firstbit_msb;
Spi_initstructure.Spi_crcpolynomial = 7;
Spi_init (spi1, & Spi_initstructure);
4) При использовании в качестве раба, в GD32 такточный сигнал должен быть целым числом 8.
Например: код красного шрифта
Решать
Метод
Spi_initstructure.Spi_direction = spi_direction_2lines_fullduplex;
Spi_initstructure.Spi_mode = spi_mode_master;
Spi_initstructure.Spi_datasize = spi_datasize_8b;
Spi_initstructure.Spi_cpol = spi_cpol_high;
Spi_initstructure.Spi_cpha = spi_cpha_2edge;
Spi_initstructure.Spi_nss = spi_nss_soft;
Spi_initstructure.Spi_baudrateprescaler = spi_baudrateprescaler_256;
Spi_initstructure.Spi_firstbit = spi_firstbit_msb;
Spi_initstructure.Spi_crcpolynomial = 7;
Spi_init (spi1, & Spi_initstructure);
5) В GD32 вы не можете использовать этот бит, чтобы определить, получили ли данные SPI_I2S_FLAG_BSY SPI
выполнять.
12. Сторожевой
1) Перед тем, как входить в режим остановки откроет сторожевой плетение после пробуждения RTC ALR, программа будет продолжать сбросить, это похоже на
Описание
IWDG RELOAD SIGNAL Внутри, реестр ключей напишите AAAA
Двигаться вниз. Перед входом в состояние остановки сигнал перезагрузки останется высоким до выхода
После того, как также остается высоким, тогда невозможно написать AAAA, позвольте перезагрузить Rising Edge, но также не способ больше
Новый счетчик.
Решение
Не перезагружайте перед входом остановки, вы также можете настроить заказ в соответствии с программой, конфигурация IWDG в RTC
Перед конфигурацией эффект такой же.
Lemicro
Пекинская ссылка технология Co Co., ООО.
Тел: 010-82674978
http: // www.Lemicro.CN


Rogerclark
Четверг 27 августа 2015 г. 11:36
Кроме того

(Google Translate Link)
https: // Перевод.Google.компонент.AU/TRASTA ... rev = search

И это

(Google Translate Link)
https: // Перевод.Google.компонент.AU/TRASTA ... rev = search

Ахулл
Четверг 27 августа 2015 11:54
Rogerclark написал:Привет, Энди,

Любая идея о том, что я должен увидеть ??

Ахулл
Чт 27 августа 2015 г., 23:56
Более технически точным ответом будут формы волны, которые предполагают, что они работают на 12 МГц (0.0833 США ?!... Проверьте это значение... Я просто выработал это в моей голове, так что это обязательно будет неправильно)...

victor_pv
Пт 28 августа 2015 12:00
Rogerclark написал:Кроме того

(Google Translate Link)
https: // Перевод.Google.компонент.AU/TRASTA ... rev = search

И это

(Google Translate Link)
https: // Перевод.Google.компонент.AU/TRASTA ... rev = search

Rogerclark
Пт 28 августа 2015 12:27
Привет, Энди,

Я думаю, что суть заключалась в том, что они работали USB, но было неясно, как.

Мне нужно вернуться назад и определить, какой конфигуратор RCC использует загрузчик.

К сожалению, значение RCC, которое использовалось, представляет собой просто шестнадцатеричное число и не было разбито на его составляющие части, чтобы я мог изменить мультипликатор PLL, или AB1 или AB2 или USB -разделитель и т. Д.

Когда я быстро пошел на реконфигурирование PLL от первых принципов, он не сработал все, так что я думаю, я набил, и мне нужно вернуться и сделать это снова.

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

(0x10 << 18) в фактическое число задолго до того, как компилятор даже увидит его.

Саймонф
Пт 28 августа 2015 г., 21:22
Английское руководство...

http: // www.RealSense.компонент.cn/download_click.PHP?сделал = 72

Rogerclark
Пт 28 августа 2015 г., 21:42
Похоже, это официальный документ на сайте Gigadevices

http: // gd32mcu.21ic.com/data/documents/ ... Env1.0.PDF

Ну, я подумал, но я не уверен, кто 21ic.com есть.

Rogerclark
Пт 28 августа 2015 г., 22:02
Просто чтобы доказать, что эти чипсы вообще работают на USB, я рассматриваю необходимость отработки GD32 от одной из моих досок и поместив его на Maple Mini или снял кристалл 8 МГц с моей уродливой доски и посмотреть, смогу ли я бросить свой GD32 Board до 8 МГц и докажите, что это просто проблема с программным обеспечением с множителями PLL, а не с аппаратной проблемой

Martinayotte
Сб 29 августа 2015 1:42
Это какая -то операция на звере ... :ржу не могу:

Стевех
Сб 29 августа 2015 г., 21:59
Jackson009 написал:Кто -то может искать более высокую скорость STM32.-----------------------------------

Rogerclark
Сб 29 августа 2015 г., 22:27
не по цене $ 2

Мадиас
Сб 29 августа 2015 г., 22:33
...или 40USD, если кто -то сидит на куче 20 из этих досок ;)

Rogerclark
Солнце 30 августа 2015 г. 12:49
РЖУ НЕ МОГУ

Качество сборки доски довольно низкое. Итак, я частично рассматриваю их как в основном некоторые GD32, которые я могу использовать в других пользовательских проектах.

Я посмотрел цену на Aliexpress только для ICS, и я думаю, что вы можете получить их примерно за 2 доллара.50 в количестве 10, поэтому я, вероятно, заплатил около 1 или 1 доллара США.50 для печатной платы и других компонентов.

Хорошо. Я постараюсь заставить USB работать над этими досками, но похоже, что у них нет 1.5K подтягивание на USB D+, что может быть одной из причин, по которой USB, похоже, не работает.

Я думаю, что я выяснил, что я делал не так, с конфигурацией RCC PLL в загрузчике, это была опечатка с || вместо | я.E логично или вместо бить или.

Итак, теперь, когда я начал разделять различные части рисунка бита конфигурации RCC PLL на отдельные легко изменяемые определения, я могу начать выяснять, какую скорость должна быть установлена.

Что немного странно, так это то, что я модифицировал загрузчик, так что он просто делает медленную вспышку постоянно, и я сравнил это со скоростью вспышки Maple Mini, работающего с новым загрузчиком.

И чтобы GD32 вспыхнула с той же скоростью, мне, кажется, нужно установить PLL на 5 x, а не x 6, чтобы получить 72 МГц

Мне нужно будет дважды проверить это на моей области, на случай, если мои глаза делят меня, но это то, на что это выглядит в данный момент.

Первоначальная цель состоит в том, чтобы просто использовать GD32 на уровне 72 МГц, как STM32, и использовать то же соотношение USB -разделителей и т. Д.

Пса. Мне нужно будет дважды проверить, как работает PLL в серии F103, как я знаю на F4, есть 2 или 3 регистра, которые используются для установки общего мастер -тактового частота, но, возможно, на F103 - только один множеству PLL

(Мартин ??? любые идеи??)

Martinayotte
Солнце 30 августа 2015 2:02
Привет, Роджер,
Да, вы помните мою "Chemin de Croix" ("Дорога Иисуса" ? Я не знаю, как перевести это выражение с французского) с помощью PLL под NetDuino, так как у него есть внешний источник часов 25 МГц.
Так что, может быть, вам следует пойти на одну и ту же «дорогу», не смешивая все симптомы одновременно.
Код, который я изменил в STM32F4/Cores/Maple/Libmaple/RCCF2.c был: #ifdef arduino_stm32f4_netduino2plus
int pll_m = 25; // NetDuino имеет внешний генератор 25 МГц
#еще
int pll_m = 8;
#endif
Зная, что F1 и F4 RCC*.C совершенно разные, возможно, исправление не будет таким же, но общая идея - определение PLL_M, а не 8 для нормального клена, CD32 должен иметь 12, поскольку кристалл, кажется, 12 МГц.

Rogerclark
Sun 30 августа 2015 г., 3:53
Некоторый прогресс !!!!

Теперь у меня есть загрузчик, работающий над GD32, хотя и используя 72 МГц в качестве частоты тактовой частоты.

Проблема была лишь частично настройки USB и системных часов, но в основном проблема заключается в том, что эти платы не имеют подтягивания на PA12, поэтому мы не можем перечислять доску на USB, и я подозреваю, что плата не может работать в Все на USB, так как подтягивание на D+ кажется общим для всех других дизайнов, которые я видел. Я посмотрел на схему красной таблетки, и я вижу, что она использует 4.От 7K до VCC (VDD), поэтому я паял внешний резистор на верхнюю часть платы, и если я установил настройки PLL в загрузчику, так что GD32 работает на уровне 72 МГц и использует USB -разделитель по умолчанию 1.5 x.

Затем плата появилась в качестве устройства DFU, и я попробовал загрузить из IDE и считать эскиз с использованием STLINK и проверки файлов, и загрузчик, кажется, успешно записывает во вспышке (так что, похоже, нет никакой Различия между GD32 и в отношении работы загрузчика.. В то время, необходимые для написания вспышки и т. Д., Но может быть различия, но у загрузчика есть цикл, где он проверяет, чтобы увидеть, когда вспышка готова, поэтому, возможно, он работает, даже если время изменилось)

Однако.....

Ограниченный набросок, который я загрузил, не запускается.

Похоже, раздел USB кода заставляет плату сбой.

Первоначально я думал, что это было, вероятно, потому, что скорость часов неверна при запуске кода эскиза, поэтому я сделал копию ядра STM32F1 и изменил его, чтобы использовать PLL Mul 6 вместо Pull Mul 9, и я проверил, что его Работа на 72 МГц, потому что до этого изменения аппаратного сериала работал слишком быстро, и мне пришлось использовать скорость передачи 76800, чтобы увидеть скорость передачи 115200 в серийном терминале

Но когда я изменил MUL PLL, скорость передачи передач теперь верна, и код все еще сбивается :-(

Если я загружаю через USB в сериал, код работает нормально, я.E вот как мне удалось проверить аппаратную серийную скорость.

Я попробовал загрузить файл bin (скомпилирован для загрузки загрузчика), используя USB-сериал, а эскиз работает, хорошо, что я прошивает светодиод, как я и ожидал, но USB не работает, и его не повторно передвигается

Так что, похоже, есть 2 или больше вещей, идущие не так
1) Прыжок загрузчика на код пользователя не работает
2) USB не повторно вытекает в эскизе

Но я думаю, это, по крайней мере, какой -то частичный прогресс

Редактировать.

Просто чтобы проверить мой USB -делитель и PLL -материал, я протестировал GD32 на 96 МГц, используя 2.0 USB -разделитель и теперь на 120 МГц с помощью 2.5 разделителей и 120 МГц по -прежнему отлично подходят для USB в загрузчике - однако, конечно, эскиз все еще не работает.

Но у меня есть другие не технологические вещи, с которыми мне нужно продолжать.

Rogerclark
Солнце 30 августа 2015 г. 11:14
Я до сих пор не исправил проблему загрузчика и т. Д., где он не запускает эскиз, но, как интересно, если интересно, я подумал, что запустил дхристон на GD32, когда его бег перегорел на 120 МГц

Примечание. 120 МГц будет работать USB (ну, загрузчик работает нормально при 120 МГц)

Христовый тест, версия 2.1 (язык: c)
Запускается исполнение, 300000 пробегает через Dhrystone

Исполнение заканчивается
Микросекунды для одного пробега через Дхристон: 8.80
Дристоны в секунду: 113666.59
Vax mips rating = 64.69
Интересно, что STM32 @ 72 МГц дает Дристоны в секунду: 85762.68 Таким образом, 120 МГц GD32 - 1.32 раза быстрее. Что не совпадает с относительными тактовыми частотами, которые составляют 1.66 х

Но 32% - это не о чем ;-)

Martinayotte
Солнце 30 августа 2015 13:58
Опять потрясающе !
Могу поспорить, что через несколько часов работы все будет выяснено !

Rogerclark
Солнце 30 августа 2015 г., 21:09
Привет, Мартин,

Да. Я думаю, что это только вопрос времени, когда я выясню, почему загрузчик, похоже, не может запустить эскиз, и почему USB Serial не работает в эскизе, даже если я использую STM32Flash.Exe для запуска кода от 0x8002000

Вчера вечером у меня была мозговая волна, так как я понял, что я не изменил цикл задержки в ядре, который обрабатывает переключение линии D+, используя GPIO.

Так что я попробую сегодня утром, я.E, поскольку текущая задержка будет как минимум на 30% короче, чем у нас обычно.
Однако я подозреваю, что проблема в другом месте.

Rogerclark
Пн 31 августа 2015 г. 11:55 утра
Я загрузил новое ядро ​​для GD32F103 при 120 МГц в репо.

USB по -прежнему не работает в эскизе, но я разобрался на множестве других проблем с времени, так что Millis () и Delay () работают ОК, как и скорость бода в аппаратном сериале.

Я не сосредоточился на том, чтобы заставить USB работать, и странно, как только я пытаюсь установить USB PLL -делитель на 2.5, что -то в коде утверждает

Так что мне нужно вернуться назад и дважды проверить значения PLL, но, насколько я вижу, я делаю то же самое в эскизе, что и загрузчик I.E, чтобы выбрать 2.5 разделитель, рисунок бита составляет 0B10, а в месте 22 и 23, поэтому шаблон, который должен быть или включен в (0B10 << 22), но делая это в коде настройки PLL в ядре, просто заставляет его где -то утверждать
/* pll_cfg->data must point to a valid struct stm32f1_rcc_pll_data. */ void rcc_configure_pll(rcc_pll_cfg *pll_cfg) { stm32f1_rcc_pll_data *data = pll_cfg->data; rcc_pll_multiplier pll_mul = data->pll_mul; uint32 cfgr; /* Check that the PLL is disabled. */ ASSERT_FAULT(!rcc_is_clk_on(RCC_CLK_PLL)); cfgr = RCC_BASE->CFGR; cfgr &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL); cfgr |= pll_cfg->pllsrc | pll_mul;// | (0B10 << 22);/// ORing in 0B10 << 22 crashes the code (causes an ASSERT) RCC_BASE->CFGR = cfgr; }

victor_pv
Вторник 01 сентября 2015 г., 18:42
Rogerclark написал:Я загрузил новое ядро ​​для GD32F103 при 120 МГц в репо.

USB по -прежнему не работает в эскизе, но я разобрался на множестве других проблем с времени, так что Millis () и Delay () работают ОК, как и скорость бода в аппаратном сериале.

Я не сосредоточился на том, чтобы заставить USB работать, и странно, как только я пытаюсь установить USB PLL -делитель на 2.5, что -то в коде утверждает

Так что мне нужно вернуться назад и дважды проверить значения PLL, но, насколько я вижу, я делаю то же самое в эскизе, что и загрузчик I.E, чтобы выбрать 2.5 разделитель, рисунок бита составляет 0B10, а в месте 22 и 23, поэтому шаблон, который должен быть или включен в (0B10 << 22), но делая это в коде настройки PLL в ядре, просто заставляет его где -то утверждать
/* pll_cfg->data must point to a valid struct stm32f1_rcc_pll_data. */ void rcc_configure_pll(rcc_pll_cfg *pll_cfg) { stm32f1_rcc_pll_data *data = pll_cfg->data; rcc_pll_multiplier pll_mul = data->pll_mul; uint32 cfgr; /* Check that the PLL is disabled. */ ASSERT_FAULT(!rcc_is_clk_on(RCC_CLK_PLL)); cfgr = RCC_BASE->CFGR; cfgr &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL); cfgr |= pll_cfg->pllsrc | pll_mul;// | (0B10 << 22);/// ORing in 0B10 << 22 crashes the code (causes an ASSERT) RCC_BASE->CFGR = cfgr; }

Rogerclark
Вторник 01 сентября 2015 г., 21:32
Спасибо, Виктор,

Я дважды проверю, работает ли 0BXX.

На самом деле есть что -то очень странное, что происходит.

Я перепрошил то, что, как мне показалось, был моим последним / рабочим файлом bin загрузчика GD32 @ 120 МГц, и он сразу же сбой.

Я уверен, что это работало, поэтому я изменил что -то критическое и сломал его, прежде чем посвятить себя GitHub, либо доска нестабильна.

Я вернусь назад, выплюнут загрузчик STM32 на плату и посмотрю, не мигает ли он светодиод, но на данный момент что происходит загадка.

У меня есть подозрение, что есть что -то немного не так с кодом низкого уровня, который обрабатывает настройку часов как в загрузчике, так и в ядре.

При загрузке эскиза без загрузчика, либо используя STLINK, либо встроенный серийный загрузчик, я, кажется, получаю аналогичные проблемы, как и уродливая плата, потому что эскиз иногда будет работать только сразу после загрузки, а не в том случае, если я установил LOW SET -LIL Он запустил бы Sketch Directky после загрузки, он, кажется, сбой, если я установите делитель PLL для USB.

Поскольку у нас есть аналогичная проблема на уродливой плате, так как некоторые доски не запускают эскиз непосредственно, я удивляюсь, является ли это проблемой с кодом высокоскоростного инфекционного осциллятора (HSE).

Мне нужно провести еще несколько исследований о том, как это работает, но из того, что я понимаю, вы настраиваете настройки PLL, а затем включите HSE и должен ждать, пока он будет готов.
Leaflabs, кажется, определяют, готов ли HSE, глядя немного в одном из рег RCC
видеть https: // github.com/rogerclarkmelbourne/ ... aple/rcc.в

Тем не менее, стартап HSE - это то, что он отличается в GD32, и, как предполагается, есть численное значение для тайм -аута запуска HSE, которое, кажется, не используют Leaflabs.

Поэтому мне интересно, есть ли недостаток в коде запуска HSE, который написал Leaflabs.

Rogerclark
Вторник 01 сентября 2015 11:27
Привет, Виктор

Я пытался использовать 0x02 вместо 0b10, но, похоже, не имело никакого значения.

Я использовал 0BXX в течение многих лет, когда это арбитационный битовой шаблон, который не имеет особого значения.
Я предполагаю, что использование 0x02 заставляет людей думать, что вы не имеете в виду множитель или разделитель 2, я.E как 0x02 фактически приравнивается к делителю 2.5

Я замечаю в ядре, что Leaflabs помещают в перечисление для множителя PLL, так что pull_mul_9 равен 0x07, i.E Поскольку настройка 0x00 дает множитель из 2

Я вернулся к загрузчику, и есть проблема с кодом запуска.

Если я загружаю загрузчик, используя USB в сериал, и он работает после загрузки от 0x800000, а USB -кабель подключен к моему ПК. Загрузчик, кажется, сбой.

Если я загружаю с USB -кабелем отключен и загружаю и запускаю, я получаю обычное мигающее светодиод, чтобы указать, что загрузчик не может найти программу в Flash для запуска и поэтому ждет загрузки.

Если я тогда установите LILE BOOT0 и сделайте холодный запуск, подключив USB -кабель. Я получаю мигающий светодиод, а также получаю устройство DFU.

Я не помню, чтобы у меня были такие же проблемы на STM32. Я думаю, что если я загружаю и запускаю загрузчик, он сразу же работает, даже с помощью USB -кабеля подключен.

В случае, если это проблема, в которой HSE, нуждающийся в большем времени для запуска, я положил цикл задержки 0xffff, чтобы посмотреть, поможет ли это, но это не имело никакого значения.

Однако я не смотрел в руководство о том, как вы должны делать все возможное.
Возможно, я использую недопустимые конфигурации часов, но, похоже, работает.

Я думаю, я могу упасть до 72 МГц и 1.5 USB -разделитель, но я не думаю, что это будет иметь какое -либо значение

Редактировать. Я нашел этот код

http: // www.Эмку.It/stm32/stm32vldiscove ... Брэри.HTML
Но в основном, если HSE не начинается, они просто останавливают код, сидя за некоторое время (); петля


Редактировать. У меня нет 8MHS XTALS, которые я мог бы попробовать на GD32 . У меня есть только 16 МГц с тех пор, как я строил автономные доски AVR

Я думаю, 16 может быть слишком высоким

Я закажу около 8 МГц от eBay

Martinayotte
Ср. 02 сентября 2015 12:25
Rogerclark написал:Редактировать. У меня нет 8MHS XTALS, которые я мог бы попробовать на GD32 . У меня есть только 16 МГц с тех пор, как я строил автономные доски AVR

Я думаю, 16 может быть слишком высоким

Я закажу около 8 МГц от eBay

Rogerclark
Ср. 02 сентября 2015 г. 12:39
Привет, Мартин,

Я заказал несколько кристаллов 8 МГц, но я обеспокоен тем, что эти платы, похоже, используют этот тип резонаторов и используют 12 МГц

Изображение

Я знаю, что STM32 довольно разборчив в своем кристалле HSE, об этом есть целая прикладная заметка
http: // www.ул.com/web/en/resource/techn ... 221665.PDF

Поэтому я подумал, что можно опустить обратно в кристалл 8 МГц, так как я могу просто запустить стандартный код BOG STM32 и ничего не изменить...

Тогда, если все еще есть проблемы, я думаю, это вопрос дизайна платы или различий в оборудовании между GD32 и STM32.

Доски GD32, которые у меня есть, выглядят очень похоже на Redpill и имею светодиод на PC13 (как это делает красные таблетки)

Думаю, я мог бы пожертвовать одной из моих красных таблеток и одной из моих GD32 и попытаться пересадке сердца процессора GD32 с доски GD32 до Redpill

Я мог бы перейти на свою уродливую доску, но это никогда не работает очень хорошо, так что у меня было бы слишком много неизвестных, если бы я это сделал

Но я не уверен, смогу ли я удалить GD32 с помощью моего инструмента для выкомпления, а затем смогу припаять его там, где был STM32 на Redpill, не повреждая ни чипсы, ни красную таблетку.

Ахулл
Ср. 02 сентября 2015 1:02
Немного шире текущего борозды, но тем не менее интересно... Этот PDF предполагает, что существует «стратегическое партнерство» между ST и Gigadevices. РЕДАКТИРОВАТЬ: У двух компаний, похоже, есть офисы в нескольких городских кварталах друг от друга в Санта -Кларе...

http: // www.MapQuest.com/us/california/b ... S-11968871

http: // www.Гигадевице.com/page/id-47.HTML?locale = en_us

... Как мог сказать Рэй... "Очень интересно..." : D

Rogerclark
Ср. 02 сентября 2015 1:14
Спасибо, Энди.

GD должен лицензировать использование STM32 от STM и улучшил его.

Глядя на один из китайских документов PDF / переведенных (который я опубликовал большую часть в предыдущем посте), в нем говорится, что основное напряжение на GD32 ниже, чем у STM32, а также то, что я думаю, что это подразумевает, что у вспышки миллионы записи Циклы (поскольку они обычно не цитируют количество циклов записи в ОЗУ).

В любом случае, напряжение нижнего ядра может предположить, что они сделаны в Fab's GD, а не STM, и их Fab может быть лучше.

Кроме того. Похоже, это также намекается, с точки зрения времени, чтобы стереть вспышку.

В моих тестах он, по-видимому, стерел весь чип ультра быстро, и загрузчик кажется очень быстрым (но я подумал вспышка будет удалена, так что, возможно, это значительное улучшение скорости.

Однако на данный момент, поскольку я действительно не дошел до дна от того, почему плата, кажется, не всегда запускается правильно, трудно подтвердить любое из этих измерений.
Ну, я думаю, я мог бы написать некоторые тестовые наброски, так как это кажется достаточно надежным, если я не пытаюсь использовать USB....

Martinayotte
Ср. 02 сентября 2015 1:23
@Roger, будьте осторожны, изображение, которую вы предоставляете, кажется, 32.768 кГц RTC Crystal, который, возможно, тоже имеет доска GD32F.
12 МГц, вероятно, является кристаллом SMT, как и на Maplemini, прямоугольный пакет.

@ahull, этот PDF просто подтверждает, что у гигадевице и STM есть сильная приверженность. May STM-инженеры сосредоточатся на высококачественном F4 и F7, оставив китайский сделку с низким уровнем F1 & CIE.

Rogerclark
Ср. 02 сентября 2015 1:29
Мартин,

Я не вижу ничего на вершине доски, который смутно похож на кристалл

Изображение

У него есть 2 из этих резонаторов, которые смотрят в нижней части платы. Я предполагал, что один - это основные часы (HSE), и один может быть 32 кГц RTC

Изображение

Rogerclark
Ср. 02 сентября 2015 г. 1:36
Просто мысль, но я также разгоняю периферийные устройства (на 120 МГц)

Я только что проверил, и APB1 может работать при 54 МГц, а APB2 может работать на скорости 108 МГц, ADC может работать только при 14 МГц

Самое простое изменение, которое я могу внести, - это просто изменить PLL вниз на X 6 и запустить доску на уровне 72 МГц, и все прекалеры должны быть в порядке, но я помню, как тестировал на этой скорости, когда я впервые начал экспериментировать, и я не думаю, что это сделало разница в моих проблемах

Но это стоит вернуться и подтвердить.

Martinayotte
Ср. 02 сентября 2015 г. 1:44
Ой !!! Ты прав, Роджер !
Это кристалл Y2 ? Но на картинке это кажется 8.000 написано на нем ?
Ваше письменное 12.000 ?
Это действительно редко, что эти кристаллы используются для высоких частот.

Rogerclark
Ср. 02 сентября 2015 г. 1:57
Один имеет kds3m (или, возможно, kos3m) или что -то в этом роде написано на нем

У другого нет маркировки.


Итак, я положил свой прицел на Y2, и одна сторона от этого дает мне синусоидальную волну 200 МВ.

Поместив прицел на другую сторону, убивает генератор (я не удивлен на самом деле).

Таким образом, они используют эти дешевые кристаллы / резонаторы для 12 МГц

Я до сих пор не думаю, что это проблема, но я согласен, что более крупные прямоугольные Xtals чаще используются на этих частотах

Думаю, я мог бы изменить настройки PLL и попробовать вместо этого Crystal 16 МГц.

victor_pv
Ср. 02 сентября 2015 г. 2:29 утра
Понятия не имею, может ли это помочь вам каким -либо образом, но при тестировании режимов сна и резервного режима мне пришлось добавить несколько линий, чтобы установить часы обратно в HSE после пробуждения, потому что он автоматически устанавливается на HSI при пробуждении от сна. Без этого MCU проснулся, но сериал не сработал бы. Если я установим код в HSE, USB будет работать, проснуться.
Это было несколько месяцев назад, и я не помню, что делала каждая функция, но, возможно, вы видите то, чего вам не хватает:

// rcc_set_prescaler (rcc_prescaler_ahb, rcc_ahb_sysclk_div_1);
rcc_turn_on_clk (rcc_clk_hse);
пока (!rcc_is_clk_ready (rcc_clk_hse))
// board_setup_clock_prescalers ();
// rcc_configure_pll (&Wirish :: priv :: w_board_pll_cfg);
rcc_turn_on_clk (rcc_clk_pll);
пока(!rcc_is_clk_ready (rcc_clk_pll));
rcc_switch_sysclk (rcc_clksrc_pll);

Несколько комментированных линий не были необходимы в моем случае, потому что проксалер часов, PLL и т. Д. Поэтому я понял, что мне не нужно снова устанавливать эти ценности, но они работали, когда включены, я верю. Я почти уверен, что все это копируется буквально из Libmaple, но, возможно, я добавил или удалил функцию, который может вам помочь.

КСТАТИ. Вы проверили, сколько у вас есть вспышка в этих устройствах?
Если вы читаете со Stlink до 128 КБ, то у него так много вспышки. Когда вы пытаетесь прочитать фактически действительный адрес, он должен дать вам сообщение об ошибке и остановить.

Rogerclark
Ср. 02 сентября 2015 3:07
Виктор

Я пытался читать прошлые 128 тысяч, и это просто продолжает читать.

Я попробовал то же самое на STM32, и он, кажется, изменяет значение суммы чтения на 0x20000 I.E 128K

Stlink не позволит мне написать по любому адресу выше 64K на STM32F103C8 GD32F103C8

Я думаю, что мне нужно было запустить тестовый эскиз, чтобы определить, сколько на самом деле на этих устройствах на самом деле.

У вас есть тестовый эскиз, который делает это ?

Rogerclark
Ср. 02 сентября 2015 г., 3:20
КСТАТИ.

Я попытался внести некоторые задержки для HSE вещей (я еще не пробовал код победителей), и это не имеет никакого значения

Я попытался сбросить множитель PLL до 6 х (12 МГц), чтобы доска теперь работает с той же скоростью, что и STM32, и я все еще получаю такую ​​же ошибку.

Все это немного хлопьев.

Если я загружаю с помощью USB в сериал и аппаратный загрузчик и немедленно выполнить из 0x800000, он, кажется, сбой.

Если я загружаю загрузчик с помощью STLINK, который имеет возможность сбросить после загрузки, он работает ОК

И, кажется, сейчас работает нормально, когда я сбросьте питание.

Кажется, это не имеет значения, какая скорость я выбираю, 72 МГц и 1.5 делитель для USB Works, как и 120 МГц с 2.5 разделитель. Я вижу, как он работает на 120 МГц, так как светодиод намного быстрее мигает при 120 МГц (также пробовал 96 МГц, и это также работает нормально)

Я запустил DFU -UTIL -l, когда он работает на скорости 120 МГц, и я вижу все ожидаемые идентификаторы устройства DFU, и я знаю, что могу загрузить из IDE, но он затем вылетает в коде :-(

Поэтому я думаю, что мне придется запустить GDB и посмотреть, что происходит, но проблема в том, что GDB не поймет, что происходит после того, как код перепрыгнет по адресу эскиза, но я думаю, в этот момент мне нужно как -то понадобиться Чтобы отлаживать эскиз с использованием GDB, чтобы увидеть, где его сбой

victor_pv
Ср. 02 сентября 2015 г., 3:53
Rogerclark написал:Виктор

Я пытался читать прошлые 128 тысяч, и это просто продолжает читать.

Я попробовал то же самое на STM32, и он, кажется, изменяет значение суммы чтения на 0x20000 I.E 128K

Stlink не позволит мне написать по любому адресу выше 64K на STM32F103C8 GD32F103C8

Я думаю, что мне нужно было запустить тестовый эскиз, чтобы определить, сколько на самом деле на этих устройствах на самом деле.

У вас есть тестовый эскиз, который делает это ?

Rogerclark
Ср. 02 сентября 2015 г., 4:00 утра
Я не обновлял свою stlink довольно давно.

Это не та, что в металлической банки, но это прошивка, которая имеет значение, и, возможно, я использую старую версию утилиты Stlink Exe

STM32 ST-Link Utility.Exe v3.5.0
Драйвер Stlinkusb.DLL 4.3.3.0
Stlink Cli V 2.1.0


Я обновлю SW в своем ключе. Но я всегда немного осторожен в том, чтобы делать это на случай, если я «кирпич», но я всегда могу перепрофировать его, используя USB в серийный и т. Д., Если мне нужно .

Редактировать. У меня, кажется, уже есть последний FW
V2.J23.S4 КСТАТИ.

С STM32 я могу читать только 128K на C8. С GD32 он просто продолжает читать.
Я вкладываю действительно действительно большие размеры (более 1 МБ), но все еще продолжает читать !

Таким образом, если они не втянулись в какую -то невероятно большую вспышку (поскольку они являются производителем памяти), то Stlink работает не так же, как на STM32

Мне нужно запустить какой -то эскиз для флэш -теста

У кого -нибудь есть один ?

victor_pv
Ср. 02 сентября 2015 г., 4:07
Rogerclark написал:Я не обновлял свою stlink довольно давно.

Это не та, что в металлической банки, но это прошивка, которая имеет значение, и, возможно, я использую старую версию утилиты Stlink Exe

STM32 ST-Link Utility.Exe v3.5.0
Драйвер Stlinkusb.DLL 4.3.3.0
Stlink Cli V 2.1.0


Я обновлю SW в своем ключе. Но я всегда немного осторожен в том, чтобы делать это на случай, если я «кирпич», но я всегда могу перепрофировать его, используя USB в серийный и т. Д., Если мне нужно .

Редактировать. У меня, кажется, уже есть последний FW
V2.J23.S4 КСТАТИ.

С STM32 я могу читать только 128K на C8. С GD32 он просто продолжает читать.
Я вкладываю действительно действительно большие размеры (более 1 МБ), но все еще продолжает читать !

Таким образом, если они не втянулись в какую -то невероятно большую вспышку (поскольку они являются производителем памяти), то Stlink работает не так же, как на STM32

Мне нужно запустить какой -то эскиз для флэш -теста

У кого -нибудь есть один ?

Rogerclark
Ср. 02 сентября 2015 г., 6:30
Виктор

К сожалению, похоже, что эти GD32F103C8 на самом деле всего 64 тыс., Не 128 тыс. Как и STM32F103C8 :-(

Это может быть просто что -то, что сжигается в аппаратном обеспечении, но я не могу использовать Stlink, чтобы написать выше 64 тыс., Но я могу сделать это, если загрузить файл 128K в свою красную таблетку.

Жаль, что на самом деле позор, но я думаю, что это была просто недокументированная особенность на STM32F103C8, на которую мы не могли положиться, и сами STM может измениться в будущем

Rogerclark
Ср. 02 сентября 2015 г. 11:10
УСПЕХ !

ХОРОШО. Глупая ошибка.

Я взял копию ядра STM32 сразу после того, как я применил карту штифта в Flash, но прежде чем обновить вариант STM32F103C.

И, как ни странно, этот Miss Match, по -видимому, приводит к тому, что GPIO недоступен на стадии инициализации, когда USB D+ сброшен с помощью GPIO.

Но, как ни странно, в эскизе GPIO, по -видимому, был доступен, как я мог переключить PC13 и прошить светодиод на плате.

В любом случае, это потребовалось века, чтобы выяснить, что происходит не так, и в то же время я сделал множество Tidy Up в коде, чтобы правильно настроить USB -прескалер (которого нет в STM32 - потому что нет возможности для Запустите доску на 48 МГц - но теперь я знаю, как добавить опцию)

КСТАТИ. В конце концов мне пришлось использовать GDB для отладки того, что происходило, так как код, казалось, называл функцию, называемую __error, которая выглядит как функция захвата системной ошибки.

(Я уверен, что Рик может рассказать нам больше)


Примечания)
Я поместил в меню выбор часов процессора через меню с вариантами 120 МГц, 96 МГц и 48 МГц. Я не включил 108 МГц, так как USB не поддерживается на этой скорости (хотя это максимальная цитированная скорость).

Скорость тактового нагрузки, кажется, должна соответствовать выбранной скорости для эскиза, поэтому при загрузке с помощью загрузчика вам нужно выбрать 120 МГц.

Я подозреваю, что это можно исправить, но не сегодня вечером. ;-)

Ахулл
Ср. 02 сентября 2015 12:04
Отличный! : D Это должно дать нам большее представление о том, что они в целом.

Rogerclark
Ср. 02 сентября 2015 12:15
Энди

Проблема с разгоном STM32, предположительно, является USB -предварительный проклятор только 1 бит и может разделить только на 1 и 1.5 x

Он использует Bit 22 из конфигурации RCC, но Bit 23 задокументирован как зарезервированный.

Однако на битах GD32 22 и 23 используются для USB -разделителя.

Так что это заставляет меня задуматься о том, действительно ли бит 23 на STM32 действительно зарезервировано или есть ли эффект, я.E дает 2 дополнительных соотношения прескалера, 2 и 2.5 x

Наверное, стоит изучить

Ахулл
Ср. 02 сентября 2015 12:58
Rogerclark написал:Энди

Проблема с разгоном STM32, предположительно, является USB -предварительный проклятор только 1 бит и может разделить только на 1 и 1.5 x

Он использует Bit 22 из конфигурации RCC, но Bit 23 задокументирован как зарезервированный.

Однако на битах GD32 22 и 23 используются для USB -разделителя.

Так что это заставляет меня задуматься о том, действительно ли бит 23 на STM32 действительно зарезервировано или есть ли эффект, я.E дает 2 дополнительных соотношения прескалера, 2 и 2.5 x

Наверное, стоит изучить

victor_pv
Ср. 02 сентября 2015 г., 13:07
Это здорово, Роджер! Я рад, что это наконец работает.
Интересно, почему GPIO работал таким образом, но я могу только догадаться, что есть более тонкие различия между STM и GD. Или, возможно, STM потерпит неудачу так же, не завершая изменения в досках.CPP?

Я читал на днях о порте USB на устройствах F2 и F4. Они используют 4 бита для предварительного эскалятора, а сама перифеальная USB отличается, но кто-то проверял разгону F2 или F4, я не помню модель, и он использовал множители, которые в некоторых случаях привели к 42 МГц для USB, и и все еще работал.
Интересно, может ли F1 USB все еще работать, если мы приблизимся к 48 МГц, не будучи точным.
GD USB также может работать аналогично STM, но не совсем одинаково, поэтому даже если F1 не может взять что -либо, не совсем 48 МГц, возможно, GD делает. Теперь, когда у вас есть USB -работа, может быть, стоит попробовать 108 МГц снова.

Ахулл
Ср. 02 сентября 2015 г., 13:25
victor_pv написал:...
Интересно, может ли F1 USB все еще работать, если мы приблизимся к 48 МГц, не будучи точным.
GD USB также может работать аналогично STM, но не совсем одинаково, поэтому даже если F1 не может взять что -либо, не совсем 48 МГц, возможно, GD делает. Теперь, когда у вас есть USB -работа, может быть, стоит попробовать 108 МГц снова.

victor_pv
Ср. 02 сентября 2015 г. 15:31
Ахулл написал:victor_pv написал:...
Интересно, может ли F1 USB все еще работать, если мы приблизимся к 48 МГц, не будучи точным.
GD USB также может работать аналогично STM, но не совсем одинаково, поэтому даже если F1 не может взять что -либо, не совсем 48 МГц, возможно, GD делает. Теперь, когда у вас есть USB -работа, может быть, стоит попробовать 108 МГц снова.

Rogerclark
Ср. 02 сентября 2015 г., 20:42
Виктор

Проблема не была разницей в GPIO, это была моя ошибка.

Когда я объединил вашу карту штифта в коде флэш -кода, только Maple Mini имели изменения в массиве PIN_MAP в плате.CPP, чтобы иметь указатели на структуры.

Поэтому, когда я скопировал ядро ​​STM32F1, чтобы сделать ядро ​​GD32, у него не было изменения в плате.CPP для PIN -карты

Как ни странно, когда я запускаю обычные наброски, загрузив с помощью USB -серийного адаптера, все работало нормально.

Но загрузка stlink сбой, как и загрузчик загрузчика.

В конце концов, мне пришлось использовать GDB, чтобы отследить, что авария была при установке PA12 для принудительного перечисления USB, после чего я понял, что, хотя я по-прежнему обновил плату STM32F103C.Карта штифтов CPP, я не скопировал это изменение на доску GD32.CPP

Как только я обновил карту штифтов, чтобы использовать указатели на структуры устройств, она перестала сбой.


Re: PLL Config Bit 23.

Будет проще всего протестировать, изменяя загрузчик GD32, и изменить множитель PLL на 12 x, так как это даст мастер -часовой частоту 96 МГц на кристалле STM32S 8 МГц, и я также мог бы выбрать вариант 2 x Prescaler , если он существует в битах 23 из STM32.

Надеемся, что STM32 может быть разбросан на 30% без необходимости испортить и периферийные предварительные прекалеры.


Re: USB в 43.5 МГц. Я полагаю, стоит попробовать.

Я уверен, что более надежно... Разгрузка до 120 МГц и иметь правильный USB. FREQ или запуск устройства в спецификации на скорости 108 МГц и использование нестандартной USB -частоты.

Rogerclark
Ср. 02 сентября 2015 г., 21:35
ХОРОШО.

Я встал рано и проверил это.. И я боюсь, насколько я могу судить, Bit 23 не влияет на STM32.

я.E I перенастроил загрузчик GD32, чтобы запустить на PLL 9 x Multiplier I.e Таким образом, кристалл STM32 8 МГц дает 72 МГц и установите значение предварительного выкала USB на 0x00 i.E 1.5 и загрузчик работал.

Затем я попытался сменить USB -прескалер на 0x02, и это не имеет значения на моей красной таблетке

Я знаю, что мой код работает над GD32, и этот бит 23 определенно меняет USB -предварительный проклятор.

Как интересно, я попытался запустить красную таблетку на PLL 10 X I, E 80 МГц, используя то же самое 1.5 X USB -Прескалер, но мой компьютер не распознал USB -устройство, так что 53.333 МГц слишком быстро для USB .
Итак, я также пытался изменить PLL на 8 x (я.E 64 МГц и используйте 1.5 Прескалер, чтобы дать 42.6666 МГц), но это тоже не работает на Windows.

Если я брошу PLL вниз до 6 х (я.E 48 МГц) и изменить прокалер на 0x01 I.E разделите на 1, затем USB снова начинает работать.


Так.

На обоих случаях, похоже, на STM32 единственные возможные скорости, которые можно использовать, и все же запуска USB - 72 МГц и 48 МГц, так как бит 23, похоже, ничего не делает.


Условия разгона. Я почти уверен, что это было сделано раньше, но я попытался изменить множитель PLL до 16 х (128 МГц), и моя красная таблетка с радостью вспыхивает его светодиодом в загрузчике (очень быстро), так что, похоже, ее можно разгонять Насколько позволяет PLL, но вы потеряете USB.

Я думаю, что есть какой -то код, который был на форуме Leaflabs, который позволил бы эскизу переключить PLL и разгонять, так что, возможно, стоит увидеть, если USB уйдет, если вы пережите на некоторое время.
Но, как правило, я не думаю, что это будет много использования, и GD32 выглядит так, как будто он будет более быстрым F103, чем STM32

Но... Похоже, что F103C8 имеет только 64K Flash :-( (Но я хотел бы сделать больше тестирования, чтобы подтвердить это)

Rogerclark
Ср. 02 сентября 2015 г., 22:00
Я забыл проверить 108 МГц / 2.0 и /2.5 тестов на GD32

Я сейчас один, и ни один разделитель 2.0 или 2.5 работ, когда PLL установлен на x 12 (дает 108 МГц)

Лично я рад запустить свои GD32 на 120 МГц, но я думаю, что я мог бы добавить цель загрузчика на 96 МГц (так же, как это работает, и находится в пределах спецификации)

Я думаю, что хотя это нишевый продукт, большинство людей предпочли бы иметь как можно больше скорости.

Примечание. На данный момент, хотя я добавил выбор скорости в сердечную доску GD32.Меню txt i.E 72, 96 или 120 МГц, при использовании загрузчика 120 МГц, он выглядит так, будто работает только параметр скорости 120 МГц.
я.e Скорость эскиза должна соответствовать скорости загрузчика.

Я подозреваю, что это потому, что существует небольшая проблема с кодом запуска RCC, где предполагает ядро, не полностью сбросит значения PLL.

На самом деле, у меня были некоторые проблемы, изменяющие USB -прескалер в ядре GD32, и, в конце концов, я обнаружил, что мне пришлось добавить код Prescaler USB в функцию, которая устанавливает все остальные прекалеры, как если бы я это сделал позже, это казалось Становитесь перезаписаны - но это может быть красная сельдь, так как я работал над этой проблемой в течение довольно много часов прошлой ночью, и через некоторое время дела перестают иметь смысл.

В любом случае. Управление PLL и т. Д. В значительной степени повышается на ядре GD32, и даже время, такие как Millis () и Delay (), теперь прекрасно работают во всех выбираемых скоростях.
Примечание. Задержка никогда не кажется совершенно точной, поэтому материал GD32 примерно так же точен, как и STM32.

Интересно, что я также вижу, как работает Millis (), как его называют __systtick обратным вызовом и похож на таймер в том, что существует значение перезагрузки, эквивалентное частоте часов E.глин. 72000000 - 1, так что функцию Systick вызывается один раз каждый миллисекунд.

Интересно, что у Systick также есть крюк с обратным вызовом пользователя, который используется RTOS Libs .

Однако я не уверен, как работает Nanos ().

Редактировать.

Еще одна вещь.

Аппаратное обеспечение на этой плате GD32 не натягивает USB DP (D+), поэтому мне пришлось добавить 4.Резистор 7 тыс. (Я иногда знаю 1.5K также используется на некоторых досках)

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

Однако я пытался использовать GPIO для приведения DP (D+) до 3.3v, и это не работает :-(
Мне нужно прочитать USB -спецификацию, но я предполагаю, что DP нужно потянуть выше 3.3V, чтобы сигнализировать на USB -хост

victor_pv
Чт, 03 сентября 2015 г. 12:05
Rogerclark написал: Интересно, что у Systick также есть крюк с обратным вызовом пользователя, который используется RTOS Libs .

...

Аппаратное обеспечение на этой плате GD32 не натягивает USB DP (D+), поэтому мне пришлось добавить 4.Резистор 7 тыс. (Я иногда знаю 1.5K также используется на некоторых досках)

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

Однако я пытался использовать GPIO для приведения DP (D+) до 3.3v, и это не работает :-(
Мне нужно прочитать USB -спецификацию, но я предполагаю, что DP нужно потянуть выше 3.3V, чтобы сигнализировать на USB -хост

Rogerclark
Чт, 03 сентября 2015 г. 12:23
Привет, Виктор,

Спасибо за информацию о Systick ()

Первоначально я задавался вопросом, почему у него была возможность каждый раз вызывать обратный вызов, определяемый пользователем, так как я думал, что это просто тратить время на процессор (хотя и только один раз за миллисекунду), но затем я заметил, что материал RTOS использует его, что имеет смысл.

ОК, о 1.5K резистор. Я смену резистор, который я паял на свою доску.

Я понятия не имею, почему у этих досок GD32 нет подтягивания. USB кажется бесполезным без него, и они подключили USB с STM32 с 22 резисторами в ОМ и также добавили статическую защиту.

Мне нужно купить упаковку из 10 (или более) 1.5 тыс. Из местного магазина электроники и мод всех моих досок, так что USB работает на всех них !

victor_pv
Чт, 03 сентября 2015 г. 12:43
Rogerclark написал:Привет, Виктор,

Спасибо за информацию о Systick ()

Первоначально я задавался вопросом, почему у него была возможность каждый раз вызывать обратный вызов, определяемый пользователем, так как я думал, что это просто тратить время на процессор (хотя и только один раз за миллисекунду), но затем я заметил, что материал RTOS использует его, что имеет смысл.

ОК, о 1.5K резистор. Я смену резистор, который я паял на свою доску.

Я понятия не имею, почему у этих досок GD32 нет подтягивания. USB кажется бесполезным без него, и они подключили USB с STM32 с 22 резисторами в ОМ и также добавили статическую защиту.

Мне нужно купить упаковку из 10 (или более) 1.5 тыс. Из местного магазина электроники и мод всех моих досок, так что USB работает на всех них !

Rogerclark
Чт, 03 сентября 2015 г. 10:33 утра
Я сделал серию видео на YouTube на GD32F103C8

Видеть https: // www.YouTube.com/канал/uczktqa ... Naj6ydimia

Я пересекаю сообщение о последнем видео, так как я хотел бы, чтобы кто -то посмотрел на тесты Dhrystone, которые вы можете увидеть на видео, так как GD32, кажется, имеет лучшую скорость Dhrystone даже при 72 МГц, чем у STM32.

Возможно, это вызвано более быстрым доступом к вспышке или ОЗУ. Я знаю, что флэш -архитектура определенно отличается, поскольку они цитируют миллионы циклов записи, возможно, это также влияет на чтение производительности

victor_pv
Чт, 03 сентября 2015 12:56
Rogerclark написал:Я сделал серию видео на YouTube на GD32F103C8

Видеть https: // www.YouTube.com/канал/uczktqa ... Naj6ydimia

Я пересекаю сообщение о последнем видео, так как я хотел бы, чтобы кто -то посмотрел на тесты Dhrystone, которые вы можете увидеть на видео, так как GD32, кажется, имеет лучшую скорость Dhrystone даже при 72 МГц, чем у STM32.

Возможно, это вызвано более быстрым доступом к вспышке или ОЗУ. Я знаю, что флэш -архитектура определенно отличается, поскольку они цитируют миллионы циклов записи, возможно, это также влияет на чтение производительности

Rogerclark
Чт, 03 сентября 2015 г., 21:01
Привет, Виктор

Вы знаете, где настроены состояния ожидания? Устройство, я только изменил основное PLL и значение предварительного профиля USB и значение перезагрузки Systick.

Редактировать.

Я думаю, что нашел это
#define FLASH_SAFE_WAIT_STATES FLASH_WAIT_STATE_2

victor_pv
Чт, 03 сентября 2015 г., 21:27
Rogerclark написал:Привет, Виктор

Вы знаете, где настроены состояния ожидания? Устройство, я только изменил основное PLL и значение предварительного профиля USB и значение перезагрузки Systick.

Редактировать.

Я думаю, что нашел это
#define FLASH_SAFE_WAIT_STATES FLASH_WAIT_STATE_2

Ахулл
Чт, 03 сентября 2015 г., 21:57
В зависимости от спецификации вспышки, может быть разумно запустить вспышку при 1 или даже 2 состояниях ожидания, если запустить GD32 при 120 или 128 МГц.

Rogerclark
Чт, 03 сентября 2015 г., 22:07
Я только что попытался изменить это на ноль, и это не имело никакого значения для теста Дхристона

Мне нужно попробовать изменить его на STM32, возможно, регистр, который устанавливает это значение, либо не поддерживается в GD32, либо игнорируется, либо, возможно, код не делает то, что, по нашему мнению, это делает в ядре

Я лучше изменить его на 5 состояний ожидания в ядре STM32 и посмотрю, имеет ли это какое -либо значение для теста Dhrystone, но это может быть тест не очень зависит от этого

Ахулл
Чт, 03 сентября 2015 г., 22:14
Rogerclark написал:Я только что попытался изменить это на ноль, и это не имело никакого значения для теста Дхристона

Мне нужно попробовать изменить его на STM32, возможно, регистр, который устанавливает это значение, либо не поддерживается в GD32, либо игнорируется, либо, возможно, код не делает то, что, по нашему мнению, это делает в ядре

Я лучше изменить его на 5 состояний ожидания в ядре STM32 и посмотрю, имеет ли это какое -либо значение для теста Dhrystone, но это может быть тест не очень зависит от этого

victor_pv
Чт, 03 сентября 2015 г., 22:16
Rogerclark написал:Я только что попытался изменить это на ноль, и это не имело никакого значения для теста Дхристона

Мне нужно попробовать изменить его на STM32, возможно, регистр, который устанавливает это значение, либо не поддерживается в GD32, либо игнорируется, либо, возможно, код не делает то, что, по нашему мнению, это делает в ядре

Я лучше изменить его на 5 состояний ожидания в ядре STM32 и посмотрю, имеет ли это какое -либо значение для теста Dhrystone, но это может быть тест не очень зависит от этого

Rogerclark
Чт, 03 сентября 2015 г., 22:33
Я только что посмотрел на документы, и все элементы управления вспышкой выглядят по -разному.

Существует отдельный рег, чтобы включить состояния ожидания, что я не думаю, что у STM32 есть, что, вероятно, поэтому изменение reg Flash_ACR не оказывает никакого влияния на GD32

Ахулл
Чт, 03 сентября 2015 г., 22:39
Есть некоторые Интересные вещи на 21 -м сайте Что касается часов и состояний ожидания.. это немного "Chinglish" из -за ограничений Google Translate....

Сайт 21 года - это более Связано с сайта Gigadevices как «добыча GD32 MCU» Так что, похоже, есть связь некоторых производителей с 21IC

Rogerclark
Чт, 03 сентября 2015 11:24
Привет, Энди,

21ic действительно является основным сайтом с вещами о гигадевисах, я подозреваю, что они как -то связаны.

Я посмотрел на мини -сайт GD для их MCU, но я не нашел много там, кроме загрузки руководства по программированию для устройства (я думаю, что разместил ссылку A DOC ранее в этой теме)

Предполагается, что существует другой флэш -загрузчик Exe, но ссылки на него, кажется, мертвы, но STMS собственные STLINK и Flash -загрузчик, кажется, работают нормально.

Re: материал HSE.

Я не думаю, что ядро ​​Libmaple или загрузчик реализует тайм -аут HSE, я.Тайм -аут бесконечен, поэтому я мог бы изменить его, чтобы использовать их код, который, кажется, делает жесткий сброс, если время запуска HSE.
Но я никогда не видел, чтобы это произошло, поэтому я не уверен, что это стоит

Я, наверное, должен посмотреть на флэш -программирование, потому что есть дополнительный тест, который необходимо провести, чтобы подтвердить, что после удаления вспышки, что она готова. Но, похоже, также указывают документы, просто помещая 2 NOPS в код для задержки после того, как исходный код считает, что вспышка доступна, достаточно, чтобы ее исправить - и в нашем коде я уверен, что это не было проблемой, потому что она Будет отключить любые другие вещи после того, как страница вспышки будет стерта, поэтому она не будет пытаться написать в недавно стертую вспышку в пределах 2 тактовых циклов после завершения стирания.

Я заметил, что немного чинглиша о том, что сброс захвата таймера отличается, но я не думаю, что ядро ​​загрузчика использует это.

Я думаю, что есть также миграционный документ (не могу найти его сейчас) от STM32 до GD32, но, похоже, у него не было всех изменений в нем :-(

Пеппев
Солнце 06 сентября 2015 г., 7:44
Я связываюсь с поставщиком китайского, скоро у нас появится доска на Aliexpress : D

Rogerclark
Солнце 06 сентября 2015 г., 7:53 утра
ХОРОШО.

Это облегчит ситуацию, чем использование Taobao и yoybuy, что вызвало у меня много проблем, и в итоге я получил 2 х столько досок, сколько я действительно хотел ;-)

Пеппев
Солнце 06 сентября 2015 г. 8:00 утра
Rogerclark написал:ХОРОШО.

Это облегчит ситуацию, чем использование Taobao и yoybuy, что вызвало у меня много проблем, и в итоге я получил 2 х столько досок, сколько я действительно хотел ;-)

Пеппев
Солнце 06 сентября 2015 г. 8:10
Хорошо, у нас есть доска.

http: // www.aliexpress.com/item/compatib ... 5,201409_3

Rogerclark
Солнце 06 сентября 2015 г. 9:34 утра
5 долларов.50 - разумная цена, включая доставку.

Доски около 2 долларов.50 на Taobao, но когда вы добавляете доставку обработки, я думаю, что цена составляет не менее 5 долларов и, вероятно, гораздо больше.

Продавец может получить больше продаж, если они поместят «для Arduino» в своих данных, а также они могут ссылаться на мое репо, как я знаю, GD32F103 как вариант.

Примечание. Загрузчик и USB не будут работать на этой плате, если вы не припаствуете 1.Резистор 5K между PA12 и VDD, так как в дизайне аппаратного обеспечения есть ошибка (I.e Резистор отсутствует в дизайне)

Martinayotte
Солнце 06 сентября 2015 г. 15:51
Пеппев написал:Хорошо, у нас есть доска.

http: // www.aliexpress.com/item/compatib ... 5,201409_3

Пеппев
Солнце 06, 2015, 16:23
http: // www.aliexpress.com/item/compatib ... 5,201409_3

Я думаю, что продавец обновление с описанием.

Стевех
Солнце 06 сентября 2015 г., 21:05
еще один с документами и настоящим разъемом JTAG
https: // www.OpenImpulse.com/blog/produce ... кора-м3/

Rogerclark
Солнце 06 сентября 2015 г., 21:26
@stevech

Правление, с которым вы связаны, является STM32, и это ужасная доска. У меня есть один, и это практически бесполезно, я не уверен, почему, но, похоже, у него возникают проблемы, я думаю, что это проблема оборудования осциллятора.

ST7735 LCDS?