Схема STM32F103 Minimum System Development Board

Кто любит RISC в жизни, заходим, не стесняемся.
PreezRack
Родился
Сообщения: 7
Зарегистрирован: Вт ноя 22, 2016 08:32:58

Re: Схема STM32F103 Minimum System Development Board

Сообщение PreezRack »

Мурик писал(а):
PreezRack писал(а):как это вывести через ST-link com порт в среде Ардуино, я не знаю
Заменить среду Ардуино на другую поддерживающую отладку не вариант?
Я только месяц с Ардуино ковыряюсь, и ни разу не программист, если wire еще как-то немного понятен, то поставив Coocox и посмотрев кучу окошек, понял, что я это не скоро освою, меня хватило только откомпилить готовый пример :shock:
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

ИМХО EmBitz проще для начала.
Реклама
PreezRack
Родился
Сообщения: 7
Зарегистрирован: Вт ноя 22, 2016 08:32:58

Re: Схема STM32F103 Minimum System Development Board

Сообщение PreezRack »

Reflector писал(а):
PreezRack писал(а):У GD 120мгц штатка, а разогнать можно вроде и до 200. :))
108 MHz у него штатка, не 120 и не 128. До скольки разгоняется не знаю, ST-ый работает на 144.
Все верно, но плата на GD позволяет штатный разгон до 120 Мгц(в среде ардуино), а плата на STM32F103x не позволяет.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
Реклама
Эиком - электронные компоненты и радиодетали
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Схема STM32F103 Minimum System Development Board

Сообщение Reflector »

Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
А ты latency флешу повышаешь? Точно не помню сколько ставил чтоб F103 на 144 MHz работал, наверно 3. У F407 при разгоне до 260 приходится его задирать до 6-ти.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

Не повышал.
Реклама
PreezRack
Родился
Сообщения: 7
Зарегистрирован: Вт ноя 22, 2016 08:32:58

Re: Схема STM32F103 Minimum System Development Board

Сообщение PreezRack »

Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
А в Ардуино как это сделать? Я бы попробовал максималку для GD найти. Всякие CMSIS для меня слишком сложно.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

PreezRack писал(а):Всякие CMSIS для меня слишком сложно.
А как насчет HAL и SPL?

Если разгонять по простому то необходимо в файле system_stm32f10x.c в функции SetSysClockTo72 найти строку

Код: Выделить всё

    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
                            RCC_CFGR_PLLMULL9);
И заменить RCC_CFGR_PLLMULL9 на на другой параметр с нужным коэффициентом умножения. Допустим если нужно умножить частоту на 16 (8*16=128МГц) то необходимо использовать RCC_CFGR_PLLMULL16.

Другой способ разгона (или замедления) "на лету" с применением библиотеки SPL.

Код: Выделить всё

void Overclocking(void) // Разгон микроконтроллера.
{
  RCC_HSICmd(ENABLE); // Включаем внутренний RC генератор.
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); // Выбираем источником такторования внутренний RC генератор.
  RCC_PLLCmd(DISABLE); // Выключаем умножитель.
  RCC_PLLConfig(RCC_PLLSource_HSE, RCC_CFGR_PLLMULL12); // На сколько будем умножать частоту.
  RCC_PLLCmd(ENABLE); // Включаем умножитель.
  while ((RCC->CR & RCC_CR_PLLRDY) == 0);     // Ждем запуска умножителя.
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // Выбираем источником тактирования умножитель.

  SystemCoreClockUpdate(); // Вычисление тактовой частоты ядра.
}
PreezRack
Родился
Сообщения: 7
Зарегистрирован: Вт ноя 22, 2016 08:32:58

Re: Схема STM32F103 Minimum System Development Board

Сообщение PreezRack »

Мурик писал(а):
PreezRack писал(а):Всякие CMSIS для меня слишком сложно.
А как насчет HAL и SPL?

