7706|20

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于FPGA的AD转换有人做过么? [复制链接]

我用的是AD0804,按时序图写出的状态机程序,但是在数码管老是无法正常显示,数字不是老跳就是定在一个值不动,我让其每隔0.5秒就转换一次
        always@(posedge clk)
                if(sw)
                        begin
                        cs<=1;
                        rd<=1;
                        wr<=1;
                        statead<=idle;
                        end
                else
                        case(statead)
                                idle:
                                        begin
                                        statead<=start;
                                        cs<=0;
                                        end
                                start:
                                        begin
                                        statead<=deng;
                                        wr<=0;
                                        cntwr<=0;
                                        end
                                deng:
                                        if(cntwr==4'd6)
                                                begin
                                                cntwr<=0;
                                                wr<=1;
                                                statead<=nobusy;
                                                cntbusy<=0;
                                                end
                                        else
                                                cntwr<=cntwr+1;
                                nobusy:
        ******                                if(cntbusy==16'd50000)
                                                begin
                                                cntbusy<=0;
                                                statead<=trans;
                                                rd<=0;
                                                cnttrans<=0;
                                                end
                                        else
                                                cntbusy<=cntbusy+1;
                                trans:
                                        if(cnttrans==4'd10)
                                                begin
                                                cnttrans<=0;
                                                vol<=db;
                                                rd<=1;
                                                statead<=final;
                                                end
                                        else
                                                cnttrans<=cnttrans+1;
                                final:
                                        begin
                                        statead<=idle;
                                        cs<=1;
                                        end
                        endcase

注意打****号的语句,我感觉问题是不是就是出在这里,按datasheet里wr置高后有一段nobusy又有一段busy的时间,这段时间我一直不知道到底该取多少。。。请问这个延时过长的话或过短的话分别会造成什么情况啊?当然。。。我认为可能是这里有错误,可能其他地方时序也有不对,能有哪位好心人能全部看看就最好不过了

最新回复

没学过FPGA,不过听说它是模拟大量电子元件的,用编程做成ADC应该不成问题吧  详情 回复 发表于 2010-5-27 16:30
点赞 关注

回复
举报

126

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你是说WR持续时间?
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 peasant_lee 的回复:

你是说WR持续时间?


否,就是转换时间,WR变低再变高不是要等待一段时间吗?然后再让RD变低变高
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
。。。。??
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 
就是有效电平的持续时间咯,呵呵。首先我看不懂硬件描述语言,这些保持时间要符合硬件要求,datasheet要求延时多长,你就按照它就OK了,假如还不行,估计不是延时的问题,时序。。。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

6
 
那敢问这位仁兄有用过AD么?不知是用的哪个型号的?用什么控制的啊?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 lincoln24 的回复:
那敢问这位仁兄有用过AD么?不知是用的哪个型号的?用什么控制的啊?

AD肯定用过,是用mcu控制的,一般是mcu自带的,不过则这独立的AD我也在读书的时候做过,单单就控制DA正常工作,不难的,就一些控制信号。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
恩,我也是觉得不难,我也严格按时序图做了但是就是出不来,我还怕延时不够索性把转换延时加的很长,不过他要不就是没反应要不就是数字乱跳,话说延时过长的话会不会也有影响?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
就是说,你现在用FPGA来控制AD芯片,但是结果是检测到的AD值,一就是没反应,二就是经常乱跳。你所说的没反应,是不是就是没检测到AD值?还是固定一个AD值?

假如硬件没问题,我还是怀疑控制信号控制的不好,比如cs 或者转换结果输出的FD, 是否设了高阻态,之类的。。。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(中级)

10
 
我是用8位LED来显示8位AD所转换后的数,没反应即是说灯就一直全亮(低电平时会亮),乱跳即是说LED显示出来的值不固定而且值相差很大,而我输入的是直流电
FD设了高阻态。。?额。。有这个可能,可我LED初始化时就设为8'hff了,你是说这里有问题?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
对的。在AD转换之后,你的ad要输出数据,就不应该设为高阻态。

还有,你是否确定你的显示部分是正确的?因为你的系统,现在有两部分:AD检测部分,和LED显示部分。要排除问题,确定LED显示部分没有错,这样,显示乱才代表是检测到数据是错的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 peasant_lee 的回复:

还有,你是否确定你的显示部分是正确的?因为你的系统,现在有两部分:AD检测部分,和LED显示部分。要排除问题,确定LED显示部分没有错,这样,显示乱才代表是检测到数据是错的。


LED应该是没问题吧。。不就是你给0他就亮,你给1他就灭么,如果数据输出是全1,他就应该全灭。。应该没有错的可能吧

在AD转换之后,你的ad要输出数据,就不应该设为高阻态。
-----------AD的输出应该跟芯片自己有关吧,他输出多少我LED灯就显示多少,难道有哪里可以设置高阻态还是非高阻么。。。如果你指的是我LED是否设为高阻,我已经在复位时让他等于ff了,AD转换后把值赋予他的时候他难道会变成高阻么。。?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
你的ad芯片0804有个输出高阻态的引脚设置,你看看那个引脚有没有接?给什么电平了?看是否是AD输出高阻态了。
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

14
 
楼主 采用FPGA 控制LED数码管 ,是采用静态扫描 还是动态扫描??

感觉楼主的问题,在于LED数码管的刷新频率 没有弄好;

楼主 注意调试 下LED的刷新频率,以及对应的延时。

楼主可以百度或GOOGLE下,看动态扫描来控制LED 时,为了保证人的视觉感受,对应的刷新频率的设置。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 12 楼 peasant_lee 的回复:

你的ad芯片0804有个输出高阻态的引脚设置,你看看那个引脚有没有接?给什么电平了?看是否是AD输出高阻态了。


没找到这个引脚。。。DATASHEET上面貌似没说啊
话说我现在IO口很奇怪啊。。。我用手碰他们LED有些灯也会灭掉,这是什么原因啊(未接芯片时)
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

16
 
就是 FD引脚,我刚才还特意查了一份资料。的确是0804,不知道为什么你那个没有。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

17
 
额……那那个引脚是第几管脚?
我现在外接io口很奇怪啊,我人为的用5V电源接了一下其中一个外接口(等于给其中一个灯接了高电平?),但是他却有两个灯熄灭了,不知道这是什么问题啊…?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

18
 
现在终于能出来了。。。不过测得数总是偏大,不知道这会是芯片本身的问题还是我程序的问题?
数小的时候会相差0.2左右,数大会相差0.4左右。。。。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

19
 
应该是芯片本身的问题,程序就两种情况,一就是读不出来,或者读错,二,读出来了,那肯定是你芯片转换出来的数据。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

20
 
恩,多谢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表