STM32. CMSIS. Урок#04: Настройка: ADC + DMA. Прерывания.

  Переглядів 4,107

Олег Волков

Олег Волков

День тому

Привет друзья! Вот уже 2 года, как я изучаю STM32.
Самое время, после опыта работы с библиотекой HAL, когда мы уже более менее ознакомились с периферией микроконтроллера, начать осваивать его на низкоуровневой библиотеке CMSIS.
В пятом уроке мы настроим АЦП микроконтроллера. Подключим несколько каналов. Разберемся с внутренними каналами. Подключим DMA. Закинем полученные данные через DMA в массив.
00:00 Введение
01:58 Reference manual (ADC)
13:53 ADC Registers
29:00 DMA Registers
Материалы из урока: github.com/Solderingironspb/S...
Мои заметки по CMSIS: github.com/Solderingironspb/S...
Группа вконтакте: solderingiron.stm32
Настройки для VisualGDB: solderingiron.stm32?w=...
ЯндексДзен: dzen.ru/id/622208eed2eb4c6d0c...

КОМЕНТАРІ: 29
@ajdarseidzade688
@ajdarseidzade688 Рік тому
Олег, Вы молодец, что несмотря на такое тяжелое время продолжаете делать уроки. Причем достаточно сложные видеоуроки. Всего хорошего.
@user-hk1xl4ee1e
@user-hk1xl4ee1e Рік тому
Олег молодец так держать, спасибо за уроки.
@staszzz5067
@staszzz5067 9 місяців тому
Спасибо
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
все предыдущие ролики изучил, и этот тоже. жду продолжения)
@SevenNightdreemVeryPavlovny
@SevenNightdreemVeryPavlovny Рік тому
Спасибо за видео, левое и правое выравнивание используется при работе двух ацп на один общий массив, в каждую 32 битную пишется один результат слева,другой справа, экономия )
@Solderingironspb
@Solderingironspb Рік тому
Спасибо)
@masterkit9517
@masterkit9517 Рік тому
Супер!
@hutoryanin
@hutoryanin Рік тому
Здравствуй, благодарю за интересный подробный рассказ. *Л. а. й. к.* и *Р. е. с. п. е. к. т.*
@serggorod1423
@serggorod1423 Рік тому
Такие перерывы, что забыл что в предыдущем!
@Solderingironspb
@Solderingironspb Рік тому
13 дней. Серьезно?!)
@serggorod1423
@serggorod1423 Рік тому
@@Solderingironspb мне преподаватель английского говорила"Запомни, меньше одного раза в неделю предмета.... Ничего не бывает" очень заслуженный педагог... в образовании точно понимала больше нас!
@Solderingironspb
@Solderingironspb Рік тому
@@serggorod1423 Так Вам ничего не мешает открыть рефмануал и начать изучать темы самостоятельно) Привыкли, что все разжуют, а самим ничего не думать.
@user-yg4mu7rm7k
@user-yg4mu7rm7k Рік тому
Когда ждать продолжения?)
@Solderingironspb
@Solderingironspb Рік тому
Надеюсь, что скоро)
@alexfox8781
@alexfox8781 Рік тому
Здравствуйте, спасибо за уроки. Скажите, а будет ли урок по i2c?
@Solderingironspb
@Solderingironspb Рік тому
Добрый день) будет. По плану uart, i2c, spi, crc
@alexfox8781
@alexfox8781 Рік тому
Понял, спасибо. Скажите, а можно узнать схему проводков, который у вас установлены в st-link до микроконтроллера. Ведь я так понимаю разъем изначально jtag. Я немного понять не могу в чем ращница и как работает sw или jtag.
@Solderingironspb
@Solderingironspb Рік тому
github.com/Solderingironspb/Lessons-Stm32/blob/Lesson_0/Lesson_0/README.md
@Anchor4x4
@Anchor4x4 Рік тому
Олег добрый день. Спасибо за уроки. Скажите, а если происходит преобразование нескольких регулярных каналов, то прерывание DMA по полной передаче, будет срабатывать после завершения преобразования каждого канала или после того как завершится преобразование всех каналов?
@Solderingironspb
@Solderingironspb Рік тому
Добрый день) на сколько помню - после преобразования сиквенции. Допустим, если 3 канала, то как собрали сиквенцию, в каком порядке сделали опрос каналов, так и опросятся. А после произойдет прерывание. Я обычно в circular mode настраиваю DMA. Потом настраиваю таймер и уже с нужной мне периодичностью забираю данные.
@Anchor4x4
@Anchor4x4 Рік тому
@@Solderingironspb У меня так же - забираю по таймеру, но хочу переделать, т.е. выключить таймер и забирать по готовности преобразования.
@Solderingironspb
@Solderingironspb Рік тому
В циклическом моде там просто эти преобразования летят с очень большой скоростью. Если прям нужно, то попробуйте прямо в прерывании от dma и забирать. Точку останова поставьте в этом прерывании и при дебаге, когда первый раз туда попадете - будет видно, сразу массив всеми преобразованиями заполнился, или же только одно, а остальное нули.
@user-yg4mu7rm7k
@user-yg4mu7rm7k Рік тому
А зачем выставили семплирование 3х каналов а использовали только 2?
@EasyIz-bx9lv
@EasyIz-bx9lv 7 місяців тому
Как с Вами связаться? Можно в личку
@Solderingironspb
@Solderingironspb 7 місяців тому
solderingiron.notification@yandex.ru
@AlexRootx
@AlexRootx Рік тому
инкремент памяти в ДМА нужен для того, чтобы информацию со 2го канала АЦП ложить в следующую ячейку, а инкремент периферии не нужен, т.к. адрес ДР регистра статичен
@Solderingironspb
@Solderingironspb Рік тому
Ну вот да. Без инкремента памяти у меня 1 канал работал только. Спасибо)
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
а вот допустим нужно чтоб из ацп раскидывало по разным буферам. Там для первого канала АЦП свой буфер, для второго свой и тд. Как это настроить тогда?
@Solderingironspb
@Solderingironspb Рік тому
Там один буфер. Первая ячейка - это ранг 1, вторая ячейка - ранг 2 и т.д.
🐩🐕
00:25
Янчик
Переглядів 2,4 млн
skibidi toilet 73 (part 2)
04:15
DaFuq!?Boom!
Переглядів 17 млн
ВИРУСНЫЕ ВИДЕО / Мусорка 😂
00:34
Светлый Voiceover
Переглядів 8 млн
Кровосток - разговор с легендами / вДудь
2:12:57
Некоторые нюансы совместной работы ADC и DMA
11:28
💪Установи свой Home Assistant за 5 минут! 🏠 Умный Дом это просто!
6:04
STM32. Урок 14. DMA. Direct Memory Access
41:23
NR.electronics
Переглядів 11 тис.
STM32. ADC & DAC
52:30
ФРТК МФТИ
Переглядів 6 тис.
STM32. C чего начать? Быстрый старт после Arduino.
13:08
Олег Волков
Переглядів 75 тис.
Первые продажи Ryzen на Ozon и первый возврат! 😱
13:17
Герасимов Live
Переглядів 21 тис.
It's embarrassing how much I like this thing.
12:19
Linus Tech Tips
Переглядів 878 тис.
Subscribe for more!! #procreate #logoanimation #roblox
0:11
Animations by danny
Переглядів 3,7 млн
Broken Flex Repair #technology #mobilerepair
0:55
ideal institute aligarh
Переглядів 16 млн
МОЙ ПЕРВЫЙ ТЕЛЕФОН - Sony Erricson T280i
18:02
ЗЕ МАККЕРС
Переглядів 67 тис.