ZHCAEZ7 February   2025 TPLD1202 , TPLD1202-Q1

 

  1.   1
  2.   2
  3.   商标

为什么使用串行通信

TI 的可编程逻辑器件 (TPLD) 中的串行通信允许使用用户寄存器空间。在使用用户寄存器空间时,可对所选字段进行小幅调整,例如计数器块控制数据字段,或者可以在无需通过器件引脚的情况下像 I/O 一样使用。TPLD 目前仅支持用户寄存器、可在 "Detailed Description -> Device functional modes -> Programming -> “Device name” Registers -> “device name”_USER_REGISTER" 下找到。在本应用简报中,TPLD1202 是所使用的器件,任何对地址的引用都基于该器件的用户寄存器表。

注: 用户寄存器空间与配置空间不一样。用户寄存器空间不允许更改连接或修改选定字段之外的原始设计。

寄存器空间中的可用功能

表 1 是一个用户寄存器空间的示例。该表并没有包含所有器件中可用的所有选项,但它包含了大部分可用选项。

表 1 示例用户寄存器
首字母缩写词 位 7 位 6 位 5 位 4 位 3 位 2 位 1 位 0
DEVICE_ID0 DEVICE_ID_MSB
DEVICE_ID1 DEVICE_ID_LSB
DEVICE_ID2 DEVICE_ID_RSVD
DEVICE_ID3 DEVICE_ID_REV
DEVICE_ID4 DEVICE_ID4
DEVICE_ID5 DEVICE_ID5
DEVICE_ID6 DEVICE_ID6
DEVICE_ID7 DEVICE_ID7
CNT0_COUNT CNT0_COUNT
CNT1_COUNT CNT1_COUNT
CNT2_COUNT CNT2_COUNT
CNT3_COUNT CNT3_COUNT
CNT4_COUNT_LSB CNT4_COUNT_LSB
CNT4_COUNT_MSB CNT4_COUNT_MSB
CNT5_COUNT_LSB CNT5_COUNT_LSB
CNT5_COUNT_MSB CNT5_COUNT_MSB
CNT6_COUNT CNT6_COUNT
CNT7_COUNT CNT7_COUNT
CNT8_COUNT CNT8_COUNT
CNT9_COUNT CNT9_COUNT
CNT0_DATA CNT0_DATA
CNT1_DATA CNT1_DATA
CNT2_DATA CNT2_DATA
CNT3_DATA CNT3_DATA
CNT4_DATA_LSB CNT4_DATA_LSB
CNT4_DATA_MSB CNT4_DATA_MSB
CNT5_DATA_LSB CNT5_DATA_LSB
CNT5_DATA_MSB CNT5_DATA_MSB
CNT6_DATA CNT6_DATA
CNT7_DATA CNT7_DATA
CNT8_DATA CNT8_DATA
CNT9_DATA CNT9_DATA
WATCHDOG_TIMEOUT_DATA WATCHDOG_TIMEOUT_DATA
WATCHDOG_OUTPUT_DATA WATCHDOG_OUTPUT_DATA
WATCHDOG_STATUS WATCHDOG_STATUS
PGEN_DATA_LSB PGEN_DATA_LSB
PGEN_DATA_MSB PGEN_DATA_MSB
STATE_MACHINE RESERVED CURRENT_STATE
STATE0_OUT STATE0_OUT
STATE1_OUT STATE1_OUT
STATE2_OUT STATE2_OUT
STATE3_OUT STATE3_OUT
STATE4_OUT STATE4_OUT
STATE5_OUT STATE5_OUT
STATE6_OUT STATE6_OUT
STATE7_OUT STATE7_OUT
VREF_ACMP0 VREF_ACMP0
VREF_ACMP1 VREF_ACMP1
VREF_ACMP2 VREF_ACMP2
VREF_ACMP3 VREF_ACMP3
VREF_McACMP0_0 VREF_McACMP0_0
VREF_McACMP0_1 VREF_McACMP0_1
VREF_McACMP1_0 VREF_McACMP1_0
VREF_McACMP1_1 VREF_McACMP1_1
VREF_McACMP2_0 VREF_McACMP2_0
VREF_McACMP2_1 VREF_McACMP2_1
VREF_McACMP3_0 VREF_McACMP3_0
VREF_McACMP3_1 VREF_McACMP3_1
VIRTUAL_INPUT VIRTUAL_IN
VIRTUAL_OUTPUT VIRTUAL_OUT
SER_COMM_CFG RESERVED ADDR_AUTOINC
CRC_STATUS CRC_ERR_CNT RESERVED CRC_ERR_FLAG
SER_COMM_WR_MASK SER_COMM_WR_MASK

