Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Длительность фронта внешнего тактового сигнала в FPGA
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
dima32rus
Приветствую участников форума!
Мне нужно обеспечить связь FPGA Cyclone III с контроллером семейства STM32 по интерфейсу i2c. В доке контроллера сказано, что время нарастания/спада сигнала SCL составляет ~300 нс. Можно ли от этого сигнала тактировать триггеры в ПЛИС? Смущает довольно длительное время фронтов. Согласно доке на Cyclone III, длительность фронтов неограничена, если я правильно понял. Может кто-нибудь в курсе вопроса, ато гложат меня сомнения... Считаем, что времена Tsetup/Thold выполняются и данные стабильны задолго до и после фронта SCL.
Kuzmi4
2 dima32rus
типичные времена наростания для С3 (Trise) - сотни pS(..500..), nS с хвостиком. Максимальные не указываются, но если прикинуть, то получится что {ваш Trise} ~ {пару сотен} x {типичный для С3 Trise}, вот и думайте..
В принципе, никто не запрещает вам поставить 74-ю серию чтоб подтянуть фронт, но нижняя частота старта C3 PLL это 10MHz, или около того.
EvgenyNik
Цитата(dima32rus @ Jul 16 2015, 13:39) *
тактировать триггеры в ПЛИС...
Заведите на ПЛИС более-менее стабильную частоту, с помощью которой совершайте захват шины I2C. На длинных фронтах возможны ложные срабатывания.
dima32rus
Цитата(EvgenyNik @ Jul 16 2015, 14:13) *
Заведите на ПЛИС более-менее стабильную частоту, с помощью которой совершайте захват шины I2C. На длинных фронтах возможны ложные срабатывания.

Значит, не зря сомневался. Благодарю за помощь!
iosifk
Цитата(EvgenyNik @ Jul 16 2015, 14:13) *
Заведите на ПЛИС более-менее стабильную частоту, с помощью которой совершайте захват шины I2C. На длинных фронтах возможны ложные срабатывания.

+1 поэтому рекомендую небольшой цифровой фильтрик. Т.е. фронты из 3-го состояния пологие, то ПЛИС их может нахватать много...
dima32rus
Цитата(iosifk @ Jul 16 2015, 14:46) *
Т.е. фронты из 3-го состояния пологие, то ПЛИС их может нахватать много...


Немного не понял Вашу мысль. Можно поподробнее?
iosifk
Цитата(dima32rus @ Jul 16 2015, 14:49) *
Немного не понял Вашу мысль. Можно поподробнее?


i2c работает с Z состоянием, когда и передатчик и приемник от шины отключены. Уровень при этом задается подгрузочным резистором. Вот в этом случае получаются пологие фронты сигналов... И поскольку i2c работает на 400 кГц, то для ПЛИС с их сотнями МГц такие пологие фронты - это практически как "пила"... И на нее накладываются еще всякие отражения сигналов... Так вот их-то ПЛИС и любят хватать на фронтах. И если стоит автомат, то его клинит в каком нибудь дурном состояниии...
Так понятно?
Если нет, то больше могу только в скайпе голосом....
EvgenyNik
Цитата(dima32rus @ Jul 16 2015, 14:49) *
Немного не понял Вашу мысль. Можно поподробнее?
Имелось в виду то, что длинный фронт это неопределённое состояние в течении времени, достаточного для многократного срабатывания от нормального тактирования (если бы оно было). А теперь представьте, что во-первых, сопротивление входа до какой-то степени зависит от его состояния (куда переключился) и может вгонять вход в автогенерацию, во-вторых, всякого рода шумы в питании/в земле и помехи поверх длинного фронта тоже будут восприниматься как тактовые переходы...
dima32rus
Цитата(iosifk @ Jul 16 2015, 15:04) *
Так понятно?

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