78K0系列微控制器的I2C时钟控制

需积分: 37 76 下载量 144 浏览量 更新于2024-08-10 收藏 18.89MB PDF 举报
"串行时钟等待控制器-java开发基础(基础语法+面向对象基础+集合基础+常用api)" 本文档是关于NEC 78K0/Kx2系列8位单片微控制器用户手册的一部分,主要讲解了I2C通信协议相关的硬件组件和功能。这些微控制器型号包括PD78F0500A、78F0511A等,具有片上调试功能。文档特别强调了在大规模生产中不应使用带片上调试功能的产品,因为这可能影响其可靠性和闪存的可重写次数。 在I2C通信中,涉及以下关键硬件模块: 1. **唤醒控制器**:当接收到的地址匹配从设备地址寄存器0(SVA0)设定的地址,或接收到扩展代码时,控制器会生成中断请求信号(INTIIC0)。 2. **预分频器**:用于选择采样时钟,以适应不同速度等级的I2C通信。 3. **串行时钟计数器**:在发送和接收数据时,计数串行时钟脉冲,确保8位数据的完整传输。 4. **中断请求信号发生器**:基于WTIM0(IIC控制寄存器0的第3位)和SPIE0(第4位)的设置,控制INTIIC0信号的产生,中断触发条件可以是串行时钟的第8或第9个下降沿,或者检测到停止条件。 5. **串行时钟控制器**:在主设备模式下,它生成I2C通信的时钟信号,通过SCL0引脚输出。 6. **串行时钟等待控制器**:负责控制等待时序,这是I2C通信中的一个重要部分,用于确保数据传输的正确同步。 7. **ACK信号发生器、停止条件检测器、起始条件检测器和ACK信号检测器**:这些电路用于产生和检测I2C通信中的各种状态,如应答信号ACK、起始和停止条件。 8. **数据保持时间修正电路**:根据串行时钟的下降沿调整数据保持时间,保证数据稳定传输。 9. **起始条件发生器**:STT0位为1时产生起始条件,但若处于通信预约禁止状态(IICRSV=1)且总线未释放(IICBSY=1),起始条件请求会被忽略,STCF位会被置1。 10. **停止条件发生器**:当SPT0位为1时,生成停止条件信号,结束通信。 这些硬件模块共同协作,实现I2C协议的规范执行,提供可靠的微控制器与外部设备间的低速串行通信。在编程时,开发者需要理解和利用这些硬件特性来编写有效的I2C通信程序,确保数据传输的准确性和效率。