работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) для ми

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

durimar_13
Сообщения: 111
Зарегистрирован: 26 фев 2025, 13:06
Предприятие: Radioamateur
Откуда: Свердловская обл.

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение durimar_13 »

durimar_13 писал(а): 23 авг 2026, 08:46
Мерседес писал(а): 23 авг 2026, 05:06 заполнение буфера в этом коде.docx вот это, пояснение от ИИ работы цепочки дескрипторов.
Спасибо, посмотрю.
Моя Алиса Яндексовна тоже неплохие перлы выдала по этому вопросу.
Интересненько!
Таймер то надо надо останавливать, выходит! Ну конечно!
После запускать.
Только это приведет к разрыву длинной выборки, что неприемлемо.
С уважением, Виктор.
RabidRabbit
Сообщения: 259
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение RabidRabbit »

durimar_13 писал(а): 23 авг 2026, 08:55 Таймер то надо надо останавливать, выходит! Ну конечно!
После запускать.
Не читайте утром советских газет, в смысле, бесполезный нейрослоп.

Ещё раз, так как это "двойной кольцевой буфер", не надо останавливать таймер и заниматься прочей ересью. Данные от АЦП всегда пишутся в одну из половин буфера. Вторую половину при это обрабатывает Ваш код. В прерывании от DMA, как я уже говорил, нужно только увеличить на 1 глобальную переменную, сигнализируя обрабатывающему коду о том, что закончена очередная половина буфера.
Если Ваш код не успевает обработать половину буфера до того, как другую половину заполнит АЦП, то первым делом перед обработкой нужно скопировать свежезаполненную половину в сторону и спокойно заняться обработкой.
durimar_13
Сообщения: 111
Зарегистрирован: 26 фев 2025, 13:06
Предприятие: Radioamateur
Откуда: Свердловская обл.

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение durimar_13 »

RabidRabbit писал(а): 24 авг 2026, 12:22 ..не надо останавливать таймер и заниматься прочей ересью...
"Как хорошо быть опытным сталкером." (Сталкер. Тень чернобыля.)
Спасибо, что остановили от необдуманных поступков.
С уважением, Виктор.
Мерседес
Сообщения: 37
Зарегистрирован: 05 авг 2026, 12:53
Предприятие: Каскад

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение Мерседес »

таймер останавливается на этапе отладки, чтобы спокойно оценить скорости. а так, - да, не надо
durimar_13
Сообщения: 111
Зарегистрирован: 26 фев 2025, 13:06
Предприятие: Radioamateur
Откуда: Свердловская обл.

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение durimar_13 »

Приятная новость.
Коллеги из Техподдержки исправили код обработчика прерывания в примере adc_tmr_dma.
Теперь это работает как надо!
Код в репозитории.
С уважением, Виктор.
Мерседес
Сообщения: 37
Зарегистрирован: 05 авг 2026, 12:53
Предприятие: Каскад

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение Мерседес »

durimar_13 писал(а): 25 авг 2026, 22:34 Приятная новость.
Коллеги из Техподдержки исправили код обработчика прерывания в примере adc_tmr_dma.
Теперь это работает как надо!
Код в репозитории.
там что то изменилось? или все так же цепочка дескрипторов?
durimar_13
Сообщения: 111
Зарегистрирован: 26 фев 2025, 13:06
Предприятие: Radioamateur
Откуда: Свердловская обл.

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение durimar_13 »

Мерседес писал(а): 26 авг 2026, 00:37 [там что то изменилось? или все так же цепочка дескрипторов?
Там цепочка дескрипторов. Но работало правильно только при первой итерации.
Теперь при всякой. 128 выборок в примере.
Сообщение для сведения.
С уважением, Виктор.
RabidRabbit
Сообщения: 259
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение RabidRabbit »

От этого данный пример (adc_tmr_dma) не перестаёт быть образцом, как НЕ НАДО делать :)
durimar_13
Сообщения: 111
Зарегистрирован: 26 фев 2025, 13:06
Предприятие: Radioamateur
Откуда: Свердловская обл.

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение durimar_13 »

RabidRabbit писал(а): 26 авг 2026, 09:27 От этого данный пример (adc_tmr_dma) не перестаёт быть образцом, как НЕ НАДО делать :)
Да ладно Вам! Будьте снисходительны! ;)
С уважением, Виктор.
Салим
Сообщения: 18
Зарегистрирован: 04 май 2026, 16:52
Предприятие: Work

Re: работа алгоритма системы сбора данных с АЦП с использованием двойной буферизации и прямого доступа к памяти (DMA) дл

Сообщение Салим »

RabidRabbit писал(а): 26 авг 2026, 09:27 От этого данный пример (adc_tmr_dma) не перестаёт быть образцом, как НЕ НАДО делать :)
Разработчики НИИЭТ обновляют sdk к1921вг1т и последние обновления в основном для проекта adc. А два дня назад изменили еще и файл
system_k1921vg1t.c, в котором откорректировали работу с PLL. После этого перестали работь примеры из sdk. Пришлось вернуться к старой версии. Изменения в system_k1921vg1t.c как-то связано с проектом adc?
Ответить

Вернуться в «32-разрядные микроконтроллеры»