-
- Заранее генерируем избыточность. Evgeny_CD(554 знак., 06.09.2019 20:24)
- Зачем изобретать велосипед? Вы же тут на сахаре лет N назад закидывали в файлообменник книгу по синхронизании в RTP. Там все эти алгоритмы подробно расписаны и разжеваны. Хаос(59 знак., 06.09.2019 20:37, )
- Задачу решали применением Michael_75(443 знак., 06.09.2019 16:36)
- Вы не уточнили: у вас выборки приходят монотонно в порт или пакетами? Если первое - то дело плевое: не синхронизируйте вообще. Делайте апсемплинг, фильтрацию, децимацию по тактовой ЦАП. lloyd(258 знак., 06.09.2019 16:07 - 16:12)
- Монотонно пакетами. Накопилось отсчётов на полубуфер - отправляю. Отправка каждые 2 мс. - Alt@ir(06.09.2019 16:27)
- А почему не посмотреть как сделано VoIP. И сделать аналогично voice over RS-485. - kaf1(06.09.2019 11:41)
- Или совсем "в лоб" - купить MEMS-генераторы на 1,5 PPM (сильно подешевели в последнее время) и хрен с ним, с потерей отсчета раз в полчаса. - Сидоргек(06.09.2019 11:06)
- Можно пример такого mems ? - sav6622(06.09.2019 11:37)
- Что-то типа Abracon ASTX-13, только с покупкой могут быть проблемы. Мы 10ppm Майкрочиповские используем, те точно продаются. - Сидоргек(06.09.2019 11:57, ссылка)
- 10 ppm не интересно, а вот 1-2 ppm уже дело... проблемы изза санкций ? - sav6622(06.09.2019 12:47)
- Digikey: Хаос(318 знак., 06.09.2019 18:47, )
- Опередил :) Это стандартные RF опорники, их любят, в частности, производители GNSS приемников. За счет массовости они имеют локальный минимум цены. Неприятность в том, что массовые и дешевые модели имеют Clipped Sine Wave выход, так что надо Evgeny_CD(90 знак., 06.09.2019 19:43)
- Не болтайте ерундой! :) Хаос(591 знак., 06.09.2019 20:24, )
- Есть такая мысль, но это надо внимательно проверять - какая амплидута стабилизируется в генераторе, насколько этот Clipped Sine Wave ей соответствует. Но попробовать стоит, мысль дельная. - Evgeny_CD(06.09.2019 20:26)
- Пробовали и не раз. И даже подкючали ко входу FPGA. Никаких проблем. - Хаос(06.09.2019 20:32, )
- Спасибо - Evgeny_CD(06.09.2019 21:08)
- Пробовали и не раз. И даже подкючали ко входу FPGA. Никаких проблем. - Хаос(06.09.2019 20:32, )
- Есть такая мысль, но это надо внимательно проверять - какая амплидута стабилизируется в генераторе, насколько этот Clipped Sine Wave ей соответствует. Но попробовать стоит, мысль дельная. - Evgeny_CD(06.09.2019 20:26)
- TLV3501AIDBVR -> $1.3 катушками. -> Компаратор как пример. - Evgeny_CD(06.09.2019 19:54, ссылка)
- Не болтайте ерундой! :) Хаос(591 знак., 06.09.2019 20:24, )
- Опередил :) Это стандартные RF опорники, их любят, в частности, производители GNSS приемников. За счет массовости они имеют локальный минимум цены. Неприятность в том, что массовые и дешевые модели имеют Clipped Sine Wave выход, так что надо Evgeny_CD(90 знак., 06.09.2019 19:43)
- Digikey: Хаос(318 знак., 06.09.2019 18:47, )
- 10 ppm не интересно, а вот 1-2 ppm уже дело... проблемы изза санкций ? - sav6622(06.09.2019 12:47)
- Что-то типа Abracon ASTX-13, только с покупкой могут быть проблемы. Мы 10ppm Майкрочиповские используем, те точно продаются. - Сидоргек(06.09.2019 11:57, ссылка)
- Можно пример такого mems ? - sav6622(06.09.2019 11:37)
- А так: На приёмной стороне буфер миллисекунд на 100, звук воспроизводим с задержкой на полбуфера. Ессно, через некоторое время буфер переполнится или опустошится. Что бы этого не происходило, во время пауз добавляем или убираем скоко-то отсчетов, Сидоргек(149 знак., 06.09.2019 11:02)
- А в чем проблема не понимаю, есть лишнее данное - дропайте, есть недостающее - подавайте предыдущее. Так, скидыванием по одной выборке, вы звук вообще не исказите. - Ralex(06.09.2019 10:46)
- Когда-то пробовал, слышно щелчки. - Сидоргек(06.09.2019 10:54)
- Да хз какие щелчки, это тангента рации, звук 8 бит 8 кГц, зарезать его ФНЧ по самое этосамое и всё. - Ralex(06.09.2019 11:07)
- Когда-то пробовал, слышно щелчки. - Сидоргек(06.09.2019 10:54)
- Никак не синхронизируйтесь. Используйте преобразователь частот дискретизации. Готовые чипы тут: Nikolay_Po(840 знак., 06.09.2019 10:42, ссылка)
- Стандартное решение - передавать заведомо быстрей, чем нужно. На приемной стороне буфер из двух половин, пока из одной воспроизводится, другая заполняется из линии. Как только воспроизведено все, половинки меняются местами. - Yurasvs(06.09.2019 08:52)
- Это не решит проблему лишних Хаос(56 знак., 06.09.2019 09:19, )
- Клок передатчика должен быть заведомо быстрее приемника. Передавать пакетами с подтверждением получения. - Yurasvs(06.09.2019 11:49 - 12:36)
- Ок. Передал я быстро. Положил в буфер для воспроизведения. Буфер опустел, а данных новых еще нет. Потому что тактовая АЦП немного меньше тактовой ЦАП. Что делать? - Alt@ir(06.09.2019 14:20)
- Наоборот. Цап должен быть медленнее, чем скорость пакетов. Буфер разбит на 2 половины. При старте заполняем весь, одновременно с заполнением начинаем воспроизводить. Как только воспроизвели половину буфера, дали запрос передатчику на заполнение Yurasvs(220 знак., 06.09.2019 15:31)
- ОК. АЦП работает на частоте 8100 Гц и его НИКАК не остановить! Хаос(283 знак., 06.09.2019 15:52, )
- АЦП должен работать на той же частоте, что и ЦАП. Вам же не нужно изменение тональности голоса? А вот канал передачи быстрее, то есть буфер в передатчике тоже понадобится. - Yurasvs(06.09.2019 16:01)
- Не может АЦП работать на той же частоте, что и ЦАП!!! У них разные задающие генераторы! Это условие задачи! Всё, точка! - Хаос(06.09.2019 16:04, )
- Будем говорить на близких, насколько возможно, частотах. Так пойдет? Если бы все делали асинхронный реклок так, как здесь предлагают, о высоком качестве воспроизведения онлайн аудио и видео можно было бы забыть. Стоп, посмотрел еще раз условие Yurasvs(59 знак., 06.09.2019 16:07 - 16:14)
- Посмотрите как работает RTP. Хаос(455 знак., 06.09.2019 16:32, )
- Будем говорить на близких, насколько возможно, частотах. Так пойдет? Если бы все делали асинхронный реклок так, как здесь предлагают, о высоком качестве воспроизведения онлайн аудио и видео можно было бы забыть. Стоп, посмотрел еще раз условие Yurasvs(59 знак., 06.09.2019 16:07 - 16:14)
- Не может АЦП работать на той же частоте, что и ЦАП!!! У них разные задающие генераторы! Это условие задачи! Всё, точка! - Хаос(06.09.2019 16:04, )
- АЦП должен работать на той же частоте, что и ЦАП. Вам же не нужно изменение тональности голоса? А вот канал передачи быстрее, то есть буфер в передатчике тоже понадобится. - Yurasvs(06.09.2019 16:01)
- ОК. АЦП работает на частоте 8100 Гц и его НИКАК не остановить! Хаос(283 знак., 06.09.2019 15:52, )
- Наоборот. Цап должен быть медленнее, чем скорость пакетов. Буфер разбит на 2 половины. При старте заполняем весь, одновременно с заполнением начинаем воспроизводить. Как только воспроизвели половину буфера, дали запрос передатчику на заполнение Yurasvs(220 знак., 06.09.2019 15:31)
- Ок. Передал я быстро. Положил в буфер для воспроизведения. Буфер опустел, а данных новых еще нет. Потому что тактовая АЦП немного меньше тактовой ЦАП. Что делать? - Alt@ir(06.09.2019 14:20)
- Клок передатчика должен быть заведомо быстрее приемника. Передавать пакетами с подтверждением получения. - Yurasvs(06.09.2019 11:49 - 12:36)
- Это не решит проблему лишних Хаос(56 знак., 06.09.2019 09:19, )
- У меня звук идет от аудиокодека, кодек подключен по I2S и он жестко привязан к тактовой частоте опорного генератора, т.е. посередине менять не могу, только сам опорный генератор. RS-485 принципиален. - Alt@ir(06.09.2019 08:09)
- Не понимаю в чем проблема. Принял байт - вывел в ЦАП. УАРТы сами между собой синхронизуются (за счет стопового бита). Прерывание по каждому байту для м AlexBi_(28 знак., 06.09.2019 08:09, )
- ЦАП сидит на I2S. В этом проблема. Он ВСЕГДА что то выводит. А не по запросу. - Alt@ir(06.09.2019 08:16)
- Все равно не понимаю в чем проблема. Сделать для I2S повышенную тактовую, что бы за время приема байта по RS485 байт в ЦАП уходил с гарантией. Тактовая для ЦАП получится с паузами, но наверное это не критично. - AlexBi(06.09.2019 11:38)
- Можно I2S преобразовать в манчестер и прямо в драйвер 485. Это на простой логике делается, с обратным преобразованием повозиться придется. На ПЛД делал для видео потока, для аудио и проца хватит. Схему кодера дать могу. - Visitor(06.09.2019 08:25 - 08:35)
- ЦАП сидит на I2S. В этом проблема. Он ВСЕГДА что то выводит. А не по запросу. - Alt@ir(06.09.2019 08:16)
- Если сэмл лишний - выкинуть, если не хватает - скопировать последний. На 8 бит звуке не думаю, что будет резать слух. 1 сэмл/сек на 8 кГц будет при расхождении генераторов ±0.000125 . Можете с аппроксимацией заморочиться. - Dingo(06.09.2019 07:38)
- Делал селекторную связь RS485/Ethernet. Качество отличное. Буфер на полсекунды звука на приеме. Делится на 4 секции. Воспроизводим при заполнении 2-х секций. Если к следующему воспроизведению занята всего одна, то чуть медленее темп. Три - driver_gv(342 знак., 06.09.2019 07:36)
- Я делаю выносную гарнитуру для радиостанции, там пол секунды нельзя ждать - очень заметно при быстром радиообмене. И соответсвенно вопрос - темп как менять? - Alt@ir(06.09.2019 07:41)
- Зачем вообще кодеки, АЦП и ЦАП? Получаешь ШИМ (сдвоенный опер), и гони бинар чем угодно, тем же 485. Декодер - RC цепочка. - bnb62(06.09.2019 11:30)
- Ну сделайте буфер меньшего размера. Для 485 точка-точка даже 20-50mS будет достаточно. Для Ethernet не менее 300 - 350 mS (если через мир). Локалка 50-100 . Темп - прерывание таймера , считавшего от какого - то числа, задаваемого в этом driver_gv(156 знак., 06.09.2019 07:51)
- У меня ЦАП на I2S сидит. И понемногу его тактовую я могу контролировать только изменением частоты основного опорного генератора. RS-485 принципиален, но это не важно. Протокол не поможет. - Alt@ir(06.09.2019 08:26)
- Так тактируйте его от этого таймера. - driver_gv(06.09.2019 21:40)
- Буферизация также позволит в этом потоке не только звук гнать, но и служебные данные. - driver_gv(06.09.2019 07:55)
- У меня ЦАП на I2S сидит. И понемногу его тактовую я могу контролировать только изменением частоты основного опорного генератора. RS-485 принципиален, но это не важно. Протокол не поможет. - Alt@ir(06.09.2019 08:26)
- Вам принципиально RS-485? С год назад или больше Evgeny_CD очень часто упоминал самосинхронизирующиеся протоколы -> . Например - передача шириной импульса. Но опять же, это решение вряд ли в каждом МК, надо таймерах/дрыгногой или на CPLD/FPGA. - Dingo(06.09.2019 07:47, ссылка)
- Я делаю выносную гарнитуру для радиостанции, там пол секунды нельзя ждать - очень заметно при быстром радиообмене. И соответсвенно вопрос - темп как менять? - Alt@ir(06.09.2019 07:41)
- Заранее генерируем избыточность. Evgeny_CD(554 знак., 06.09.2019 20:24)