Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
Ошибка в разводке?
marat_mmx
Добавлено 12.08.2009 10:39 Редактировалось 12.08.2009 10:39 Сообщение: 11
marat_mmx
0

Пункты: 160
Регистрация: 05.08.2009
Цитата
Захват в стерео работает, ошибка в драйвере. В тайминга ssp забыли учесть задержку в 1 такт.
На самом деле захват в стерео не работает, несмотря на то, что выходной файл имеет 2 канала по 16 бит. Похоже на то, что захват идет только с одного канала, причем возможно переключение каналов прямо на лету.
...

Хм, у меня работает. Модифицировал пример с сайта OSS для захвата.
Цитата

Цитата
Изменения следующие - использовал Right-aligned, MSB, тогда не нужна задержка в 1 такт, соответственно STTDLY в 0. После этого шум с 2-го канала исчез.

Судя по коду вы использовали режим Left-aligned. Но это не принципиально, т.к. I2S в нашем случае отличается только начальной задержкой, которая в драйвере учтена.
...


Если я правельно понимаю, как раз в этом и была проблема, задержка в один такт была учтена, но в SSC_BF(TFMR_FSLEN, 16 - 1), из-за чего ssp успеет считать только 15 бит (эта длина вместе с тактом задержки), последний бит терялся, для второго же канала нет задержки, at91sam9260 читал последний потеренный бит первого канала и 15 бит своего канала, что и выливалось в шум.
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 12.08.2009 18:18 Сообщение: 12
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Насколько я знаю, завершение приема и передачи данных не привязывается к длине импульса синхронизации кадра (FSLEN), т.к. в SSC возможна длина этого импульса в 1 такт. Например, так можно было сделать в режиме DSP кодека tlv320.
Завершение приема/передачи слова происходит при достижении счетчика принятых/отосланных бит значения DATLEN. Т.е. младший бит первого канала не теряется, соответственно, мы получаем задержку во втором канале на такт. Второй канал начинает считываться сражу за первым, его младший бит также не пропадает, т.к. первый канал следующей выборки начинает считываться с задержкой в 1 такт.
Шум действительно имел место, и был обусловлен сдвигом слов, но происходило это скорее всего из-за неправильно выбранного фронта тактового сигнала.

marat_mmx, вы пробовали подавать на линейный вход кодека только один канал (левый или правый)? У меня в одном из двух случаев молчит. Еще возможен один интересный момент - каналы меняются друг с другом.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX