Jump to content

    
Sign in to follow this  
demsp

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

Recommended Posts

Вот пример 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 тактов?  

 

Edited by demsp

Share this post


Link to post
Share on other sites
On 6/1/2019 at 1:09 PM, demsp said:

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

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

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

Share this post


Link to post
Share on other sites

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

5 hours ago, new123 said:

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

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
В 01.06.2019 в 13:09, demsp сказал:

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

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

Share this post


Link to post
Share on other sites
3 hours ago, RobFPGA said:

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

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

Share this post


Link to post
Share on other sites
On 6/2/2019 at 7:07 PM, AnatolySh said:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this