PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка устройств

Ответ
 
Опции темы
Старый 05.07.2013, 01:00   #1
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 36
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию USB I2S input

И так, очередная разработка, с которой мне пришлось изрядно повозиться.
Устройство для подключения к компьютеру аудиоисточников с цифровым I2S выходом.
Стандарт I2S предназначен в первую очередь для передачи цифровых аудио данных между микросхемами в пределах одного устройства. Данный стандарт часто используется в различных микросхемах ЦАП и АЦП, предназначенных именно для работы со звуком.
Думаю, что на данном форуме это мало кому нужно. Однако, именно подготовка к постройке pccar сподвигла меня его разработать, так как мне будет необходим ввод звука в компьютер с цифрового радио минуя всевозможные аналоговые тракты. Поэтому, пусть будет она тут, может кому и пригодится.

Подробней о i2s читайте в Википедии, представлю тут только диаграмму, чтоб понимать с чем работаем:

Задача №1: дешифровать сигнал в микроконтроллере. С помощью микроконтроллера avr из серии Xmega, мне удалось это сделать без помощи дополнительных микросхем (не считая одной ячейки стандартной логики "И"), используя два интерфейса SPI, которые в обилии наличиствуют в указанном микроконтроллере. Однако, есть еще задача №2, решить которую на xmega пока не удалось, об этом позже. В итоге, был выбран микроконтроллер из серии mega (не путать с xmega), а именно ATmega32u4. Только вот с i2s потоком он в одиночку не справился, поэтому ему на помощь пришла микросхема EPM3032A -это микросхема программируемой логики стоимостью 100руб, одна из самых маленьких в своем роде. Ее задача превратить последовательные данные шины i2s в параллельные и сообщить микроконтроллеру о получении первых 16 бит в каждом канале. Микросхема запрограммирована на выдачу данных по 8 бит, один из входов переключает между старшими и младшими восемью битами. Так сложно (имею ввиду переключение) сделано намеренно, чтобы микроконтроллер прерывался на прием данных только один раз за сэмпл каждого канала. Прошивку для данной микросхемы делал не я, а один мой хороший товарищ, поэтому подробней как в ней что рассказать не могу.

Схема получилась такой:

На схеме два варианта: А и Б.
В варианте А, напряжение питания микроконтроллера 3.3в. При таком напряжении по даташиту контроллер может стабильно работать только на 8МГц. Этого ему еле еле хватает, чтобы принять и передать аудиопоток частотой дискретизации 32кГц.
В варианте Б, напряжение питания микроконтроллера примерно 4.6в. Напряжение намеренно занижено диодом, чтобы микроконтроллер мог стабильно принимать 3.3-вольтовые сигналы с EPM3032. Сама же EPM3032 толерантна к 5-ти вольтовым входным сигналам. При таком напряжении контроллер может работать на частоте 16МГц, этого должно хватить для обработки аудиопотока с частотой дискретизации вплоть до 48кГц. Однако, на максимальной частоте я не проверял, у меня не нашлось такого источника.

Задача №2: Передать полученные данные в компьютер. Для этого используется библиотека LUFA. За основу взят AudioInput пример из состава библиотеки. Используется Audio Class Device 1.0, т.е. микроконтроллер прикидывается usb звуковой картой. Точнее звуковой картой с одним цифровым входом. Дело в том, что данная библиотека пока что не в полной мере поддерживает относительно новые микроконтроллеры серии xmega, на них мне не хватило пропускной способности передать в компьютер два канала одновременно из-за того, что в библиотеке пока не реализован функционал двойного буфера (так называемый pin-pong режим). Поэтому использую обычную mega с дополнительной микросхемой.

Печатная плата может выглядеть так:



В Винде, начиная с ХРюши, драйвера не требуются. После подключения, устройство будет видно так:


Итого, на данный момент характеристики следующие:
Частота дискретизации входного сигнала: 32кГц точно, в варианте Б в теории до 48кГц.
Разрешение входного сигнала: до 16 бит (на вход подавать можно и больше, лишние просто игнорируются)

Устройство автоматически не определяет частоту входного сигнала, поэтому в винде в свойствах устройства на вкладке "дополнительно" нужно указать частоту, соответствующую входной.

