10-03-2019, 08:54 PM
Hi Jac
If you replace the following lines from the i2c_com file:
if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
end if;
RF_CF_DATA_SEND(4) <= RF_CF_DATA(4);
RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);
RF_CF_DATA_SEND(3) (6) <= V_RF_ON_DATA; -- turn off video rf oscillator
RF_CF_DATA_SEND(3) (5) <= V_RF_ON_DATA; -- turn off video rf modulator
RF_CF_DATA_SEND(3) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
RF_CF_DATA_SEND(2) <= RF_CF_DATA(2);
RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);
RF_CF_DATA_SEND(1) (6) <= A_RF_ON_DATA; -- turn off audio rf oscillator
RF_CF_DATA_SEND(1) (5) <= A_RF_ON_DATA; -- turn off audio rf modulator
RF_CF_DATA_SEND(1) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
with
if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
end if;
RF_CF_DATA_SEND(4) <= RF_CF_DATA(4);
RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);
if RF_CF_DATA(3) (6) = '0' and RF_CF_DATA(3) (5) = '0' and V_RF_ON_DATA = '0' then
RF_CF_DATA_SEND(3) (6) <= '0'; -- turn on video rf oscillator
RF_CF_DATA_SEND(3) (5) <= '0'; -- turn on video rf modulator
else
RF_CF_DATA_SEND(3) (6) <= '1'; -- turn off video rf oscillator
RF_CF_DATA_SEND(3) (5) <= '1'; -- turn off video rf modulator
end if;
RF_CF_DATA_SEND(3) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
RF_CF_DATA_SEND(2) <= RF_CF_DATA(2);
RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);
if RF_CF_DATA(1) (6) = '0' and RF_CF_DATA(1) (5) = '0' and A_RF_ON_DATA = '0' then
RF_CF_DATA_SEND(1) (6) <= '0'; -- turn on audio
RF_CF_DATA_SEND(1) (5) <= '0'; -- turn on audio rf modulator
else
RF_CF_DATA_SEND(1) (6) <= '1'; -- turn off audio rf oscillator
RF_CF_DATA_SEND(1) (5) <= '1'; -- turn off audio rf modulator
end if;
RF_CF_DATA_SEND(1) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
You should then be able to turn off the audio or video modulators within the channel data sets.
For example after substituting the above lines if you then change the channel 1 dataset from:
constant CH1_CF_DATA : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010000000"); -- modulators channel 1
to:
constant CH1_CF_DATA : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010100000"); -- modulators channel 1
the audio modulator should be turned off when channel 1 is selected.
Frank
If you replace the following lines from the i2c_com file:
if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
end if;
RF_CF_DATA_SEND(4) <= RF_CF_DATA(4);
RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);
RF_CF_DATA_SEND(3) (6) <= V_RF_ON_DATA; -- turn off video rf oscillator
RF_CF_DATA_SEND(3) (5) <= V_RF_ON_DATA; -- turn off video rf modulator
RF_CF_DATA_SEND(3) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
RF_CF_DATA_SEND(2) <= RF_CF_DATA(2);
RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);
RF_CF_DATA_SEND(1) (6) <= A_RF_ON_DATA; -- turn off audio rf oscillator
RF_CF_DATA_SEND(1) (5) <= A_RF_ON_DATA; -- turn off audio rf modulator
RF_CF_DATA_SEND(1) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
with
if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
end if;
RF_CF_DATA_SEND(4) <= RF_CF_DATA(4);
RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);
if RF_CF_DATA(3) (6) = '0' and RF_CF_DATA(3) (5) = '0' and V_RF_ON_DATA = '0' then
RF_CF_DATA_SEND(3) (6) <= '0'; -- turn on video rf oscillator
RF_CF_DATA_SEND(3) (5) <= '0'; -- turn on video rf modulator
else
RF_CF_DATA_SEND(3) (6) <= '1'; -- turn off video rf oscillator
RF_CF_DATA_SEND(3) (5) <= '1'; -- turn off video rf modulator
end if;
RF_CF_DATA_SEND(3) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
RF_CF_DATA_SEND(2) <= RF_CF_DATA(2);
RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);
if RF_CF_DATA(1) (6) = '0' and RF_CF_DATA(1) (5) = '0' and A_RF_ON_DATA = '0' then
RF_CF_DATA_SEND(1) (6) <= '0'; -- turn on audio
RF_CF_DATA_SEND(1) (5) <= '0'; -- turn on audio rf modulator
else
RF_CF_DATA_SEND(1) (6) <= '1'; -- turn off audio rf oscillator
RF_CF_DATA_SEND(1) (5) <= '1'; -- turn off audio rf modulator
end if;
RF_CF_DATA_SEND(1) (4 downto 0) <= RF_CF_DATA(1) (4 downto 0);
You should then be able to turn off the audio or video modulators within the channel data sets.
For example after substituting the above lines if you then change the channel 1 dataset from:
constant CH1_CF_DATA : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010000000"); -- modulators channel 1
to:
constant CH1_CF_DATA : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010100000"); -- modulators channel 1
the audio modulator should be turned off when channel 1 is selected.
Frank







