Jump to content
korobok

цифра 8xAES3 в аналог 7.1

Recommended Posts

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

вот возникла задача, вроде как простейшая. но наткнулся на камни, и бьюсь как рыба) прошу о помощи!

суть.

есть некий девайс, из которого выходит 8 цифровых аудио канала стандарта AES/EBU (AES3). физически это выглядит как гнездо rj45(CAT5). задача получить с этого 8мь аналоговых звуковых канала.

т.е. мы имеем 4е витые пары проводов в общей оплетке с экраном. обычный сетевой 8и жильный FTP кабель.

по каждой паре проводов идет по два канала.

прочитав статью Interfacing_AES3_&_SPDIF.pdf понял, что в прииинципе AES3 можно привести к SPDIF(coax).

трансформаторы решил не ставить, ибо в статье говорили о согласующих волновые 110 Ом(AES3) с 75 Ом(SPDIF), где купить так и не нашел(в мск). можно и самому былоб навить, как я понял там ферритовое кольцо и пару оборотов проволоки, но опять-же не сдюжал разобраться с расчетом. если кто подкинет статью, чтоб почитать и понять, буду благодарен.
ну не суть, в статье говорилось, что если расстояния не велики, то можно легко обойтись без согласующего трансформатора. у меня длина экран-го сетевого кабла AES3 - 10 метров. а длина SPDIF кокса 1 метр. вот и решил не париться.

выбрал схему как на рисунке Fig.1, (только на сопротивлениях). 

первую пару проводов (1,2) я подключил как на рисунке. xlr.1 - земля взятая с экрана сетевого кабеля. xlr.2 - к 1му (нечет), xlr.3 ко 2му (чет) проводам сетевого кабла (все как в последней главе The AES:EBU interface.pdf

остальные три пары (3,6 4,5 7,8)подключал также, за исключением что не подключал общий земляной экран к оплеткам остальных трех коксов (испугался что закоротит, и еще спалит выход звуковой на девайсе. глупо? не закоротит?)

дальше этот сигнал хотел подвести к звуковым ЦАПам(4 кокса в 4-е ЦАПа) и с них уже снять 8 каналов аналога, которые дальше подоткнуть в ресивер.

решил сначала попробовать с двумя каналами. купил ЦАП FiiO Taishan-D03K. спаял из 4х сопротивлений переходник по Fig.1, подключил все к ЦАПу.

заработало... но)))

генерирующий девайс сразу выдает 8мь разных звуков в 8-мь каналов AES. я припаялся переходником только к первым двум каналам, левому и правому(провода 1 и 2 в сетевом кабле). остальные провода не распаявал.

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

а то, случается не пойми что!))) звук искажается, появляется металлический призвук(как буд-то в бочке колонка, подзванивает и дребезжит) и каналы путаются. поясню. когда все хорошо ЦАП декодирует все как нужно. в него приходит цифра(в настройках девайса прописано, что по первой паре проводов AES пускать левый и правый каналы ) и он раскладывает ее по левому и правому аналоговым каналам. все хорошо и соответствует. но когда появляется призвук(искажения) левый сигнал начинает идти из обоих аналоговых выходов цапа, правый из правого, и дополнительно на левом аналоговом выходе появляется ТРЕТИЙ КАНАЛ, приглушенный и с еще большими искажениями. откуда он там берется это загадка для меня. наводится с других пар проводов?

подскажите куда копать. ЦАП плохой, или может не хватает чего... трансформатора, или кондера какого?

