-
Dog
-
Автор темы
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 46
-
Спасибо получено: 1
-
-
|
Столкнулся с такой проблемой, когда подношу руку к кнопочке она автоматически включается, или же во время работы платы при подносе руки к ней (плате) самопроизвольно загораются светодиоды. на входных ножках поставил триггеры шмидта (вкл 2,5В, напряжение питания 2,7В), не помогает, как быть?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 816
-
Спасибо получено: 168
-
-
|
На входные ножки нужно поставить " Weak Pull-Up Resistor ", чтобы они всегда были подтянуты к "1".
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Dog
-
Автор темы
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 46
-
Спасибо получено: 1
-
-
|
резисторы были подтянуты изначально, тем неменее питание подаю и светодиодики начинают сами зажигатся, не получилось ли что платку статикой выбило???
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 816
-
Спасибо получено: 168
-
-
|
Проверьте в "Resourse Property Editor", поставил ли квартус ваши назначения.
Проверьте, стоят ли эти назначения в файле *.qsf, или пришлите его мне.(u@marsohod.org)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Dog
-
Автор темы
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 46
-
Спасибо получено: 1
-
-
|
Вот то что выдал файлик с расширением *.qsf
set_global_assignment -name FAMILY "MAX II"
set_global_assignment -name DEVICE EPM240T100C5
set_global_assignment -name TOP_LEVEL_ENTITY Block1
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 10.1
set_global_assignment -name PROJECT_CREATION_TIME_DATE "01:18:49 MAY 04, 2011"
set_global_assignment -name LAST_QUARTUS_VERSION 10.1
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR "-1447447"
set_global_assignment -name POWER_EXT_SUPPLY_VOLTAGE_TO_REGULATOR 3.3V
set_global_assignment -name BDF_FILE Block1.bdf
set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF
set_global_assignment -name USE_CONFIGURATION_DEVICE ON
set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"
set_location_assignment PIN_1 -to in1
set_location_assignment PIN_97 -to in2
set_location_assignment PIN_78 -to in3
set_location_assignment PIN_99 -to in4
set_location_assignment PIN_87 -to in5
set_location_assignment PIN_77 -to in6
set_location_assignment PIN_51 -to in7
set_location_assignment PIN_18 -to reset
set_location_assignment PIN_73 -to 13
set_location_assignment PIN_71 -to 15
set_location_assignment PIN_69 -to 17
set_location_assignment PIN_67 -to out
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to in*
set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED"
set_location_assignment PIN_62 -to out2
set_location_assignment PIN_68 -to 35
set_location_assignment PIN_66 -to 33
set_location_assignment PIN_64 -to 31
set_location_assignment PIN_17 -to clk
set_instance_assignment -name IO_STANDARD "2.5V SCHMITT TRIGGER INPUT" -to clk
set_instance_assignment -name IO_STANDARD "2.5V SCHMITT TRIGGER INPUT" -to reset
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 816
-
Спасибо получено: 168
-
-
|
Нет подтягивающего резистора на "reset".
В любом случае, если что-то не получается, внимательно читайте ворнинги, а
все назначения на пины проверяйте в "Resourse Property Editor".
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Dog
-
Автор темы
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 46
-
Спасибо получено: 1
-
-
|
что обозначает такая ошибка:
Critical Warning: Synopsys Design Constraints File file not found: '123.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
digitalinvitro
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 100
-
Спасибо получено: 8
-
-
-
|
А отключить TimeQuest пробовали? Как я понял синтезатор он не находит файл констрайнтов, видимо в настройках TimeQuest прописан файлик 123, если можете скрины настроек TimeQuest покажите.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Dog
-
Автор темы
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 46
-
Спасибо получено: 1
-
-
|
time quest запустил, квартус чего то создал и ошибка пропала.
Кто нибудь пробывал аппаратно устранить дребезг контактов, триггер шмидта на входе не спасает, пробывал ставить микронки от мышки, то же, за одно включение кнопки, счетчик успевает сосчитать до 3-4, хотя должен последовательно по 1 прибавлять с каждвм нажатием?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
digitalinvitro
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 100
-
Спасибо получено: 8
-
-
-
|
Есть куча способов но мне дедовский от Юрия понравился больше чем рекомендованный IEEE :) Смысл в том что задействованы две кнопки одна устанавливает нажатие и происходит генерация одиночного импульса на частоте clk, другая сбрасывает это автомат в исходное состояние. Безотказен как показала практика не совсем удобно "жмакать" две кнопки но надежность того стоит.
module PushButton_Debouncer(pulse, clk, kpulse, kclr, reset);
output pulse;
input clk; // "clk" is the clock
input kpulse; // Key start one pulse
input kclr; // Clr puls automate
input reset;
reg Tpre, Tpost;
assign pulse = (!Tpre) ^ Tpost;
wire write = ~((!Tpre)&kclr);
always @(posedge clk or negedge reset) begin
if(!reset)
{Tpost, Tpre} <= 2'b01;
else begin
if(write == 1'b1) Tpre <= kpulse;
Tpost <= (!Tpre)&(kclr);
end
end
endmodule
Вот это вроде где то черпанул на просторах "энторнета" :) смысл его в том что с каждым срабатыванием контакта постоянно запускается счетчик подавления, как только контакт успокоиться в одном из стационарных состояний генерируется импульс с состоянием кнопки down, отпускаем тот же процесс и up. Я код причесал как мог но что то он мне все равно не нравиться сбоит зараза раз через раз.
module PushButton_Debouncer(clk, PB, PB_state, PB_up, PB_down, reset);
input clk; // "clk" is the clock
input PB; // "PB" is the glitched, asynchronous, active low push-button signal
input reset;
output PB_state; // 1 while the push-button is active (down)
output PB_down; // 1 when the push-button goes down (just pushed)
output PB_up; // 1 when the push-button goes up (just released)
// First use two flipflops to synchronize the PB signal the "clk" clock domain
reg PB_sync_0; always @(posedge clk) PB_sync_0 <= ~PB; // invert PB to make PB_sync_0 active high
reg PB_sync_1; always @(posedge clk) PB_sync_1 <= PB_sync_0;
// Next declare a 16-bits counter
reg [15:0] PB_cnt;
// When the push-button is pushed or released, we increment the counter
// The counter has to be maxed out before we decide that the push-button state has changed
reg PB_state; // state of the push-button (0 when up, 1 when down)
wire PB_idle = (PB_state==PB_sync_1);
wire PB_cnt_max = &PB_cnt; // true when all bits of PB_cnt are 1's
//always@(posedge clk or negedge reset) if(!reset) PB_state <= 0;
always @(posedge clk or negedge reset) begin
//if(PB_idle)
// PB_cnt <= 0; // nothing's going on
//else
//begin
if(!reset)
{PB_cnt, PB_state} <= 0;
else begin
PB_cnt <= (PB_idle)? 16'd0 : PB_cnt + 1'b1; // something's going on, increment the counter
if(PB_cnt_max) PB_state <= !PB_state; // if the counter is maxed out, PB changed!
end
end
wire PB_down = ~PB_state & ~PB_idle & PB_cnt_max; // true for one clock cycle when we detect that PB went down
wire PB_up = PB_state & ~PB_idle & PB_cnt_max; // true for one clock cycle when we detect that PB went up
endmodule
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.196 секунд