可使用 DEVICE_ID 寄存器为每个设计创建一个标识。前 2 个 DEVICE_ID 寄存器由器件根据所选器件进行设置,例如,TPLD1202 在 DEVICE_ID0 中有 0x12,在 DEVICE_ID1 中有 0x02,而 TPLD2001在 DEVICE_ID0 中有 0x20,在 DEVICE_ID1 中有 0x01。Device_ID 4-7 在启动时加载,并配置了写入 InterConnect Studio 内系统设置的程序 ID。

从地址 0 开始到地址 7 是器件的标识符。例如,其中包括基于 TI 产品编号的器件 ID。TPLD1202 在地址 0x00 = 0x12 和地址 0x01 = 0x02 处有寄存器,其中 TPLD2001 分别配有 0x20 和 0x01。之后,在启动时将寄存器 DEVICE_ID 4-7 加载程序 ID。这意味着,从地址 0-7 读取数据是用户所创建的每项设计完全唯一的值。读取这些寄存器不仅能获知哪些器件正在使用,还能获知当前正在加载的设计。

CNTx_COUNT 寄存器是只读寄存器,能反映计数器块的当前计数。这可用于粗略估算计数器在达到零之前剩余的时长。请务必注意,此读取操作与实际计数器是异步的,因此根据读取值的时间,计数器可能会在通过通信协议返回值之前迭代。

CNTx_DATA 寄存器是读取/写入寄存器,能存储已写入 InterConnect Studio 中的控制数据值。这些值可动态更新,让用户能够调整 PWM 输出、增加/减少延迟以及调整块,例如动态频率检测器。

寄存器空间内的看门狗部分允许用户读取状态和调整看门狗计时器的超时时间和输出脉冲长度。WATCHDOG_STATUS 记录自启动以来或自上次读取以来触发看门狗的次数。该寄存器在被读取时复位。增加 WATCHDOG_TIMEOUT_DATA 中的值会增加在触发输出脉冲之前信号可以处于低电平的时间。增加 WATCHDOG_OUTPUT_DATA 的值会增加触发看门狗时的输出脉冲长度。

寄存器空间内的 STATE_MACHINE 部分允许用户控制当前状态并调整每种状态行为。SM_CURRENT_STATE 包含二进制格式的当前状态,单位为位 2-0。这是 R/W,因此不仅可读取当前状态,还可使用串行控制器强制状态机进入特定状态。本节还包含列示为 SM_S#_OUT_CFG 的状态输出。这样,控制器便可以调整该部分中任何给定状态的输出。

寄存器空间内的 VREF 部分允许用户调整进入多通道模拟比较器和独立模拟比较器 IN- 的值。此处写入的值不是 VREF 的值,而是 VREF 引用的值。在 TPLD2001 中,VREF 的步长为32mV,因此将值从 0x00 增加到 0x01 会将该基准从 32mV 更改为 64mV。

VIRTUAL_INPUT 寄存器用于存储进入 TPLD 器件的值。该寄存器用作器件的可选输入。其能代替引脚,扩大控制器的输出计数。

VIRTUAL_OUTPUT 寄存器能用于存储在任何给定时间从 TPLD 器件发出的值。与上述的早期 CNT_COUNT 寄存器类似,该寄存器的读取是异步的,因此在发出请求后和返回数据之前,这些值中的任一值可能会发生更改。

CRC_STATUS 寄存器用于检查器件是否已正确启动。CRC_ERR_CNT 段存储 CRC 过程在成功启动之前迭代的次数。TPLD 器件设计为在完全上电之前最多运行 8 个 CRC_ERR_CNT 值。如果该值为 8 且 CRC 校验失败,则 CRC_ERR_FLAG 将翻转为1。该寄存器可用于检查 TPLD 中的设计是否已成功加载,如果这些值是不可接受,则器件上电循环。如果器件再次启动失败,则对连接到 TPLD 的设计进行误差分析。

SER_COM_WR_MASK 寄存器可屏蔽未来任何的读取或写入。这可用于仅读取寄存器的下半部分或上半部分。不在屏蔽范围内的值全部由 TPLD 读取为 0 或作为 0 返回至控制器。

如何在系统中设置 I2C 或 SPI 通信。

每个 TPLD 都有一组特定的、连接到串行通信的引脚,在外设添加到设计中时会对这些引脚进行初始化。欲了解 I2C 设置示例,可参阅 图 1。欲了解 SPI 设置示例,可参阅 图 2

 TPLD1202 的 I2C 设置示例图 1 TPLD1202 的 I2C 设置示例
 TPLD1202 的 SPI 设置示例图 2 TPLD1202 的 SPI 设置示例

如何在 InterConnect Studio 中设置 I2C 或 SPI

InterConnect Studio (ICS) 是一款用于设计、模拟和配置 TPLD 系列器件的软件工具。

