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

 
 
> sam3x SSC + DMA
nvn
сообщение Sep 22 2016, 21:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Добрый день!

Есть sam3x4c, к нему подключен кодек tlv320aic3101 по SSC.
Сгенерил табличку синуса в буфер и вручную в цикле выдал её на кодек... все ок.
Попробовал передать буфер с синусом через DMA, тоже все ок, попробовал несколько связанных буферов (Linked List Item), тоже получилось, закольцевал два буфера, получил генератор все работает согласно описанию.
Требуется принимать пакеты RTP по Ethernet и выплевывать их в кодек, раньше пользовал sam7x там использовал PDC контроллер у SSC и все получалось просто, пока передавался первый буфер, по прерыванию видел что второй буфер пуст и подкачивал второй. А здесь не могу сообразить как организовать что-то подобное. Здесь не могу засинхронизироваться, непонятно какой из буферов передался, пробовал разные способы, но щелчки идут...
Может кто делал что-то подобное? В принципе не суть что из Etherneta можно и с microSD файл проиграть, так же ведь нужно подкачивать данные?
Может примеры есть или на проекты наталкивались?
У атмела находил примеры, но там просто подготавливаются 2 или 3 буфера и передаются, после чего остановка, а как сделать именно с подкачкой?

З.Ы. как то наталкивался в инете еще работая на sam7x на проект sam3x8 в связке с кодеком WM8731 (вроде) по DMA и там еще вроде fft была, так сейчас перерыл весь инет, а найти не могу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Sep 22 2016, 21:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(nvn @ Sep 23 2016, 00:01) *
Здесь не могу засинхронизироваться, непонятно какой из буферов передался, пробовал разные способы, но щелчки идут...

Не очень понимаю причину затруднения. Алгоритм работы примерно такой:
1. Подготовили кольцевой список из N буферов, загрузили в них данные
2. Разрешили прерывание BTC дла канала, запустили DMA
3. По прерыванию отдаем очередной освободившийся (CTRLA.DONE = 1) буфер под загрузку
Go to the top of the page
 
+Quote Post



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

 


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


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