Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Вт ноя 22, 2016 13:21:06

Мурик писал(а):
PreezRack писал(а):как это вывести через ST-link com порт в среде Ардуино, я не знаю
Заменить среду Ардуино на другую поддерживающую отладку не вариант?

Я только месяц с Ардуино ковыряюсь, и ни разу не программист, если wire еще как-то немного понятен, то поставив Coocox и посмотрев кучу окошек, понял, что я это не скоро освою, меня хватило только откомпилить готовый пример :shock:

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

Вт ноя 22, 2016 13:23:12

ИМХО EmBitz проще для начала.

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

Вт ноя 22, 2016 13:26:37

Reflector писал(а):
PreezRack писал(а):У GD 120мгц штатка, а разогнать можно вроде и до 200. :))

108 MHz у него штатка, не 120 и не 128. До скольки разгоняется не знаю, ST-ый работает на 144.

Все верно, но плата на GD позволяет штатный разгон до 120 Мгц(в среде ардуино), а плата на STM32F103x не позволяет.

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

Вт ноя 22, 2016 13:35:47

Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.

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

Вт ноя 22, 2016 13:49:34

Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.

А ты latency флешу повышаешь? Точно не помню сколько ставил чтоб F103 на 144 MHz работал, наверно 3. У F407 при разгоне до 260 приходится его задирать до 6-ти.

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

Вт ноя 22, 2016 13:54:32

Не повышал.

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

Вт ноя 22, 2016 14:00:29

Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.

А в Ардуино как это сделать? Я бы попробовал максималку для GD найти. Всякие CMSIS для меня слишком сложно.

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

Вт ноя 22, 2016 14:17:05

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(); // Вычисление тактовой частоты ядра.
}

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

Вт ноя 22, 2016 14:49:08

Мурик писал(а):
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(); // Вычисление тактовой частоты ядра.
}

Благодарствую, попробую поковыряться! :))

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

Вт ноя 22, 2016 15:01:54

Мурик писал(а):Не повышал.

А делать сие обязательно надо...

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

Вт ноя 22, 2016 15:19:36

Мурик писал(а):По даташиту 64, но реально 128 КБ.
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".

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

Чт ноя 24, 2016 11:52:54

В общем, открыл 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);

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

Ср дек 21, 2016 23:31:07

User_AVR писал(а):При этом подозрительно ведёт себя USB-UART на СР2102(а может сама плата?) Flash demonstrator обнаруживает плату после нескольких десятков ресетов.
Спасибо.

У меня такое было. После подтяжки 100к резисторами RX и TX на 3.3В стало определяться с первого раза.

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

Пт июн 09, 2017 23:35:58

Мурик писал(а):По даташиту 64, но реально 128 КБ.
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".


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

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

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

еще бы туда китайцы какую-нить EEPROM припаяли, хоть на 128 байт - вообще цены плате не было бы. а так - приходится из внутренней флэши еепром соображать...

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

Сб июн 10, 2017 07:07:33

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

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

Откуда у Вас такая информация по поводу тестов?

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

Сб июн 10, 2017 08:26:13

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

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

В ATmega8 по документации нет USB и его эмулируют программно. В STM32F101 по документации нет USB, но в него заливают код от STM32F103 и все работает в т. ч. USB. :)

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

Сб июн 10, 2017 11:27:22

Мурик писал(а): тогда сравнение было бы корректным
Если бы NiTr0 указал, что прошивка ST-LINK одна и таже для разных камней и она использует именно аппаратный USB, то я бы само собой не приводил бы таких сравнений.

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

Сб июн 10, 2017 13:30:55

Мурик писал(а):Схемы обычно взяты с оригинального ST-Link, а китайцы ставят 101
И обычно залитая в них штатная прошивка не работает. То есть работа USB в них реализована не как в 103. У меня такой и обновлять прошивку в нём я не рискую.

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

Сб июн 10, 2017 13:42:52

Serj_K писал(а):И обычно залитая в них штатная прошивка не работает.
Во сколько STM32F101 заливали штатную прошивку? Каков процент неработоспособности прошивки?

Serj_K писал(а):То есть работа USB в них реализована не как в 103.
А как?

Serj_K писал(а):У меня такой и обновлять прошивку в нём я не рискую.
Ни разу не пробовали обновлять прошивку в ST-Link с STM32F101?
Я во многих обновлял и все работают. :)

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

Пн мар 05, 2018 15:54:28

У кого нибудь есть схема на такую отладочную плату STM32F103RET6? В сети поискал что-то не нашел.

Нашел все таки сам https://github.com/mcauser/BLUE_BUTTON_F103RET6

STM32F103RET6 board подключение к ST LINK v2 по SWD
Вложения
BLUE_BUTTON_F103RET6-master.zip
(612.15 KiB) Скачиваний: 425
STM32F103RET6_schematics.pdf
(69.2 KiB) Скачиваний: 462
Ответить