ZHCUB80C August 2004 – July 2023 PGA309
通过一个与 UART 兼容的单线制接口(PRG 引脚)可以配置 PGA309。此接口还可用于对外部业界通用的两线制 EEPROM 器件进行编程。有六种可能的通信事务。通过这些事务可以更新内部寄存器指针、更新外部 EEPROM 指针、读取内部寄存器、写入内部寄存器、读取 EEPROM 数据和写入 EEPROM 数据。在真正三线制的传感器模块应用中,可以将使用单线制接口的 PRG 引脚连接至 VOUT 引脚,并且仍然允许数字编程。
每个事务由几个字节的数据传输组成。每个字节包含 10 个位周期。第一个位是起始位,始终为零。当没有通信正在进行时,PRG 引脚应始终处于高电平。PRG 引脚的一到零(高电平到低电平)转换表示字节传输开始,当前字节的所有时序信息都以该转换为基准。位 2 到位 9 是该字节的八个数据位,首先传输最低有效位 (LSB)。第 10 位是停止位,始终为“1”。连接 PRG 引脚的建议电路实现方案使用上拉电阻和/或上拉电流源以及连接到 PRG 引脚的漏极开路(或集电极开路)驱动器。PRG 引脚也是开漏输出。在从控制器发送期间,PRG 引脚可能会被数字编程器(控制器)驱动为高电平,但是在接收事务期间需要某种形式的上拉电阻以允许信号变为高电平,因为 PGA309 只能将输出拉至低电平。图 4-5 展示了 PGA309 PRG 引脚和控制器之间的典型连接。
所有通信事务均以控制器发送的初始化字节开始。该字节 (55h) 用于检测通信事务所使用的波特率。在每个事务的初始化字节期间检测波特率。此波特率用于整个事务。如果需要,每个事务可以使用不同的波特率。支持 4800 到 38400 的波特率。第二个字节是控制器发送的命令字节。
有六种可能的命令:
请参阅图 4-6,了解这些事务的时序详情。
数据传输发生在命令字节之后。数据传输的字节数和方向取决于命令字节。
对于 Set PGA309 Register Address Pointer (01h) 命令,控制器需要发送一个额外的字节。该字节用于为下一个 PGA309 Write Register (04h) 或 PGA309 Read Register (10h) 命令选择 PGA309 内部寄存器。对于 PGA309 Write Register 命令,控制器需要发送两个额外的字节。这两个字节(首先发送最低有效字节)存储在由寄存器地址指针指向的 PGA309 内部寄存器中。寻址的寄存器将在第二个字节的传输完成时同时更新所有 16 位。对于 PGA309 Read Register (10h) 命令,PGA309 发送两个额外的字节。在命令字节完成后,PGA309 会等待八个位周期才开始发送。这段时间是为了让控制器确保 PGA309 能够控制单线制接口。发送的第一个字节是寄存器的最低有效字节,第二个字节是寄存器的最高有效字节。
对于一个单线制 PGA309 序列,事务可以一个接一个地重复,如图 4-7 所示。对于一个单线制 PGA309 寄存器读取序列,事务可以在从 PGA309 接收到数据后重复,同样如图 4-7 所示。
对于 Set EEPROM Address Pointer (02h) 命令,控制器必须发送两个额外的字节。这些字节用于下一个 Write EEPROM (08h) 或 Read EEPROM (20h) 命令的 EEPROM 地址。对于 Write EEPROM (08h) 命令,控制器会发送两个额外的字节。这两个字节被写入 EEPROM 并存储在 EEPROM 地址指针中包含的地址处。第一个字节(最低有效字节)写入到 EEPROM 地址指针中的地址。第二个字节(最高有效字节)写入到 EEPROM 地址指针中的地址加一。为了避免产生任何混淆,EEPROM 地址指针始终设置为偶数值。第一个字节写入到偶数地址,第二个字节写入到下一个连续的奇数地址。
控制器负责确保 EEPROM 器件在发生其他 EEPROM 通信之前有足够的时间成功完成写入操作。对于典型的 EEPROM,这个时间大约为 5.6ms(PGA309 将 16 位字节写入 EEPROM 需要 0.6ms,EEPROM 非易失性内部写入周期需要 5ms)。对于 Read EEPROM (20h) 命令,PGA309 会发送两个额外的字节。在命令字节完成后,PGA309 等待八个位周期,以便有时间改变数据方向。PGA309 还会等待来自 EEPROM 器件的读取通信发生。这通常会产生 600μs 的额外延迟。发送的第一个字节是最低有效字节(来自 EEPROM 地址),发送的第二个字节是最高有效字节(来自 EEPROM 地址 + 1)。
对于连续的单线制 PGA309 EEPROM 写入,控制器必须在事务之间插入一个典型的 5.6ms 延迟,如图 4-8 所示。对于连续的单线制 PGA309 EEPROM 读取,事务可以在从 PGA309 接收到数据后重复,如图 4-8 所示。
如果出现无效的通信事务或与 EEPROM 断开连接,单线制 EEPROM 读取值将全为 1。