Перейти к содержанию

stm32f4 DMA в режиме прерывания. cmsis


Ivan Rusev

Рекомендуемые сообщения

13 часов назад, Ivan Rusev сказал:

Меня интересует какие флаги в преривании устанавливать по ДМА ?Кусок кода можно?

То есть вам совершенно не понятно что это совершенно не адекватный вопрос с технической точки зрения, и это совершенно не адекватное название темы???

Чтобы устанавливать какие либо флаги у вас должна быть цель, но вы эту цель никак не заявили в ваших высказываниях, что заставляет всех думать что цели у вас просто нет!

А пока у вас нет цели вы можете сколько угодно устанавливать все флаги скопом хоть в два ряда!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

17 минут назад, Ivan Rusev сказал:

Ну мне хочется событие по АЦП  прописать в прерывании по ДМА

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

чтение значений АЦП + установка порта в зависимости от этого значения в коде

на использование модуля ДМА чтобы это делалось аппаратными средствами этого модуля ДМА (передача значений АЦП в порт).

Вам надо не флаги в прерывании, а надо разбираться с РЕГИСТРАМИ для управления переферийным модулем ДМА + там есть специальные РЕГИСТРЫ  и в модуле АЦП! которые тоже надо правильно сконфигурировать для того чтобы перенаправить считанные значения АЦП через модуль ДМА, вообще говоря и порт тоже надо соответствующим образом настраивать, а про прерывания от ДМА я даже не буду пытаться здесь описать что там надо. И это наверно самое короткое, простое и поверхностное описание того что надо там понимать и делать!

Как видите это очень нудная, кропотливая и сложная тема и работа. Мне требовались недели чтобы по англоязычной документации написать тестовую программу и додебажить ее до рабочего состояния и убедиться что я все правильно понял и все правильно делаю. Это было уже несколько лет назад и теперь мне снова нужно было бы пару недель что бы вернуться в эту тему! И у меня были ДМА на других процессорах.

Я, извините, не верю что при вашем уровне знаний по теме, вы сможете в этом направлении достичь каких то результатов и не думаю что вам можно помочь по этой теме-задаче.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Спасибо за совет.Если вам неделя то тмне месяца 2- 3 понадобиться.Дма только на сortex m3 немного освоил.АЦП инжектированые кананалы по таймеру запуск  тоже освоил.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

14 часов назад, Ivan Rusev сказал:

Дма только на сortex m3 немного освоил.

как же вы его освоили если вопросы формулируете в совершенном противоречии с принципами работы ДМА. Если есть желание разбираться:

контроллер ДМА это отдельное устройство! Он копирует данные взятые по одному адресу памяти(источник) в другой адрес-назначения (бывает что другого типа памяти - надо понимать что бывают разные типы памяти и не всегда можно создать канал из одной памяти в другую, канал это абстракция это совокупность всех настроек ДМА для того что бы происходило банальное копирование)

соответственно вы должны задать контроллеру ДМА адрес памяти источника, адрес памяти назначения,

один из битов (обычно это флаги прерываний) по которому запускается копирование очередной порции

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

Там море нюансов и не всегда понятно: надо на них обращать внимание или нет - очень сложно понять как выяснить на практике.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

19 часов назад, Ivan Rusev сказал:

if (adc_data>2045)

{
 PORT=1;
}

else

{

 PORT=0;
}

Не знаю, может Вам вместо dma подойдёт режим таймера «Analog watchdog» (раздел 11.3.7 RM). Суть в том, что в регистры ADC_HTR и ADC_LTR записываются значения верхнего и нижнего порога соответственно, потом в рег. ADC_CR1 включается прерывание битом AWDIE и выбирается необходимый режим (по 49 таблице RM). Если значение входного сигнала на выбранном канале выйдет за пределы заданного в рег. ADC_HTR и ADC_LTR диапазона, то сработает прерывание, в обработчике которого можно делать то, что необходимо.

Ссылка на комментарий
Поделиться на другие сайты

06.05.2021 в 12:07, x-revers сказал:

Не знаю, может Вам вместо dma подойдёт режим таймера «Analog watchdog» (раздел 11.3.7 RM). Суть в том, что в регистры ADC_HTR и ADC_LTR записываются значения верхнего и нижнего порога соответственно, потом в рег. ADC_CR1 включается прерывание битом AWDIE и выбирается необходимый режим (по 49 таблице RM). Если значение входного сигнала на выбранном канале выйдет за пределы заданного в рег. ADC_HTR и ADC_LTR диапазона, то сработает прерывание, в обработчике которого можно делать то, что необходимо.

DMA Как же? 

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, x-revers сказал:

В G серии стримов  нет только есть каналы.

спасибо.С праздником вас с 9 мая.!

 

Ссылка на комментарий
Поделиться на другие сайты

21 час назад, Ivan Rusev сказал:

Я извеняюсь.Всё сделано.

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, ruhi сказал:

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

Ни совсем.Задача усложнилась .Нужно два вывода АЦП прописать.Настроить я знаю как .И один управляет одним светодиодом(портом).А другой другим светодиодом(портом). А буфер один.Вот  тогда с АЦП будет всё.На AVR  знаю как это сделать а на STM?

А ШИНа КАН а ЦАП

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, Ivan Rusev сказал:

А буфер один.

Так сделайте два буфера, если проблема в этом. Что вам мешает?

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

@Ivan Rusev Если несколько входов АЦП нужно измерять, что включаете режим сканера. Тогда АЦП сам будет по кругу переключать каналы и по ДМА складывать результаты измерений в один буфер друг за другом: 1-2-3-4-5-1-2-3-4-5-1-2-3-4-5...

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, Yurkin2015 сказал:

@Ivan Rusev Если несколько входов АЦП нужно измерять, что включаете режим сканера. Тогда АЦП сам будет по кругу переключать каналы и по ДМА складывать результаты измерений в один буфер друг за другом: 1-2-3-4-5-1-2-3-4-5-1-2-3-4-5...

Но их в прерывании нужно как то прописывать.Это 5 каналов Значить в буфере значений 5 .допустим от 1 до 5.Массив?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...