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

 
 
> DMA msp430f1611, остановка DMA в режиме Single Transfer
ig_z
сообщение Jun 21 2005, 11:24
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Исходные данные - msp430f1611 rev.A

В SLAU049E на рисунке 8−3 "DMA Single Transfer State Diagram"
имеется переход в "Idle" состояние по условию

[ENNMI = 1 AND NMI event] OR [DMALEVEL = 1 AND Trigger = 0]

Т.е. при
DMACTL1_bit.ENNMI = 1 и возникновении NMI прерывания устанавливается DMA0CTL_bit.DMAABORT = 1 и мы должны попасть в "Idle" состояние

В режиме Burst-Block Transfers все так и происходит, но в режиме Single Transfer DMA0CTL_bit.DMAABORT всегда равен 0 и в "Idle" состояние я попасть не могу.

Что это может быть? В разделе "8.2.4 Stopping DMA Transfers" четко написано, что ДМА должно останавливаться и в Single Transfer режиме также. Кто работал с данным режимом, подскажите, может я что то не так понимаю или с проциком что то не так?

Кроме того подозрительной кажется вторая половина условия попадания в в "Idle" состояние

[ENNMI = 1 AND NMI event] OR [DMALEVEL = 1 AND Trigger = 0]

Т.е. когда DMA запущен с DMALEVEL = 1 и запускающий Trigger снимается (например автоматом сбрасывается какой либо флаг прерывания) мы опять должны попадать в "Idle" и DMA0CTL_bit.DMAABORT должен быть установлен.
Но его может установить только NMI прерывание.

Похоже на глюк в документации.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ig_z   DMA msp430f1611   Jun 21 2005, 11:24


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

 


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


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