电子说
在电子设计领域,总线控制器扮演着至关重要的角色,它能够实现不同类型总线之间的通信,为系统的集成和扩展提供了强大的支持。今天,我们将深入探讨NXP公司的PCA9665/PCA9665A Fm+并行总线到I2C总线控制器,详细分析其特点、功能、应用场景以及使用过程中的注意事项。
文件下载:PCA9665PW,118.pdf
PCA9665/PCA9665A作为一款高性能的总线控制器,主要用于连接标准并行总线微控制器/微处理器和串行I²C总线,实现两者之间的双向通信。它具备主模式和从模式两种工作模式,既可以作为发送器,也可以作为接收器。通过字节或缓冲模式,结合中断或轮询握手方式,实现与I²C总线的高效通信。此外,该控制器还能自动控制I²C总线的特定序列、协议、仲裁和时序,无需外部定时元件,大大简化了设计过程。
PCA9665提供SO20、TSSOP20、HVQFN20三种封装形式,而PCA9665A则采用TSSOP20封装,用户可以根据实际应用需求选择合适的封装。
PCA9665和PCA9665A内部均集成了振荡器,用于提供I²C总线的时序信号。PCA9665的典型振荡器频率为28.5 MHz,PCA9665A为32 MHz。当ENSIO位设置为‘1’后,振荡器需要最多550 μs的启动时间。
PCA9665/PCA9665A包含11个寄存器,用于配置设备的操作以及发送和接收串行数据。其中,4个寄存器可直接访问,7个寄存器需通过设置寄存器指针间接访问。
PCA9665/PCA9665A支持字节模式和缓冲模式,可通过I2CCON寄存器中的MODE位进行选择。
PCA9665/PCA9665A共有四种操作模式,每种模式都可以在字节模式或缓冲模式下使用。
当两个主设备同时生成重复启动条件时,PCA9665/PCA9665A会检测到总线上的重复启动条件,并将其作为自己的启动条件,继续发送从设备地址。
在主发送器和主接收器模式下,仲裁可能会丢失。当出现38h、68h和B0h状态时,表示仲裁丢失。如果I2CCON寄存器中的STA标志被设置,当总线再次空闲时,将自动发送启动条件(状态08h),重新开始串行传输。
在某些情况下,可能会出现总线挂起的问题,例如不受控制的源产生多余的启动信号或屏蔽停止条件。此时,如果STA标志被设置,且在合理时间内未获得总线访问权限,PCA9665/PCA9665A可以进行强制访问。当总线空闲时间达到超时时间时,会发送启动条件。
如果SCL或SDA被不受控制的源拉低,会导致I²C总线挂起。当SCL被拉低且持续时间等于超时值时,PCA9665/PCA9665A会判定为总线错误,并进行相应处理。如果SDA被拉低,PCA9665/PCA9665A会发送九个时钟脉冲,然后发送停止条件。如果SDA被释放,则发送正常启动条件,继续串行传输;否则,判定为总线错误,加载70h到I2CSTA,生成中断信号,并释放SCL和SDA线。
当START或STOP条件出现在格式帧的非法位置时,会发生总线错误。PCA9665/PCA9665A检测到总线错误后,会释放SDA和SCL线,设置中断标志,并将状态寄存器加载为00h。此时,微控制器必须发送外部硬件或软件复位信号来重置PCA9665/PCA9665A。
对于没有集成I²C总线端口的微控制器、微处理器、自定义ASIC、DSP等设备,PCA9665/PCA9665A可以将8位并行数据转换为支持多主设备的I²C总线端口,实现与I²C总线或SMBus组件的接口。
当设备已经有一个I²C总线端口,但需要更多端口来连接更多的I²C总线或SMBus组件时,PCA9665/PCA9665A可以将8位并行数据转换为额外的I²C总线端口。
作为从发送器,PCA9665/PCA9665A可以将8位并行数据转换为两线I²C总线数据流,避免在印刷电路板上铺设大量的并行线路,简化了电路设计。
在电源上电时,PCA9665/PCA9665A会进行内部上电复位,直到VDD达到VPOR。上电初始化阶段需要550 μs,在此期间,禁止通过并行端口写入数据,但可以读取。
PCA9665/PCA9665A可以通过将RESET引脚拉低至少 (t_{w(rst)}) 或使用并行软件复位序列进行复位。需要注意的是,复位操作只会重置内部寄存器和控制逻辑,不会重新初始化内部振荡器。如果设备卡死且无法响应正常的复位信号,只能通过断电再上电来恢复。
请求发送或接收的字节数应为1到68之间的值,否则将导致数据无法传输,并在写入I2CCON寄存器后生成中断。此时,I2CSTA状态寄存器将加载FCh,表示请求加载到I2CCOUNT的值无效。
PCA9665/PCA9665A Fm+并行总线到I2C总线控制器是一款功能强大、性能优越的总线控制器,具有高速传输、大容量缓冲、多模式兼容等优点,能够满足各种复杂的应用需求。在实际设计中,我们需要根据具体的应用场景,合理配置寄存器,选择合适的工作模式,并注意处理各种特殊情况,以确保系统的稳定运行。希望本文能够为电子工程师们在使用PCA9665/PCA9665A时提供有益的参考。
全部0条评论
快来发表一下你的评论吧 !