Вот записи, сделанные с помощью данного устройства: Запись1, Запись2, Запись3.
В качестве аудиоисточника используется цифровой выход вот этого радиомодуля.

Архив с прошивкой и исходниками прилагаю. Условие использования - рассказать здесь о всех модификациях, если таковые будут, а так же ссылка на данную тему в описании вашего проекта.
Вложения
Тип файла: rar I2Sinput.rar (1.07 Мб, 350 просмотров)

Последний раз редактировалось zyxel812; 05.07.2013 в 10:53. Причина: Исправил некоторые опечатки
zyxel812 вне форума   Ответить с цитированием
Старый 05.07.2013, 01:59   #2
mitsubi
Старший Пользователь
 
Регистрация: 23.04.2012
Регион: 77, 97, 99, 177
Сообщений: 412
mitsubi is a jewel in the roughmitsubi is a jewel in the roughmitsubi is a jewel in the roughmitsubi is a jewel in the rough
По умолчанию

весьма интересно, а по части нехватки ресурсов меги не хотите посмотреть в сторону, например, STM32?
mitsubi вне форума   Ответить с цитированием
Старый 05.07.2013, 09:50   #3
Gorynch
Старший Пользователь
 
Аватар для Gorynch
 
Регистрация: 22.04.2009
Возраст: 36
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2005\Nissan\X-Trail
Сообщений: 775
Gorynch is a splendid one to beholdGorynch is a splendid one to beholdGorynch is a splendid one to beholdGorynch is a splendid one to beholdGorynch is a splendid one to beholdGorynch is a splendid one to beholdGorynch is a splendid one to behold
По умолчанию

Очень плезно и познавтельно

Будет ли работать под MacOsX или линукс?
Есть 2 цифровых микрофона от ноутбуков, хотелось бы пркрутить к компам, а они не под виндами

Если будет работать под unix системой - как минимум повторю
__________________
В детстве, чтобы маленький Змей Горыныч был как все, мама заплетала его в косичку
Gorynch вне форума   Ответить с цитированием
Старый 05.07.2013, 10:50   #4
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 36
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Цитата:
Сообщение от mitsubi Посмотреть сообщение
весьма интересно, а по части нехватки ресурсов меги не хотите посмотреть в сторону, например, STM32?
Тут все дело в наличии библиотеки для работы с USB и примеров реализации различных классов под конкретную серию устрйств. Так получилось, что именно для avr нашлась такая библиотека, в которой для реализации задумки пришлось приложить минимум усилий. Вот, в xmega ресурсов хватает, однако победить ее родную usb библиотеку пока не удалось, но это вопрос времени. В итоге, хочу отказаться от плис.

Цитата:
Сообщение от Gorynch Посмотреть сообщение
Очень плезно и познавтельно

Будет ли работать под MacOsX или линукс?
Есть 2 цифровых микрофона от ноутбуков, хотелось бы пркрутить к компам, а они не под виндами

Если будет работать под unix системой - как минимум повторю
Работать должно. Используется стандартный usb класс, что даже винда без драйверов подхватывает, linux должен тем более. Про Мак не могу ни чего сказать, могу предположить, что тоже должно работать. Сейчас в компьютерных магазинах можно найти маленькие usb звуковые карты за 300 ~ 500 рублей с двумя разъемами, один под наушники, другой под микрофон. Так вот, в их описании сказано, что они работают в Linux и Mac OS 10 и выше, а они тоже используют Audio Class 1.0, как и моя разработка.
zyxel812 вне форума   Ответить с цитированием
Старый 05.07.2013, 13:09   #5
awtoap
Гуру
 
Аватар для awtoap
 
Регистрация: 19.09.2009
Возраст: 40
Город: Мелитополь
Регион: Украина
Сообщений: 1,989
awtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to behold
По умолчанию

