STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
Отличаются. Во всех трёх разное количество букв.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: STM32 новичку в ARM что к чему
SWCLK на плате и в отладчике куда притянут?kvn234 писал(а):не получалось пока не очистил nBOOT_SEL
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: STM32 новичку в ARM что к чему
Прошивка STM32G030 по UART.
UART PA2-PA3,
BOOT0 PA14 +3.3.v
UART PA2-PA3,
BOOT0 PA14 +3.3.v
Re: STM32 новичку в ARM что к чему
RM0454 от STM с вашим утверждением не согласна. По её мнению, значение бита nBOOT_SEL не_влияет на источник загрузки. Кто врёт?kvn234 писал(а):загрузчик может быть больше недоступен через вывод BOOT0 (или кнопку BOOT). В таких случаях бит nBOOT_SEL в байтах пользовательских опций должен быть очищен (установлен в 0) с помощью программатора SWD
- Вложения
-
- Screenshot_10.jpg
- (139.78 КБ) 59 скачиваний
Re: STM32 новичку в ARM что к чему
Ладно, гадать никто не хочет, тема для новичков все-таки, потому ловите правильный ответ )
Из тех предложенных вариантов NOP
обычным NOP является только третий, а первые два gcc 13.3 трактует как:
Т.е. это NOP плюс memory barrier на уровне компилятора, который предварительно может сохранять данные из регистров в память и потом их перечитывать. И это не только NOP касается, какая-нибудь "mov r5,r5" ведет себя точно так же:
Довольно странно, вероятно это даже баг )
Из тех предложенных вариантов NOP
Спойлер
Код: Выделить всё
asm volatile ("nop");
asm volatile(".rept 1\n"
"nop\n"
".endr\n");
asm volatile(".rept %c0\n"
"nop\n"
".endr\n" :: "I"(1));Код: Выделить всё
asm volatile("nop" ::: "memory")Код: Выделить всё
asm volatile ("mov r5,r5"); // есть memory barrier
asm volatile ("mov r5,r5" :::); // нет memory barrier
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Adrift, егодня приехали несколько модулей STM32F4xx/G4xx и один H5xx. Вышло именно так, как писали: STM32 ST-LINK Utility их не видит. С STM32CubeProgrammer все ОК. Спасибо. Сохраняюю инфо на будущее
.
Re: STM32 новичку в ARM что к чему
Обновился gcc до 14.2, думал наконец-то можно будет писать что-то типа:
Однако оказалось, что для ARM std::format() пока не constexpr, видимо newlib отстает. Однако такое вполне себе работает:
Код: Выделить всё
static_assert(sizeof(int) == 4, std::format("Expected 4, got {}", sizeof(int)));Спойлер
Код: Выделить всё
template<typename T, uint32_t N>
class StaticString
{
public:
consteval StaticString(const T(&str)[N])
{
std::copy_n(str, N, arr_);
}
template <uint32_t N1, uint32_t N2> requires (N1 + N2 - 1 == N)
consteval StaticString(const StaticString<T, N1>& s1, const StaticString<T, N2>& s2)
{
std::copy_n(s1.data(), N1, arr_);
std::copy_n(s2.data(), N2, arr_ + N1 - 1);
}
constexpr auto data() const { return arr_; }
consteval operator T const* () const { return arr_; }
static consteval uint32_t size() { return N - 1; }
T arr_[N];
};
template <typename T, uint32_t N1, uint32_t N2>
consteval auto operator+(const StaticString<T, N1>& s1, const StaticString<T, N2>& s2)
{
return StaticString<T, N1 + N2 - 1>(s1, s2);
}
template <typename T, uint32_t N1, uint32_t N2>
consteval auto operator+(const StaticString<T, N1>& s1, const T(&s2)[N2])
{
return StaticString<T, N1 + N2 - 1>(s1, StaticString<T, N2>(s2));
}
template<StaticString Str>
consteval auto operator"" _ss() { return Str; }
static_assert(false, "Hello "_ss + "World!");Re: STM32 новичку в ARM что к чему
В общем если что-то еще не поддерживает стандартная библиотека это всегда можно написать самому )
Выдает: static assertion failed: Hello, ...A..., 1000001, -123, 0x00ABCD
Проблемы возникли с float и указателями, то и другое требует reinterpret_cast который на стадии компиляции не работает.
Код: Выделить всё
static_assert(false, ctformat("{}, {.^7}, {b}, {}, {#08x}", "Hello", 'A', 'A', -123, 0xABCD));Проблемы возникли с float и указателями, то и другое требует reinterpret_cast который на стадии компиляции не работает.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
STM32 не иметь высокий тактовый jitter? (в частности: STM32F103C8T6). Вижу на нескольких конструкциях (в частности: для частотомера), где время (по таймеру) напрямую зависит от Fclock. Даже без реализации кода (пустой цикл), а только PLL (кварц 8 MHz * умножитель) -> МСО, РА8, с точным измерением частота 72 MHz / 2 "мерцает" медленно вверх 10-12 Hz ... , начало, медленно вверх ... , начало ... Иногда есть более высокий переход (напр. -40 Hz). Филтр. конденсаторов много, питание: линейное (7805/5V -> AMS1117/3,3V).
Даже ето из обычного кварца (50/30 ppm?) из модуля Blue Pill, ожидаю только плавного изменения частоты в одну сторону /что и происходит - медленно нагревается/, но эффект выше дополняет влияние из за изменения температуры.
Даже ето из обычного кварца (50/30 ppm?) из модуля Blue Pill, ожидаю только плавного изменения частоты в одну сторону /что и происходит - медленно нагревается/, но эффект выше дополняет влияние из за изменения температуры.
Последний раз редактировалось veso74 Пт дек 27, 2024 10:50:29, всего редактировалось 2 раза.
Re: STM32 новичку в ARM что к чему
[uquote="veso74",url="/forum/viewtopic.php?p=4664890#p4664890"]Даже без реализации кода (пустой цикл), а только PLL (кварц 8 MHz * умножитель) -> МСО, РА8, с точным измерением частота 72 MHz / 2 "мерцает" медленно вверх 10-12 Hz ...[/uquote]
Мк меряет частоту с собственного выхода MCO, или другого мк?
Мк меряет частоту с собственного выхода MCO, или другого мк?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Нет, измеряю частоту другим точным внешним частотомером (на TCXO), разрешение 1 Hz.
Re: STM32 новичку в ARM что к чему
У меня точного частотомера нет, но очевидно, что у PLL есть свои недостатки. А без PLL, только кварц, проверяли?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Вот и к чему приведут испытания: первый подозреваемый - PLL. (Но мне нужна высокая частота клока (72 Hz)
. А кварц на модуле всего 8 MHz).
---
Для эксперимента: на 8 MHz без PLL - стабильно.
---
Да. У других коллег те же вопросы:
STM32 HSE oscillator stability problem
GPS module measurements
---
STM32F103C8T6: Независимо от автора по первой ссылке, измерил период повторения и он составляет напр. ~55 секунд. С ужасом обнаружил, что данные совпадают!
---
С STM32F411CEU6 (HSE 25 MHz -> 100 MHz) заметно хорошо
- показания частотомера не меняются. Eсть положительное направление
.
С STM32F401CCU6 (84 MHz) также заметно хорошо
---
Для эксперимента: на 8 MHz без PLL - стабильно.
---
Да. У других коллег те же вопросы:
STM32 HSE oscillator stability problem
GPS module measurements
---
STM32F103C8T6: Независимо от автора по первой ссылке, измерил период повторения и он составляет напр. ~55 секунд. С ужасом обнаружил, что данные совпадают!
---
С STM32F411CEU6 (HSE 25 MHz -> 100 MHz) заметно хорошо
С STM32F401CCU6 (84 MHz) также заметно хорошо
Последний раз редактировалось veso74 Пт дек 27, 2024 21:59:01, всего редактировалось 2 раза.
Re: STM32 новичку в ARM что к чему
[uquote="veso74",url="/forum/viewtopic.php?p=4664890#p4664890"]МСО, РА8, с точным измерением частота 72 MHz / 2 "мерцает" медленно вверх 10-12 Hz ... , начало, медленно вверх ... , начало ...[/uquote]Вряд-ли это джиттер PLL. Он очень быстрый.
Возможно здесь видите наложение частот джиттера PLL на частоту измерения/отображения частотомера. У другого МК джиттер немного другой, и там другое наложение частот. Менее заметное.
Проверить можно, запрограммировав тот же самый PLL с немного другими коэффициентами (другие предделитель, множитель). Может даже при той же результирующей частоте джиттер уже изменится.
PS: "Наложение частот" - это тот же эффект, когда в кино видите, что колёса едущего авто вращаются вроде как в обратную сторону. Так же и у вас на частотомере, возможно.
Возможно здесь видите наложение частот джиттера PLL на частоту измерения/отображения частотомера. У другого МК джиттер немного другой, и там другое наложение частот. Менее заметное.
Проверить можно, запрограммировав тот же самый PLL с немного другими коэффициентами (другие предделитель, множитель). Может даже при той же результирующей частоте джиттер уже изменится.
PS: "Наложение частот" - это тот же эффект, когда в кино видите, что колёса едущего авто вращаются вроде как в обратную сторону. Так же и у вас на частотомере, возможно.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
"Наложение частот" на STM32F411 и на STM32F401 нет. Ничего, что в кино (прогр. кода) показываем один и тот же фильм
(измерение другим лабораторным частотомером по MCO и использование текущий МК STM32F для самодельного частотомера).
Пока отнесу эффект/дефект к модулю F103. Xотел бы протестировать еще МК F103 (текущий: клон, подделка?). Мысленно не хочу, чтобы это есть на всех F103 ...
Пока отнесу эффект/дефект к модулю F103. Xотел бы протестировать еще МК F103 (текущий: клон, подделка?). Мысленно не хочу, чтобы это есть на всех F103 ...
Re: STM32 новичку в ARM что к чему
[uquote="veso74",url="/forum/viewtopic.php?p=4665680#p4665680"]"Наложение частот" на STM32F411 и на STM32F401 нет.[/uquote]На чём основано это утверждение?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Пишу программный код частотомера на STM32. Тесты, а не готовое устройство. Программный код перенос с одного МК на другой, со встроенным кварцевым резонатором модулей. (Мне понятно, что это где-то 30..50 ppm и для частотомера нужен другой генератор. Но изменение температуры при включении должно происходит в одну сторону).
А в китайские F103 вместе с изменением по температуры происходят изменения "по цикламм". Из кода частотомера я упростил до "программный код для выход PLL на MCO", который наблюдаю с помощью лабораторного измерителя частоты. Зависимость такая же. С F103 PLL - около 55 секунд меняется выходная частота, скачок, и все так же, как и в начале, потом еще одно изменение через 55 секунд ...
На китайские F401, F411 "скачки" на MCO нет. Только изменение с температура в одной стране. А и частотомер для которого пишу программный код на F401, F411 показывает стабильность до единиц герц на тестовом входе 125000000 Hz.
Ето не утверждение, ето мое наблюдение, и спрашиваю, сталкивались ли с этим другие. А и (поиск: jitter PLL STM32) нашело писание таких же проблем в интернете, ссылки выше. (частично пользуюсь переводчиком БГ->РУ)
Фото с сайта для примера. Наблюдаю то же самое. Каждые ~55 секунд, так же, как на картинке ниже другого автора:

