ZHCSYN0 July 2025 TPLD2001
ADVANCE INFORMATION
当配置为 I2C 时,宏单元使用以下 IO:
IO6:SCL
IO7:SDA
IO5:硬件定义的 ADDR 3、A3(可选)
IO4:硬件定义的 ADDR 4、A4(可选)
IO3:硬件定义的 ADDR 5、A5(可选)
IO2:硬件定义的 ADDR 6、A6(可选)
TPLD2001 支持:
Peripheral/Target mode only
标准模式、快速模式和快速+ 模式
可通过 IO 或 OTP 存储器配置 4 位硬件地址
双向 I2C 总线由串行时钟 (SCL) 线和串行数据 (SDA) 线组成。当连接到器件的输出级时,两条线都必须通过上拉电阻器连接到正电源。只有当总线处于不忙状态时,才能启动数据传输。
TPLD 的目标器件地址源自 OTP,最高有效字节具有一个来自 IO 的选项,TPLD 将在上电时持续采样。还有一个选项可以启用 IO 锁存,仅在 TPLD 设备上电时对 IO 进行采样,这将允许在电路设计中将相应的 GPIO 用作数字输入。
当 SCL 输入为高电平时,控制器发送 START 条件(SDA 输入/输出上由高电平到低电平转换)启动与该器件的 I2C 通信。在发送 START 条件之后,会发送器件硬件地址字节,首先发送最高有效位 (MSB),包括数据方向位 (R/W)。
接收到有效地址字节后,该器件以确认 (ACK) 响应,在 ACK 相关时钟脉冲的高电平期间,SDA 输入/输出为低电平。响应器器件的地址输入不得在 START 条件和 STOP 条件之间更改。
在 I2C 总线上,在每个时钟脉冲期间仅传输一个数据位。在时钟周期的高脉冲期间,SDA 线上的数据必须保持稳定,因为此时数据线上的变化会被解释为控制命令(START 或 STOP)。
控制器会发送 STOP 条件,即当 SCL 输入为高电平时,SDA 输入/输出由低电平到高电平转换。
在 START 和 STOP 条件之间,可以将任意数量的数据字节从发送器传输到接收器。每个八位字节后跟一个 ACK 位。发送器必须先释放 SDA 线,接收器才能发送 ACK 位。做出应答的器件必须在 ACK 时钟脉冲期间下拉 SDA 线路,这样,在 ACK 相关时钟周期的高脉冲期间,SDA 线路稳定为低电平。当响应器接收器被寻址时,它必须在接收到每个字节后生成一个 ACK。类似地,控制器必须在它从响应器发送器接收到每个字节之后生成一个 NACK。必须满足设置和保持时间才能正常运行。
控制器接收器通过在最后一个字节已经从响应器计时输出之后不生成确认 (NACK) 来向响应器发送器发送数据结束信号。这是由控制器接收器通过将 SDA 线保持为高电平来完成的。在这种情况下,发送器必须释放数据线,才能使控制器生成 STOP 条件。
在向 TPLD2001 写入或读取数据时,可以通过向地址 0x0FD 的第 0 位写入逻辑 0,启用地址自动递增功能。可通过写入逻辑 1 禁用。请注意,对于 I2C,地址自动递增仅在特定的扩展或页面地址内有效。因此,如果使用突发读取或写入操作,请记住 0x0FF 会回滚到 0x000。
要向 TPLD2001 传输数据或写入数据,总线控制器必须发送器件硬件地址并将最低有效位 (LSB) 设置为逻辑 0。接下来的两个字节设置寄存器地址,然后是写入的数据。一次写入帧中发送的数据字节数没有限制。
若要从 TPLD2001 中读取数据,总线控制器必须首先发送 TPLD2001 硬件地址,并将 LSB 设置为逻辑 1。后续字节包含先前写入地址中的数据,如果启用了地址自动递增功能,则包含下一个地址中的数据。
软件复位广播是 I2C 总线上的控制器发出的命令,指示所有支持该命令的器件复位为上电默认状态。要确保按预期运行,I2C 总线必须能够正常工作,并且任何器件都不能挂起总线。
软件复位广播定义为以下步骤:
I2C 总线控制器发送一个启动条件。
使用的地址是保留的通用广播 I2C 总线地址“0000 000”,其中 R/W 位设置为 0。发送的字节为 0x00。
任何支持通用广播功能的器件都将 ACK。如果 R/W 位设置为 1(读取),器件将 NACK。
通用广播地址得到确认后,控制器仅发送等于 0x06 的 1 字节数据。如果数据字节是任何其他值,器件将不会确认或复位。如果发送的数据超过 1 字节,则不会再确认更多字节,并且器件将忽略 I2C 消息,将其视为无效。
发送 1 字节数据 (0x06) 后,控制器发送一个 STOP 条件来结束软件复位调用序列。器件将忽略重复的 START 条件,并且不会执行复位。
成功完成上述步骤后,器件将执行复位,将所有寄存器值恢复为上电默认值。