Я вот непойму накуя было изобретать сие, когда навалом микрух готовых?...пример сходу CM108AH (ввод/вывод по I2S плюс встроенный ЦАП и АЦП). TAS1020B пишем софт и получаем 24/96. Тоже самое TUSB3200AC аж 6 штук I2S. Единственное синхра идет от этих микр, а не от АЦП/ЦАП как любят аудифилы. А те параметры что достигли в изделии ну просто унылы.
awtoap на форуме   Ответить с цитированием
Старый 05.07.2013, 14:58   #6
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 36
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Разрабатывалось под конкретное устройство с конкретными параметрами, а именно 32кГц с синхрой от внешнего устройства. А так же для того, чтобы сделать управление радиомодулем и передачу с него звука на одной легко достоваемой микросхеме. Сейчас их конечно две, но это как промежуточное работоспособное решение, выложенное здесь с целью найти ещё интузиастов, кому это нужно. Глядишь, кто чем поможет или хотя бы что-то подскажет. Вот уже кое что поймал на удочку, теперь знаю про существование ещё и микросхемы TUSB3200AC, взял на заметку.
Указанные вами чипы ещё достать надо, CM108 до сих пор из Китая жду, минимальная партия 5 шт, ждать около 2-ух месяцев, заказал ради экспериментов. Нет уверенности, что с ее помощью 32кГц ввести можно (во всех описаниях только 44,1 и 48) и сменить тип устройства с микрофона на что-то ещё.
И, самое главное, спортивный интерес и учебные цели. Здесь вроде не собираются те, ищет готовых решений.
zyxel812 вне форума   Ответить с цитированием
Старый 05.07.2013, 18:07   #7
awtoap
Гуру
 
Аватар для awtoap
 
Регистрация: 19.09.2009
Возраст: 40
Город: Мелитополь
Регион: Украина
Сообщений: 1,989
awtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to behold
По умолчанию

Я так понял хочешь смастерить цифровое радио с DAB. Тогда осваивай TAS1020B. Они хоть и сняты с производства (как TUSB3200) но еще продаются. Апликухи как и софт для разработки поищи ТУТ. Хотя лучше возьми за основу приемник от Silabs(все исходники доступны), правда выход с тюнера по аналогу, а звук в комп по цифре(эмулируется звуковая через УСБ).
awtoap на форуме   Ответить с цитированием
Старый 05.07.2013, 18:43   #8
JIekceu
Пользователь
 
Регистрация: 20.06.2013
Возраст: 31
Город: Минск
Регион: Беларусь
Машина: Ford Mondeo 3
Сообщений: 45
JIekceu is on a distinguished road
По умолчанию

давно хотел такой девайс для подключения хорошего АЦП, то что стоит на звуковухах и то как оно подключено мягко говоря не радует..

Последний раз редактировалось JIekceu; 22.07.2013 в 05:29.
JIekceu вне форума   Ответить с цитированием
Старый 01.08.2013, 08:09   #9
Apostol
Новый Пользователь
 
Аватар для Apostol
 
Регистрация: 26.01.2013
Возраст: 33
Город: Новокузнецк
Регион: 42
Машина: Kia Ceed
Сообщений: 29
Apostol has a spectacular aura aboutApostol has a spectacular aura about
По умолчанию

Цитата:
Сообщение от awtoap Посмотреть сообщение
Я вот непойму накуя было изобретать сие, когда навалом микрух готовых?...пример сходу CM108AH (ввод/вывод по I2S плюс встроенный ЦАП и АЦП). TAS1020B пишем софт и получаем 24/96. Тоже самое TUSB3200AC аж 6 штук I2S. Единственное синхра идет от этих микр, а не от АЦП/ЦАП как любят аудифилы. А те параметры что достигли в изделии ну просто унылы.
А есть готовые киты? У меня вот такой девайс:
DAC
Есть интерес подключить его по i2s к ПК, а выход с дака по оптике на проц.
Apostol вне форума   Ответить с цитированием
Старый 01.08.2013, 12:00   #10
awtoap
Гуру
 
Аватар для awtoap
 
Регистрация: 19.09.2009
Возраст: 40
Город: Мелитополь
Регион: Украина
Сообщений: 1,989
awtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to behold
По умолчанию

Не путай назначение железки...у ТС по I2S принимает, а по USB отдает в комп...у тебя делает противоположное. Короче по USB в комп, а оптику в проц...I2S у тебя для внешней микры DAC.
awtoap на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 23:36.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Яндекс.Метрика