Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
TLV320AIC23b+SSC+SPI+9260
alexey123
Добавлено 03.06.2009 16:59
0
Сообщение: 1
alexey123
0

Пункты: 32
Регистрация: 25.05.2009
Не нашел той ветки, где обсуждался запуск этого кодека.

Прикрутил его к своей плате, но драйвер взял не тот что обсуждается здесь, а тот что входит в ядро (ALSA SoC). Отличия в том, что все что касается ALSA, SSC и SPI для TLVaic23 уже реализовано. Оставалось написать свой небольшой "мостик" (что я и сделал), в котором вся специфика платы (MCLK для кодека, SPI...) Вобщем работает.

если кому интересно - поделюсь опытом и исходниками.


------
Пользуясь случаем хочу выразить свой "ах" от нового форума.
Это что-то с чем-то
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 03.06.2009 17:57 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Недавно ребята драйвер кодека TLV320 "причесали" на предмет корректного захвата звука, исходник в файловом разделе.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 10.07.2009 14:00 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
2 Pavel Ivanchenko. Эх-хе-хех.. файлик то лежит, скачал. И.. никакой инструкции. Куда положить, как к ядру подключать.. нифига не понятно. Пробую положить рядом с at73 и прописать по образу и подобию, в логе:

ASoC version 0.13.1
ALSA device list:
#0: Dummy 1

Возможно (традиционно) надо править конфиг платы, но как?
Забыл упомянуть, плата SK-AT91AM9, чип TLV320 (паял сам), + пара кондюков на выход, блокировочники пока не ставил.

2alexey123 Если не жалко - поделитесь крупицами мастерства. А то чип запаял, а экспресс-проверку исправности монтажа сделать не могу - обидно, да :)))

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 10.07.2009 16:28 Редактировалось 10.07.2009 17:11 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
тэкс.. легкий прогресс:
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
tlv320aic23b spi1.0: tlv320aic23b: supported bitrate is 47348 (66 divider)
ASoC version 0.13.1
ALSA device list:
#0: Dummy 1
#1: AT91SAM9260-EK external DAC on irq 14
команда
[@Armets /dev]$cat /bin/busybox >/dev/dsp1
tlv320aic23b: playback bitrate is 47348 (66 divider)
генерит мерзкое петюкание в наушниках, что указывает на вероятно исправный монтаж..
счас налью *.wav и попробую скормить туда же :)

ps сливаю в /dev/dsp маздайский вав - хрюкание отдаленно напоминающее исходное звучание - хм.. буду дальше ковырять
если пальцем потыкать в старшие пины tlv320, то возникает фоновая наводка, вывод - входы работают :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
alexey123
Добавлено 10.07.2009 19:14 Сообщение: 5
alexey123
0

Пункты: 32
Регистрация: 25.05.2009
Цитата
тэкс.. легкий прогресс:
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
tlv320aic23b spi1.0: tlv320aic23b: supported bitrate is 47348 (66 divider)
ASoC version 0.13.1
ALSA device list:
#0: Dummy 1
#1: AT91SAM9260-EK external DAC on irq 14
команда
[@Armets /dev]$cat /bin/busybox >/dev/dsp1
tlv320aic23b: playback bitrate is 47348 (66 divider)
генерит мерзкое петюкание в наушниках, что указывает на вероятно исправный монтаж..
счас налью *.wav и попробую скормить туда же :)

ps сливаю в /dev/dsp маздайский вав - хрюкание отдаленно напоминающее исходное звучание - хм.. буду дальше ковырять
если пальцем потыкать в старшие пины tlv320, то возникает фоновая наводка, вывод - входы работают :)


для запуска ASoC-драйвера для aic23b мне потребовалось дописать spi-часть в /soc/codecs/tlv320aic23.c и внести дополнения в /soc/at91/at91-ssc.c (особенности подключения кодека к 9260).

если авторский драйвер уже звучит - оптимально доработать его.

>>хрюкание отдаленно напоминающее исходное звучание
я бы времянки на SSC посмотрел.
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 14.07.2009 18:41 Сообщение: 6
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Цитата

если авторский драйвер уже звучит - оптимально доработать его.


Ничего дорабатывать не требуется - все и так работает.

Цитата


ps сливаю в /dev/dsp маздайский вав - хрюкание отдаленно напоминающее исходное звучание - хм.. буду дальше ковырять
если пальцем потыкать в старшие пины tlv320, то возникает фоновая наводка, вывод - входы работают :)


