реклама на сайте
подробности

 
 
> STM32F378 атомарная запись в два SPI DAC AD5443, Переформулировал вопрос более внятно....
nanorobot
сообщение Jan 12 2018, 11:07
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Заппрограммирован вывод в интерфейс SPI с помощью DMA от таймера. Глубина буфера два 16 битовых слова. Метод циркулярный. Каждый раз по событию таймера выводится одно 16 битовое слово. Требуется каждый раз по событию таймера выводить ДВА 16 битовых слова, соответственно глубина буфера станет равной 4. Можно ли как то извернуться с использованием например еще одного канала DMA, что бы решить данную задачу не используя прерываний ?

Сообщение отредактировал nanorobot - Jan 12 2018, 20:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Jan 23 2018, 12:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(nanorobot @ Jan 12 2018, 13:07) *
Можно ли как то извернуться с использованием например еще одного канала DMA, что бы решить данную задачу не используя прерываний ?

Можно решить данную задачу вообще не используя DMA и при этом обеспечив синхронность не только передаваемых данных на MOSI, но и сигналов CS обоих SPI.
...заменив STM на МК с более продвинутой периферией. sm.gif
Например: на XMC4xxx (Infineon) можно, предварительно записав данные в FIFO двух SPI-портов, запустить их передачу от двух синхронно работающих таймеров (или даже от одного, выбрав такой таймер, который может триггерить передачу обоих последовательных портов). И сигналы CS будут формироваться аппаратно.
А ещё можно (если позволяет алгоритм работы) смешать оба передаваемых слова черезбитно и выплюнуть их в dual-SPI порт. Тогда нужен всего один SPI-порт.
Так можно сделать на любом МК, имеющем dual-SPI (но не на STM32, где, к сожалению, как всегда всё сильно упрощено). Только потребуется 2 записи в порт.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016