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

 
 
 
Reply to this topicStart new topic
> MSP430 USART + DMA, имеет ли смысл по надежности
k155la3
сообщение Nov 8 2016, 14:21
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Для обеспечения асинхронности передачи по USART
использую DMA (MSP430F5438A). Операционной системы нет.

Какие есть отзывы по этому режиму, если кто использует.
- удобстово работы
- надежность
- отсутствие глюков (в разрезе errata и прочих).
- использование DMA0, DMA1 для USART1, USART2 (т.е. одновременная работа на 2 каналах DMA)

ps-ps-ps
- работа с подключенным отладчиком (MSP430FET-UIF) - есть ли ограничения по конфликтности с DMA


Сообщение отредактировал k155la3 - Nov 8 2016, 14:58
Go to the top of the page
 
+Quote Post
Obam
сообщение Nov 8 2016, 14:31
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 566
Регистрация: 14-11-14
Пользователь №: 83 663



Давно (лет 6 назад) на F47177 DMA с USARTом использовал. Вопросов не было.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 10 2016, 08:18
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Итак, "по одному" в MSP340F5438A все работает так как и ожидалось
DMA0 --> USART_1 (только передача, без приема)
DMA1 --> USART_2 (только передача, без приема)
Прерывания от обоих USART запрещены. Вектор прерывания от DMA - "пустышка" без кода.

Когда я (не столько по наивности, сколько "а вдруг") запускаю их оба (разремливаю не использовавшийся код для второго канала)
то идут глючки по выдаваемой информации (контроль в HEX на терминалка PC).

(?) 1.
-----------
Допустимо ли стартовать более 1 канала DMA одновременно ?
(в том смысле, не будет ли конфликта по доступу к RAM)

(?) 2.
-----------
Требуется ли устаналивать режим Round Robin в настройках DMA
(в данном случае, когда запускаются 2 канала "в параллель")
Когда нужна эта установка ?

(?) 3.
-----------
Есть ли у Ti, или где-либо, пример работы (настройки) для одновременной работы 2 каналов DMA ?
(То, что есть в стандартных примерах - для одного канала)

Сообщение отредактировал k155la3 - Nov 10 2016, 09:13
Go to the top of the page
 
+Quote Post
Obam
сообщение Nov 10 2016, 13:26
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 566
Регистрация: 14-11-14
Пользователь №: 83 663



Допустимо. Но работать будут согласно приоритету. "If two or three triggers happen
simultaneously or are pending, the channel with the highest priority completes its transfer (single, block, or
burst-block transfer) first, then the second priority channel, then the third priority channel. Transfers in
progress are not halted if a higher-priority channel is triggered. The higher-priority channel waits until the
transfer in progress completes before starting."

"Round Robin" нужен чтобы приоритет каналов "менялся" от высшего к низшему "по кругу" с каждым циклом обмена. Вам нужно?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 10 2016, 13:52
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Obam @ Nov 10 2016, 17:26) *
Допустимо. Но работать будут согласно приоритету.
. . . .
"Round Robin" нужен чтобы приоритет каналов "менялся" от высшего к низшему "по кругу" с каждым циклом обмена. Вам нужно?

Спасибо за инф.

Я так понял, что пока не выполнится одна блочная передача, другая не запустится ?

Или надо включать Round Robin. Надо с этим заморачиваться или нет - пока не решил.

Хотелость бы "по максимуму" перебросить операции на периферию.
Пока на эксперименты времени нет. Разрулим на программном уровне, чтобы запуск DMA каналов не перекрывался.

ps - у меня запросы на DMA0 DMA1 шли полностью асинхронно, и гарантированно могли наложится.


Сообщение отредактировал k155la3 - Nov 10 2016, 13:54
Go to the top of the page
 
+Quote Post
Obam
сообщение Nov 10 2016, 14:00
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 566
Регистрация: 14-11-14
Пользователь №: 83 663



"Будет ожидать" и "не запустится", согласитесь, не одно и то же.

Последние два предложения из того, что было зацитировано.

Сообщение отредактировал Obam - Nov 10 2016, 14:02


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 10 2016, 15:36
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Ok.
Спасибо. Будем попробовать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2017 - 17:27
Рейтинг@Mail.ru


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