Перейти к содержанию
    

Делитель частоты clock-сигнала для клавиши

Вот пример make-кода клавиши, генерируемого клавиатурой PS2

jps2.png.e2f1639979288d9a3a25841034648207.png

 

Частота ALTUFM_OSC  (частота штатного генератора) 5.5 МГц (MAX II EPM240 CPLD Minimal Development Board).

Вот пример модуля, использующего штатный генератор

module inner_Clock ( output reg LED);
ALTUFM_OSC osc( .oscena(1'b1), .osc(clk));
   reg signal;
   reg [24:0] osc_counter; 
   reg [24:0] const_data = 25'b10110111000110110000000; 
initial
   begin
      signal = 1'b0;
     osc_counter = 25'b0;
   end
//досчитываем до 6 000 000 и обнуляем счетчик osc_counter
always @(posedge clk)
   begin  
      osc_counter <= osc_counter+ 1'b1;
      if(osc_counter == const_data)
         begin
            signal <= ~signal;
           osc_counter <= 25'b0;
        end
LED = signal; // LED мигает ~1 раз в сеунду.
end
endmodule

Здесь мы 5,5 МГц делим на 6 млн, получаем примерно 1 Гц.

Для того, чтобы "сгенерировать частоту" 12.88КГц необходимо чтобы const_data = ~ 427 (decimal) =  1 1010 1011 (binary).

Правильно?

Как  отсчитать 11 тактов?  

 

Изменено пользователем demsp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/1/2019 at 1:09 PM, demsp said:

Для того, чтобы "сгенерировать частоту" 12.88КГц необходимо чтобы const_data = ~ 427

у меня получилось 427,0186335595883

то есть из 5.5 сделать самому 12,88 сложновато будет за один прием.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

5 hours ago, new123 said:

у меня получилось 427,0186335595883

то есть из 5.5 сделать самому 12,88 сложновато будет за один прием.

Не сложно -  суммируете константу K=2^N/427.018...  в регистр разрядностью N бит, старший бит которого и будет переключиться с нужной вам частотой. Выбором N можете получить почти любую точность деления.  

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 01.06.2019 в 13:09, demsp сказал:

Частота ALTUFM_OSC  (частота штатного генератора) 5.5 МГц (MAX II EPM240 CPLD

Обратите внимание на то, что по документации на ПЛИС частота ALTUFM_OSC не имеет точного значения и лежит в пределах от 3,3 до 5,5 МГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, RobFPGA said:

Не сложно -  суммируете константу K=2^N/427.018...  в регистр разрядностью N бит, старший бит которого и будет переключиться с нужной вам частотой. Выбором N можете получить почти любую точность деления.  

сохранил, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем такие сложности? Частота клока для PS/2 Должна быть в пределах 10-16.7 кГц. 5.5M/2^9 ~ 10742. 9 разрядов счетчик решает проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/2/2019 at 7:07 PM, AnatolySh said:

Задача-то какая? 

Напечатать какой-нибудь символ в блокноте. На сайте marsohod есть такой проект, но там плата может как принимать сигналы от компьютера, так и отправлять для печати в блокноте различные символы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...