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

 
 
> Измерение фазы двух меандров
sergey sva
сообщение May 19 2015, 08:13
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Как реализовать измерение фазы двух меандров,может есть готовые модули?, искал на опенкоре подходящего не нашел или не по тем словам искал.
Два сигнала меандр частота 10кгц поступают на плис. Нужно как можно точнее измерять их фазу. Сделал счетчик, по фронту первого сигнала запускал счетчик по фронту другого останавливал, такой алгоритм работает, но сигналы поступают из аналоговой схемы не очень стабильной.
Вообщем иногда в импульсах меандра появляются провалы в середине импульса или дребезг по фронтам, часта стабильная 10кгц.
Такой алгоритм работает но ловит много мусора. Сейчас думаю как сделать, но наверно изобретаю велосипед скорее всего есть что то готовое. Может кому что встречалось на эту тему.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение May 22 2015, 12:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Благодарю вроде де бы есть положительный результат )) от 10000 отсчетов, максимум 40 шум это примерно 20мм хотел получить +-2мм. Попробую фильтрами поиграться может какие рекомендации дадите буду очень благодарен. Вначале сделал счетчик через phasedetect= sigA ^ sigB. Код простой и по времени цепи хорошо проходят. Но измерение происходит от 0 до 180 градусов а это 2,5м (
Сделал так, самому не очень нравиться и по времени не проходит, но работает. Может как то это можно упростить? Когда phasedetect ==1 счетчик считает когда 0 ждет.
Код
//----------------------------------------------------------------------//
always @(negedge CLCK) begin
    if (RESET) begin
        phasedetect = 1'b0;
          casetrig    = 3'd0;  
    end else  begin
        
          case(casetrig)
          3'd0: begin
              if(in1)begin
                  phasedetect = 1'b1;
                if(in2)begin
                    casetrig    = 3'd1;
                end else begin                    
                         casetrig    = 3'd2;
                     end                    
              end           
          end
          3'd1: begin
              if(in2==0)begin                  
                     casetrig    = 3'd2;
              end           
          end          
          3'd2: begin
              if(in2)begin
                  phasedetect = 1'b0;
                     casetrig    = 3'd3;
              end           
          end
          3'd3: begin
              if(in1==0)begin                  
                     casetrig    = 3'd0;
              end           
          end          
          default: begin
              phasedetect = 1'b0;
              casetrig    = 3'd0;
          end
          endcase               
    end//reset    
end//always
//----------------------------------------------------------------------//

Можно еще вопрос) в квартусе есть возможность настройки оптимизации что бы оптимизировал цепи в первую очередь по времени ?
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 24 2015, 07:47
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sergey sva @ May 22 2015, 15:24) *
Сделал так, самому не очень нравиться и по времени не проходит, но работает. Может как то это можно упростить? Когда phasedetect ==1 счетчик считает когда 0 ждет.

У Вас "RESET" - синхронный или все же асинхронный?

И совершенно отсутствует понятие о "блокирующих" и "не блокирующих"...
Плохо!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   Измерение фазы двух меандров   May 19 2015, 08:13
- - des00   Цитата(sergey sva @ May 19 2015, 16:13) Н...   May 19 2015, 08:22
|- - Fat Robot   В качестве фазового детектора можно использовать -...   May 19 2015, 08:40
- - sergey sva   проксорить два поступающих меандра, а как это убер...   May 19 2015, 08:38
|- - des00   Цитата(sergey sva @ May 19 2015, 15:38) п...   May 19 2015, 08:53
- - GSV0   Для работы в системах с высоким уровнем помех(ВЧ/и...   May 19 2015, 13:04
|- - Krys   Я про вот это в смысле: Цитата(GSV0 @ May 19 ...   May 28 2015, 10:56
- - GSV0   Цитата(sergey sva @ May 22 2015, 15:24) П...   May 22 2015, 16:26
- - sergey sva   Сейчас пока нет возможности снять осциллограмму. З...   May 23 2015, 13:49
- - sergey sva   Немного почитал про TimeQuest и понял что ничего н...   May 24 2015, 07:08
- - sergey sva   Синхронный сброс, по переднему фронту тактового си...   May 24 2015, 08:08
- - krux   есть "золотое правило" в верилоге: никог...   May 24 2015, 12:09
- - sergey sva   Благодарю за замечания, буду учиться. Никак не мо...   May 24 2015, 13:23
- - sergey sva   Разобрался теперь все нормально. Проблемы с переси...   May 25 2015, 15:44
- - sergey sva   Ссори на картинке опечатка,сигнал разницы межу 5 м...   May 25 2015, 17:03
- - Krys   А из какой книжки это взято? И как это работает? М...   May 28 2015, 05:21
- - GSV0   Цитата(Krys @ May 28 2015, 08:21) А из ка...   May 28 2015, 14:20
- - Krys   спасибо, бегу патентовать! ))))   May 29 2015, 03:09


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 05:52
Рейтинг@Mail.ru


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