📄 i2c_cnt_1.txt
字号:
-- I2C_cnt.VHD是I2C总线控制器,它包括以下文件:-- I2C.vhd :主要完成I2c总线的命令,启动(s),主控器的写操作,主控器读操作,被控器应答(ack),-- 主控器的应答(ACKm),停止等;-- ENA_sda_out.vhd:二选一选择器;-- Rom.vhd:用来存放要配置的寄存器的数据,此文件包括在I2C.vhd中。-- SRL16.vhd:延时模块-- Divide_clk.vhd:分频器,把源时钟128分频(源时钟频率为30M),分频输出是30M/128=234.375KHz-- 配置完被控器后(SAA7114),在输出复位信号(Chip_rst),为CPLD内的其它模块复位,执行程序。----LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE ieee.std_logic_arith.all;ENTITY I2C_CNT IS PORT ( CLK :IN STD_LOGIC; RST :IN STD_LOGIC; SDA :INOUT STD_LOGIC; CHIP_RST :OUT STD_LOGIC; CLK_OUT :OUT STD_LOGIC; TEST :OUT STD_LOGIC; SCL :OUT STD_LOGIC ); END I2C_CNT;ARCHITECTURE RTL OF I2C_CNT ISCOMPONENT I2CPORT ( CLK :IN STD_LOGIC; RST :IN STD_LOGIC; SDA_IN :IN STD_LOGIC; CHIP_RST :OUT STD_LOGIC; SCL :OUT STD_LOGIC; ENA_SDA_OUT :OUT STD_LOGIC; test_OUT :out std_logic; SDA_OUT :OUT STD_LOGIC); END COMPONENT;COMPONENT ENA_SDA_OUT PORT ( ENA_SDA_OUT :IN STD_LOGIC; SDA_OUT :IN STD_LOGIC; SDA :OUT STD_LOGIC); END COMPONENT;COMPONENT SRL_16 PORT ( Q : out std_logic; Clk : in std_logic; A : in std_logic_VECTOR(3 DOWNTO 0); D : in std_logic );END COMPONENT;COMPONENT DIVIDE_CLK_TEST -- 时钟分频器 PORT( CLK :IN STD_LOGIC; -- 30M的时钟或别的外部输入时钟 DIVIDE_CLK :OUT STD_LOGIC -- 输出240.375K的时钟 );END COMPONENT;COMPONENT DELAY_RST --复位延时 PORT ( RST :IN STD_LOGIC; -- 来自于SAA711 CLK :IN STD_LOGIC; RST_OUT :OUT STD_LOGIC -- 输出到CPLD );END COMPONENT;SIGNAL ENA_SDA :STD_LOGIC;SIGNAL SDA_OUTPUT :STD_LOGIC;SIGNAL RESET :STD_LOGIC;SIGNAL RST_CPLD :STD_LOGIC;SIGNAL W_DIVIDE_CLK :STD_LOGIC;BEGINI2C_F: I2C PORT MAP (CLK=>W_DIVIDE_CLK, RST=>RST_CPLD, SDA_IN=>SDA, CHIP_RST=>CHIP_RST, SCL=>SCL,ENA_SDA_OUT=>ENA_SDA,SDA_OUT=>SDA_OUTPUT,TEST_OUT=>TEST) ;ENA_SDA_OUT_F: ENA_SDA_OUT PORT MAP (ENA_SDA_OUT=>ENA_SDA,SDA=>SDA,SDA_OUT=>SDA_OUTPUT); SRL16_F: SRL_16 PORT MAP (Q=>RESET,CLK=>W_DIVIDE_CLK,A=>"1111",D=>RST); DIVIDE_CLK_F: DIVIDE_CLK_TEST PORT MAP (CLK=>CLK,DIVIDE_CLK=>W_DIVIDE_CLK);DELAY_RST_F : DELAY_RST PORT MAP(CLK=>CLK,RST=>RESET,RST_OUT=>RST_CPLD);CLK_OUT<=RST_CPLD;--TEST<=RST_CPLD;END RTL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -