AndruB 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 · Жалоба Надо было согласовать выходы EP1C12Q240I(периферия 3,3в) и процессора ATMEGA128-16AI(5в). Поскольку в Data Sheet сказано, что входа м/сх EP1C12Q240I толерантны к 5в только по чтению, то решено было попробовать самосоображающие преобразователи уровней MAX3002. По Data Sheet характеристики у этой м/сх замечательные - работа с уровнями от 1.2 до 5.5в, 10 нс задежка. Итак конфигурация платы: Контроллер Ethernet W5100 (3.3в) <-> Плис - 1ый циклон EP1C12Q240I(периферия 3,3в) <-> двунаправленный преобразователь логических уровней MAX3002EUP <-> процессор ATMEGA128-16AI(5в) мультиплексированная шина адреса/данных. Помимо мультиплексирования шины контроллера Ethernet - процессор на ПЛИС реализовано еще несколько устройств. После отладки проекта и ПО обнаружилось, что иногда ( 1бит на 1000 байт) бьются данные получаемые процессором с контроллера Ethernet. Путем долгих разбирательств был обнаружен виновник - м\сх MAX3002EUP. Питание, конденсаторы, разводка, помехи по цепям питания и земли - норма (дополнительные ёмкости, фильтры по питанию и прочие танцы с бубнами не помогают). На прилагаемом скриншоте - Work1.TIF показан момент сбоя. D14 - сигнал процессора запись/чтение 2 - один из разрядов адреса/данных на ноге процессора. На скриншоте записаны два цикла чтения буфера м/сх W5100 - первый нормальный, второй со сбоем. Видно, как после записи адреса возник сигнал чтения, по нему шины переключились в сторону процессора, данные (1) выставились на на шину. Но тут (через 20 нс) чуть вздрогнула шина процессора на какие то свои внутренние такты. В MAX3002EUP сработали ускорители, шина развернулась в сторону ПЛИС, затем развернулась обратно. Но ускорители уже не сработали и видно, как шину вытягивают только операционниники подключенные через 6 ком. Мы попытались подтягивать шину резисторами, играть временами проекта, тактами ожидания, токами сигнала. Наибольший эффект дало уменьшение в PIN Planner выходного тока контактов ПЛИС до минимального уровня. Сбои уменьшились, но не исчезли окончательно. Решили провести эксперимент - создали два тристабильных буфера, на их входы подается тактовая в противофазе, на управление тристабильным состоянием - медленно смещающиеся друг относительно друга и тактовой окна разрешения. Выходы тристабильных буферов поданы на свободные концы MAX3002EUP, которые замкнуты между собой на стороне 5в. В итоге получилось кольцо, где периодически происходит столкновение шин. Очень быстро удалось подобрать такое соотношение частот при которых появился искомый дефект. На скриншоте Test_3.3-5v.TIF видно, как после шинных столкновений одна сторона шины остаётся в 0, а с другой стороны сигнал медленно дрейфует. D15 - тактовая на вход тристабильного буфера (на второй вход - в противофазе) D14 - разрешение на первый тристабильный буфер 1 - выход первого тристабильного буфера D13 - разрешение на второй тристабильный буфер 2 - выход второго тристабильного буфера Затем мы изменили перепаяли Выходы тристабильных буферов на м/сх MAX3002EUP с питанием 3.3в и 1,8в. Все вышеупомянутые дефекты исчезли . На скриншоте Test_3.3-1.8.TIF видно, что любое столкновение шин приводит в конечном итоге к правильному результату. Резюме - 1) Надо учиться читать между строк- если сказано в Data Sheet, что типовое включение 1,8 - 3,3 значит в этом режиме она работает как написано, а при других напряжениях - как получится. 2) Больше не использовать м/сх MAX3002EUP, а брать обычный управляемый шинник с двойным питанием. Конечно у него и задержка побольше и управление надо делать, но тратить две недели на поиск подобных блох - себе дороже. Вопросы - 1) А надо ли обращать внимание на слова о толерантности к 5в только по чтению. Какая "физика" стоит за этим. Может достаточно поставить подтягивающие резисторы ? (Мы вышли из положения выкинув MAX3002 и соединив напрямую ПЛИС и процессор напрямую. Сбоев нет. Правда еше не гоняли на ТХИ.) 2) Есть ли у кого положительный/отрицательный опыт использования подобного класса преобразователей при 3.3 - 5в 3) А может мы что то не так делали? MAX3002.RAR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 · Жалоба Вы внимательно прочитали datasheet? Что вам говорят первые две строчки таблицы на второй странице? Вы учли сей(1.2V<VL<VCC=1.65..5.5) момент в своей схеме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndruB 0 24 февраля, 2009 Опубликовано 24 февраля, 2009 · Жалоба Вы внимательно прочитали datasheet? Что вам говорят первые две строчки таблицы на второй странице? Вы учли сей(1.2V<VL<VCC=1.65..5.5) момент в своей схеме? Да конечно. VL < VCC (если Вы это имели ввиду). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 ноября, 2010 Опубликовано 9 ноября, 2010 · Жалоба А надо ли обращать внимание на слова о толерантности к 5в только по чтению. Какая "физика" стоит за этим. Может достаточно поставить подтягивающие резисторы ? Попал в эту тему по внешней ссылке. Именно так я бы и делал. Прицепил бы подтягивающие резисторы, и горя не знал бы. Может, только быстродействие было бы чуть хуже, чем могло бы быть при другой схеме... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться