МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: Статика

Статика 7 года 6 мес. назад #342

  • Dog
  • Dog аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 1
Столкнулся с такой проблемой, когда подношу руку к кнопочке она автоматически включается, или же во время работы платы при подносе руки к ней (плате) самопроизвольно загораются светодиоды. на входных ножках поставил триггеры шмидта (вкл 2,5В, напряжение питания 2,7В), не помогает, как быть?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #343

На входные ножки нужно поставить " Weak Pull-Up Resistor ", чтобы они всегда были подтянуты к "1".

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #344

  • Dog
  • Dog аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 1
резисторы были подтянуты изначально, тем неменее питание подаю и светодиодики начинают сами зажигатся, не получилось ли что платку статикой выбило???

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #345

Проверьте в "Resourse Property Editor", поставил ли квартус ваши назначения.
Проверьте, стоят ли эти назначения в файле *.qsf, или пришлите его мне.(u@marsohod.org)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #346

  • Dog
  • 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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #347

Нет подтягивающего резистора на "reset".
В любом случае, если что-то не получается, внимательно читайте ворнинги, а
все назначения на пины проверяйте в "Resourse Property Editor".

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #349

  • Dog
  • 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.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #353

А отключить TimeQuest пробовали? Как я понял синтезатор он не находит файл констрайнтов, видимо в настройках TimeQuest прописан файлик 123, если можете скрины настроек TimeQuest покажите.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #355

  • Dog
  • Dog аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 1
time quest запустил, квартус чего то создал и ошибка пропала.
Кто нибудь пробывал аппаратно устранить дребезг контактов, триггер шмидта на входе не спасает, пробывал ставить микронки от мышки, то же, за одно включение кнопки, счетчик успевает сосчитать до 3-4, хотя должен последовательно по 1 прибавлять с каждвм нажатием?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Статика 7 года 6 мес. назад #356

Есть куча способов но мне дедовский от Юрия понравился больше чем рекомендованный 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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от digitalinvitro.
  • Страница:
  • 1
  • 2
Время создания страницы: 0.188 секунд

facebook  GitHub  YouTube  Twitter