Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятки с EPM240
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
debian
Доброго времени суток
Проблема такова, есть CPLD EPM240, внутри реализрван последоаательный сдвиговый регистр
Имеем 2 входных сигнала clk, reset
Один выход data

Эти сигнал идут в микроконтроллер, ноги reset и clk контроллера имеют выход ОК и подтянуты к питанию 5в резисторами 5.1к
Учитывая разные амплитуды логических ровней собран преобразователь уровней на полевых транзисторах .

После подачи питания контроллер дергает ресет, затем подает на вывод clk 32 импульса, cpld выдает 4 байта. Ну как выдает, мусор выдает. В делал симуляцию в квартусе - там все нормально.

Проверил амплитуды логических ровней - тоже все четко, вход 5 в выход 3.3 и наоборот, но не работает

Для проверки пошел по другому пути, взял проц на 3.3 в сконфигурировал выводы clk, reset как PP и все заработало

Выходит дело во времени нарастания сигнала на входах???
При OK Ton - 1.5мкс Toff - 200нс
При РР Ton - 100нс Toff -100нс
Частота clk 5кгц

По приколу на тестовый проц который 3.3в поставил преобразователь уровней для проверки последнего -тоже все работает как часы

Включал триггеры шмидта по входу CPLD эффекта не дало


Не пойму в чем дело... wacko.gif
Golikov A.
еще может время распространения, то есть вы можете с микрухой видеть клок в разное время и как следствие вы щелкаете данные пока микруха их еще не выдала. ну или банально ножки перепутали и ничего не работает, потому что частота крайне низкая. Ну или фронты не достаточные крутые и триггера хватают дребезг или мету
Jury093
Цитата(debian @ Mar 27 2017, 01:41) *
Учитывая разные амплитуды логических ровней собран преобразователь уровней на полевых транзисторах .
После подачи питания контроллер дергает ресет, затем подает на вывод clk 32 импульса, cpld выдает 4 байта. Ну как выдает, мусор выдает. В делал симуляцию в квартусе - там все нормально.
Проверил амплитуды логических ровней - тоже все четко, вход 5 в выход 3.3 и наоборот, но не работает
Для проверки пошел по другому пути, взял проц на 3.3 в сконфигурировал выводы clk, reset как PP и все заработало
По приколу на тестовый проц который 3.3в поставил преобразователь уровней для проверки последнего -тоже все работает как часы

раз уж осцилл не упоминается, то сделайте простейшую цепь:
выход EPM на вход канала левелшифтера, его вход завернуть через инвертор серии HC/HCT на второй канал и выход второго канала на контакт EPM
в EPM сформировать 5кГц в сторону левелшифтера и принимать на делитель на 5000, сигнал с которого можно смотреть хоть светодиодом..

вероятно у вас проблемный узел левелшифтера - либо запитан нет так, либо повернут не так, либо транзисторы с большой емкостью - отсюда заваленные фронты и неработоспособность..
debian
Спасибо за ответы
Вопрос, а почему сильно пологие фронты могут вызвать проблему? На входе ведь стоит триггер шмидта или я чего-то не понимаю?
Сделано как, по переднему фронту reset происходит сброс, по переднему фронту clk плис выставляет на выходе данные, а контроллер опускает clk и принимает бит данных. Тоесть тут все надежно и пепехлеста нет

Фронт/Спад -100нс проблем нет
Фронт/Спад - 1.8мкс/200нс плис выдает мусор

В обоих случаях длительность импульса порядка 40мкс

Скорее всего я где-то лажанул, теперь найти бы где. ...сегодня проверю ваши советы, спасибо за подсказки! sm.gif

iosifk
Цитата(debian @ Mar 27 2017, 13:39) *
Фронт/Спад - 1.8мкс/200нс плис выдает мусор

Если в CPLD есть клоки и свободные ячейки, то можно в ней сделать небольшой фильтр по входному клоку...
Либо уменьшить резистор и соотв. уменьшить 1.8мкс....
debian
Внешних клоков нет, но мысль я понял, сегодня проверю

Толбкл не понимаю, как пологие фронты влияют на работу поиски? При пологом фронте можеь быть несколько сработок?
Jury093
Цитата(debian @ Mar 27 2017, 14:35) *
Толбкл не понимаю, как пологие фронты влияют на работу поиски? При пологом фронте можеь быть несколько сработок?

цифровая техника "не любит" пологие фронты и это оговаривается в параметрах на чипы, эффекты могут быть разнообразные..
в доках даже на самую примитивную логику прописаны параметры крутизны и длительности, несоблюдение которых выводит чип за границы штатной эксплуатации..
iosifk
Цитата(debian @ Mar 27 2017, 15:35) *
Толбкл не понимаю, как пологие фронты влияют на работу поиски? При пологом фронте можеь быть несколько сработок?

На самом деле, пологий фронт - это на только плавно повышающееся напряжение. Но на него еще накладываются более высокие гармоники от помех и отражений в линии. И для ПЛИС все получается как "зазубренный" участок пилы-ножевки. И эти зубья возможно перекрывают гистерезис входного триггера..
Я не помню кто из производителей очень давно рисовал как после инвертора вытащить сигнал наружу и на резисторах сделать цепь гистерезиса для входного каскада... Но я обычно в ПЛИС делаю подавление в цифре.
debian
Понял, спасибо за разъяснения.
А в каком документе можно ознакомится с таймингами входными? В Хендбуке по MAX II не нашел
debian
Господа, подключил сигналы RESET и CLK через 74HC08 и все стало работать
нет, ну кто бы мог подумать 05.gif

Для проверки решил вернуть все обратно как было, взял 2 регистра tR tC
и сделал в местах обработчика инверсию:
tR<=~tR;
tC<=~tC;

стало видно, что в некоторых случаях переключения вообще не было О.о магия, пологий фронт есть(1,8мкс), переключения нет
Изучаю матчасть...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.