Микроконтроллеры семейства STM32

у нас демократическая страна, мнение участников, не опубликовавших ни одного проекта с 2022 года, меня не интересует!
В таймерах, кроме @dimax, из здесь зарегистрировавшихся, вообще видимо никто не шарит

Завязывал бы ты с катушкой!..

Кстати, тебя там в соседней теме ждет

я не понимаю тебя недалекого со своим ИИ
ты что хочешь сказать то?
что STM32F103 не может выполнять код из SRAM?

или что GD321F103 стартует из SRAM после подачи питания?

можешь хоть раз в жизни ответить внятно и прямо, не виляя своей “павлиньей жопой” (это твои слова)

GD321F103 стартует из SRAM после подачи питания?

вот это хочу сказать…но ИИ поправил, актуально только для старых чипов, что тут непонятного

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

Харош паяльниками меряться.
Драйвер прально сказал - ОЗУ = это либо для бута, либо для экономии РЕСУРСА флешки. Очень удобно отлаживать всякие “витиеватые” алгоритмы именно в железе! Нажал RUN и камень моментально стартанул и пошагово можно ходить, если надо.
В любом другом случае запуск из ОЗУ нахер не всрался!!!

у GD32 это называется работа из кэша, достаточно проверить в ините что это включено

// Включить кэш инструкций и предвыборку
FMC_WS |= FMC_WS_PFEN | FMC_WS_ICEN; 

PS у STM32 в старых ядрах его нет, бери сразу камень на 7 ядре и будет тебе щастье

Нам не нужно 900 , два по 200 плюс пиццот!!! )))
ЖжошЪ )))

Есть ли унутре STM что-то мешающее работе (просаживает питание/сигнал до 0.8вольт)?

Отдельно от источника 3В TTP223 вполне работоспособна

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

Я бы пин прозвонил для начала

В оригинальной схеме физическая подтяжка в питанию( к +3В) и звонится на 10кОм (5кОм ставил для идентичности эксперимента) к + 3В. И звонится на 10кОм к земле. :roll_eyes:

Сам чип греется? Какое сопротивление по питанию?

Ничего такого унутре быть не должно. Если вывод настроен как «выход», он либо работает в пуш-пуле либо с открытым стоком. В обоих случаях он либо тянет к vcc/gnd (пуш-пул) или только к gnd (открытый сток). А до 0.8В может только пробитый n-мосфет (нижний) тянуть.

А уже все свои “доработки” удалил что чаго не вышло, но, вряд ли - не те токи.

А он ваще то вход :slightly_smiling_face: Он жеж кнобку обслуживает(а может и даже аналог)

Может быть у этого входа включена подтяжка Pull-Down?

Вот этот факт частично подтверждает предположение о Pull-Down. Только обычно там сопротивление по более 10к (40-60к).

Ну, дык, оно ж без питания звонится :slightly_smiling_face: А учитывая, что при уменьшении подтяжки к плюсу до 5.1кОм всё равно падает на входе до 0.8В, можно долго гадать. А особенно учитывая, что это может быть ваааще любой контроллер. Если уж реально понадобится, влеплю физическую кнопку.

Не знаю куда написать, поэтому решил написать сюда.

Заказал я себе мк STM32F303CBT6 и STM32G431CBT6 (последнее в виде платы от WeAct).
А пока они едут, я решил почитать про них.
Да что там почитать - можно же пока и среду подготовить для них (скачать и установить Repository). Подготовил, создал чистые проекты и сделал проверочный Build (чтобы убедиться что все собирается).

Ну, вроде бы, ничего удивительного для STM32G431CBT6 я не увидел:

А вот у STM32F303CBT6 увидел то, чего ранее не видел:

Как вы все заметили - отличие в наличии отдельного блока RAM - CCLRAM.

Стал читать, что это за CCLRAM такой и узнал, что это очень быстрая RAM, подключенная напрямую к CPU. Её используют для критически важных задач реального времени.
И самое интересное - у STM32G431CBT6 она вроде бы как тоже имеется! :slight_smile:

Чтобы использовать эту память - нужно объявлять переменные с модификатором __attribute__((section(".ccmram"))). Но, правда, у меня почему-то оно так не заработало на STM32F303CBT6… :frowning:

Вот собственно и вопросы насущные:

  1. Как “включить” (и есть ли она на самом деле) в STM32G431CBT6? И почему в IDE указывается RAM как единая (без CCM)?
  2. Как начать использовать её? Потому что как я понимаю - наличие только одного модификатора не достаточно, либо я что-то делаю неправильно.
  3. А если её отдельно не “включать” в STM32G431CBT6, то как все 32кб ОЗУ использовать? И не приведет ли это к сбоям в работе (обращение к несуществующему участку памяти)?

А зачем? Быстродействия не хватает?

ЗЫ. Сам не включал, не представляю кому это понадобиться может. Какая нибудь числодробилка при шифровании…
ЗЗЫ. HAL это конечно хорошо, но к сожалению и там бывают ошибки + не весь функционал = приходиться в любом случае изучать datasheet и писать/дописывать в регистрах → извечный спор на некоторых сайтах: зачем изучать HAL+CMSIS если все равно придется учить и писать в CMSIS…

из любопытного:
в H743 использую отдельно RAM_D2 в качестве экранного буфера.
был сильно удивлен, что быстродействие сильно меньше чем основная RAM_D1

Для обработки в реальном времени.

Пусть будет с переизбытком, я только в начале пути. ))

Не понял. Причем тут HAL?