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

    

demsp

Участник
  • Публикаций

    28
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о demsp

  • Звание
    Участник

Посетители профиля

90 просмотров профиля
  1. Спасибо, а логический анализатор надо прошивать? Например, LCSOFT CY7C68013A mini board - вроде бы у него только ОЗУ (ПЗУ нет), значит прошивку надо каждый раз загружать заново?
  2. lcd 4470 avr

    Спасибо, но пока не работает (( Кстати, по диаграмме из даташита необходимо подавать управляющие сигналы на 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; ... } Так правильно?
  3. lcd 4470 avr

    Можно ли инициализиовать дисплей 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
  4. Хочу подключить знакосинтезирующий дисплей (например МЭЛТ MT-10S1) к MAX II epm 240 minimal development board. В даташите к контролеру ЖКИ написано про питание 3-5v. Т.е. можно подключить lcd к тем 3.3v, от которых питается ПЛИСка. В то же время на ПЛИСке установлен регулятор питания (ams1117), т.е. можно (наверное) lcd и плиску подключить к 5v?
  5. Да, спасибо, в реальной схеме сброс вообще не нужен, но в симуляции использую сброс для инициализации регистров нулями
  6. Спасибо. А как это сделать? Если написать 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". Наверное, надо делать счётчик с загрузкой и загружать значение "ноль"
  7. Подскажите, как запустить счетчик, чтобы вместо красных линий (нулей) были зелёные линии 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
  8. Спасибо. Мне надо реализовать антидребезг для одной кнопки на CPLD Тогда надо включить ТШ в настройках пина, а на пин повесить конденсатор. Так?
  9. Спасибо, а вот ещё в мануале MAX II Device Handbook написано про триггеры Шмитта, которые обеспечивают гистерезис на буфере входных сигналов, предотвращая дребезг контактов. Я в Pin Planer включил триггер Шмитта на входном пине, но дребезг остался. Наверное, надо внешний конденсатор повесить?
  10. Как устранить дребезг кнопки? Прочитал, что можно включить Weak Pull-Up Resistor (Assigments -> Assigment Editor) который идет на R3. А на каком пине висит R3?
  11. Спасибо, с генератором на 5.5Мгц более-менее понятно. А как подключить генератор на 50МГц? В этой схеме показано, что генератор должен идти на вывод 64. Но на синей плате нет вывода 64.
  12. Досчитываю до 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
  13. Иосиф Григорьевич, спасибо (внимательно посмотрел)
  14. симуляция двухразрядного триггера в 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