新茂SM59系列IIC使用详解
需积分: 9 136 浏览量
更新于2024-10-12
收藏 222KB PDF 举报
"SynMos IIC功能使用方法详细指南"
在SynMos的SM59R16A2和SM59R08A22系列芯片中,集成的IIC(Inter-Integrated Circuit)功能提供了在微控制器和其他电子设备之间进行通信的能力。IIC协议是一种双线制通信接口,它仅使用两条线——SCL(Serial Clock)和SDA(Serial Data)来传输数据。以下是关于IIC功能的详细说明:
1. **硬件配置**:IIC模块依赖SCL和SDA线进行通信。这两条线负责时钟和数据传输,它们共同构成了IIC总线的基础。
2. **传输速率**:SCL时钟频率最高可支持400Kbps,这个速度可以通过软件设置SFRIICBR[2:0]寄存器来调整。
3. **工作模式**:IIC支持主控器(Master)和从设备(Slave)两种模式。主控器可以启动并控制通信过程,而从设备则响应主控器的请求。
4. **中断和控制**:IIC模块提供中断(RXIF, TXIF)功能,以及两组控制地址。中断用于指示接收或发送数据的完成。此外,通过硬件设置,主控器可以自动产生START、Re-START和STOP信号,而从设备可以自动检测这些信号。
5. **从设备数量**:一个IIC总线上最多可以连接127个从设备,但线路电容限制为400pF。
**特殊控制和状态寄存器**:
- **IICCTL(IIC Control Register)**:0xF9h,包括IICEN标志,用于启用IIC功能,以及其他控制位如MSS(Slave Select)、MAS(Master Select)、RStart(Repeated Start)和IICBR[2:0](Bus Rate设置)。
- **IICS(IIC Status Register)**:0xF8h,包含了MStart(Master Start Flag)、RXIF(Receive Interrupt Flag)、TXIF(Transmit Interrupt Flag)、RDR(Receive Data Ready)、TDR(Transmit Data Ready)、RXAK(Receive Acknowledge)、TXAK(Transmit Acknowledge)和RW(Read/Write Flag)等状态位。
- **IICA1 and IICA2(IIC Address Registers)**:0xFAh和0xFBh,分别存储从设备的两个7位地址,MATCH1和MATCH2表示地址匹配,RW1和RW2指示读写操作。
- **IICRWD(IIC Read/Write Register)**:0xFCh,包含IICSRWD[7:0],用于控制读写操作。
**操作步骤**:
1. 启用IIC功能,设置IICEN为1。
2. 设置IICBR以设定适当的数据传输速率。
3. 如果作为主控器,生成START信号并发送从设备地址。
4. 读取或写入数据,根据需要使用ACK信号。
5. 当通信完成后,发送STOP信号。
**中断处理**:
- RXIF中断表明有数据从IIC总线接收,此时可以读取接收数据。
- TXIF中断表明数据已成功发送,可以准备发送下一个字节。
**注意事项**:
确保在总线上没有冲突,每个从设备都有独特的7位地址,且总线的电容不应超过400pF以保持信号完整性。
SynMos SM59系列的IIC功能为用户提供了灵活的通信选项,适用于多种嵌入式系统设计。正确理解和利用这些特性,可以有效地实现与其他IIC兼容设备的通信。
2010-10-14 上传
2014-10-19 上传
点击了解资源详情
2024-11-19 上传
2024-11-19 上传
2024-11-19 上传
2024-11-19 上传
windancerhxw
- 粉丝: 3
- 资源: 28
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析