STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: STM32 новичку в ARM что к чему

Сообщение smacorp »

Отличаются. Во всех трёх разное количество букв.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: STM32 новичку в ARM что к чему

Сообщение tonyk »

kvn234 писал(а):не получалось пока не очистил nBOOT_SEL
SWCLK на плате и в отладчике куда притянут?
kvn234
Потрогал лапой паяльник
Сообщения: 323
Зарегистрирован: Вс апр 17, 2011 09:51:26
Откуда: Тула

Re: STM32 новичку в ARM что к чему

Сообщение kvn234 »

Прошивка STM32G030 по UART.

UART PA2-PA3,
BOOT0 PA14 +3.3.v
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: STM32 новичку в ARM что к чему

Сообщение tonyk »

kvn234 писал(а):загрузчик может быть больше недоступен через вывод BOOT0 (или кнопку BOOT). В таких случаях бит nBOOT_SEL в байтах пользовательских опций должен быть очищен (установлен в 0) с помощью программатора SWD
RM0454 от STM с вашим утверждением не согласна. По её мнению, значение бита nBOOT_SEL не_влияет на источник загрузки. Кто врёт?
Вложения
Screenshot_10.jpg
(139.78 КБ) 60 скачиваний
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: STM32 новичку в ARM что к чему

Сообщение Adrift »

Ладно, гадать никто не хочет, тема для новичков все-таки, потому ловите правильный ответ )
Из тех предложенных вариантов NOP
Спойлер

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

asm volatile ("nop");

asm volatile(".rept 1\n"
             "nop\n"
             ".endr\n");

asm volatile(".rept %c0\n"
             "nop\n"
             ".endr\n" :: "I"(1));
обычным NOP является только третий, а первые два gcc 13.3 трактует как:

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

asm volatile("nop" ::: "memory")
Т.е. это NOP плюс memory barrier на уровне компилятора, который предварительно может сохранять данные из регистров в память и потом их перечитывать. И это не только NOP касается, какая-нибудь "mov r5,r5" ведет себя точно так же:

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

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 что к чему

Сообщение veso74 »

Adrift, егодня приехали несколько модулей STM32F4xx/G4xx и один H5xx. Вышло именно так, как писали: STM32 ST-LINK Utility их не видит. С STM32CubeProgrammer все ОК. Спасибо. Сохраняюю инфо на будущее :).
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: STM32 новичку в ARM что к чему

Сообщение Adrift »

Обновился gcc до 14.2, думал наконец-то можно будет писать что-то типа:

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

static_assert(sizeof(int) == 4, std::format("Expected 4, got {}", sizeof(int)));
Однако оказалось, что для ARM std::format() пока не constexpr, видимо newlib отстает. Однако такое вполне себе работает:
Спойлер

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

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!");
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: STM32 новичку в ARM что к чему

Сообщение Adrift »

В общем если что-то еще не поддерживает стандартная библиотека это всегда можно написать самому )

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

static_assert(false, ctformat("{}, {.^7}, {b}, {}, {#08x}", "Hello", 'A', 'A', -123, 0xABCD));
Выдает: static assertion failed: Hello, ...A..., 1000001, -123, 0x00ABCD

Проблемы возникли с float и указателями, то и другое требует reinterpret_cast который на стадии компиляции не работает.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Adrift, как раз для новичков инфа :)
Есть же тема подходящая для таких вопросов.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

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, ожидаю только плавного изменения частоты в одну сторону /что и происходит - медленно нагревается/, но эффект выше дополняет влияние из за изменения температуры.
Последний раз редактировалось veso74 Пт дек 27, 2024 10:50:29, всего редактировалось 2 раза.
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: STM32 новичку в ARM что к чему

Сообщение Adrift »

[uquote="veso74",url="/forum/viewtopic.php?p=4664890#p4664890"]Даже без реализации кода (пустой цикл), а только PLL (кварц 8 MHz * умножитель) -> МСО, РА8, с точным измерением частота 72 MHz / 2 "мерцает" медленно вверх 10-12 Hz ...[/uquote]
Мк меряет частоту с собственного выхода MCO, или другого мк?
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

Нет, измеряю частоту другим точным внешним частотомером (на TCXO), разрешение 1 Hz.
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: STM32 новичку в ARM что к чему

Сообщение Adrift »

У меня точного частотомера нет, но очевидно, что у PLL есть свои недостатки. А без PLL, только кварц, проверяли?
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

