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

 
 
> Фронты входного сигнала в EPM7160STC-6, глючит счетчик
vikrus
сообщение Mar 30 2006, 08:28
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 9-03-06
Из: Novgorod the Great
Пользователь №: 15 082



Добрый день !
Подскажите в чем может быть дело ?
ПЛИС MAX EPM 7160STC 100-6 используется в качестве делителя частоы, внутри счетчик на ЛПМ функции.
Тактовая частота 10 Мгц.
Входная частота 10 кГц.
Входной сигнал синус проходит через оптопару потом идет в виде меандра в ПЛИС
На выходе ПЛИС наблюдаем дрожание сигнала и различные частоты но не те что нужно, зависит от амплитуды входного сигнала, если подать меандр то все нормально.
Какие существуют ограничения на фронты входных сигналов ?
Как можно выйти из ситуации без использования триггера шмита?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Apr 5 2006, 05:14
Сообщение #2


Гуру
******

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



Цитата(vikrus @ Mar 30 2006, 12:28) *
Добрый день !
Подскажите в чем может быть дело ?
ПЛИС MAX EPM 7160STC 100-6 используется в качестве делителя частоы, внутри счетчик на ЛПМ функции.
Тактовая частота 10 Мгц.
Входная частота 10 кГц.
Входной сигнал синус проходит через оптопару потом идет в виде меандра в ПЛИС
На выходе ПЛИС наблюдаем дрожание сигнала и различные частоты но не те что нужно, зависит от амплитуды входного сигнала, если подать меандр то все нормально.
Какие существуют ограничения на фронты входных сигналов ?
Как можно выйти из ситуации без использования триггера шмита?


Скажу Вам так - ответов много и все неправильные!
Делается все гораздо проще цифровым методом. Внутри ставите сдвиговый регистр на частоте 10 Мгц. Его глубина определяется длительностью импульсов помехи, которые могут быть на фронтах. Далее ставится RS-триггер. Если в сдвиговом регистре N нулей подряд, то это значит что сигнал идет на R
вход триггера, если N единиц подряд - то на S.
Можно сделать и "круче". Т.е. реверсивный счетчик и схему сравнения с порогом. Выше верхнего порога - 1, ниже нижнего - 0. При таком варианте из входных данных будут фильтроваться одиночные импульы помехи.
Итог: в программируемой логике надо все делать цифровое, синхронное и не "жалеть патронов".
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Shamil
сообщение Apr 5 2006, 08:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631



Цитата(iosifk @ Apr 5 2006, 11:14) *
Можно сделать и "круче". Т.е. реверсивный счетчик и схему сравнения с порогом. Выше верхнего порога - 1, ниже нижнего - 0. При таком варианте из входных данных будут фильтроваться одиночные импульы помехи.

В дополнение:
Пример реализации такого фильтра:

Код
//
//  Схема фильтрации сигнала с линии, и выделения фронтов.
//
//  Представляет собой реверсивный счетчик, с заданной разрядностью (параметр Width),
//  который считает в сторону увеличения при единице на InData до достижения
//  максимального значения, и блокируется.
//  При нуле на InData считает в сторону уменьшения, с заданным шагом (DecrementStep),
//  до достижения состояния 0, и блокируется.
//
//  При максимальном значение, если выходные данные равны нулю, выдается единица
//  на eDataFront (при единице на eClk), и происходит изменение выходных данных на единицу.
//
//  В состоянии 0, если выходные данные равны единице, выдается единица
//  на eDataFront (при единице на eClk), и происходит изменение выходных данных на ноль.
//
module DataFilter(
    input Clk,          /* Системная высокочастотная тактовая (например 10 МГц) */
    input nInit,        /* Асинхронный сброс */
    input eClk,         /* Разрешение тактирования по Clk (если устраивает работа на частоте Clk, то поставить в единицу) */
    input InData,       /* Входной сигнал */
    output eDataFront,  /* Признак изменения выходного сигнала по ближайшему фронту Clk, с eClk=1 */
    output reg OutData  /* Выходной сигнал, привязанный к фронту Clk, с eClk=1 */
);

parameter Width = 5;
parameter DecrementStep = 1;

    wire [Width-1:0]CntMax = (1<<Width)-1;

    reg [Width-1:0]Cnt; // Реверсивный счетчик.

    assign eDataFront = ((Cnt < DecrementStep && OutData != 0) ||
                         (Cnt == CntMax && OutData == 0)) && eClk;  // Импульсы фронтов входного сигнала


    always @(negedge nInit or posedge Clk)
        if(!nInit)
      begin
        OutData <= 1;
        Cnt <= 0;
      end
        else
        if(eClk)
          begin
            if(Cnt < CntMax && InData)              // Условие для инкремента
                Cnt <= Cnt + 1;

            if(Cnt >= DecrementStep && !InData)     // Условие для декремента
                Cnt <= Cnt - DecrementStep;

            if(eDataFront)
                OutData <= (Cnt == CntMax? 1 : 0);  // Изменение текущего значения
          end

endmodule
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vikrus   Фронты входного сигнала в EPM7160STC-6   Mar 30 2006, 08:28
- - Mad Makc   Как мне кажется, выша проблема в том,что вы фронт ...   Mar 30 2006, 14:44
- - Gate   Ставьте оптопару с цифровым выходом - дрожания не ...   Mar 30 2006, 14:55
- - vikrus   а подскажите тогда тип оптопары ? сейчас стоит HCP...   Apr 4 2006, 12:56
- - AlHakim   посмотри HCPL2231 - выход тр. Шм, может быть подой...   Apr 4 2006, 17:34
- - Alex11   Поскольку там оптрон - транзистор с открытым колле...   Apr 4 2006, 21:18
- - Iouri   можно еще попробовать сделать тригер шмита внутри ...   Apr 5 2006, 00:06
- - Krys   нафига вам "внешний" триггер Шмидта? Это...   Apr 5 2006, 02:30
||- - iosifk   Цитата(Shamil @ Apr 5 2006, 12:03) Цитата...   Apr 5 2006, 08:28
|- - Krys   Цитата(iosifk @ Apr 5 2006, 12:14) Скажу ...   Apr 6 2006, 02:44
|- - iosifk   Цитата(Krys @ Apr 6 2006, 06:44) Цитата(i...   Apr 6 2006, 05:48
|- - Krys   Цитата(iosifk @ Apr 6 2006, 12:48) Цитата...   Apr 6 2006, 07:35
|- - iosifk   2 Krys Вот что Вы пишете: "Если сравниваются ...   Apr 6 2006, 08:13
- - sazh   Исходя из своего советского опыта В очередной раз ...   Apr 6 2006, 08:18
|- - iosifk   Цитата(sazh @ Apr 6 2006, 12:18) Исходя и...   Apr 6 2006, 08:41
|- - Shamil   Цитата(sazh @ Apr 6 2006, 14:18) Исходя и...   Apr 6 2006, 10:09
- - sazh   Все правильно. Чем дальше обсуждаем, тем больше ог...   Apr 6 2006, 11:07
- - vikrus   Люди !!! Инженеры !!!...   Apr 10 2006, 11:17
- - Gate   Если отвечать конкретно по теме: 1. Насколько я по...   Apr 10 2006, 13:34


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

 


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


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