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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> mp3 acc wma декодеры под cortex-m3
Dron_Gus
сообщение Sep 5 2010, 16:18
Сообщение #61


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Да. 16 бит на канал. I2S и DMA пересылают тоже 16-битные слова.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 5 2010, 17:11
Сообщение #62


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Dron_Gus @ Sep 5 2010, 20:18) *
Да. 16 бит на канал. I2S и DMA пересылают тоже 16-битные слова.

Дело в том, что, насколько я понял, FIFO I2S у LPC17xx 32 битное, и не может работать с 16 битными данными напрямую.

То есть, чтобы выводить на ЦАП 16+16 бит стерео сигнал, нужно в FIFO записывать 32 битные слова с предварительно перемешанными каналами.

Или не так?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 5 2010, 17:29
Сообщение #63


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



FIFO 8 32-разрядных слов. Но не обязательно писать все 32 бита, ИМХО. Выставляете размер данных 16 бит, стерео режим и все. При отправке каждого сэмпла из FIFO будет вычитываться одно значение.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 5 2010, 18:10
Сообщение #64


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Dron_Gus @ Sep 5 2010, 21:29) *
FIFO 8 32-разрядных слов. Но не обязательно писать все 32 бита, ИМХО. Выставляете размер данных 16 бит, стерео режим и все. При отправке каждого сэмпла из FIFO будет вычитываться одно значение.

Хм, вот содержимое ФИФО для разных режимов:
Прикрепленное изображение

То есть, если задать размер данных в 16 бит, то, как видно, одна 32 битная ячейка ФИФО будет содержать два 16 битных сэмпла.
Но никак не один сэмпл.

Что-то я Вас немного не пойму smile.gif

Вот меня и смущает такая организация ФИФО - как бы не пришлось делать лишнюю работу по склеиванию ручками двух сэмплов (16 бит) в один (32 бита) sad.gif

ЗЫ: в принципе, в случае, если выход декодера в памяти выглядит как чередующиеся 16 битные полуслова, проблемы нет - DMA будет копировать сразу 32 битное слово (два сэмпла) в каждую ячейку ФИФО.

Единственное, могут попутаться местами каналы, но DAC23 имеет специальную для этого фичу, кажется smile.gif
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 5 2010, 19:40
Сообщение #65


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Хм. Вы мне глаза открыли. smile.gif Значит у меня в проекте ошибка. Интересно, как же оно работало. Надо будет разобраться.

А декодер действительно выдает "смешанный" поток.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 8 2010, 20:52
Сообщение #66


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Смонтировал на отладочной платке ЦАП TLV320DAC23, рядом работает ЖКИ дисплей по 8 битной параллельной шине.
ЦАП висит на I2C вместе с AT24C01B на проводах длиной около 20 см.

Так вот, если с EEPROM проблем никаких нет, то DAC23 меня уже запарил ошибками на I2C - то NACK сразу после выдачи адреса даёт, то NACK после записи одного байта, а то вообще шину подвесит.

Происходит это только если одновременно во время передачи по I2C в ЦАП идёт запись в ЖКИ.
Причём, если отвести провода I2C от проводов ЖКИ - ошибок становится много меньше...

Что за проблемы у этого цапа? Какой-то корявый у него интерфейс, слишком уж чувствительный к наводкам\пульсациям.

По осциллографу ничего критичного не видно, епромка пашет как часы, а эта какашка запарила уже sad.gif

У кого есть опыт с DAC23\AIC23 - ничего подобного не наблюдали?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 8 2010, 21:22
Сообщение #67


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(sonycman @ Sep 8 2010, 23:52) *
По осциллографу ничего критичного не видно, епромка пашет как часы, а эта какашка запарила уже sad.gif

У кого есть опыт с DAC23\AIC23 - ничего подобного не наблюдали?


