STM32CubeIDE (вопросы и ответы)

В 7хх дма устроен немного не так.
Впрочем, я не навязываюсь.
Если найду , выложу ссылку на старый форум где это подробно обсуждалось.

Да я как бы тоже не утверждаю что сильно прав.
Но должно же быть какое то описание зачем другие таймеры привязываются к dma и как это все работает.

О, я вижу dma1 но к сожалению мой уровень знаний слаб и чего либо конструктивного сейчас выдать не смогу…,

И я тоже хочу это понять, поэтому слежу за Вашим обсуждением.

На след неделе постараюсь взять себя с руки и настроить через Калокуб, если взлетит, значит косяк именно в настройках через cmsis.

Удобная вещь, для начала познания stm32.

Две сильно полезные картинки, обьясняющие какой ДМА чем управляет - это Figure 1 на стр 36 и Figure 23 на стр 168

Из них следует, что ДМА1 и ДМА2 сильно не равнозначны. В частности к шине AHB (портам ввода вывода) имеет доступ только ДМА2. Это я прошел на собственной шкуре.
Фигачить по ДМА что-то в пины можно только через Таймер1

Что касается регистров таймеров - наверно я ошибаюсь.

Посмотрел картинки, да, разную типа периферию управляет, но это не отменяет вопроса что описывают таблички, в которых есть вся периферия, управляемая dma :thinking:

прочитайте заголовок и потом найдите в даташите, что такое DMA request

И?
Не понимаю, ну запросы dma, дальше что?
Разьясните если знаете.

я уже обьяснял

это означает что сигналом запуска ДМА передачи является совпадение по каналу TIM2_CH3

Request - это запрос к шине ДМА на передачу данных. При этом запрос, исходящий от TIM2_CH3, может запускать передачу данных, никак не связанных с этим таймером.

Смотрите что получается, Tim досчитал до перезагрузки регистра переполнения, пнул dma, который положил в ccr2 новое значение счётчика pwm.
Так?
Ну допустим, сути то от этого не меняется, ну наоборот пинаются, но pwm то должен работать не на Tim1 как вы утверждаете :slight_smile:

что вам ответить?
Я дважды писал, что это мое предположение, которое нужно проверять - в 367 и в 390

Как я понимаю любой таймер который может по событию Timer_UP запустить DMA можно использовать?

для чего использовать?

Спорно все, буду тестировать…

Для генерации ШИМ. DMA по каждому пинку шлёт из памяти в регистр таймера значение текущего ШИМ. К регистрам ног DMA обращаться не надо, ногами сам таймер управляет.

не все
Большая часть картины ясна :slight_smile:
Вопрос только в одном - может ли ДМА1 писать регистры таймера2 :slight_smile:

Вы утверждаете что да, я с утра говорил что нет :slight_smile:
Скорее всего я ошибся, но это еще надо проверить :slight_smile:

А зачем другой? Ты же свой родной таймер должен обслуживать. Кончился у него счётчик, апнулся таймер, по команде АП DMA кормит следующим значением.