IIC总线介绍及FPGA编程(四):主流程状态机

文摘   科技   2024-03-07 08:00   天津  


欢迎点击蓝字关注我




今天为“IIC总线介绍及FPGA编程”的第四章“主流程状态机"讲解。


视频中文字内容:

首先说,这里FPGA的位置相当于是IIC控制器,也就是主设备。这个FPGA的IIC模块是“lb2iicmodule.vhd”,也就是LocalBus to iic。所以得知道啥是LocalBus。不太清楚的请看我之前的讲解,后面我也会把视频放上来。

LocalBus总线介绍及FPGA总线编程

先跳过localbus这一部分,先看看IIC这里的主要思路。首先是时钟,既然是IIC控制器,那么SCL就得主设备来产生了。同时,我们需要产生start、stop信号。所以在门阵内部逻辑中,我们要有一个比SCL时钟快的时钟,并且最好是SCL的2倍,4倍,8倍这个样子的。模块需要输入两个时钟进来:

之后,根据IIC的时序,有start、写器件地址、写寄存器地址、数据、ack、noack、stop等操作时序,分别写了对应的状态机。这样就把每一种操作时序都变成了积木形式,根据总的大时序,按顺序调用状态机即可。

这里先不展开每个状态机是怎么写的,我们先看一个字节写操作的控制状态机怎么写:

也就是说,主流程状态机,只是控制调用了各个子状态机,把他们有序的组织起来了,至于每个时序中应该怎么做,那是每个子状态机的事情。






欢迎点击“点赞、收藏、在看”,分享给更多人看到


往期文章

交流群:

欢迎飞腾爱好者加入微信交流群。 群内大家可以在群内交流遇到的问题,分享自己的调试心得。 希望大家共建飞腾友谊!

乌拉大喵喵
建立了飞腾爱好者技术交流群,公众号文章扫码进群,或私信加vx进群。
 最新文章