от души благодарю за любую помощь, наводки, материалы))) надеюсь все более-менее объяснил.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By n_angelo
      Привет, знатоки. Написал свою первую программу для контроллера STM8L152C6T6 (STM8L-Discovery). Это, собственно, моя первая программа для контроллеров вообще. Я многого не знаю и не понимаю. Возможно ваш ответ на мой вопрос будет банален.
      Используемая периферия: DAC, DMA, TIM4, CLK, GPIO
      Задача у программы такая:
      В EEPROM зашит один период синусоиды с дискретизацией 44100Гц. Период занимает ровно 101 байт, что по сути должно быть равно 2,29мс (1/44100*101). В коде программы только конфигурация периферии, одно прерывание на кнопке и пустой бесконечный цикл, который ничего не делает. Всю работу выполняет таймер, который настроен выдавать запрос к DMA на каждые 1/44100 (ядро тактируется 2мГц, таймер считает до 45). В свою очередь DMA забирает из EEPROM по одному байту на каждый запрос от таймера и передаёт его в DAC. Далее DAC выводит бесконечную синусоиду на ногу PF0. Прерывание на кнопке запускает весь этот механизм и зажигает светодиод.
      Проблема:
      Измеряя ногу PF0 осциллографом было замечено, что период синусоиды занимает около ≈4мс. Фото под катом.
      Меня это расстроило. Экспериментально выяснилось, что стоит только вписать в бесконечный цикл какую-нибудь проверку, например, [если значение текущего байта синусоиды = 0xFF, то зажечь светодиод, если 0x00, то потушить], то осциллограф показывает правильный тайминг в 2(с копейками)мс. В принципе в теле цикла может быть что угодно, кроме пустоты, и тайминг налаживается.
      Я не могу отдебажить дизассемблер, т.к. его не знаю. Это у меня в планах. Но я очень хочу понять, что происходит и почему пустой цикл рушит тайминг.
      Спасибо.
       
       
       
       
    • By German Churilin
      Добрый день всем! Столкнулся с проблемой, над решением которой бьюсь уже месяц - суть в том, что при пересылке аудио данных с контроллера в внешний цап на выходе цапа звучит белый шум(именно когда летят данные). Уже перепробовал разные конфигурации и параметры, да даже другой цап ставил - всё равно та же самая проблема. Может кто сталкивался, или у кого есть идеи почему так происходит?
      Контроллер stm32f407ve китайский, но вроде как рабочий, цап - pcm1606, вытащенный из двд-плеера.

      код инициализации i2s
      RCC_PLLI2SCmd(DISABLE); RCC_I2SCLKConfig(RCC_I2S2CLKSource_PLLI2S); RCC_PLLI2SConfig(200,5); RCC_PLLI2SCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLI2SRDY) == RESET){}; //WS - word clock output GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_SPI2); GPIO_StructInit(&gpioInit); gpioInit.GPIO_Pin = GPIO_Pin_9; gpioInit.GPIO_Mode = GPIO_Mode_AF; gpioInit.GPIO_OType = GPIO_OType_PP; gpioInit.GPIO_PuPd = GPIO_PuPd_NOPULL; gpioInit.GPIO_Speed = GPIO_Speed_100MHz; GPIO_Init(GPIOB, &gpioInit); //BCLK - shift clock output GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIOB, &gpioInit); //SD - serial audio data GPIO_PinAFConfig(GPIOC, GPIO_PinSource3, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_3; GPIO_Init(GPIOC, &gpioInit); //MCO - master clock output GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOC, &gpioInit); I2S_StructInit(&i2sInit); i2sInit.I2S_CPOL = I2S_CPOL_Low; i2sInit.I2S_Mode = I2S_Mode_MasterTx; i2sInit.I2S_MCLKOutput = I2S_MCLKOutput_Enable; i2sInit.I2S_Standard = I2S_Standard_Phillips; i2sInit.I2S_AudioFreq = I2S_AudioFreq_48k; i2sInit.I2S_DataFormat = I2S_DataFormat_24b; I2S_Init(SPI2, &i2sInit); SPI2->I2SPR = (uint16_t)((uint16_t)512 | (uint16_t)12 | (uint16_t)1); //for 48k Fs SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, ENABLE); I2S_Cmd(SPI2, ENABLE);  
      код инициализации dma
      DMA_InitTypeDef dmaInit; NVIC_InitTypeDef nvicInit; DMA_DeInit(DMA1_Stream4); DMA_Cmd(DMA1_Stream4, DISABLE); while(DMA_GetCmdStatus(DMA1_Stream4) == ENABLE){}; __ISB(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); //To dmaInit.DMA_PeripheralBaseAddr = (uint32_t) &(SPI2->DR); //From dmaInit.DMA_Memory0BaseAddr = (uint32_t)&AUDIO_SAMPLE; dmaInit.DMA_BufferSize = 20480; dmaInit.DMA_Channel = DMA_Channel_0; dmaInit.DMA_DIR = DMA_DIR_MemoryToPeripheral; dmaInit.DMA_PeripheralInc = DMA_PeripheralInc_Disable; dmaInit.DMA_MemoryInc = DMA_MemoryInc_Enable; dmaInit.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; dmaInit.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; dmaInit.DMA_Mode = DMA_Mode_Circular; dmaInit.DMA_Priority = DMA_Priority_High; dmaInit.DMA_FIFOMode = DMA_FIFOMode_Enable; dmaInit.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; dmaInit.DMA_MemoryBurst = DMA_MemoryBurst_Single; dmaInit.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; while(DMA_GetCmdStatus(DMA1_Stream4) == ENABLE); DMA_Init(DMA1_Stream4, &dmaInit); DMA_ITConfig(DMA1_Stream4, DMA_IT_TC | DMA_IT_HT, ENABLE); //configure interrupt nvicInit.NVIC_IRQChannel = DMA1_Stream4_IRQn; nvicInit.NVIC_IRQChannelPreemptionPriority = 0; nvicInit.NVIC_IRQChannelSubPriority = 0; nvicInit.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&nvicInit); DMA_Cmd(DMA1_Stream4, ENABLE); while(DMA_GetCmdStatus(DMA1_Stream4) != ENABLE){}; AUDIO_SAMPLE просто wav скопированный через hex редактор и живущий в памяти контроллера, крутиться по кругу. Вроде как, в теории всё должно работать(снизу скрин из pulseview - снято логическим анализатором), к сожалению осциллограф пока что не приобрёл, так что проверить правильность частот не представляется возможнымб но всё же всё вроде как красиво.
      Формат i2s на контроллере совпадает с форматом на цапе - первый бит передаётся через 1 тик sck после смены ws
       
      П.С. подозреваю сразу вопросы про MSB/LSB - wav файл сам по себе little-endian, собственно как и контроллер, то есть тут не должно быть проблем, а i2s стандарт передаёт MSB первым, соответственно если у меня в памяти записано 0x64, 0x61, 0x61, 0x66, 0x02, 0x00, 0x85... то, судя по скрину всё передаётся правильно? или я что то не понимаю в этом всём? Но не в этом суть - в один момент тоже подумал что порядок не тот, но, к сожалению, попытки свапать байты местами(и побайтово, и по словам) не дали ни какого результата

    • By maxssau
      Продам адаптеры USB-I2S. 

       
      Возможности:
       
      стерео ввод/вывод PCM 16-32 бита, 44.1-384 кГц. Ввода DSD нет, как и драйверов для ввода DSD.
      вывод DSD в режиме DoP 64-128, в режиме Native 64-256. Native доступен в Linux без "хитрых" драйверов.
      Тактирование от платы ЦАП/АЦП, частоты 512 fs (22.5792/24.576 МГц). Теоретически возможно и 1024fs(скорости 768кГц и DSD512 Native), но это не опробовано.
      Гальваническая изоляция на Si8662/Si8640.
      Питание возможно как Self так и Bus Powered. В режиме Bus Powered необходимо самостоятельно позаботиться о мастерклоке, т.к. возможны сильные глюки при выключенном генераторе мастерклока.
       
      Тема: 
      срок изготовления 3-5 недель (сильно зависит от поставок процессоров).
      На данный момент полностью реализован интерфейс Legacy. Для отладки Native режима пока нет платы ЦАП, в процессе разработки, будет не раньше осени.
      Цена 6000 + пересылка (в среднем 250 р.).
    • By aitras
      Продам немного обновленные платы ЦАПа Mercury. Комплектуются мелкой платой для генераторов с управлением от МК.
       
       
       
      Отличие от последней ревизии в том, что добавлен сигнал переключения генераторов и футпринт под трансформаторы сделан универсальным для серий ТП и TEZ.
      Цена 600р за штуку. Отправлю по России.
      В наличии 6 шт и есть 2 шт с косметическим дефектом - поцарапанной внизу маской. Они по 450р.
    • By Yurik_V
      Есть несколько плат DAC AH-D3 на ak4490 и ak4113.
      http://audiohobby.ru/otkrytyj-proekt-czap-ah-d3-na-ak4490-i-ak4113.html
       

  • Сообщения

    • Скорее всего провода не правильно подключил энкодера или дисплея.Проверь схему подключения,должно все быть норм.
    • Поверьте мне, негритянки тоже бывают красивые. Например,  известнейшая супермодель Тайра Бэнкс, Рианна и т.д. Рианна, вообще, шокировала всех откровенным платьем! 
    • да ,на юпитере помню люминесцентные - зеленые - индикаторы бегали- союз мало у нас был - потому юпитер) вообще сугубо мое мнение - но на бобинах звук так то живее был- что-ли - сейчас редко услышишь такую стереопанораму и объем звука - в основном мертвый бум- бац)
    • Достаточно послушать музыкальный материал,стане понятно что он задумал.
    • Храню как память о былом рабочий Илеть110. Сначала хотел сделать "обрезание" лентопротяга но подумал и решил не лишать этот раритет аутентичности. Правда бабина одна единственная. Но какая. "Аналоговый" Высоцкий. Кассет мешок. В охотку под настроение запускаю руку в мешок и как в лото втыкаю в мафон первую попавшуюся. Буквально вчера-сь слушал C.C. Catch Soul Survivor лицензионка, запись на ленте BASF 01.2006года Московской студии REK-TREK.  Было два мешка vhs/svhs но за неимением видака и наличии другой видео техники отнёс на помойку.  А вот компашки храню. Свои самописные, подаренные другом за ненадобностью и лицензионки хрензнаеткогда купленные. 
    • Ну да... Вам понятно без комментариев...  Что курят в тапках аккурат перед е_лей...  ЗЫ: А ноги в раскоряку раздвигают только перед  питьём пива...
  • Покупай!

×
×
  • Create New...