Если разгонять по простому то необходимо в файле system_stm32f10x.c в функции SetSysClockTo72 найти строку

Код: Выделить всё

    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
                            RCC_CFGR_PLLMULL9);
И заменить RCC_CFGR_PLLMULL9 на на другой параметр с нужным коэффициентом умножения. Допустим если нужно умножить частоту на 16 (8*16=128МГц) то необходимо использовать RCC_CFGR_PLLMULL16.

Другой способ разгона (или замедления) "на лету" с применением библиотеки SPL.

Код: Выделить всё

void Overclocking(void) // Разгон микроконтроллера.
{
  RCC_HSICmd(ENABLE); // Включаем внутренний RC генератор.
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); // Выбираем источником такторования внутренний RC генератор.
  RCC_PLLCmd(DISABLE); // Выключаем умножитель.
  RCC_PLLConfig(RCC_PLLSource_HSE, RCC_CFGR_PLLMULL12); // На сколько будем умножать частоту.
  RCC_PLLCmd(ENABLE); // Включаем умножитель.
  while ((RCC->CR & RCC_CR_PLLRDY) == 0);     // Ждем запуска умножителя.
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // Выбираем источником тактирования умножитель.

  SystemCoreClockUpdate(); // Вычисление тактовой частоты ядра.
}
Благодарствую, попробую поковыряться! :))
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Схема STM32F103 Minimum System Development Board

Сообщение dosikus »

Мурик писал(а):Не повышал.
А делать сие обязательно надо...
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Схема STM32F103 Minimum System Development Board

Сообщение Z_h_e »

Мурик писал(а):По даташиту 64, но реально 128 КБ.
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
PreezRack
Родился
Сообщения: 7
Зарегистрирован: Вт ноя 22, 2016 08:32:58

Re: Схема STM32F103 Minimum System Development Board

Сообщение PreezRack »

В общем, открыл board_setup.cpp и обнаружил это -
// Generic GD32 boards seem to have a 12Mhz crystal rather than the 8Mhz common on STM32 boards, hence the PLL multiplier settings are different.
// Additionally the GD32 has a 4 USB PLL divider settings, rather than the 2 settings in the STM32, which allow it to operate on frequencies of 48,72,96 and 120Mhz and still have USB functioning

#ifndef BOARD_RCC_PLLMUL
#if F_CPU==120000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_10
#elif F_CPU==96000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_8
#elif F_CPU==72000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_6


То есть надо менять кварц на 12 мегагерц, но что хорошо в GD32 это то, что при разгоне до 120 мегагерц usb полнофункционален, за счет бОльшего набора делителей.
Я могу добавить строчку?
#ifndef BOARD_RCC_PLLMUL
#if F_CPU==144000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_12
#if F_CPU==120000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_10
#elif F_CPU==96000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_8
#elif F_CPU==72000000
#define BOARD_RCC_PLLMUL RCC_PLLMUL_6

и
rcc_clk_disable(RCC_USB);
#if F_CPU == 144000000
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_3);
#if F_CPU == 120000000
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_2_5);
#elif F_CPU == 96000000
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_2);
MegaEvil
Родился
Сообщения: 2
Зарегистрирован: Пн фев 13, 2012 00:33:10

Re: Схема STM32F103 Minimum System Development Board

Сообщение MegaEvil »

User_AVR писал(а): При этом подозрительно ведёт себя USB-UART на СР2102(а может сама плата?) Flash demonstrator обнаруживает плату после нескольких десятков ресетов.
Спасибо.
У меня такое было. После подтяжки 100к резисторами RX и TX на 3.3В стало определяться с первого раза.
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Re: Схема STM32F103 Minimum System Development Board

Сообщение NiTr0 »

[uquote="Z_h_e",url="/forum/viewtopic.php?p=2926374#p2926374"]
Мурик писал(а):По даташиту 64, но реально 128 КБ.
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".[/uquote]

