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

Простейший проект - бегущая строка. Altera EPM3256 144 ноги, плата двухсторонняя, но везде земляной полигон.
Входы: 8 бит данных; строб; начало строки.
Начало строки сбрасывает счетчик столбца на начало.
Стробируемые данные записываются синхронно, каждое в свой последующий столбец.
Выходы для каскадирования те же, только строб на выходе появляется когда полностью заполнена предыдущая строка.

В качестве экперимента, попробовали гнать данные с ARM AT91RM9200 - 66мгц на шине, вся строка сразу заработала без калих либо косяков, вне зависимости от наличия тактов задержки на успокоение силналов. Да хоть в пошаговом режиме.

Стоило перенести передачу данных на ATtiny2313 и правильной работы больше добиться не удается.
Сначала думали, что альтера плохо понимает сигналы с пятивольтовым размахом - снизили питание Тини до 3.3в. Подтягивающие резисторы на входе альтеры перепробовали и в землю и в 3.3. Пробовали диоды поставить на входе в землю и 3.3. Пробовали резисторы последовательно с шиной. Емкости фильтрующие. Какие то действия небольшое влияние оказывают, но необходимого результата даже близко на дают.
Пробовали активные уровнии сигналов менять - мало помогает. Такты задержки ставили разные...
В пошаговом режиме замечено, что при одной активной смене фронта строба, альтера умудряется записать 2-3 байта данных. Фронт какой-то не такой? Электрически вытянуть его не получается.

Может для кого-нибудь причина наглядно ясна?
dinam
Может у ATtiny2313 фронты намного длинее, чем необходимо для Alterы?
des00
Цитата(undi @ Nov 9 2005, 03:07) *
Который день бьемся, результат - ноль. Наверное от незнания каких нибудь особенностей или просто тупит.

Простейший проект - бегущая строка. Altera EPM3256 144 ноги, плата двухсторонняя, но везде земляной полигон.
Входы: 8 бит данных; строб; начало строки.
Начало строки сбрасывает счетчик столбца на начало.
Стробируемые данные записываются синхронно, каждое в свой последующий столбец.
Выходы для каскадирования те же, только строб на выходе появляется когда полностью заполнена предыдущая строка.

В качестве экперимента, попробовали гнать данные с ARM AT91RM9200 - 66мгц на шине, вся строка сразу заработала без калих либо косяков, вне зависимости от наличия тактов задержки на успокоение силналов. Да хоть в пошаговом режиме.

Стоило перенести передачу данных на ATtiny2313 и правильной работы больше добиться не удается.
Сначала думали, что альтера плохо понимает сигналы с пятивольтовым размахом - снизили питание Тини до 3.3в. Подтягивающие резисторы на входе альтеры перепробовали и в землю и в 3.3. Пробовали диоды поставить на входе в землю и 3.3. Пробовали резисторы последовательно с шиной. Емкости фильтрующие. Какие то действия небольшое влияние оказывают, но необходимого результата даже близко на дают.
Пробовали активные уровнии сигналов менять - мало помогает. Такты задержки ставили разные...
В пошаговом режиме замечено, что при одной активной смене фронта строба, альтера умудряется записать 2-3 байта данных. Фронт какой-то не такой? Электрически вытянуть его не получается.

Может для кого-нибудь причина наглядно ясна?


Хммм непонятно следующее
вы гнали данные напрямую с МК в ФПГА ??
фпга и МК как синхронизированы ? клок фпга ?
sazh
//В пошаговом режиме замечено, что при одной активной смене фронта строба, альтера умудряется записать 2-3 байта данных. Фронт какой-то не такой? Электрически вытянуть его не получается.//
Может так оно и есть. логическим анализатором посмотреть на этот пошаговый режим.
Во всяком случае проект один, а контроллеров два.
makc
У меня нечто подобное было с LPC2106: временами в ПЛИС записывалось два-три слова вместо одного. Запись стробировалась с GPIO контакта LPC.

Выяснилось, что иногда на выходе наблюдается "дребезг", который не связан с параметрами проводника, а является нехорошим свойством GPIO контакта LPC. После этого я добавил в проект ПЛИС схемку подавления дребезга (усложнил схему обнаружения фронта) и все стало на свои места.
k0t
Скорее всего дребезг фронтов. Помочь может согласование линии клока (по выходу - 33 Ом последовательно линии, у входа альтеры - 200 Ом к земле). Можно еще триггером шмидта (74xx14) проложится по клоку. Ну, и о чем уже говорилось, можно простробировать входной клок более высокой частотой (если она есть) и принимать решение о том что был фронт по нескольким отсчетам.
undi
Всем спасибо. Вроде проблема решилась интеграцией антидребезговой схемы на строб. Все заработало. Только на это ушло все оставшееся место и теперь нет возможности ноги расставить так как надо.
Может сущуествуют методы борьбы?
sazh
А схему можно посмотреть?
k0t
Еще раз: согласование (в первую очередь) + триггер шмидта (74HC14) по входу альтеры.
undi
Я имею в виду, что все в Альтеру запихнули, снаружи ничего не изменилось. Если интересует подробнее, могу человека, который этим непосредственно занимался написать подробнее.
k0t
Это я понял smile.gif Но имхо правильнее было бы эту проблему решить снаружи.
PGG
а самый простой, пусть и не совсем корректный способ, поставить не большой конденсатор на клок на землю, не пробывали?, может еще 30 Ом последовательно до него, глядиш и заработает smile.gif
des00
Цитата(PGG @ Nov 10 2005, 19:27) *
а самый простой, пусть и не совсем корректный способ, поставить не большой конденсатор на клок на землю, не пробывали?, может еще 30 Ом последовательно до него, глядиш и заработает smile.gif

Это все танцы с бубуном,
афтору а что 3 тригера + 2люта так сильно лишили вас запаса по русурсу ?? smile.gif
makc
Цитата(des00 @ Nov 11 2005, 08:31) *
Цитата(PGG @ Nov 10 2005, 19:27) *

а самый простой, пусть и не совсем корректный способ, поставить не большой конденсатор на клок на землю, не пробывали?, может еще 30 Ом последовательно до него, глядиш и заработает smile.gif

Это все танцы с бубуном,
афтору а что 3 тригера + 2люта так сильно лишили вас запаса по русурсу ?? smile.gif


Мне кажется, что тут все-таки не все так просто. Размер схемы подавления дребезга зависит от частоты ее тактирования. Так что при высокой частоте тактирования и большом периоде импульсов "дребезга" 3 триггера и 2 люта будет явно маловато.
undi
Цитата(des00 @ Nov 11 2005, 08:31) *
Цитата(PGG @ Nov 10 2005, 19:27) *

а самый простой, пусть и не совсем корректный способ, поставить не большой конденсатор на клок на землю, не пробывали?, может еще 30 Ом последовательно до него, глядиш и заработает smile.gif

Это все танцы с бубуном,
афтору а что 3 тригера + 2люта так сильно лишили вас запаса по русурсу ?? smile.gif


На счет бубна согласен.
По поводу всего остального, не знаю точно, скоро человек ,который это непосредвтвенно делал притопает, напрягу здесь описать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.