:(TLC7524资料)
TLC7524是高速串行A/D芯片,FPGA的执行速度很快,所以很适合高速的数据采集,今天弄了个小程序实现对TLC7524的简单控制,代码如下:
--------------------------------------------------------------------------------------------
-- 每天进步一点点,开心一大点^_^
--函数名称:TLC7524.VHD
--函数功能:用FPGA实现对TLC7524的简单控制,产生156.25KHz的正弦波
--作 者:萤火虫II号
--创建日期:2010.03.27
--------------------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity TLC7524 is
port (clk: in std_logic; --系统时钟
rst: in std_logic; --复位信号
data_out: out std_logic_vector(7 downto 0) --波形数据
);
end TLC7524;
architecture behav of TLC7524 is
signal b : integer range 0 to 63; --地址计数器
signal q : integer range 0 to 4; --计数器
signal d : integer range 0 to 255; --波形数据寄存器
begin
process(clk)
begin
if rst'event and rst='1' then --复位时,寄存器清零
if q="4" then q<=4;
if b="63" then b<=0;
else b<=b+1;
end if;
else q<=q+1;
end if;
end if;
end process;
process(b) --此进程存储了正弦波64个采样点的波形数据
begin
case b is
when 00=> d<=255 ; when 01=> d<=254 ; when 02=> d<=252 ; when 03=> d<=249 ;
when 04=> d<=245 ; when 05=> d<=239 ; when 06=> d<=233 ; when 07=> d<=225 ;
when 08=> d<=217 ; when 09=> d<=207 ; when 10=> d<=197 ; when 11=> d<=186 ;
when 12=> d<=174 ; when 13=> d<=162 ; when 14=> d<=150 ; when 15=> d<=137 ;
when 16=> d<=124 ; when 17=> d<=112 ; when 18=> d<= 99 ; when 19=> d<= 87 ;
when 20=> d<= 75 ; when 21=> d<= 64 ; when 22=> d<= 53 ; when 23=> d<= 43 ;
when 24=> d<= 34 ; when 25=> d<= 26 ; when 26=> d<= 19 ; when 27=> d<= 13 ;
when 28=> d<= 8 ; when 29=> d<= 4 ; when 30=> d<= 1 ; when 31=> d<= 0 ;
when 32=> d<= 0 ; when 33=> d<= 1 ; when 34=> d<= 4 ; when 35=> d<= 8 ;
when 36=> d<= 13 ; when 37=> d<= 19 ; when 38=> d<= 26 ; when 39=> d<= 34 ;
when 40=> d<= 43 ; when 41=> d<= 53 ; when 42=> d<= 64 ; when 43=> d<= 75 ;
when 44=> d<= 87 ; when 45=> d<= 99 ; when 46=> d<=112 ; when 47=> d<=124 ;
when 48=> d<=137 ; when 49=> d<=150 ; when 50=> d<=162 ; when 51=> d<=174 ;
when 52=> d<=186 ; when 53=> d<=197 ; when 54=> d<=207 ; when 55=> d<=217 ;
when 56=> d<=225 ; when 57=> d<=233 ; when 58=> d<=239 ; when 59=> d<=245 ;
when 60=> d<=249 ; when 61=> d<=252 ; when 62=> d<=254 ; when 63=> d<=255 ;
when others=> null;
end case;
end process;
data_out<= conv_std_logic_vector(d,8); --正弦波形输出,转换函数
end behav;
可能还有其它的方法来实现,不过今天先弄到这,该去休息了,明天还要上班弄别的东西,俺先干好本职工作的同时,才能学习,不然工作都不称职,俺还怎么混下去,呵呵,明天晚上继续来……
呵呵……
每天进步一点点,开心多一点^_^
文章评论(0条评论)
登录后参与讨论