Вот и к чему приведут испытания: первый подозреваемый - PLL. (Но мне нужна высокая частота клока (72 Hz) :). А кварц на модуле всего 8 MHz).
---
Для эксперимента: на 8 MHz без PLL - стабильно.
---
Да. У других коллег те же вопросы:
STM32 HSE oscillator stability problem
GPS module measurements
---
STM32F103C8T6: Независимо от автора по первой ссылке, измерил период повторения и он составляет напр. ~55 секунд. С ужасом обнаружил, что данные совпадают! :facepalm:
---
С STM32F411CEU6 (HSE 25 MHz -> 100 MHz) заметно хорошо :) - показания частотомера не меняются. Eсть положительное направление :music: .
С STM32F401CCU6 (84 MHz) также заметно хорошо :tea:
Последний раз редактировалось veso74 Пт дек 27, 2024 21:59:01, всего редактировалось 2 раза.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: STM32 новичку в ARM что к чему

Сообщение jcxz »

[uquote="veso74",url="/forum/viewtopic.php?p=4664890#p4664890"]МСО, РА8, с точным измерением частота 72 MHz / 2 "мерцает" медленно вверх 10-12 Hz ... , начало, медленно вверх ... , начало ...[/uquote]Вряд-ли это джиттер PLL. Он очень быстрый.
Возможно здесь видите наложение частот джиттера PLL на частоту измерения/отображения частотомера. У другого МК джиттер немного другой, и там другое наложение частот. Менее заметное.
Проверить можно, запрограммировав тот же самый PLL с немного другими коэффициентами (другие предделитель, множитель). Может даже при той же результирующей частоте джиттер уже изменится.

PS: "Наложение частот" - это тот же эффект, когда в кино видите, что колёса едущего авто вращаются вроде как в обратную сторону. Так же и у вас на частотомере, возможно.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

"Наложение частот" на STM32F411 и на STM32F401 нет. Ничего, что в кино (прогр. кода) показываем один и тот же фильм :) (измерение другим лабораторным частотомером по MCO и использование текущий МК STM32F для самодельного частотомера).

Пока отнесу эффект/дефект к модулю F103. Xотел бы протестировать еще МК F103 (текущий: клон, подделка?). Мысленно не хочу, чтобы это есть на всех F103 ...
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: STM32 новичку в ARM что к чему

Сообщение jcxz »

[uquote="veso74",url="/forum/viewtopic.php?p=4665680#p4665680"]"Наложение частот" на STM32F411 и на STM32F401 нет.[/uquote]На чём основано это утверждение?
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

Пишу программный код частотомера на STM32. Тесты, а не готовое устройство. Программный код перенос с одного МК на другой, со встроенным кварцевым резонатором модулей. (Мне понятно, что это где-то 30..50 ppm и для частотомера нужен другой генератор. Но изменение температуры при включении должно происходит в одну сторону).

А в китайские F103 вместе с изменением по температуры происходят изменения "по цикламм". Из кода частотомера я упростил до "программный код для выход PLL на MCO", который наблюдаю с помощью лабораторного измерителя частоты. Зависимость такая же. С F103 PLL - около 55 секунд меняется выходная частота, скачок, и все так же, как и в начале, потом еще одно изменение через 55 секунд ...

На китайские F401, F411 "скачки" на MCO нет. Только изменение с температура в одной стране. А и частотомер для которого пишу программный код на F401, F411 показывает стабильность до единиц герц на тестовом входе 125000000 Hz.

Ето не утверждение, ето мое наблюдение, и спрашиваю, сталкивались ли с этим другие. А и (поиск: jitter PLL STM32) нашело писание таких же проблем в интернете, ссылки выше. (частично пользуюсь переводчиком БГ->РУ)

Фото с сайта для примера. Наблюдаю то же самое. Каждые ~55 секунд, так же, как на картинке ниже другого автора:

Изображение
---
И на китайские STM32F031F6P6 все ОК. Ситуация хорошая, буду считать, что только с первыми типами бывает. :music: .
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: STM32 новичку в ARM что к чему

Сообщение tonyk »

veso74 писал(а):А в китайские F103 вместе с изменением по температуры происходят изменения "по цикламм".
Искать среди китайских F103 оригинальный чип от STM сродни поиску девственницы в борделе, посему не ищите логику в работе там, где её изначально быть не может.
veso74 писал(а):На китайские F401, F411 "скачки" на MCO нет
Ну не делают китайСы аналогов этих чипов, довольствуясь браком от STM, поэтому и результаты ожидаемы. Это правильные чипы, хоть и не соответствующие критериям качества STM.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение veso74 »

Tакже попробовал по MCO и с кодом частотомера: GD32F303CCBT не страдает от проблемы PLL-а. Eто радует.
Ответить

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