Я только месяц с Ардуино ковыряюсь, и ни разу не программист, если wire еще как-то немного понятен, то поставив Coocox и посмотрев кучу окошек, понял, что я это не скоро освою, меня хватило только откомпилить готовый примерМурик писал(а):Заменить среду Ардуино на другую поддерживающую отладку не вариант?PreezRack писал(а):как это вывести через ST-link com порт в среде Ардуино, я не знаю
Схема STM32F103 Minimum System Development Board
Re: Схема STM32F103 Minimum System Development Board
- Реклама
Re: Схема STM32F103 Minimum System Development Board
ИМХО EmBitz проще для начала.
Re: Схема STM32F103 Minimum System Development Board
Все верно, но плата на GD позволяет штатный разгон до 120 Мгц(в среде ардуино), а плата на STM32F103x не позволяет.Reflector писал(а):108 MHz у него штатка, не 120 и не 128. До скольки разгоняется не знаю, ST-ый работает на 144.PreezRack писал(а):У GD 120мгц штатка, а разогнать можно вроде и до 200.
Re: Схема STM32F103 Minimum System Development Board
Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
Re: Схема STM32F103 Minimum System Development Board
А ты latency флешу повышаешь? Точно не помню сколько ставил чтоб F103 на 144 MHz работал, наверно 3. У F407 при разгоне до 260 приходится его задирать до 6-ти.Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
- Реклама
Re: Схема STM32F103 Minimum System Development Board
А в Ардуино как это сделать? Я бы попробовал максималку для GD найти. Всякие CMSIS для меня слишком сложно.Мурик писал(а):Как выполняется разгон в ардуино? Путем управления умножителем у меня получалось разгонять STM32F103 до 140 МГц, точно не помню. Дальше начиналась нестабильная работа с появлением ошибки HardFault.
Re: Схема STM32F103 Minimum System Development Board
А как насчет HAL и SPL?PreezRack писал(а):Всякие CMSIS для меня слишком сложно.
Если разгонять по простому то необходимо в файле system_stm32f10x.c в функции SetSysClockTo72 найти строку
Код: Выделить всё
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
RCC_CFGR_PLLMULL9);Другой способ разгона (или замедления) "на лету" с применением библиотеки 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
Благодарствую, попробую поковыряться!Мурик писал(а):А как насчет HAL и SPL?PreezRack писал(а):Всякие CMSIS для меня слишком сложно.
Если разгонять по простому то необходимо в файле system_stm32f10x.c в функции SetSysClockTo72 найти строкуИ заменить RCC_CFGR_PLLMULL9 на на другой параметр с нужным коэффициентом умножения. Допустим если нужно умножить частоту на 16 (8*16=128МГц) то необходимо использовать RCC_CFGR_PLLMULL16.Код: Выделить всё
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLMULL9);
Другой способ разгона (или замедления) "на лету" с применением библиотеки 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
А делать сие обязательно надо...Мурик писал(а):Не повышал.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Схема STM32F103 Minimum System Development Board
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".Мурик писал(а):По даташиту 64, но реально 128 КБ.
Re: Схема STM32F103 Minimum System Development Board
В общем, открыл 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);
// 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
У меня такое было. После подтяжки 100к резисторами RX и TX на 3.3В стало определяться с первого раза.User_AVR писал(а): При этом подозрительно ведёт себя USB-UART на СР2102(а может сама плата?) Flash demonstrator обнаруживает плату после нескольких десятков ресетов.
Спасибо.
- NiTr0
- Друг Кота
- Сообщения: 3051
- Зарегистрирован: Пт авг 10, 2007 12:49:55
- Откуда: kr.ua
- Контактная информация:
Re: Схема STM32F103 Minimum System Development Board
[uquote="Z_h_e",url="/forum/viewtopic.php?p=2926374#p2926374"]
вас же не удивляет, что в китайских stlink стоят камни, у которых в даташите не заявлена поддержка юсб?
режется все с одного кристалла. а то, что подешевле - тестируется только половина памяти, не тестируется незаявленная периферия (типа помянутого юсб) и т.п.
к слову, платки вполне себе кошерные, как за свои деньги, блоха-LDO не смотря на свои размеры вполне себе ENC28J60 тянет, RTC - так и должен долго инититься, грабля CMSIS (дуплит пока частота стабилизируется а надо это делать уже в процессе исполнения кода). ну это если RTC надо. единственный минус - pull-up резистор жестко затянут на +3.3, а надо навешать его на какую-то лапу МК (можно через ключ можно напрямую), чтобы при ресете МК не передергивать юсб шнурок.
еще бы туда китайцы какую-нить EEPROM припаяли, хоть на 128 байт - вообще цены плате не было бы. а так - приходится из внутренней флэши еепром соображать...
Что это за маркетинг такой.? "Мама,мама! Я кондуктора обманул, за проезд заплатил, а сам не поехал".[/uquote]Мурик писал(а):По даташиту 64, но реально 128 КБ.
вас же не удивляет, что в китайских 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
Свой не разбирал. В инете, схемы которые видел на него, камень stm32f103, в нем есть USB. Опять же можно спросить, а Вас не удивляет что USBASP на Atmegа собран, в которой точно нет USB?NiTr0 писал(а):вас же не удивляет, что в китайских stlink стоят камни, у которых в даташите не заявлена поддержка юсб?
Попробую как-нибудь на досуге, что-нибудь записать в "расширенную" область памяти.
Откуда у Вас такая информация по поводу тестов?
Re: Схема STM32F103 Minimum System Development Board
Схемы обычно взяты с оригинального ST-Link, а китайцы ставят 101.Z_h_e писал(а):В инете, схемы которые видел на него, камень stm32f103, в нем есть USB.
Сравнение некорректно. Вот если в ATmega8 залить код скомпилированный для ATmega8U2 и на простой меге заработал аппаратный модуль USB, тогда сравнение было бы корректным.Z_h_e писал(а):Опять же можно спросить, а Вас не удивляет что USBASP на Atmegа собран, в которой точно нет USB?
В ATmega8 по документации нет USB и его эмулируют программно. В STM32F101 по документации нет USB, но в него заливают код от STM32F103 и все работает в т. ч. USB.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Схема STM32F103 Minimum System Development Board
Если бы NiTr0 указал, что прошивка ST-LINK одна и таже для разных камней и она использует именно аппаратный USB, то я бы само собой не приводил бы таких сравнений.Мурик писал(а): тогда сравнение было бы корректным
Re: Схема STM32F103 Minimum System Development Board
И обычно залитая в них штатная прошивка не работает. То есть работа USB в них реализована не как в 103. У меня такой и обновлять прошивку в нём я не рискую.Мурик писал(а):Схемы обычно взяты с оригинального ST-Link, а китайцы ставят 101
Re: Схема STM32F103 Minimum System Development Board
Во сколько STM32F101 заливали штатную прошивку? Каков процент неработоспособности прошивки?Serj_K писал(а):И обычно залитая в них штатная прошивка не работает.
А как?Serj_K писал(а):То есть работа USB в них реализована не как в 103.
Ни разу не пробовали обновлять прошивку в ST-Link с STM32F101?Serj_K писал(а):У меня такой и обновлять прошивку в нём я не рискую.
Я во многих обновлял и все работают.
Re: Схема STM32F103 Minimum System Development Board
У кого нибудь есть схема на такую отладочную плату STM32F103RET6? В сети поискал что-то не нашел.

Нашел все таки сам https://github.com/mcauser/BLUE_BUTTON_F103RET6
STM32F103RET6 board подключение к ST LINK v2 по SWD
Спойлер


STM32F103RET6 board подключение к ST LINK v2 по SWD
Спойлер

- Вложения
-
- BLUE_BUTTON_F103RET6-master.zip
- (612.15 КБ) 494 скачивания
-
- STM32F103RET6_schematics.pdf
- (69.2 КБ) 555 скачиваний



