реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Генерация частот не кратных входной, ищу идеи, Spartan 6
akorud
сообщение Aug 9 2011, 20:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Здравствуйте, не уверен что форум правильный, но попробую.
Задача: делаю модулятор, символьная скорость 364kHz, частота дискретизации ЦАП 364*56 = 20384kHz.
ПЛИС Spartan 6. Проблема в том, что символьная скорость должна точно соответствовать входному потоку битов, а с ним идут два клока - 1024kHz и 8192kHz. Ума не приложу как все это синхронизировать. НОК(8192, 20384) > 5GHz - PLL не потянет.
Пока единственная идея - синхронизировать только символьную скорость (364 из 1024 легко на DCM можно сделать) и где-то в процессе интерполяции делать переход в другой клоковый домен - т.е. частоту дискретизации ЦАП генерировать локальным генератором.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 10 2011, 04:10
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



ресамплер дробный поставить и не париться %)


--------------------
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Aug 10 2011, 06:03
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(akorud @ Aug 10 2011, 02:51) *
Здравствуйте, не уверен что форум правильный, но попробую.
Задача: делаю модулятор, символьная скорость 364kHz, частота дискретизации ЦАП 364*56 = 20384kHz.
ПЛИС Spartan 6. Проблема в том, что символьная скорость должна точно соответствовать входному потоку битов, а с ним идут два клока - 1024kHz и 8192kHz. Ума не приложу как все это синхронизировать. НОК(8192, 20384) > 5GHz - PLL не потянет.
Пока единственная идея - синхронизировать только символьную скорость (364 из 1024 легко на DCM можно сделать) и где-то в процессе интерполяции делать переход в другой клоковый домен - т.е. частоту дискретизации ЦАП генерировать локальным генератором.

DDS не подойдет?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Aug 10 2011, 06:22
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата(akorud @ Aug 10 2011, 00:51) *
НОК(8192, 20384) > 5GHz - PLL не потянет.

Внешняя PLL?
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 10 2011, 06:25
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(des00 @ Aug 10 2011, 06:10) *
ресамплер дробный поставить и не париться %)

Если можно вопрос - в каком именно месте? Я только учусь, математику процесса знаю (модулятор заработал с первого раза), но вот практики маловато.
На сегодня модулятор работает от локального генератора и FIFO на стыке генератора символов и модулятора регулярно или переполняется или опустошается - как ветер подует.

Цитата
DDS не подойдет?

DDS естественно есть, проблема в том чем его тактировать. Задача не в генерации выходного сигнала, а в получении CLK или CE для генератора sm.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 10 2011, 08:19
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(akorud @ Aug 10 2011, 00:25) *
Если можно вопрос - в каком именно месте?

я ставлю на выходе демодулятора перед ЦАПОМ. Это позволяет мне, правда за счет усложнения модулятора (возможно вам потребуется его правка), работать на любой частоте ЦАП. в частности делал модемы с ресамплингом на 14/15, 49/50, 20/21. %)
Найдите описание на чип от фирмы Provigent, там из блок схемы поймете как делать и куда ставить ресамплер.

Цитата
На сегодня модулятор работает от локального генератора и FIFO на стыке генератора символов и модулятора регулярно или переполняется или опустошается - как ветер подует.

потому что гун локальный привязывать надо %)


--------------------
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 10 2011, 09:28
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(des00 @ Aug 10 2011, 10:19) *
потому что гун локальный привязывать надо %)

Так про это и вопрос - как sm.gif. Спасибо за идею, буду разбиратся.
Go to the top of the page
 
+Quote Post
petrov
сообщение Aug 10 2011, 09:36
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(akorud @ Aug 10 2011, 13:28) *
Так про это и вопрос - как.


Почему бы не передавать данные с местной частотой, главное что заведомо быстрее чем они поступают, на уровне протокола делать пустые вставки пока очередная порция данных не накопилась.
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 10 2011, 09:41
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(petrov @ Aug 10 2011, 11:36) *
Почему бы не передавать данные с местной частотой, главное что заведомо быстрее чем они поступают, на уровне протокола делать пустые вставки пока очередная порция данных не накопилась.

Нельзя. Данные - звук. И приемник (не наш) его играет в реальном времени. Так что слушатели не поймут sm.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Aug 10 2011, 10:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(akorud @ Aug 10 2011, 13:41) *
Нельзя. Данные - звук. И приемник (не наш) его играет в реальном времени. Так что слушатели не поймут sm.gif


Почему? Слушаете вы к пример ролик на ютубе, ведь клок условно с жёсткого диска гугла не передаётся через всё множество модемов на пути до вас, звук играется с местным генератором на вашей звуковой карте. ИМХО не лучший вариант клоки тащить через все модемы. Лучше сделать чтобы модемы работали со своими генераторами, а звук только в конце ресемплировать по указателю заполнения FIFO.
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 10 2011, 10:35
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(petrov @ Aug 10 2011, 12:11) *
Почему?

Приемник не мы делаем. И работает он как работает - изменить нельзя. Ни символьную скорость ни то, что по получении первых N отсчетов начинает играть звук в реальном времени.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 10 2011, 11:07
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(petrov @ Aug 10 2011, 05:11) *
Почему? Слушаете вы к пример ролик на ютубе, ведь клок условно с жёсткого диска гугла не передаётся через всё множество модемов на пути до вас, звук играется с местным генератором на вашей звуковой карте. ИМХО не лучший вариант клоки тащить через все модемы. Лучше сделать чтобы модемы работали со своими генераторами, а звук только в конце ресемплировать по указателю заполнения FIFO.

передача синхронного трафика по асинхронным каналам, требует более высокой пропускной способности асинхронного канала + мультиплексирование/демультиплексирование


--------------------
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Aug 10 2011, 16:31
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



akorud

Вообще говоря, если источник имеет тактирование с частотой, которая отличается от частоты тактирования в приемнике, ну хоть на 0.1%, то совершенно независимо от устройства промежуточных каналов связи Вы обречены на одно из двух: либо придется рвать поток, чтобы регулировать длину очереди на playback, либо он будет рваться сам (частота дискретизации в передатчике меньше, чем в приемнике) или, наоборот, наращивать задержку и переполнять буфера (частота дискретизации в передатчике больше, чем в приемнике). Слушатели по-любому должны будут проглотить нестыковку.

Я в свое время пошел по первому пути и подводил часы в приемнике в периоды тишины. Я думаю, что если Вы решите для себя этот вопрос, то у Вас автоматом появится схема FIFO с двумя асинхронными клоками, которое будет на одном из концов пропускать иногда такты, чтобы сбалансировать поток.

Сообщение отредактировал Hoodwin - Aug 10 2011, 16:34
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 10 2011, 19:58
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Hoodwin
У нас есть гарантия что если мы не отбросим ни одного бита входного потока и не будем делать пауз из-за слишком быстрой передачи - все будет хорошо, приемник разберется.
Отсюда и начальный вопрос, благо те клоки даже не надо восстанавливать - они идут на отдельных линиях.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 15 2011, 08:29
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



8192 пропустить чере 2 DCM (13/16 и 7/2), и потом через PLL 7/8 (чтобы она немного джиттер от DCM отчистила). 8192*13*7*7/16/2/8=20384.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th July 2025 - 13:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01484 секунд с 7
ELECTRONIX ©2004-2016