Jump to content

    

AndreiF

Участник
  • Posts

    8
  • Joined

  • Last visited

Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Проблема была в неправильном подключении датчика...В документации сказано, что нужен транзистор для обеспечения питания, но я подумал что его можно внутри ПЛИС как-то указать (как резистор "weak pull up resistor"). Сейчас подключил как на рисунке б) т.е. отдельное питание +3.3В на вывод Vdd и схема заработала, осциллограммы стали красивыми. Спасибо, gosha. Осциллограммы
  2. Спасибо, gosha, но к сожалению на выходе Q всегда 0 (при проверке грел датчик паяльником, через сложенную в несколько раз бумагу). Более подробно рассмотрел сигнал D (2-я ножка микросхемы) и обнаружил что есть область где сигнал находится между 1 и 0 (осциллограмма). Не знаете ли Вы, это нормальный режим работы?
  3. Здравствуйте. Я только учусь работать с ПЛИС и для своих задач использую проекты, найденные в интернете. Сейчас я интересуюсь работой с датчиком температуры DS18B20 по видео с Youtube и хотел бы чтобы при превышении 30 градусов на выходе ПЛИС была постоянная 1. В Quartus'е мой проект состоит из 4 блоков (3 из которых найдены в интернете и работают, как показывает симуляция, исправно: Делитель частоты, Reset и блок DS18B20 "OneWire_Master"). В 4-м блоке "Сomp", я бы хотел сравнить данные с датчика и при превышении 30град выставить 1 на выходе Q. Из документации на датчик ds18b20 (cтр 5) температурные данные запоминаются как 16-битовое число, из которых первые 5 бит - знак температуры, последние 4 бита - дробное значение температуры. Проблема в том что я не могу проверить свой датчик. Я задаю, чтобы на выходе Q была 1 для всех температур от 0 до 30 град, а для остальных значений 0 (код представлен ниже). В результате, при подаче питания на выходе Q появляется 1. Я меняю условие: для температур от 0 до 30 ставлю Q = 0, а для default : Q = 1. В результате, при подаче питания на выходе Q снова появляется 1. Не могли бы Вы сказать где я ошибаюсь? module comp2(output reg [15:0] Q, input [15:0] Temp ,input Clk,RST, output J, output reg OUT); always @ (posedge Clk) begin casex(Temp) 16'bxxxxx0000000xxxx : Q = 1; //0 16'bxxxxx0000001xxxx : Q = 1; //1 16'bxxxxx0000010xxxx : Q = 1; //2 16'bxxxxx0000011xxxx : Q = 1; //3 16'bxxxxx0000100xxxx : Q = 1; //4 16'bxxxxx0000101xxxx : Q = 1; //5 16'bxxxxx0000110xxxx : Q = 1; //6 16'bxxxxx0000111xxxx : Q = 1; //7 16'bxxxxx0001000xxxx : Q = 1; //8 16'bxxxxx0001001xxxx : Q = 1; //9 16'bxxxxx0001010xxxx : Q = 1; //10 16'bxxxxx0001011xxxx : Q = 1; //11 16'bxxxxx0001100xxxx : Q = 1; //12 16'bxxxxx0001101xxxx : Q = 1; //13 16'bxxxxx0001110xxxx : Q = 1; //14 16'bxxxxx0001111xxxx : Q = 1; //15 16'bxxxxx0010000xxxx : Q = 1; //16 16'bxxxxx0010001xxxx : Q = 1; //17 16'bxxxxx0010010xxxx : Q = 1; //18 16'bxxxxx0010011xxxx : Q = 1; //19 16'bxxxxx0010100xxxx : Q = 1; //20 16'bxxxxx0010101xxxx : Q = 1; //21 16'bxxxxx0010110xxxx : Q = 1; //22 16'bxxxxx0010111xxxx : Q = 1; //23 16'bxxxxx0011000xxxx : Q = 1; //24 16'bxxxxx0011001xxxx : Q = 1; //25 16'bxxxxx0011010xxxx : Q = 1; //26 16'bxxxxx0011011xxxx : Q = 1; //27 16'bxxxxx0011100xxxx : Q = 1; //28 16'bxxxxx0011101xxxx : Q = 1; //29 16'bxxxxx0011110xxxx : Q = 1; //30 default : Q = 0; endcase end assign J = Q[0]; always @ (posedge Clk) //JK-trigger begin case({J, RST}) 2'b00 : OUT <= OUT; 2'b01 : OUT <= 0; 2'b10 : OUT <= 1'd1; 2'b11 : OUT <= !OUT; endcase end endmodule На работе снял осциллограммы с выходов D и Reset. Quartus проект
  4. Ошибки нет. Выдержка из статьи "DPWM работает на частоте переключения fs = 1 MHz. Кольцо колеблется при 8 MHz. Этот сигнал 8 МГц используется в качестве тактового импульса для всего чипа-прототипа. " Полный текст статьи: 01_Impact of Digital Control in Power Electronics.pdf
  5. Здравствуйте. Я хотел повторить ШИМ, который представлен на рисунке, но столкнулся с проблемой. При попытке моделирования кольцевого генератора (выполненного на 4-х триггерах) Quartus 9.1 выдает ошибку "нельзя выход крайнего триггера объединять с тактовым сигналом" т.е. не разрешает замкнуть кольцо генератора. Скажите в каком направлении мне искать выход из данной ситуации? Частота импульсов System clock = 8MHz. Проект Quartus 9.1 DPWM.rar