![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 И так, очередная разработка, с которой мне пришлось изрядно повозиться. 
		
	
		
		
			Устройство для подключения к компьютеру аудиоисточников с цифровым 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. В качестве аудиоисточника используется цифровой выход вот этого радиомодуля. Архив с прошивкой и исходниками прилагаю. Условие использования - рассказать здесь о всех модификациях, если таковые будут, а так же ссылка на данную тему в описании вашего проекта. 
				__________________ 
		
		
		
		
		
			ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			Последний раз редактировалось zyxel812; 05.07.2013 в 10:53. Причина: Исправил некоторые опечатки  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 23.04.2012 
				
				
				
Регион: 77, 97, 99, 177 
					Сообщений: 412
				 
				
				![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 весьма интересно, а по части нехватки ресурсов меги не хотите посмотреть в сторону, например, STM32? 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 22.04.2009 
				
				Возраст: 44 
				
Город: Москва 
Регион: 77, 97, 99, 177 
Машина: 2005\Nissan\X-Trail 
					Сообщений: 775
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Очень плезно и познавтельно 
		
	
		
		
		
		
			Будет ли работать под MacOsX или линукс? Есть 2 цифровых микрофона от ноутбуков, хотелось бы пркрутить к компам, а они не под виндами Если будет работать под unix системой - как минимум повторю 
				__________________ 
		
		
		
		
	
	В детстве, чтобы маленький Змей Горыныч был как все, мама заплетала его в косичку  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#4 | |
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Цитата: 
	
 Работать должно. Используется стандартный usb класс, что даже винда без драйверов подхватывает, linux должен тем более. Про Мак не могу ни чего сказать, могу предположить, что тоже должно работать. Сейчас в компьютерных магазинах можно найти маленькие usb звуковые карты за 300 ~ 500 рублей с двумя разъемами, один под наушники, другой под микрофон. Так вот, в их описании сказано, что они работают в Linux и Mac OS 10 и выше, а они тоже используют Audio Class 1.0, как и моя разработка. 
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 19.09.2009 
				
				Возраст: 47 
				
Город: Мелитополь 
Регион: Украина 
					Сообщений: 2,022
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Я вот непойму накуя было изобретать сие, когда навалом микрух готовых?...пример сходу CM108AH (ввод/вывод по I2S плюс встроенный ЦАП и АЦП). TAS1020B пишем софт и получаем 24/96. Тоже самое TUSB3200AC аж 6 штук I2S. Единственное синхра идет от этих микр, а не от АЦП/ЦАП как любят аудифилы. А те параметры что достигли в изделии ну просто унылы. 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Разрабатывалось под конкретное устройство с конкретными параметрами, а именно 32кГц с синхрой от внешнего устройства. А так же для того, чтобы сделать управление радиомодулем и передачу с него звука на одной  легко достоваемой микросхеме. Сейчас их конечно две, но это как промежуточное работоспособное решение, выложенное здесь с целью найти ещё интузиастов, кому это нужно. Глядишь, кто чем поможет или хотя бы что-то подскажет. Вот уже кое что поймал на удочку, теперь знаю про существование ещё и микросхемы TUSB3200AC, взял на заметку. 
		
	
		
		
		
		
			Указанные вами чипы ещё достать надо, CM108 до сих пор из Китая жду, минимальная партия 5 шт, ждать около 2-ух месяцев, заказал ради экспериментов. Нет уверенности, что с ее помощью 32кГц ввести можно (во всех описаниях только 44,1 и 48) и сменить тип устройства с микрофона на что-то ещё. И, самое главное, спортивный интерес и учебные цели. Здесь вроде не собираются те, ищет готовых решений. 
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 19.09.2009 
				
				Возраст: 47 
				
Город: Мелитополь 
Регион: Украина 
					Сообщений: 2,022
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Я так понял хочешь смастерить цифровое радио с DAB. Тогда осваивай TAS1020B. Они хоть и сняты с производства (как TUSB3200) но еще продаются. Апликухи как и софт для разработки поищи ТУТ. Хотя лучше возьми за основу приемник от Silabs(все исходники доступны), правда выход с тюнера по аналогу, а звук в комп по цифре(эмулируется звуковая через УСБ). 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			
			
			 Пользователь 
			![]() Регистрация: 20.06.2013 
				
				Возраст: 38 
				
Город: Минск 
Регион: Беларусь 
Машина: Ford Mondeo 3 
					Сообщений: 45
				 
				
				![]()  | 
	
	
	
	
		
			
			 давно хотел такой девайс для подключения хорошего АЦП, то что стоит на звуковухах и то как оно подключено мягко говоря не радует.. 
		
	
		
		
		
		
		
		
			Последний раз редактировалось JIekceu; 22.07.2013 в 05:29.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#9 | |
| 
			
			
			
			 Новый Пользователь 
			![]() Регистрация: 26.01.2013 
				
				Возраст: 41 
				
Город: Новокузнецк 
Регион: 42 
Машина: Kia Ceed 
					Сообщений: 29
				 
				
				![]() ![]()  | 
	
	
	
	
		
			
			 Цитата: 
	
 DAC Есть интерес подключить его по i2s к ПК, а выход с дака по оптике на проц.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#10 | 
| 
			
			
			
			 Гуру 
			![]() Регистрация: 19.09.2009 
				
				Возраст: 47 
				
Город: Мелитополь 
Регион: Украина 
					Сообщений: 2,022
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Не путай назначение железки...у ТС по I2S принимает, а по USB отдает в комп...у тебя делает противоположное. Короче по USB в комп, а оптику в проц...I2S у тебя для внешней микры DAC. 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
![]()  | 
	
	
		
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме | 
		
  | 
	
		 |