Перейти к содержанию
    

C6746 - не могу разобраться в настройках DMA

Прошу не пинать за глупые вопросы, в очередной раз разбираюсь с унаследованным кодом.

В устройстве производится обмен по шине I2S (McBSP0) с использованием EDMA в режиме пинг-понг.

В коде присутствуют следующие определения:

// каналы ЕДМА для нужд шины
#define EDMA_CH_RX1        3
#define EDMA_CH_RX2        13
#define EDMA_CH_TX1        2
#define EDMA_CH_TX2        12

И уже здесь возникают вопросы:

1. В DS (Table 6-12. EDMA Synchronization Events) указано, что
Event 2 - McBSP0 Receive, Event 3 - McBSP0 Transmit, т.е. ровно наоборот.

В принципе это не очень важно, поскольку обмен по I2S дуплексный и флаги прерывания по RX и TX устанавливаются и проверяются одновременно. Но хотелось бы понять.

2. В той же таблице указано, что каналы 12 и 13 вообще относятся к UART1.
С другой стороны, в документации сказано, что при завершении транзакции DMA будут установлены биты прерывания, соответствующие значению поля TCC регистра OPT PaRAM.

Т.е. вроде как никто не запрещает использовать "правильный" для MCBSP канал DMA, но "неправильное" прерывание. Насколько это умозаключение верно?

Помогите разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сдался вам этот пинг-понг....   Всё без него делается по референс-мануалу на EDMA3 и Mc*SP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, __inline__ said:

Сдался вам этот пинг-понг....   Всё без него делается по референс-мануалу на EDMA3 и Mc*SP

Ну, пинг-понг сделан ручной, т.е. в прерывании переключаются буфера и запускается обмен.

А что касается мануала, то в нем-то и вопрос.

В процессе изучения рабочего исходного кода я вижу, что он не совпадает с мануалом.

Поскольку у меня нет опыта работы с такими процессорами, возникает вопрос - правильно ли я понимаю мануал?

Тем более что, как я уже сказал, в DS указано: Event 2 - McBSP0 Receive, Event 3 - McBSP0 Transmit.

А в TRM написано: "DMA channel 3 services the incoming data stream of the McBSP. <...> DMA channel 2 services the outgoing data stream of the McBSP" (16.3.4.3.1 и 16.3.4.3.2)

Т.е. вроде как наоборот.

PS На 2-й вопрос я ответ нашел сам - да, так можно:

"If in an application, a channel does not make use of the associated synchronization event or does not
have an associated synchronization event (unused), that channel can be used for manually-triggered or
chained-triggered transfers."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может поможет.

 

Вот мой код для C6745 (не думаю, что I2S в 6746-м сильно отличается).

 

Играет звук через McASP + Audio FIFO + EDMA3 по трём измерениям + прерывание. 

 

Компилируется с CCS 6  TI C compiler 8.3.3, синтаксис -C99 :

 

McASP_EDMA3.rar

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, __inline__ said:

Может поможет.

Вот мой код для C6745 (не думаю, что I2S в 6746-м сильно отличается).

 

Спасибо, посмотрю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, __inline__ сказал:

Вот мой код для C6745 (не думаю, что I2S в 6746-м сильно отличается).

Не отличаются??? У ТС-а - McBSP, а у Вас - McASP. Это как-бы несколько разные вещи. Не говоря уже о том, что МК другой.

Насколько помню - по периферии подобны 2 линейки внутри между собой:

1) C6745, C6747, L137;

2) C6746, C6748, L138.

А вот между этими линейками уже значительно больше отличий чем внутри.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, от техподдержки TI пришел ответ на мой 1-й вопрос.

Правильная информация - в datasheet: Event 2 - McBSP0 Receive, Event 3 - McBSP0 Transmit

В TRM ошибка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...