вас же не удивляет, что в китайских stlink стоят камни, у которых в даташите не заявлена поддержка юсб? :)

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

к слову, платки вполне себе кошерные, как за свои деньги, блоха-LDO не смотря на свои размеры вполне себе ENC28J60 тянет, RTC - так и должен долго инититься, грабля CMSIS (дуплит пока частота стабилизируется а надо это делать уже в процессе исполнения кода). ну это если RTC надо. единственный минус - pull-up резистор жестко затянут на +3.3, а надо навешать его на какую-то лапу МК (можно через ключ можно напрямую), чтобы при ресете МК не передергивать юсб шнурок.

еще бы туда китайцы какую-нить EEPROM припаяли, хоть на 128 байт - вообще цены плате не было бы. а так - приходится из внутренней флэши еепром соображать...
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Схема STM32F103 Minimum System Development Board

Сообщение Z_h_e »

NiTr0 писал(а):вас же не удивляет, что в китайских stlink стоят камни, у которых в даташите не заявлена поддержка юсб?
Свой не разбирал. В инете, схемы которые видел на него, камень stm32f103, в нем есть USB. Опять же можно спросить, а Вас не удивляет что USBASP на Atmegа собран, в которой точно нет USB?

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

Откуда у Вас такая информация по поводу тестов?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

Z_h_e писал(а):В инете, схемы которые видел на него, камень stm32f103, в нем есть USB.
Схемы обычно взяты с оригинального ST-Link, а китайцы ставят 101.
Z_h_e писал(а):Опять же можно спросить, а Вас не удивляет что USBASP на Atmegа собран, в которой точно нет USB?
Сравнение некорректно. Вот если в ATmega8 залить код скомпилированный для ATmega8U2 и на простой меге заработал аппаратный модуль USB, тогда сравнение было бы корректным. :)

В ATmega8 по документации нет USB и его эмулируют программно. В STM32F101 по документации нет USB, но в него заливают код от STM32F103 и все работает в т. ч. USB. :)
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Схема STM32F103 Minimum System Development Board

Сообщение Z_h_e »

Мурик писал(а): тогда сравнение было бы корректным
Если бы NiTr0 указал, что прошивка ST-LINK одна и таже для разных камней и она использует именно аппаратный USB, то я бы само собой не приводил бы таких сравнений.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

Re: Схема STM32F103 Minimum System Development Board

Сообщение Serj_K »

Мурик писал(а):Схемы обычно взяты с оригинального ST-Link, а китайцы ставят 101
И обычно залитая в них штатная прошивка не работает. То есть работа USB в них реализована не как в 103. У меня такой и обновлять прошивку в нём я не рискую.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Схема STM32F103 Minimum System Development Board

Сообщение Мурик »

Serj_K писал(а):И обычно залитая в них штатная прошивка не работает.
Во сколько STM32F101 заливали штатную прошивку? Каков процент неработоспособности прошивки?
Serj_K писал(а):То есть работа USB в них реализована не как в 103.
А как?
Serj_K писал(а):У меня такой и обновлять прошивку в нём я не рискую.
Ни разу не пробовали обновлять прошивку в ST-Link с STM32F101?
Я во многих обновлял и все работают. :)
Varimon
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Вт авг 16, 2016 20:27:29

Re: Схема STM32F103 Minimum System Development Board

Сообщение Varimon »

У кого нибудь есть схема на такую отладочную плату STM32F103RET6? В сети поискал что-то не нашел.
СпойлерИзображение
Изображение
Нашел все таки сам https://github.com/mcauser/BLUE_BUTTON_F103RET6

STM32F103RET6 board подключение к ST LINK v2 по SWD
СпойлерИзображение
Вложения
BLUE_BUTTON_F103RET6-master.zip
(612.15 КБ) 494 скачивания
STM32F103RET6_schematics.pdf
(69.2 КБ) 555 скачиваний
Ответить

Вернуться в «ARM»