LINUX.ORG.RU

Согласование уровней на высокой частоте

 , ,


0

4

Имеется микросхема USB PHY. Обмен данными с ней обеспечивается по 8-битному параллельному интерфейсу на частоте 60 МГц (как раз получается 480 МБит/сек - максимальная скорость USB 2.0) с уровнями напряжений 1.8В. Имеется китайская плата с Altera Cyclone VI. Там все пины VDDIO всех банков соединены со стабилизатором на 3.3В. Соответственно, ПЛИС может выдавать только это напряжение. Можно, конечно, заказать отдельно чип ПЛИС, изготовить свою плату, но это долго, а научиться работать с USB хочется уже сейчас. Значит, нужно как-то согласовать уровни. Всё, что я знаю, это, что можно сделать резистивный делитель. Например, на резисторах 1 кОм и 1.2 кОм. В таком случае, когда передаёт ПЛИС её выходное напряжение поделится и получатся нужные 1.8В. А когда будет передавать данные микросхема, то полное напряжение с её ножки пойдёт на ПЛИС, просто через резистор 1 кОм.

Вопрос только в том, как поведёт себя резистивный делитель на такой частоте. Думается мне, что скин-эффект и индуктивность проводов будет заметна на 60 МГц. Какой номинал резисторов следует взять для делителя. Полная длина соеднения между одной ножки USB PHY и одной ножки ПЛИС (с учётом всех дорожек на обеих платах и соединительных проводов) - не более 10 см.

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

Да вроде нормально всё должно быть, завал фронтов приемлимый. Но лучше потыкать осциллографом, и возможно уменьшить номиналы делителя. А ещё лучше взять ams1117 на 1.8В и перепаять.

ip ★★★★
()
Ответ на: комментарий от ip

Там 3.3В не только на ПЛИС идут, но и на осциллятор на 50 МГц, а ещё микросхему флешпамяти с конфигурацией ПЛИС. Они могут не заработать от 1.8В.

Кстати, дополнительный вопрос: если я выставлю I/O Standard 1.8В в параметрах ножек ПЛИС, однако реально на неё будет идти 3.3В, она будет нормально воспринимать сигналы уровня 1.8В?

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 2)

Вопрос только в том, как поведёт себя резистивный делитель на такой частоте. Думается мне, что скин-эффект и индуктивность проводов будет заметна на 60 МГц

Думать надо не про скин-эффект, а про завал фронтов. 1кОм это ИМХО многовато, т.к. в соединении с паразитной ёмкостью шины получится отличный RC-фильтр НЧ.

no-such-file ★★★★★
()

В общем, в итоге заказал микросхему согласования уровней, которая точно умеет нужную скорость.

А пока один упоротый вопрос: можно ли реализовать USB High Speed (Full Speed и Low Speed само собой разумеется, что можно) на Altera EP4CE10F17? Я с PLL на ней успешно получал частоты до 650 МГц (стабильно тактировалась небольшая внутренняя логика без зависаний и перезагрузок, которые начинались, если попытаться получить частоту выше). Значит и 480 МГц получится. Вопрос, конечно, в том может ли на такой частоте ПЛИС дрыгать ножками... Надо же как-то занять себя пока что :-)

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)

С делителем ничего не выйдет, во-первых потому что шина двунаправленная, во-вторых сильно увеличится выходное сопротивление, что приведет к завалу фронтов (учитывая входную емкость приемника). А если поставить низкоомный делитель, то не потянет выходной буфер передатчика.

Нужно ставить двунаправленный согласователь, тем более в ULPI есть сигнал DIR, который указывает направление передачи по шине.

можно ли реализовать USB High Speed (Full Speed и Low Speed само собой разумеется, что можно) на Altera EP4CE10F17

Реализовать можно, но работать не будет.

Хотя, категорично так нельзя сказать. Если найти преобразователь уровней USB<->LVDS, взять самый быстрый циклон, то может быть потянет.

Puzan ★★★★★
()
Последнее исправление: Puzan (всего исправлений: 1)
Ответ на: комментарий от Puzan

Если найти преобразователь уровней USB<->LVDS

USB в диференциальном режиме так сильно будет отличаться от LVDS? А в single-ended режиме могут работать вообще обычные ножки (уровень же как раз 3.3В). Ножки ПЛИС, в том числе в дифиренциальном режиме, могут работать в двунаправленном режиме. Тогда получается так:

Передача данных в режиме Single Ended: Обычные ножки в режиме выхода, Дифенциальный настроен на вход, чтобы не влиять на состояние линии.

Приём данных в режиме Single Ended: Все ножки в режиме входа. Данные читаются с обычных ножек, диференциальный вход игнорируется.

Передача данных в диференциальном режиме: Обычные ножки в режиме входа, чтобы не влиять на линию, используется диференциальный выход.

Приём данных в диференциальном режиме: Обычные ножки в режиме входа, чтобы не влиять на линию, но игнорируются. Используется диференциальный вход.

Так что, по-моему, с вводом-выводом проблем быть не должно. Меня волнует возможность работы на частоте 480 МГц, хотя внутренняя логика моей ПЛИС точно работает на частотах вплоть до 650 МГц.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Нужно восстановить клок во входящем потоке, можно ли это сделать с помощью циклоновской PLL? Если нет, но нужно использовать трансивер LVDS, который это умеет.

Надо еще посмотреть что еще кроме потока данных нужно выдавать в линию. На сколько я помню, при подключении устройства нужно как-то особо дергать линии, чтобы handshake-нуться с ответной частью.

Меня волнует возможность работы на частоте 480 МГц, хотя внутренняя логика моей ПЛИС точно работает на частотах вплоть до 650 МГц.

Вообще, по даташиту, циклон IV (самый быстрый) может работать на частоте до 500МГц. Если конкретно твой экземпляр может на 650, не факт, что другой сможет.

В принципе, возможно производительности хватит, всё же там нужно только десериализовать поток, потом уже можно и медленней работать. Но это игра на грани, ИМХО.

В любом случае, раз у тебя есть рабочий корпус, тебе и флаг в руки, можешь попробовать.

Puzan ★★★★★
()
Ответ на: комментарий от Puzan

Хм... перечитал ещё раз спецификацию USB. Передача данных в режиме High speed осуществляется только по диференциальному каналу, а Full Speed требует частоту 12 МГц, так что с ним то проблем не будет. LVDS, пока он не нужен, можно будет переключать в режим входа, чтобы не мешал.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)

// я нубас

а согласовывать уровни оптронами?

pihter ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.