Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики

Re: Stm32 с чего начать изучение...

Сообщение linux_rulezz »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797198#p4797198"]Вообще-то, хорошая IDE - это всегда лучше, чем "блокнот".[/uquote]
Мне-то это объяснять не надо, я qt-creator использую.
Но если надо что-то мелкое наколотить, строк до ста, то просто в mcedit пишу код. И мелкие правки делаю там же — в mcedit (особенно если по ssh, когда лень монтировать по sshfs удаленный ресурс и открывать qt-creator'ом).
Windows must die!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

я тут внезапно увидел, что мои сообщения с просьбами о помощи отмечены минусами... оказывается, спрашивать на форуме, по мнению некоторых, надо в какой-то особой форме, чтобы, не дай бог, не оскорбить чувства верующих в vim и консольный gdb...

собственно, эти минусы подтверждают моё же утверждение (так же заминусованное - видимо, правда глаза колет):
ARV писал(а):форум из места, где можно получить помощь, превратился в место, где можно получить ведро помоев на голову
а для других, которые на работе страшно заняты, чтобы отвлекаться на помощь, сообщу, что рабочее время никому не мешает флеймить и флудить в других темах. тут не в занятости дело, как я думаю, а в "принципиальности". то же самой, что заставляет "поучать", как надо испрашивать помощь...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Stm32 с чего начать изучение...

Сообщение Adrift »

Втихаря зарелизили CubeMX2, пока только STM32C5 поддерживает и все более новые серии будут только в нем. HAL заменили на основательно переработанный и более оптимизированный HAL2 который полагается на LL. CMSIS до 6.3 обновили. Выглядит вроде как получше:
СпойлерИзображение
ps. Касательно STM32С5, таки есть там PLL, но ради простоты(у STM32C0 PLL не было), ST старательно об этом умалчивает, только в одном стороннем документе упоминание нашел. PLL представили как PSI генератор, на вход подается частоты кратная 8MHz или 32768, на выходе 120/144/160MHz.
Вложения
Снимок экрана 2026-03-18 185154.png
(205.42 КБ) 393 скачивания
Rapra
Грызет канифоль
Сообщения: 259
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Да нуна! Не прошло и 7 лет! А с момента рождения HAL прошло уже... ээээ... более 10 лет, по-моему.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

если МК ненадежно стартует при подаче питания, порог BOR лучше увеличить или снизить? мне кажется, лучше увеличить, но сторонние мнения расходятся, некоторые рекомендуют вообще отключиь BOR...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
tonyk
Это не хвост, это антенна
Сообщения: 1305
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: Stm32 с чего начать изучение...

Сообщение tonyk »

[uquote="ARV",url="/forum/viewtopic.php?p=4800341#p4800341"]порог BOR лучше увеличить или снизить?[/uquote]
Лучше разобраться с питанием, почему оно не успевает стабилизироваться к моменту старта МК. Или поставить внешний монитор питания с настраиваемой задержкой, чтобы стартовать МК при нормальном питании.
Однозначно ответить на вопрос нельзя. Например, не известно, на какой частоте стартует МК, сколько периферии включается. Ещё пример. У меня в стартапе сначала задаётся максимальная тактовая частота, потом вызывается стандартный код инициализации С и С++, а ХАЛ от СТМ наоборот сначала медленно и печально выполняет инициализацию, а потом только код пользователя настраивает частоту тактирования. Ессно, что потребление МК при работе на 16МГц и 160МГц заметно отличается, поэтому и настройка BOR будет отличаться. Повторюсь, разбирайтесь с питанием МК, оно в вашей схеме не в порядке.
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение veso74 »

В большинстве случаев помогает RC-цепь в NRST: 10k/100nF.
При первой подобной нестабильность установил RC, затем устанавливаю там "по инерции".
С тех пор еффект не повторялось, многих типов STM32, и не только.

Да, еще один эффект был с использованием кварца с низкой активностью. Увеличение времени помогло.
Автоматически (через MX) или вручную.
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
Изображение

Если в CMSIS: сделайте паузу при старта и проанализируйте, запустился ли он.
При желании, если HSE не сработает, можете вернуть управление к HSI.

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

  uint32_t timeout = 1000000;
  while (!(RCC->CR & RCC_CR_HSERDY) && --timeout);
  if (timeout == 0) {
    // error: HSE not start
    return;
  }

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

  timeout = 100000;
  while (!(RCC->CR & RCC_CR_PLLRDY) && --timeout);  // wait for PLL to go active
  if (timeout == 0) {
    // handle PLL stop error
  }
Rapra
Грызет канифоль
Сообщения: 259
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

[uquote="ARV",url="/forum/viewtopic.php?p=4800341#p4800341"]если МК ненадежно стартует при подаче питания, ...[/uquote]
Внешняя цепь сброса, с задержкой NRST на RC-цепи.
А еще лучше посмотреть осциллографом переходные процессы при нарастании питания. Возможно, оно проваливается где-то в середине нарастания.
Принцип работы BOR: если напряжение VDD/VDDA ниже установленного порога BOR, микроконтроллер находится в состоянии reset. Если VDD падает ниже порога BOR, микроконьроллер так же сбрасывается.
Однозначно ответить о выборе порога BOR можно только посмотрев осциллограмму момента подачи напряжения.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

спасибо за советы, но никаких измерений в плате пока сделать невозможно, т.к. доступ к ней сильно затруднен. МК тактируется от встроенного RC, как он там... HSI? цепь сброса как раз 10К-0,1 мкФ, 10 лет работало, теперь начало вот так странно стартовать... но меня эти 10 лет не было, это наследство. пока думаю просто BOR включить, если не включен.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Rapra
Грызет канифоль
Сообщения: 259
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

"Странно" - это как?
Возможно, за 10 лет подсохли конденсаторы в питании и его качество ухудшилось.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

странно - это так, как описал: то стартует, то нет. но если питание после неудачного старта быстро передернуть - стартует почти всегда. вроде говорят, что все эти 10 лет так и запускали станок - передергиванием питания... но это не точно

все электролити в источнике питания поменяли без меня
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Rapra
Грызет канифоль
Сообщения: 259
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Ну, тут без натурных изменений можно сколько угодно гадать. Надо убедиться, что именно микроконтроллер за запускается, а не что-либо на плате или в окружении.
Если на плате стоят какие-либо еще микросхемы, с которыми общается микроконтроллер (например, дисплей), то медленное нарастание питания и разное время готовности к работе может приводить к такому эффекту. Например (из своей практики) - микроконтроллер запускается быстро и начинает передавать команды в дисплей, а дисплей еще не готов их принять из-за того, что у него другие тайминги готовности после подачи питания. И после повторного быстрого передергивания питания дисплей оказывается уже готов к приему команд.
В самом начале эта ошибка могла быть незамеченной, поскольку проходило "на тоненького". А со временем чуть изменились показатели и срабатывать уже перестало. При такой причине стоит в прошивке перед отправкой команд дисплею либо ввести запрос состояния его готовности (если такое предусмотрено), либо ввести дополнительную задержку передачи команд на гарантированное время.

Добавлено after 2 minutes 37 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4800473#p4800473"]все эти 10 лет так и запускали станок - передергиванием питания.[/uquote]
Значит, вероятна типичная ошибка разработчика - на столе у него работало, а на месте - не работает. По вышеописанной проблеме, скорее всего.

Добавлено after 3 minutes 25 seconds:
Если вышеописанное подходит к этому случаю, то возможно может помочь включение BOR с максимально высоким уровнем, с целью замедлить запуск микроконтроллера в процессе нарастания питания.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

Просто в качестве пояснения: это кусок блока управления ЧПУ-станка, никаких там дисплеев нет
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Rapra
Грызет канифоль
Сообщения: 259
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Тут надо действительно смотреть, что происходит на плате. Если проблема имелась все 10 лет, значит, там была ошибка разработчика.
Запуск после быстрого передергивания питания скорее всего связан с неодинаковым временем готовности микроконтроллера и окружения на плате, когда запустившийся микроконтроллер пытается слать команды "в пустоту", в еще не готовые к приему микросхемы окружения.

В общем, на плате смотрим осциллографом нарастание питания и сигнал сброса NRST, а так же смотрим активность микроконтроллера на его выходах.
Ответить

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