Дело в том, что /dev/dsp - это символьное устройство, и оно ждет звуковой поток только в том формате на который настроено. А настроено оно на 16 бит стерео с частотой 48кГц. Ваш WAV файл скорее не в таком формате записан, поэтому вы и слышите хрюкание похожее на оригинал.
Так что можете сконвертировать WAV в указанный формат и все будет работать или поставьте на плату какой нибудь плеер, например madplay.
Если у вас подключен микрофон или линейный вход, то проще всего сделать запись с него и воспроизвести ее:
Код

cat /dev/dsp > test
cat test > /dev/dsp

Имейте ввиду, на платах Павла перепутаны линейный и микрофонный входы.
Спуститься к концу Подняться к началу
Персональная информация
Vadim
Добавлено 14.07.2009 23:19 Сообщение: 7
Vadim
5

Пункты: 1032
Регистрация: 30.05.2009
Пол: Мужчина
При выводе "нормальных" wav-файлов на dsp надо иметь ввиду, что наличие заголовка в файле, в котором указывается формат, приведет к сильному щелчку в начале воспроизведения.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 14.07.2009 23:25 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Спасибо за дельные мысли, я о таком размышлял пока шел с работы. Странно что хрюки были слегка мелодичные, мне думалось что PCM это пакованный формат, а не бинарный синус.. надо будет в редакторе глянуть.
Сегодня с утреца в buildroot собрал madplayer и mp123, в результате 96кбпс mp3 звучал довольно чисто а вот 128+ с хрустом и паузами.. на WAV оба поморщились и отказались проигрывать.. где-то что недонастроенно..
И самое неприятное, что при "холодном" запуске платы звук.. отсутствует. Драйвер встает, SPI встает, SSC тоже, ALSA рапортует мол есть девайс. Плейер делает вид что играет а звука нет. Впечатление, что не доходит тактовая до кодека.
С горя собрал AUMIX, не помогло..
ЗЫ Попробовал проиграть звук из интернета - работает. Прикольно :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.07.2009 18:42 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Получил стабильный запуск звука (вроде ничего глобально не правил - позже попробую разобраться).
В файле борды добавлено:
/* эта структура взята из файла драйвера, иначе при сборке ругается */
struct tlv320aic23b_board_info{
int ssc_id;
struct clk *dac_clk;
char shortname[32];
};
/* это скопировано с at73 раздела с легкими переименованиями */
static struct tlv320aic23b_board_info tlv320aic23b_data = {
.ssc_id = 0,
.shortname = "TLV320AIC23B-EK external DAC",
};
#if defined(CONFIG_SND_TLV320AIC23B) || defined(CONFIG_SND_TLV320AIC23B_MODULE)
static void __init tlv320aic23b_set_clk(struct tlv320aic23b_board_info *info)
{
struct clk *pck0;
struct clk *plla;
pck0 = clk_get(NULL, "pck0");
plla = clk_get(NULL, "plla");
at91_set_B_periph(AT91_PIN_PC1, 0);
clk_set_parent(pck0, plla);
clk_set_rate(pck0, 12000000);
clk_put(plla);
clk_enable(pck0);
info->dac_clk = pck0;
}
#else
static void __init tlv320aic23b_set_clk(struct tlv320aic23b_board_info *info) {}
#endif
/* это вставлено в список SPI устройств */
#if defined(CONFIG_SND_TLV320AIC23B) || defined(CONFIG_SND_TLV320AIC23B_MODULE)
{
.modalias = "tlv320aic23b",
.chip_select = 0,
.max_speed_hz = 15 * 1000 * 1000,
.bus_num = 1,
.mode = SPI_MODE_1,
.platform_data = &tlv320aic23b_data,
},
#endif
/* ну и вставлено в начальную инициализацию устройств */
tlv320aic23b_set_clk(&tlv320aic23b_data);
at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);

не отрицаю, что что-то тут лишнее или неправильно, но звук пошел ;-P
вот вырасту, выучусь и буду как уважаемый sasamy скрещивать звук и видео :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 15.07.2009 18:56 Сообщение: 10
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Кстати, есть момент с тактовой SPI ...
Драйвера у атела могучие, а линия длинная получилась (она еще на разъем выведена), видимо овершоты на фронтах образуются и кодек на это болезненно реагирует, мне иногда приходится довешивать емкость ~100пФ на тактовую SPI.
В новой ревизии платы устранил этот эффект.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX