Jump to content

    

demsp

Участник
  • Content Count

    37
  • Joined

  • Last visited

Everything posted by demsp


  1. Напечатать какой-нибудь символ в блокноте. На сайте marsohod есть такой проект, но там плата может как принимать сигналы от компьютера, так и отправлять для печати в блокноте различные символы.
  2. Тогда надо, наверное, внешний кварцевый генератор на 12800-12900 подключать?
  3. Вот пример make-кода клавиши, генерируемого клавиатурой PS2 Частота 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 тактов?
  4. Спасибо, просто смутило, что для клавиши ALT, код которой равен 11 (что равно десятичному 17), я получаю 0 1000 1000 11, где бит чётности равен 1.
  5. Как видно на картинке из этой статьи, при передаче символа J мы получаем сигнал с нулевым битом чётности, хотя код символа J равен 3B (чётное число)
  6. В этой статье есть пример работы с Arduimo на Си В Makefile изменил DEVICE изменил CLOCk изменил настройки AVRDUDE Светодиод мигает.Далее, пытаюсь загрузить во flash программу, которая должна выводить в терминал сообщение по UART. Программу взял из этой статьи Заменил в этой программе частоту на 1000000 и боды на 115200. Программа компилируется и загружается во flash, но в терминал ничего не выводится
  7. Спасибо. А resource property editor - это отдельная программа, или функция Квартуса (Quartus II). У меня Max II EPM240 CPLD развития доска эксперимент обучения макет
  8. Можно ли подключить стягивающий резистор к пину? читал про resource property editor - но не нашёл, как его подключить.
  9. Спасибо, а логический анализатор надо прошивать? Например, LCSOFT CY7C68013A mini board - вроде бы у него только ОЗУ (ПЗУ нет), значит прошивку надо каждый раз загружать заново?
  10. Спасибо, но пока не работает (( Кстати, по диаграмме из даташита необходимо подавать управляющие сигналы на DB4-DB7 "после положительного фронта" на входе Е (подаём 1 на Е, задержка, подаем 1 на DB4-DB7, подаём 0 на Е (запись по спаду), задержка, подаем 0 на DB4-DB7), т.е. должно быть так (в 4bit режиме) int main(void) { DDRD = 0b11111100; PORTD = 0b00000000; _delay_ms(20); //задержка 20ms после подачи питания PORTD = 0b0000 1000; //E=1; _delay_us(40); //задержка 40us PORTD = 0b0011 1000; //PD4=1; PD5=1; E=1; _delay_us(40); //задержка 40us PORTD = 0b0011 0000; //PD4=1; PD5=1; E=0; (запись по спаду) _delay_us(40); //задержка 40us PORTD = 0b0000 0000; ... } Так правильно?
  11. Можно ли инициализиовать дисплей 44780, подавая биты на входы дисплея #include <avr/io.h> #define F_CPU 16000000UL //16MHz #include <util/delay.h> int main(void) { DDRD = 0b11111100; PORTD = 0b00000000; _delay_ms(20); //задержка 20ms PORTD = 0b0011 0000; //PD4=1; PD5=1; PORTD = 0b0000 1000; //E=1; // тут нужна задержка? PORTD = 0b0000 0000; //E=0; _delay_us(40); //задержка 40us PORTD = 0b0000 1000; //E=1; PORTD = 0b0000 0000; //E=0; _delay_us(40); //задержка 40us PORTD = 0b0000 1000; //E=1; PORTD = 0b0000 0000; //E=0; _delay_us(40); //задержка 40us PORTD = 0b0010 0000; //PD5=1; PORTD = 0b0000 1000; //E=1; PORTD = 0b0000 0000; //E=0; _delay_us(40); // ... } A=PD2 (RS) E=PD3 DB4=PD4 DB5=PD5 DB6=PD6 DB7=PD7
  12. Хочу подключить знакосинтезирующий дисплей (например МЭЛТ MT-10S1) к MAX II epm 240 minimal development board. В даташите к контролеру ЖКИ написано про питание 3-5v. Т.е. можно подключить lcd к тем 3.3v, от которых питается ПЛИСка. В то же время на ПЛИСке установлен регулятор питания (ams1117), т.е. можно (наверное) lcd и плиску подключить к 5v?
  13. Да, спасибо, в реальной схеме сброс вообще не нужен, но в симуляции использую сброс для инициализации регистров нулями
  14. Спасибо. А как это сделать? Если написать module top; reg clk; wire [1:0] counter; count tcount (clk, counter); initial begin clk = 0; forever #10 clk = !clk; counter=0; end endmodule то компилятор выдаёт ошибку Error: C:/.../tcount.v(9): (vlog-2110) Illegal reference to net "counter". Наверное, надо делать счётчик с загрузкой и загружать значение "ноль"
  15. Подскажите, как запустить счетчик, чтобы вместо красных линий (нулей) были зелёные линии module count (input clk, output reg [1:0]counter); always @(posedge clk) counter <= counter + 1; endmodule Test bench module top; reg clk; wire [1:0] counter; count tcount (clk, counter); initial begin clk = 0; forever #10 clk = !clk; end endmodule
  16. Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так?
  17. Спасибо, а вот ещё в мануале MAX II Device Handbook написано про триггеры Шмитта, которые обеспечивают гистерезис на буфере входных сигналов, предотвращая дребезг контактов. Я в Pin Planer включил триггер Шмитта на входном пине, но дребезг остался. Наверное, надо внешний конденсатор повесить?
  18. Как устранить дребезг кнопки? Прочитал, что можно включить Weak Pull-Up Resistor (Assigments -> Assigment Editor) который идет на R3. А на каком пине висит R3?
  19. Спасибо, с генератором на 5.5Мгц более-менее понятно. А как подключить генератор на 50МГц? В этой схеме показано, что генератор должен идти на вывод 64. Но на синей плате нет вывода 64.
  20. Досчитываю до 6 000 000. LED мигает примерно 1 раз в секунду. module M ( 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 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; end endmodule
  21. Иосиф Григорьевич, спасибо (внимательно посмотрел)
  22. симуляция двухразрядного триггера в modelsim показывает, что один выход находится в высокоимпедансном состоянии high-z (голубая линия), хотя я на оба выхода подаю одинаковые сигналы module dff(clk, din, dout); input clk; input [1:0] din; output [1:0] dout; reg dout; always @ (posedge clk) begin dout <= din; end endmodule тестбенч module top; reg clk; reg [1:0] in_inf; wire [1:0] out_inf; dff D1 (clk, in_inf, out_inf); initial // Clock generator begin clk = 0; forever #10 clk = !clk; end initial //in_inf[0] begin in_inf[0] = 0; #28 in_inf[0] = 1; #5 in_inf[0] = 0; end initial //in_inf[1] begin in_inf[1] = 0; #48 in_inf[1] = 1; #5 in_inf[1] = 0; end endmodule
  23. действительно, об этом написано в даташите gclk3? Объясните, пожалуйста, что это (в даташите написано про 3 пина, но я не разобрался)