В linux работает отлично smile.gif
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 9 2010, 05:41
Сообщение #68


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Попробуйте уменьшить сопротивления подтяжек и поставьте их ближе к кодеку. Либо вообще на SPI перевесьте.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 9 2010, 09:57
Сообщение #69


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Dron_Gus @ Sep 9 2010, 09:41) *
Попробуйте уменьшить сопротивления подтяжек и поставьте их ближе к кодеку. Либо вообще на SPI перевесьте.

Поставил резисторы подтяжек вплотную к ЦАПу - стало ещё хуже, кол-во ошибок увеличилось.

Сейчас стоят резисторы 3к3, ставил и 1к5 - без результата.

Вероятно, всё дело в разводке, не разделены земли ЖКИ и ЦАПа.
Go to the top of the page
 
+Quote Post
skripach
сообщение Sep 9 2010, 11:25
Сообщение #70


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Сейчас стоят резисторы 3к3

Почему 3к3?


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 9 2010, 12:27
Сообщение #71


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(skripach @ Sep 9 2010, 15:25) *
Почему 3к3?

А сколько нужно?
Номиналы пуллапов зависят от суммарной ёмкости линий и частоты.
Частота интерфейса 400 кГц, чем меньше подтягивающие резисторы - тем круче фронты - тем выше достигаемая скорость передачи.

Плюс, по спецификации на ЦАП rise time не должен превышать 300 наносекунд.
По осциллографу видно, что это время значительно больше.

Поэтому, имхо, чем меньше пуллапы - тем лучше.

Подключение к ЦАПу отдельной земли не дало никакого результата.
Вроде решил проблему с DAC23 установкой на пины I2C микросхемы керамики по 150 пикофарад.
Дурдом, конечно, но вероятно причиной сбоев являлись наведённые с параллельной шины ЖКИ помехи, которые давали ложные срабатывания логики интерфейса внутри ЦАПа.

Причём епромка оказалась к этим наводкам совершенно нечувствительной, что делает ей честь.

В ЦАПе предусмотрен фильтр коротких импульсов в 50 нс, который оказался совсем неэффективным.
Если переключить щупы осциллографа на входной делитель х10, то на сигналах становятся видна модуляция логических уровней, с частотой в несколько мегагерц и амплитудой до 500 милливольт (если верить китайскому осциллографу smile.gif).
Очевидно, что ЦАП принимает эти помехи за полезный сигнал.

Неужели величина в 500 милливольт достаточна для уровня логической 1 для I2C?
Да и могут ли электромагнитные наводки достигать таких величин, интерфейс-то вроде не высокоомный?

Теперь придётся разводить сигналы I2C на платах аккуратнее, вдали от быстрых сигнальных проводников или под надёжным прикрытием замляных полигонов.

Почитаешь форумы, так народ тянет провода на метры и проблем вроде нет.
А тут всего 20 см и уже не хорошо sad.gif
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Sep 9 2010, 13:37
Сообщение #72


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Хм. Странно. 500 мВ при статических уровнях влиять не должны. А если наложить эту наводку на фронт? smile.gif


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Sep 9 2010, 13:44
Сообщение #73


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Dron_Gus @ Sep 9 2010, 17:37) *
Хм. Странно. 500 мВ при статических уровнях влиять не должны. А если наложить эту наводку на фронт? smile.gif

Наводка видна только на 3.3в или 0в, а фронты чистые.

Опять же, с подключенными щупами осциллографа х1 (без делителя) - модуляция очень незначительная, но ЦАП продолжал глючить.

Ещё не подавал звуковой сигнал по I2S, надеюсь, эти выводы будут не так восприимчивы к помехам.
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jan 19 2011, 07:52
Сообщение #74


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



если уж пошла такая пьянка на счет I2C то вот что скажу: надо было выставлять байт на экспандере портов PCA9555, причем на максимальной частоте 400КГц. В итоге I2C заработал без ошибок только при пуллапах 750 Ом. При этом фронты стали выглядеть более прямоугольными в отличие от 5.1кОм кот были в начале пути. Длина линиий SDA SCK между контроллером и экспандером было около 5 см. Вот такие пироги.
Go to the top of the page
 
+Quote Post

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

 


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


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