找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 82|回复: 1
打印 上一主题 下一主题

新手利用FPGA控制SI4324C进行时钟的分频,经验教训的总结

[复制链接]

9

主题

23

帖子

569

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
569
跳转到指定楼层
1#
发表于 2017-11-24 20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  在下小白一枚,花了一个多月的时间用FPGA控制SI5324C实现了时钟的分频,输入50M输出25M,当然了,这用MMCM或者PLL也能实现,但是SI5324C有一些特别的好处。程序在附件里,使用Verilog HDL编写,FPGA是Xilinx的K7325T。
/ _0 w7 K. l- T1 {1 J# j3 z5 h  首先要说明的是,SI5324C有很多寄存器,要正确的使用它就得配置这些寄存器,它的控制模式有IIC和SPI两种,我用的是IIC,IIC通信协议网上一找全都是,所以协议我就不多说了。% I% I3 F3 Y0 }& E/ r* L* @; j- f$ p
  这里要说明的是,大家在网上找的IIC通信例子里大多数都是先发从机地址再发寄存器地址、然后数据、然后又发寄存器地址如此循环直到通信结束。但是在SI5324C中,寄存器地址是自动增加的,也就是说先写了一个寄存器之后,地址自动加一,所以你只要不断的写数据就可以。
  c" j0 o  T# z$ ~/ k' G, m" K另外要注意的是,这个芯片寄存器很多,有些是不可以用户配置的,但是地址自动加一会加到那个地址,所以要注意到了那个地址之后要停止写数据,结束通信后再次开始通信从要配置的寄存器地址开始写。. A- M1 t1 s7 }) I' x
芯片就需要注意这么多,还有啥的注意看芯片的使用手册和数据手册就是了。
/ A$ n+ W/ @7 H: m3 f7 H接下来还是说一下比较普遍的问题,希望小小白不要走我的弯路。
$ Z' A# V# b, d8 k+ Q, ]. B1:请一定要注意Verilog非阻塞赋值的特点。非阻塞赋值是在时间步内完成的,我就是因为注意不到这一点导致输出的数据在0和1之间不断抖动,状态机也在两个状态之间循环往复不会前进,浪费了很多时间才解决掉这个问题;
* @' \) y: E1 n7 {/ z! g. M2:请一定要重视仿真,不要因为怕麻烦就跳过这一步直接用chipscope抓数据,chipscope抓的数据是有限的,数据多了之后看不到完整的数据,仿真就没有这个问题,而且仿真可以帮你快速发现逻辑上的错误。7 f3 i* h8 [" u! f( v
3:如果需要调试外设,那么请一定要详细阅读外设的数据手册和使用手册,我就是因为没有仔细阅读,不知道SI5324C的地址会自动加一导致实现不了功能,而找到这个错误用了半个月,因为一直没怀疑到地址这个点上。
' k3 V7 n- z7 z; L4 P! S+ f: B最后,把SI5324C的手册也附上,省得有想看的人还得去找~
! s% l5 r, Q6 N' ~4 L1 q1 ?3 b4 z( ?# U

SI5324C.pdf

479.02 KB, 下载次数: 5, 下载积分: 威望 -5

si53xx-reference-manual.pdf

4.45 MB, 下载次数: 0, 下载积分: 威望 -5

Si5324.pdf

2.29 MB, 下载次数: 0, 下载积分: 威望 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

9

主题

23

帖子

569

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
569
2#
 楼主| 发表于 2017-11-24 20:38 | 只看该作者
程序是那个479K的PDF
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-5-25 01:41 , Processed in 0.056521 second(s), 34 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表