Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan II : Pullup - фантом
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
kaktus
Исходная схема до безобразия проста: кнопка при нажатии замыкает входную цепь Спартана, на землю. В Спартане стоит внутренняя подтяжка на питание. При нажатии кнопки (в частности) меняет окраску двуцветный светодиод, прицепленный к другим пинам Спартана.
Ситуация следующая: приносят мне 2 платы после испытаний на тепло и холод(всего параллельно в одной печке грелось и мерзло 6) : светодиоды в состоянии, как будто кнопки на них запали в нажатом состоянии. Проверяю кнопки - они в порядке - разомыкают и замыкают как надо. При поданном питании на входной цепи вольтметр (класс точности: китайский показометр) выдает 0.02В (т.е. подтяжки нет), при нажатой кнопке честные 0.00В. Естественно имеем эффект "запавшей" кнопки. Чтобы проверить работает ли вообще вход Спартана тыкаюсь проводочком (беру +3.3В с разъема JTAG) во входную цепь - светодиод меняет цвет - значит вход живой. НО после этого оживает и внутренний pullup! Нажатие кнопки теперь адекватно меняет цвет диода, причем положительный эффект сохраняется после выключения/включения питания, на входной цепи прибор показвывает +3.3В при отпущенной кнопке.
Платы были отправлены обратно в печку на продолжение пыток. Сегодня на одной из тех 2-х опять "запала" кнопка.
lutik
Цитата(kaktus @ Nov 20 2006, 12:36) *
Исходная схема ......
"запала" кнопка.


посмотрите ворнинги которые исе выддает при P&R.
просто так пулап назначить на ногу он не сильно то и хочет..
была у меня такая трабла - атрибут пулапа назначил, вроде исе схавал с руганью типа "не трехстабильный пин с пулапом" а потом - то есть пулап то нету его.

для того читобы без проблем было нужно примитив трехстабильный на пин вешать или самому описать трехстабильный пин с отключеным выходом (я ресет на него подавал чтоб не оптимизировалось) тада все четко стало
makc
В Спартанах слабые pull-up'ы. Поэтому во всех своих устройствах я предпочитаю для таких целей использовать внешние подтягивающие резисторы.
kaktus
Цитата(makc @ Nov 20 2006, 13:46) *
В Спартанах слабые pull-up'ы. Поэтому во всех своих устройствах я предпочитаю для таких целей использовать внешние подтягивающие резисторы.


К щастью на глюкающей цепи есть via и рядом via цепи 3.3В, придется запаять туда выводной резюк.
Кстати "В Спартанах слабые pull-up'ы." касается и Spartan3?
А то следующее перевоплощение этой платы у меня пойдет на 3-м, а пулапы там есть в местах посерьезнее чем эта кнопка. Пилотный образец уже есть и они пока работают, правда температурным испытаниям платы еще не подвергались.

2 lutik: Упомянутые ворнинги в рапорте имеются (подправлю их по Вашему методу), но на счет других цепей, а по этой все тихо и гладко.
sazh
В Спартанах слабые pull-up'ы.////////////////////
А где они сильные. Обычно это 50 кОм. Зачем омы, если надо вход подтянуть. Да и если их не использовать, зачем тогда они присутствуют. А если их море надо.
Надо дальше эксперименты продолжать. Может имеет смысл через триггер это пропустить.
Как то не хорошо напрямую. Да и дребезг у кнопки обычно снимают.
Пример у Титца и Шенка на страниые 359.
Только вот кнопка должна быть трехпозиционная (замыкает или слева контакт или справа)

module drebezg
(
input r_n, //Weak Pull-Up Resistor == on
input s_n, //Weak Pull-Up Resistor == on
output reg out
);

wire clk;
wire input_d;

assign clk = 1'b1;
assign input_d = 1'b1;

always@ (posedge clk or negedge r_n or negedge s_n)
begin
if (r_n == 1'b0) out <= 1'b0;
else if (s_n == 1'b0) out <= 1'b1;
else out <= input_d;
end

endmodule
makc
Цитата(sazh @ Nov 20 2006, 17:18) *
В Спартанах слабые pull-up'ы.////////////////////
А где они сильные. Обычно это 50 кОм. Зачем омы, если надо вход подтянуть. Да и если их не использовать, зачем тогда они присутствуют. А если их море надо.


Я их использую для шин адреса/данных, но никак не для управляющих сигналов. Их задача прекратить возможный дребезг по входу, который может привести к резкому росту потребляемой мощности в цепях ввода/вывода.

PS: Есть еще один элемент, созвучный PullUp'ам - Weak Keeper. smile.gif
tegumay
подтяжка слабовата
насколько я помню она нужна для того
чтобы пин всегда имел какой-либо лог.уровень
в случае, если НЕТ сигналов на входе\выходе,
любой сигнал подтяжку перебьет.
да и дребезг она гасит не очень (у Xilins'a есть PDF где они приводят пример,как на резюке сделать триггер Шмидта для входа smile.gif )
лучше схему на 2-х триггерах поставить на захват и удержание

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