I2C和菊花链

被测试的同事抓壮丁写了个I2C和菊花链的代码,最后用STM32的HAL库实现的I2C,用LATTICE CPLD实现的菊花链。

实现:
I2C的协议看这篇文章:
https://blog.csdn.net/zhanghuaichao/article/details/48266309
I2C的HAL库实现看这篇文章:
https://blog.csdn.net/as480133937/article/details/105259075
用400Mz的系统时钟实现的50MHz时钟的菊花链,还没想好怎么实现200MHz时钟的菊花链。(但是lattice diamond用起来真的不适应,有得选的话还是用vivado吧)。
400MHz系统时钟实现200MHz差分输出的菊花链的话,现在的想法是直接拿系统时钟打拍子,不进行分频。

调试:
IIC的调试:跟着START、STOP、ACK/NACK信号来,看是否有ACK回应;
读的数据格式较写的格式更复杂一点,有多种格式,明确是哪一种;
菊花链的调试:菊花链的程序没写收的部分,示波器直接看波形了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAN通信和菊花链通信都是常见的网络通信方式,但它们在工作原理、应用场景以及性能方面存在一些区别。 首先,CAN通信(Controller Area Network)是一种多节点总线通信协议,最初用于汽车电子系统中的通信,现在已广泛应用于工业控制和自动化领域。CAN通信采用主从结构,由中央控制器(Master)与多个外设(Slave)组成,通过基带物理层的双绞线进行数据传输。CAN通信具有较高的实时性和抗干扰能力,能够满足工业环境中对实时性和可靠性的要求。 而菊花链通信是一种串行连接方式,常用于短距离数据传输。菊花链通信的连接方式类似于串口通信,多个设备按照一定的顺序连接在同一条总线上,每个设备通过轮询的方式发送和接收数据。菊花链通信可以通过串口、I2C、SPI等接口实现,适用于需要连接多个设备的场景。 从应用场景上看,CAN通信适用于需要实时性和可靠性的工业自动化领域,如汽车电子、机械控制等。而菊花链通信则适用于相对简单的数据传输场景,如连接多个传感器、执行器等。 在性能方面,CAN通信具有较高的实时性和抗干扰能力,能够支持多个节点同时传输数据,但传输速率较低。而菊花链通信的传输速率相对较高,但受设备顺序和总线长度等因素影响。 总而言之,CAN通信和菊花链通信虽然都是常见的网络通信方式,但在工作原理、应用场景和性能方面有所不同,根据具体需求选择合适的通信方式是很重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值