图 3 显示了 InterConnect Studio 中 I2C 外设的初始设置。通过点击红色箭头指示的加号按钮,可以将 I2C 添加到设计中。外设地址是一个二进制值,可用于静态设置此 TPLD 设计的地址。外设地址下方是一个设置,能启用外部基于引脚的地址。许多 I2C 外设都配置了预定义的地址,但 TPLD 没有,而是使用这两个设置允许许多 TPLD 置于 I2C 总线上,但并不会相互干扰。通过启用基于引脚的地址,可以在通信开始时,使用引脚上存在的逻辑值覆盖外设地址。I2C 唯一的最后一项设置是全局复位侦听。当控制器发送复位命令时、全局复位侦听可以复位器件。

 ICS 中默认的 I2C图 3 ICS 中默认的 I2C

SPI 的选项较少,因为 SPI 不是如 图 4所示的可寻址协议。Virtual Inputs 的共享选项可允许器件查看 VIRTUAL_INPUT 寄存器。在某些 TPLD 系列器件中,虚拟输入代替某些引脚作为连接矩阵的输入,并查看数据表以阐明哪些输入无法一起使用。例如,在 TPLD1202 中,VIR_IN0 与 IO1共享,如 表 2 所示。这表示,如果选择了 VIR_IN0,则 IO1不能用作设计的输入引脚。

 ICS 中的默认 SPI图 4 ICS 中的默认 SPI
表 2 TPLD1202共享输入
虚拟输入 VIR_IN0 VIR_IN1 VIR_IN2 VIR_IN3 VIR_IN4 VIR_IN5 VIR_IN6 VIR_IN7
数字输入引脚 IO1 IO2 IO3 IO4 IO5 IO6 IO7 IO9

构建有关 I2C 的设计

I2C 的一个简单实现方式是将 TPLD1202 用作 I/O 扩展器,如 图 5 所示。三个引脚被用作数字输入,并被馈送到块的输入端。这些引脚将把值馈入 VIRTUAL_OUTPUT 寄存器中,在运行期间读取此寄存器。四个引脚用作器件的数字输出,并连接到 VIR_IN0、VIR_IN1、VIR_IN2 和 VIR_IN3。这些引脚能显示 VIRTUAL_INPUT 寄存器中存在的值,例如 pin4 (IO6) 能显示位 0,依此类推。

在默认情况下,PWM 以 50% 的占空比运行。KEEP 输入保持为高电平,因此除非覆盖 CNT_DATA 的值,否则占空比绝不会改变。

 具备脉宽调制功能的 IO 扩展器图 5 具备脉宽调制功能的 IO 扩展器

运行设置如 图 6 所示,其中不包括逻辑分析仪连接。TPLD-PROGRAM 用于更新设计,而无需烧录器件。消息传递期间,在 USB2ANY 内使用内部上拉电阻。

 TPLD1202 连接到 USB2ANY图 6 TPLD1202 连接到 USB2ANY

若要写入引脚 4 至 7,我们将值写入 VIRTUAL_INPUT 内部地址中(地址:0xE0)。可以在 图 7 中查看 USB2ANY explorer 设置,且可以在 图 8 中查看操作示例。在 Slave Address 框中输入的地址与设计不同,因为在 TPLD1202中,I2C 接收器仅使用 4 位、而 USB2ANY 使用一个 7 位地址。必须将输入的地址值从输入到 IC 的值向左移动 3 位,才能识别 TPLD。命令之间的唯一变化是在选择写入之前更改写入数据部分的值。

 USB2ANY Explorer 写入 VIRTUAL_INPUT图 7 USB2ANY Explorer 写入 VIRTUAL_INPUT
 写入引脚的波形图 8 写入引脚的波形

若要从引脚 0 至 2 读取数据,我们首先对寄存器 VIRTUAL_OUTPUT 进行空写(地址:0xE1),然后对器件执行读取命令。可以在 图 9 中查看 USB2ANY explorer 设置,且可以在 图 10 中查看操作示例

 USB2ANY Explorer 从 VIRTUAL_OUTPUT 中读取图 9 USB2ANY Explorer 从 VIRTUAL_OUTPUT 中读取
 从引脚读取的波形图 10 从引脚读取的波形

最后、若要调整 PWM,请将新值写入寄存器 CNT6_DATA (地址:0x26)。可以在 图 11 中查看 USB2ANY explorer 设置,且可以在 图 12 中查看操作示例

 USB2ANY Explorer 写入 CNT6_DATA图 11 USB2ANY Explorer 写入 CNT6_DATA
 调节 PWM 的波形图 12 调节 PWM 的波形

订购信息

可在 表 3 中找到支持本文档的硬件

表 3 订购信息
器件 EVM
所有 TPLD TPLD-PROGRAM
TPLD1202 TPLD1202-DYY-EVMTPLD1202-RWB-EVM
不适用 USB2ANY