|
преобразователь КОД-ЧАСТОТА |
|
|
|
Nov 16 2008, 15:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(barabek @ Nov 16 2008, 16:22)  Как можно И "моментально" среагировать И "не терять предыдущего". Разве это возможно? Вы привели пример : "Вот в случае если записан код для 1сек. то ЧПУ в этот момент может изменить 1000раз." Допустим такую ситуацию. Записан код на 1с. Прошло допустим 0,011 секунд. Пришел код на 10мс. Теперь возможны 2 ситуации. 1. Т.к. уже отсчитано более 10мс, перегружаемся и считаем заново (мое предложение - один из вариантов). 2. Досчитываем до 1 с, а затем переходим на новую частоту (например, Ваш вариант). Но И то И одновременно другое реализовать нельзя. ИЛИ-ИЛИ. Может я что-то не догоняю? А на счет ресурсов - так их же много  . А если у Вас нужно предусмотреть reset, то у ALTERы, например, рекомендуется все регистры сбрасывать по питанию именно в 0. Можно и в 1, но это требует дополнительных ресурсов. Это так, к слову. Я думал в таком плане. Когда приходит новый код то берется из счетчиков код и логически складываем с новым кодом и опять в счетчик, а как мы знаем лог. 1+1=1 т.е. получается в счетчике будет новый код + недосчитанный код. Наверное вот это и будет "моментальное" реагирование. Помоему должно работать, только как это аппаратно более гибко сделать?
|
|
|
|
|
Nov 19 2008, 10:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Вот у меня такая блок-схема прорисовывается. Для примера нарисовал 4разрядный преобразователь код-частота. Я конечно не симулировал эту схему, но вроде должно работать, только надо выход тоже простробировать входной частотой. Здесь как бы получается "моментальное" реагирование на входной код не теряя код в счетчике. Ваше мнение?
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 19 2008, 16:58
|
Группа: Новичок
Сообщений: 4
Регистрация: 5-03-08
Пользователь №: 35 663

|
Согласен с Dopler. Цитата(Iptash @ Nov 16 2008, 15:34)  Спасибо. Я так тоже думал, это один из вариантов.Но это тоже самое, когда код маленький счетчик долго переполняется, а в случае пока он не переполнился код допустим поменялся(резко вырос) нужно соответственно и код менять + тот код который не досчитал, а не ждать пока он досчитает. Вот это будет наверное более реальное воздействие. Это будет не реальное воздействие. Т.к. здесь используется не терминология счётчиков: досчитал и переполнился, а терминология мгновенной фазы и скорости её изменения. Соответственно быстрые изменения частоты (скорости изменения мгновенной фазы) не будут накапливать ошибку результирующей частоты. Выходным сигналом будет служить старший бит регистра сумматора.
|
|
|
|
|
Nov 19 2008, 17:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(Ed) @ Nov 19 2008, 19:58)  Согласен с Dopler. Это будет не реальное воздействие. Т.к. здесь используется не терминология счётчиков: досчитал и переполнился, а терминология мгновенной фазы и скорости её изменения. Соответственно быстрые изменения частоты (скорости изменения мгновенной фазы) не будут накапливать ошибку результирующей частоты. Выходным сигналом будет служить старший бит регистра сумматора. Как я понял, Dopler описал принцип X = X+КОД до какого то максимального значения. Т.е. чем больше код, тем быстрее досчитает до этого значения. Но мне кажется, что если по ресунку записать в регистр большой код, то счетчик тоже будет быстро переполнятся и соответственно переполнения будут быстро происходить, а это помоему тоже самое, а аппаратная реализация будет на много проще. Или же я что-то не понемаю?
|
|
|
|
|
Nov 19 2008, 19:09
|
Группа: Новичок
Сообщений: 4
Регистрация: 5-03-08
Пользователь №: 35 663

|
Цитата(Iptash @ Nov 19 2008, 20:44)  Как я понял, Dopler описал принцип X = X+КОД до какого то максимального значения. Т.е. чем больше код, тем быстрее досчитает до этого значения. Но мне кажется, что если по ресунку записать в регистр большой код, то счетчик тоже будет быстро переполнятся и соответственно переполнения будут быстро происходить, а это помоему тоже самое, а аппаратная реализация будет на много проще. Или же я что-то не понемаю? Вы же сами говорили, что преобразователь должен "правильно" себя вести в случае когда скорость изменения частоты намного выше периода выходного сигнала. Для аккумулятора фазы это будет означать лишь быстрые изменения скорости перемещения выходного сигнала из одного состояния в противоположное. Аппаратная реализация довольно проста: регистр для мгновенной фазы, регистр для кода частоты и сумматор, который синхронно с опорной частотой производит их суммирование, а результат опять сохраняет в регистре мгновенной фазы. Переполнение этого регистра не имеет значения, и эквивалентно переходу фазы с 2*Pi обратно на 0. Старший бит можно интерпретировать как знак косинуса текущей фазы: от 0 до Pi -> +1 (для лог. "1") от Pi до 2*Pi -> -1 (для лог. "0")
|
|
|
|
|
Nov 19 2008, 19:51
|
Группа: Новичок
Сообщений: 4
Регистрация: 5-03-08
Пользователь №: 35 663

|
Цитата(Iptash @ Nov 19 2008, 22:32)  Я всего лишь хочу сделать аналог ЦАПа, только здесь выход КОД-ЧАСТОТА, а в ЦАПе КОД-НАПРЯЖЕНИЕ или ТОК. Об этом и речь: код->частота. Погугли Direct Digital Synthesis (DDS).
|
|
|
|
|
Nov 19 2008, 20:22
|
Группа: Новичок
Сообщений: 4
Регистрация: 5-03-08
Пользователь №: 35 663

|
Цитата(Iptash @ Nov 19 2008, 22:54)  Хорошо. А по поводу блок-схемы что скажешь если я понятно нарисовал? Насчёт OR'ить. Посмотри что получится если производить запись одного и того же кода частоты. Особо интересен случай, когда периодичность записи кода выше требуемой выходной частоты. В этом случае выход всегда будет в "1", т.е. никакой частоты вообще. И ещё, что насчёт скваженности?
|
|
|
|
|
Nov 19 2008, 20:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(Ed) @ Nov 19 2008, 23:22)  Насчёт OR'ить. Посмотри что получится если производить запись одного и того же кода частоты. Особо интересен случай, когда периодичность записи кода выше требуемой выходной частоты. В этом случае выход всегда будет в "1", т.е. никакой частоты вообще. И ещё, что насчёт скваженности? Допустим КОД= 0001(bin) он и будет прописывать в младшем разряде 1 и все.Ну и конечно же логический + вых. счетчика. Загрузка счетчика происходит стробом, а не статично. Запись кода в основном будет выше вых. частоты. Я мысленно просимулировал эту схему, вроде накладок не должно быть.А, что на счет скваженности?. Выходной сигнал будет простробирован допустим вх. частотой.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|