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

 
 
> I2S full duplex dma, Сбой в режиме DMA
nicks80
сообщение Sep 8 2016, 19:58
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 18-10-07
Пользователь №: 31 485



Проблема в следующем.
Имеется кодек UDA1344 в связке с stm32f407vet6
Данные читаются по I2S из кодека в память и потом выдаются в кодек обратно по I2S с помощью DMA.
Все работает как часы но на объекте раз в день или два. происходит сбой. результатом такого сбоя является сильный шум из кодека.
Как я понял такой шум появляется если самому дотронутся до линии CK I2S. которая отвечает за очередность передачи битов.
Печально что восстановления не происходит при переходе 1 в 0 или наоборот 0 в 1 линии WS(LR CH). То есть получается что данные так и идут перемешанными битами соответственно и програмно никак это не отследишь.
Но оно и понятно если бит(помеха) лишний проскочил то все уже съехало а dma все шлет и шлет. какими средствами справляться хз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
OVladimir
сообщение Sep 9 2016, 13:48
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290



Не знаю, поможет или нет, но похожую проблему пришлось решать несколько лет назад на STM32F103Rx + GSM modem (несколько разных модемов). I2S в МК в режиме Slave, длинный WA, передаёт в модем голосовую запись, иногда происходит рассинхронизация в итоге слышен шум....
Идея в том, что по прерыванию TXE проверяется уровень на WS линии тупо при помощи GPIO (в этом МК IDR всегда отображает картину на входе независимо от выбранной функции). Если прерывание происходит на середине слова, это легко можно определить проверив уровень WS(должен быть высокий, а он низкий и наоборот), то делаем переинициализацию модуля I2S. В моём случае метод сработал без каких-либо заметных для ушей помех.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nicks80   I2S full duplex dma   Sep 8 2016, 19:58
- - _4afc_   Если сбой не отражается в статусных регистрах stm3...   Sep 9 2016, 13:18
|- - nicks80   Цитата(OVladimir @ Sep 9 2016, 17:48) Не ...   Sep 10 2016, 18:46
- - OVladimir   Я использовал только TXE прерывание для проверки р...   Sep 11 2016, 09:25
|- - nicks80   Цитата(OVladimir @ Sep 11 2016, 13:25) Я ...   Sep 11 2016, 09:44
- - aaarrr   Случаи разные: у OVladimir'а МК ведомый, а у в...   Sep 11 2016, 09:52
|- - nicks80   Цитата(aaarrr @ Sep 11 2016, 13:52) Случа...   Sep 11 2016, 10:50
- - aaarrr   Давайте уточним: сбивается только прием, передача ...   Sep 11 2016, 11:16
|- - jcxz   Завести сигнал клока параллельно на любой таймерны...   Sep 11 2016, 11:29
||- - nicks80   Цитата(jcxz @ Sep 11 2016, 15:29) Завести...   Sep 11 2016, 12:42
||- - jcxz   Цитата(nicks80 @ Sep 11 2016, 18:42) я на...   Sep 11 2016, 14:00
|- - nicks80   Цитата(aaarrr @ Sep 11 2016, 15:16) Давай...   Sep 11 2016, 11:52
|- - aaarrr   Цитата(nicks80 @ Sep 11 2016, 14:52) сбив...   Sep 11 2016, 12:00
- - Genadi Zawidowski   Судя по схеме, кодек в режиме конфигурирования пин...   Sep 11 2016, 16:06
|- - nicks80   Цитата(Genadi Zawidowski @ Sep 11 2016, 20...   Sep 11 2016, 18:04
|- - jcxz   Цитата(nicks80 @ Sep 12 2016, 00:04) но в...   Sep 12 2016, 03:57
||- - nicks80   Цитата(jcxz @ Sep 12 2016, 07:57) Кол-во ...   Sep 12 2016, 12:06
|- - _4afc_   Цитата(nicks80 @ Sep 11 2016, 22:04) Но с...   Sep 12 2016, 07:32
- - nicks80   Что только не предпринимал оказывалось костылями. ...   Sep 15 2016, 20:23


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:54
Рейтинг@Mail.ru


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