Страница 1 из 1

Цепочка STM32f437->DMA->SPI1->DAC->Аналоговая схема->ADC0; ADC1->SPI5; SPI4->DMA->STM32F437

Добавлено: 11 дек 2017, 13:57
BUTEX
Здравствуйте, уважаемые эмбеддеры!

На МК STM32f437 хочу реализовать следующую схему обработки данных:
1. Создаются данные в виде массива, объемом 2560 Байт (1280 слов для 16-битных ЦАП и АЦП).
2. Далее подключается DMA и передает данные по SPI в ЦАП. Скорость передачи не больше 5 Mbit/s. В результате частота следования импульса, созданного из 1280 отсчётов должна быть 100 Гц.
3. Сигнал с ЦАП проходит через 2 аналоговых тракта, где его встречают 2 последовательных АЦП и тоже 16-битных.
4. Естественно, одновременно с передачей хочу данные принимать от АЦП и записывать результат в массивы для дальнейшей обработки. И делать это через DMA.

Сейчас есть уже первая работающая плата. Там ЦАП висит на SPI1, а 2 АЦП на SPI4 и SPI5. Все 3 SPI обслуживаются одним DMA2:
SPI1_TX: DMA2, Str3, Ch3
SPI4_RX: DMA2, Str0, Ch4
SPI5_RX: DMA2, Str5, Ch7

Можно ли настроить DMA так, чтобы он работал и на передачу по одному каналу и на прием двух каналов или лучше подключить первый DMA или использовать вообще просто прерывания (чего не хотелось бы)?
Пока только проверял без DMA: работает ли вообще аналоговая часть? Работает и неплохо.

Re: Цепочка STM32f437->DMA->SPI1->DAC->Аналоговая схема->ADC0; ADC1->SPI5; SPI4->DMA->STM32F437

Добавлено: 11 дек 2017, 19:20
Qic
.

Re: Цепочка STM32f437->DMA->SPI1->DAC->Аналоговая схема->ADC0; ADC1->SPI5; SPI4->DMA->STM32F437

Добавлено: 14 дек 2017, 18:04
skameykin22
Что же так резко?

Re: Цепочка STM32f437->DMA->SPI1->DAC->Аналоговая схема->ADC0; ADC1->SPI5; SPI4->DMA->STM32F437

Добавлено: 14 дек 2017, 18:48
BUTEX
Вот я и хочу узнать, можно ли одновременно с передачей через DMA, принимать через него же данные. Судя по ответу-вопросу, можно.