我的博文中: FreeRTOS记录(十、FreeRTOS实现带 I2C 通讯的 ModbusRTU 协议从机实例)的最终测试通过源码
2022-01-11 14:06:30 731KB ModbusRTU STM32L051 I2C FreeRTOS
1
基于stm32的I2C的epprom程序文档
2022-01-11 10:44:43 2.94MB I2C epprom 24C256 stm32
1
基于STM32系列芯片可以直接使用 只需修改个延迟函数就可以 适合STM系列单片机
2022-01-10 19:03:50 3KB 单片机 STM32 STM32F103 STM32F405
1
I2C协议中文版
2022-01-10 17:00:38 847KB I2C 协议 软件 读写
1
总线配置51 i2c.c
2022-01-10 16:02:54 4KB 自用
1
本人写的I2C通信C语言源程序,通用于各种场合 本人业余从事单片机项目开发lovely6226@163.com
2022-01-08 10:20:49 3KB I2C SMBUS 源程序 C语言
1
I2C的testbeach平台
2022-01-07 19:00:36 32.82MB UVM
1
VB6.0源码调用ftd2xx.dll实现I2C通讯,将正常模式转换为I2C模式,进行通讯,需要C#源码的朋友可以将VB转C#,附件中提供在线转换网址,另外附件中包含VB常遇见的注册COMDLG32.OCX问题的解决方法
2022-01-07 15:23:21 811KB VB6.0源码 FTDI转I2C FT2232H FTDI芯片
1
最近一个项目需要做I2C的slave,在opencores.org上面找到了一个I2C的代码,不过是master的。 下载来看看,发现里面有一个I2C slave的行为级代码。 于是自己根据这个代码改写了一个I2C slave RTL的代码,并修改了原来那个设计的testbench,将rtl的Slave替换了原来的behavior的Slave,在modelsim里面作了前仿,完全通过。还有一个myram.v文件,是一个register file,和slave相连,存储数据用的。 用synplify做综合,使用x3s400-4的器件,占用LUT<100,速度接近200MHz。性能比较优化。 代码做了详尽的注释,语言采用verilog,并且写了仿真的脚本。解压了直接运行simbehav.bat就可以了。如果modelsim安装的时候注册了环境变量(path),脚本调用modelsim,输入run -all即可看到仿真结果。 虽然不是很复杂,不过对于广大需要做I2C的RTL slave的工程师来说,还是很有参考价值的。 1、 设计流程 将I2C slave的行为模型改为rtl模型。 进行等效仿真,直到波形一致,通过timing check,数据正确。 再进行rtl优化设计 2、 注意要点 a) 时钟的设计 b) 对于restart condition的时序是否正确 c) 3、 进度 a) 11-12:initial状态的bitcnt不对,需要认真比对/设计 b) 11-13:initial基本解决(sda_in的问题)。Sda三态冲突,原因不明。比对原设计 c) 11-14:sda三态冲突解决,原因为sda在初始化时没有将sda_oen赋值(由sm赋值,但是sm没有做async reset)。同时注意verilog的大小写敏感。 d) 11-15:仿真出现错误:read出来的数据非期望值。写入逻辑完全正确。Read时由于sda_oe在sm中有一个cycle_pulse的延迟,导致了mem_do[7]串行移出时错位。在更改了sm的代码风格后再研究解决方法。 e) 11-16:仿真完全匹配波形。计划:优化结构,提高稳定性sm改为每个时钟打一下。 关于I2C的SDA三态转换: Master在发送完第8个bit后随后将sda释放(posedge后大概1/4 scl周期),此时slave需要在第九个bit对应的scl的posedge拉低sda。
2022-01-06 13:20:09 201KB opencores I2C slave rtl代码
1