---
И на китайские STM32F031F6P6 все ОК. Ситуация хорошая, буду считать, что только с первыми типами бывает.
.
А в китайские F103 вместе с изменением по температуры происходят изменения "по цикламм". Из кода частотомера я упростил до "программный код для выход PLL на MCO", который наблюдаю с помощью лабораторного измерителя частоты. Зависимость такая же. С F103 PLL - около 55 секунд меняется выходная частота, скачок, и все так же, как и в начале, потом еще одно изменение через 55 секунд ...
На китайские F401, F411 "скачки" на MCO нет. Только изменение с температура в одной стране. А и частотомер для которого пишу программный код на F401, F411 показывает стабильность до единиц герц на тестовом входе 125000000 Hz.
Ето не утверждение, ето мое наблюдение, и спрашиваю, сталкивались ли с этим другие. А и (поиск: jitter PLL STM32) нашело писание таких же проблем в интернете, ссылки выше. (частично пользуюсь переводчиком БГ->РУ)
Фото с сайта для примера. Наблюдаю то же самое. Каждые ~55 секунд, так же, как на картинке ниже другого автора:
---
И на китайские STM32F031F6P6 все ОК. Ситуация хорошая, буду считать, что только с первыми типами бывает.
Re: STM32 новичку в ARM что к чему
Искать среди китайских F103 оригинальный чип от STM сродни поиску девственницы в борделе, посему не ищите логику в работе там, где её изначально быть не может.veso74 писал(а):А в китайские F103 вместе с изменением по температуры происходят изменения "по цикламм".
Ну не делают китайСы аналогов этих чипов, довольствуясь браком от STM, поэтому и результаты ожидаемы. Это правильные чипы, хоть и не соответствующие критериям качества STM.veso74 писал(а):На китайские F401, F411 "скачки" на MCO нет
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Tакже попробовал по MCO и с кодом частотомера: GD32F303CCBT не страдает от проблемы PLL-а. Eто радует.