Laboratorium07 ModulatorSzerokościImpulsuPWMPulseWidthModulator


Laboratorium 7
Temat: Modulator szerokości impulsu: PWM (Pulse Width Modulator).
1. Modulacja to samorzutna lub celowa zmiana parametrów fali. W przypadku fal prostokątnych
(stosowanych w technice cyfrowej) procesowi modulacji podlega szerokość, amplituda, pozycja
(układ) oraz gęstość impulsów.
2. PWM  rodzaj modulacji impulsowej  modulacja szerokość impulsu (ang. pulse-width
modulation),
3. Zasada działania PWM'a:
gdzie: okres (n) oraz wypełnienie (k)  wartości programowalne (rejestry wewnętrzne PWM)
4. Prosty 8-bitowy układ PWM
a) schemat układu
b) realizacja w języku VHDL (fragmenty)
entity:
port (clk,reset :in std_logic; -- zegar, reset
data_in :in std_logic_vector (7 downto 0); -- wejście danych
data_out :out std_logic_vector (7 downto 0); -- wyjście danych
addr :in std_logic_vector (1 downto 0); -- wejście adresowe
nr_w :in std_logic; -- kierunek transmisji danych (not read write)
pwm_out :out std_logic); -- wyjście
Projektowanie ukÅ‚adów VLSI © 2005 Copyright by Tomasz FaÅ‚at
architecture:
-- adresy rejestrów:
constant adr_start : std_logic_vector(1 downto 0) := "01";
constant adr_wyp : std_logic_vector(1 downto 0) := "10";
constant adr_okres : std_logic_vector(1 downto 0) := "11";
-- sygnały:
signal start : std_logic;
signal wypelnienie : std_logic_vector(7 downto 0);
signal okres : std_logic_vector(7 downto 0);
signal counter : std_logic_vector(7 downto 0);
signal line : std_logic;
begin
-- programowanie rejestrów (nr_w='1'):
regs: process (clk, reset)
begin
if (reset = '1')then
start <= '0';
wypelnienie <= "00000000";
okres <= "00000000";
elsif(clk'event and clk = '1') then
if (addr = start_ad and nr_w='1') then
start <= data_in(0);
elsif (...)
end if;
end if;
end process reg;
-- odczyt rejestrów (nr_w='0'):
data_out <= okres when (addr=adr_okres and nr_w='0')else
wypelnienie when (addr=adr_wyp and nr_w='0')else
"0000"&"0000";
-- licznik impulsów
licz:process (clk,reset)
begin
if (reset='1') then
counter<=(others=>'0');
elsif (clk'event and clk='1') then
if start='1' then
if (counter>=okres) then
counter<=(others=>'0');
else
counter<=counter+"01";
end if;
end if;
end if;
end process licz;
-- wyjście:
line <= '1' when (counter <= wypelnienie) else '0'; -- generowanie impulsów
pwm_out <= line when (start = '1') else '0'; -- zabezpieczenie wyjścia
5. Zadania do realizacji:
a) uzupełnić kod (...), przeprowadzić symulację
Projektowanie ukÅ‚adów VLSI © 2005 Copyright by Tomasz FaÅ‚at


Wyszukiwarka

Podobne podstrony:
Laboratorium 5 Modulacja i Demodulacja BPSK
Laboratorium 4 Modulacja i Demodulacja PSK
Laboratorium 2 Modulacja i demodulacja ASK
Laboratorium 3 Modulacja i demodulacja FSK
DSL Modulation Techniques
Rola laboratoriów w świetle wymagań systemów zarządzania jakoscią
Laboratorium 3
Modulacje
Ćwiczenie laboratoryjne nr 6 materiały
Windows 2 Laboratorium 4b
Chemia żywnosciCwiczenie laboratoryjne nr 1 wyodrebnianie i badanie własciwosci fizykochemicznych b
Laboratorium 3
LABORATORIUM CHEMIA I WYTRZYMALOSC MATERIALOW sprawko 1

więcej podobnych podstron