21ic电子技术开发论坛 单片机与嵌入式系统 FPGA论坛 怎么读AD7714的数据?
发新帖我要提问
返回列表
打印

怎么读AD7714的数据?

[复制链接]
楼主: anqi0126
手机看帖
扫描二维码
随时随地手机跟帖
41
anqi0126|  楼主 | 2010-11-22 12:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/FD%602UE8%7DLA5()ITLL7%6040%60N.jpg

使用特权

评论回复
42
anqi0126|  楼主 | 2010-11-22 12:44 | 只看该作者
file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/FD%602UE8%7DLA5()ITLL7%6040%60N.jpg

使用特权

评论回复
43
anqi0126|  楼主 | 2010-11-22 12:47 | 只看该作者
仿真图

tu.jpg (22.61 KB )

tu.jpg

使用特权

评论回复
44
anqi0126|  楼主 | 2010-11-22 12:59 | 只看该作者
if clk='1' and clk'event then

   --if initial='0' then          --初始化,并转串输出
      serial<=o1(n);
       if n=3 then
        n<=0;
        i<=i+1;
       else
        n<=n+1;
       end if;      --初始化完成
   -- else serial<='1';
      --end if;            --从这里开始写控制代码了--
   end if;
end process main;
把initial='0'注释掉

使用特权

评论回复
45
anqi0126|  楼主 | 2010-11-22 13:00 | 只看该作者
file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/HB~FJ)6]2K]F)_C%25JULF~~1.jpg

使用特权

评论回复
46
anqi0126|  楼主 | 2010-11-22 13:01 | 只看该作者
仿真波形

tu1.jpg (16.43 KB )

tu1.jpg

使用特权

评论回复
47
anqi0126|  楼主 | 2010-11-22 13:05 | 只看该作者
i一直取到7,程序设定范围是到3
serial输出都是一个数,也不对

使用特权

评论回复
48
anqi0126|  楼主 | 2010-11-22 13:41 | 只看该作者
嘻嘻嘻我把你的程序弄好使了:)谢谢你哦

使用特权

评论回复
49
anqi0126|  楼主 | 2010-11-23 09:26 | 只看该作者
我想让AD7714din输出一位, AD7714sclk就变化一次,输出前为0,输出后为1。可是都提示我负值只能执行最后一个

使用特权

评论回复
50
SuperX-man| | 2010-11-23 18:11 | 只看该作者
把din放在SCLK下如何,然后SCLK接时钟,呵呵
SCLK<=clk;

Process (sclk)
if sclk='1' and sclk'event then
   din<=................
    ...............

其实还有很多其他方法来实现,关键是你要考虑好的时序

使用特权

评论回复
51
anqi0126|  楼主 | 2010-11-23 20:56 | 只看该作者
这个电路以前我测过,sclk平时是高电平的,几乎测的时候都是高电平,后来看说明知道他是会像我说的那样变化。你说的方法之前也有人让我试过,但没编译过去,我在试试,看看是不是我自己没编好,这块就差这里了

使用特权

评论回复
52
anqi0126|  楼主 | 2010-11-24 10:25 | 只看该作者
可以保证和其他部分一样都是用CLK的上升沿控制,保持一致性
但仿真时序图有点乱
估计得延时什么的吧?

使用特权

评论回复
53
anqi0126|  楼主 | 2010-11-24 10:26 | 只看该作者
我把AD7714sclk<=NOT clk
    ADsclk<=NOT clk
然后用IF ADsclk'EVENT and ADsclk='0' THEN来做主函数,这样可以保证和其他部分一样都是用CLK的上升沿控制,保持一致性
但仿真时序图有点乱
估计得延时什么的吧?

使用特权

评论回复
54
anqi0126|  楼主 | 2010-11-24 10:28 | 只看该作者

使用特权

评论回复
55
anqi0126|  楼主 | 2010-11-24 10:35 | 只看该作者
应该是在CLK为高电平和SCLK为低时DIN有数据输出,如图中的高电平。但图里好像不对哦

使用特权

评论回复
56
SuperX-man| | 2010-11-24 11:32 | 只看该作者
在AD7714的DATA SHEET有完整时序图阿,你按照那个来,实现DATA SHEET里的时序就可以了阿.
你这样写是有点乱.

使用特权

评论回复
57
anqi0126|  楼主 | 2010-11-24 13:43 | 只看该作者


时序就是我说的那样AD7714din输出一位, AD7714sclk就变化一次,输出前为0,输出后为1。

使用特权

评论回复
58
SuperX-man| | 2010-11-24 16:00 | 只看该作者
....汗..应该是一个SCLK一个DIN输出.只是SCLK是反时钟而已.

写了简单的,你自己参考下吧.

entity clk_test is
port(
clk: in std_logic;
din_out : out std_logic_vector(0 to 1)
);
end clk_test;
architecture Behavioral of clk_test is
signal sclk :std_logic;
signal i : integer range 0 to 3;
signal c : integer range 0 to 4;
begin
din: process(sclk) is
begin
if sclk='0' and sclk'event then
   case i is
when 0 =>din_out<="01";
when 1 =>din_out<="10";
when others => null;
end case;
i<=i+1;
end if;
if i=2 then
i<=0;
end if;
end process din;
clk1: process(clk) is
begin
if clk='1' and clk'event then
    case c is
  when 0 =>sclk<='0';
  when 2 =>sclk<='1';
  when 4 =>sclk<='0';
  when others => null;
  end case;
  c<=c+1;
end if;
if c=4 then
c<=0;
end if;
end process clk1;
   
end Behavioral;

使用特权

评论回复
59
anqi0126|  楼主 | 2010-11-24 16:17 | 只看该作者
他们原来的程序SCLK平时的时候是高电平,几乎测的时候都是高电平,后来看说明知道他是会像我说的那样变化

使用特权

评论回复
60
anqi0126|  楼主 | 2010-11-25 15:49 | 只看该作者
晕,为什么你的波形这么好啊?仿真的时候为什么输入时钟CLK的周期不同,得出的输出ADsclk有的时候是均匀脉冲,有时是不均匀的脉冲啊?file:///C:/Program%20Files/腾讯QQ/Users/63331556/Image/%60XH)8S]V%25I5AN85E]MEGQAK.jpg
clk输入为20ns,SCLK输出的高电平明显比低电平持续的时间短而且也不是在clk上升沿变化

使用特权

评论回复
下一页 »
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部