当前位置: 首页 > news >正文

19.9咖啡项目:工程项目级别的IIC主从机模块

闲言碎语
知识无价,但学习有价,计划推出食品级FPGA项目系列。
* 4.9冰淇淋项目:只要少吃一个冰淇淋,就可以解锁一个 冰淇淋项目(matlab+fpga)。
* 9.9奶茶项目:只要少点一杯奶茶,就可以解锁一个奶茶项目(matlab+fpga)。
* 19.9咖啡项目:只要少点一杯咖啡,就可以解锁一个咖啡项目(matlab+fpga)。
* 29.9汉堡项目:只要少点一个汉堡,就可以解锁一个汉堡项目(matlab+fpga)。

……

目录

一、IIC协议
二、FPGA仿真验证结果
三、代码
1、百度网盘链接

IIC(Inter-Integrated Circuit,也写作I2C或I²C)总线是一种由飞利浦半导体(现恩智浦半导体)于1982年设计的同步、多主从、串行通信协议,旨在简化集成电路之间的短距离通信。其核心设计理念是通过两线制(串行数据线SDA和串行时钟线SCL)实现设备间的双向数据传输,大幅减少硬件连接的复杂性。

一、IIC协议

IIC协议使用两条双向开漏信号线进行通信:

  • SCL(Serial Clock):时钟线,由主设备(Master)控制,用于同步数据传输。
  • SDA(Serial Data):数据线,用于传输数据。
    IIC总线支持多主多从架构,即多个主设备和多个从设备可以连接在同一总线上,通过地址识别来选择通信对象。
    IIC通信由以下几个基本时序组成:
  1. 起始条件(START)
  • SCL为高电平时,SDA从高电平跳变为低电平。
  • 表示通信开始。
  1. 停止条件(STOP)
  • SCL为高电平时,SDA从低电平跳变为高电平。
  • 表示通信结束。
  1. 数据传输(Data Transfer)
  • 数据在SCL高电平时必须保持稳定。
  • SDA的变化只能在SCL为低电平时发生。
  • 每个时钟周期传输1位数据,高位(MSB)先传。
  1. 应答信号(ACK)与非应答信号(NACK)
  • 每传输完一个字节(8位),接收方在第9个时钟周期拉低SDA表示应答(ACK)。
  • 若SDA保持高电平,则表示非应答(NACK),通常表示接收失败或数据传输结束。
  1. 从设备地址(7位或10位)
  • 主设备发送的第一个字节为从设备地址(7位) + 读/写标志位(1位)。
  • 例如:1010000R/W,其中R/W=0表示写,R/W=1表示读。
    在IIC的主从机模块架构中,通过IIC的sclk和sdo将主从机进行回环测试验证。
    支持两种类型寄存器的配置
    一是:只读IIC寄存器
    通过用户自定义iic寄存器的地址以及内容,比如版本寄存器和时间寄存器,通过iic开放给主机master。此处是fpga的iic_master模块,当然也支持cpu或者arm的iic主机模块。
    二是:可读可写IIC寄存器
    通过iic_master模块写入iic自定义寄存器,此处用了一个test寄存器0x07,写入数据0x10。之后通过iic_master模块读取0x07寄存器,从而得到对应的数据内容为0x10。
    在这里插入图片描述

二、FPGA仿真验证结果

通过配置对IIC的设备地址进行同步更新,保证主从机模块的iic的设备地址一致。
通过读写控制实现iic的写操作和读操作。
通过寄存器地址数实现不同位宽的寄存器地址写入。
通过寄存器地址数实现不同位宽的寄存器数据写入。
在这里插入图片描述

从仿真中可以看出,写入设备地址0x46,寄存器地址0x07,寄存器内容0x10,经过一定时间读取0x07的地址内容,得到数据位0x10。
在这里插入图片描述

从仿真中可以看出,读取设备地址0x46,寄存器地址分别为0x02,0x03,0x04,0x05,0x06,对应的寄存器内容分别为8’d1,8’d20,8’d23,8’d1,8’d14。
在这里插入图片描述

与自定义的寄存器地址和内容保持一致,满足设计要求。
在这里插入图片描述

三、代码

详情见链接:
19.9咖啡项目:工程项目级别的IIC主从机模块在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/406288.html

相关文章:

  • 【遥感技术】​从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
  • PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化技术
  • html5如何实现网站开发俄文网站推广
  • Vue3》》 ref 获取子组件实例 原理
  • 【C++实战㊶】C++建造者模式:复杂对象构建的秘密武器
  • stm32h743iit6 USB FS 启用 VBUS 或 BCD 前后的区别
  • 资源网站模板网页qq登陆手机版网址
  • vue中.env文件是什么,在vue2和vue3中的区别
  • ADMM 算法的基本概念
  • Vue中如何封装双向绑定的组件
  • 个人网站建设与维护上传wordpress到空间
  • 深入剖析Spring Boot依赖注入顺序:从原理到实战
  • 对象关系映射(ORM)
  • 在VS Code 中为Roo Code 添加 Bright Data 的本地MCP服务器
  • 专业的制作网站开发公司wordpress界面404
  • Python Pillow库详解:图像处理的瑞士军刀
  • AI 时代的安全防线:国产大模型的数据风险与治理路径
  • Deepoc具身智能模型:为传统机器人注入“灵魂”,重塑建筑施工现场安全新范式
  • 鸿蒙NEXT安全控件解析:实现精准权限管控的新范式
  • 创建自己的网站广告图片
  • GraphRAG:引领自然语言处理进入深层语义分析新纪元
  • 免费的个人简历电子版seo怎么优化排名
  • 5、urbane-commerce 微服务统一依赖版本管理规范
  • 17.DHCP服务器及DNS服务
  • 如何在 Vue 中打印页面:直接用 web-print-pdf(npm 包)
  • 响应式网站内容布局网站开发团队成员介绍
  • PaintBoard+cpolar:云端画板的远程创作方案
  • 9月25日星期四今日早报简报微语报早读
  • 零基础学AI大模型之AI大模型可视化界面
  • 深圳建设工程项目网站沈阳网站模板建站