探索DS4550:I2C与JTAG接口的9位非易失性I/O扩展器
一、引言
在电子设计领域,对于I/O扩展和非易失性存储的需求日益增长。DS4550作为一款具备I2C和JTAG接口的9位非易失性I/O扩展器,同时还带有64字节的非易失性用户存储器,为工程师们提供了一种灵活且强大的解决方案。今天,我们就来深入了解这款芯片的特性、应用及使用方法。
文件下载:DS4550.pdf
二、DS4550的概述
2.1 基本功能
DS4550具有9个双向、非易失性的输入/输出(I/O)引脚,以及64字节的EEPROM用户存储器。这些I/O引脚和用户存储器既可以通过I2C兼容的串行总线访问,也能通过JTAG接口进行操作。它为硬件跳线和机械开关提供了数字化可编程的替代方案,每个I/O引脚都能独立配置,输出为开漏形式且带有可选上拉电阻。
2.2 应用场景
- RAM-Based FPGA Bank Switching for Multiple Profiles:用于多配置文件的基于RAM的FPGA银行切换。
- Selecting Between Boot Flash:在启动闪存之间进行选择。
- Setting ASIC Configurations/Profiles Servers:设置ASIC配置/配置文件服务器。
- Network Storage Routers:网络存储路由器。
- Telecom Equipment:电信设备。
- PC Peripherals:PC外设。
三、关键特性
3.1 可编程替代方案
DS4550可替代机械跳线和开关,提供更灵活的数字控制方式。
3.2 非易失性I/O和存储器
- 9个非易失性输入/输出引脚,确保设备在掉电后能保持设定状态。
- 64字节的非易失性用户存储器(EEPROM),可存储重要数据。
3.3 接口兼容性
支持I2C兼容的串行接口和JTAG接口,方便与不同的系统进行通信。
3.4 多设备连接
在同一I2C总线上最多可进行8个设备的多节点连接。
3.5 电气特性
- 开漏输出,带有可配置的上拉电阻。
- 输出能够吸收高达16mA的电流。
- 低功耗设计,宽工作电压范围(2.7V - 5.5V)和工作温度范围(-40°C - +85°C)。
四、电气参数
4.1 绝对最大额定值
- (VCC)、SDA和SCL引脚相对于地的电压范围为 -0.5V 至 +6.0V。
- A0、A1、A2、TCK、TMS、TDI和I/O_n [n = 0 to 8]引脚相对于地的电压范围为 -0.5V 至 (VCC + 0.5V),但不超过 +6.0V。
- 工作温度范围为 -40°C 至 +85°C,EEPROM编程温度范围为 0°C 至 +70°C,存储温度范围为 -55°C 至 +125°C。
4.2 推荐直流工作条件
- 电源电压 (VCC) 范围为 +2.7V 至 +5.5V。
- 输入逻辑1的电压 (VIH) 为 0.7 x (VCC),输入逻辑0的电压 (VIL) 为 -0.3V 至 0.3 x (VCC)。
4.3 直流电气特性
| 参数 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| 待机电流 | (I_{STBY}) | 2 | 10 | (mu A) | ||
| 输入泄漏电流 | (I_{L}) | -1.0 | +1.0 | (mu A) | ||
| 每个I/O引脚的输入电流 | (I_{I/O}) | 0.4 < (V{I/O}) < 0.9 x (V{CC}) | -1.0 | +1.0 | (mu A) | |
| 低电平输出电压(SDA) | (V_{OL SDA}) | 3mA灌电流 | 0.4 | V | ||
| 低电平输出电压(SDA) | (V_{OL SDA}) | 6mA灌电流 | 0.6 | V | ||
| I/O引脚低电平输出电压 | (V_{OL I/O}) | 16mA灌电流 | 0.4 | V | ||
| 低电平输出电压(TDO) | (V_{OL TDO}) | 4mA灌电流 | 0.4 | V | ||
| 高电平输出电压(TDO) | (V_{OH TDO}) | 1mA源电流 | 2.4 | V | ||
| I/O引脚的上拉电阻 | (R_{PU}) | 4.0 | 5.5 | 7.5 | kΩ | |
| TMS、TDI的上拉电阻 | (R_{JPU}) | 7.5 | 10 | 12.5 | kΩ | |
| I/O电容 | (C_{I/O}) | 10 | pF | |||
| 上电复位电压 | (V_{POR}) | 1.6 | V |
4.4 交流电气特性
4.4.1 I2C接口
| 参数 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| SCL时钟频率 | (f_{SCL}) | 0 | 400 | kHz | ||
| 停止和启动条件之间的总线空闲时间 | (t_{BUF}) | 1.3 | (mu s) | |||
| (重复)启动条件的保持时间 | (t_{HD:STA}) | 0.6 | (mu s) | |||
| SCL的低电平周期 | (t_{LOW}) | 1.3 | (mu s) | |||
| SCL的高电平周期 | (t_{HIGH}) | 0.6 | (mu s) | |||
| 数据保持时间 | (t_{HD:DAT}) | 0 | 0.9 | (mu s) | ||
| 数据建立时间 | (t_{SU:DAT}) | 100 | ns | |||
| 启动建立时间 | (t_{SU:STA}) | 0.6 | (mu s) | |||
| SDA和SCL的上升时间 | (t_{R}) | 20 + 0.1(C_{B}) | 300 | ns | ||
| SDA和SCL的下降时间 | (t_{F}) | 20 + 0.1(C_{B}) | 300 | ns | ||
| 停止建立时间 | (t_{SU:STO}) | 0.6 | (mu s) | |||
| SDA和SCL的电容负载 | (C_{B}) | 400 | pF | |||
| EEPROM写入时间 | (t_{WR}) | I2C EEPROM写入 | 10 | 20 | ms |
4.4.2 JTAG接口
| 参数 | 符号 | 条件 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|---|
| TCK时钟周期 | (t_{1}) | 1000 | ns | |||
| TCK时钟高/低时间 | (t{2})、(t{3}) | 50 | 500 | ns | ||
| TCK到TDI、TMS的建立时间 | (t_{4}) | 15 | ns | |||
| TCK到TDI、TMS的保持时间 | (t_{5}) | 10 | ns | |||
| TCK到TDO的延迟 | (t_{6}) | 50 | ns | |||
| TCK到TDO高阻态的延迟 | (t_{7}) | 50 | ns | |||
| EEPROM写入时间 | (t_{WR}) | JTAG EEPROM写入 | 10 | 20 | ms |
五、引脚描述
| 引脚 | 名称 | 功能 |
|---|---|---|
| 1 | (I/O_0) | 输入/输出0,双向I/O引脚 |
| 2 | (I/O_1) | 输入/输出1,双向I/O引脚 |
| 3 | (I/O_2) | 输入/输出2,双向I/O引脚 |
| 4 | (I/O_3) | 输入/输出3,双向I/O引脚 |
| 5 | (I/O_4) | 输入/输出4,双向I/O引脚 |
| 6 | A0 | I2C地址输入,与A1、A2共同确定设备的I2C从地址 |
| 7 | A1 | I2C地址输入,与A0、A2共同确定设备的I2C从地址 |
| 8 | TCK | JTAG测试时钟,用于在上升沿将数据移入TDI,在下降沿将数据移出TDO |
| 9 | TMS | JTAG测试模式选择,在TCK上升沿采样,用于将TAP置于不同的JTAG状态,该引脚有内部上拉电阻 |
| 10 | (V_{CC}) | 电源电压 |
| 11 | SDA | I2C串行数据开漏输入/输出 |
| 12 | SCL | I2C串行时钟输入 |
| 13 | TDI | JTAG测试数据输入,测试指令和数据在TCK上升沿时钟输入该引脚,该引脚有内部上拉电阻 |
| 14 | TDO | JTAG测试数据输出,测试指令和数据在TCK下降沿时钟输出该引脚,若不使用应开路 |
| 15 | A2 | I2C地址输入,与A0、A1共同确定设备的I2C从地址 |
| 16 | (I/O_5) | 输入/输出5,双向I/O引脚 |
| 17 | (I/O_6) | 输入/输出6,双向I/O引脚 |
| 18 | (I/O_7) | 输入/输出7,双向I/O引脚 |
| 19 | (I/O_8) | 输入/输出8,双向I/O引脚 |
| 20 | GND | 地 |
六、内存映射和类型
DS4550的内存分为三种类型:EEPROM、SRAM-shadowed EEPROM和SRAM。
6.1 EEPROM
地址范围为 00h 至 3Fh,是64字节的通用用户EEPROM,写入这些位置会触发EEPROM写入周期。
6.2 SRAM-shadowed EEPROM
地址范围为 E8h 至 EFh、F0h、F1h、F2h、F3h、F4h,可通过配置寄存器中的SEE位设置为两种模式。当 (SEE = 0) 时,像EEPROM一样工作;当 (SEE = 1) 时,写入影子SRAM,避免了EEPROM写入时间和磨损问题。
6.3 SRAM
地址范围为 F8h、F9h、FAh 至 FFh,包括I/O状态寄存器和6字节的通用SRAM。
七、I2C和JTAG操作
7.1 I2C操作
7.1.1 基本概念
- 主设备:控制总线上的从设备,生成SCL时钟脉冲、起始和停止条件。
- 从设备:根据主设备的请求发送和接收数据。
- 总线空闲:SDA和SCL都处于高电平的时间段。
- 起始条件:主设备在SCL为高电平时将SDA从高电平拉低。
- 停止条件:主设备在SCL为高电平时将SDA从低电平拉高。
- 重复起始条件:用于在一次数据传输结束后立即开始新的数据传输。
- 位写入:SDA在SCL低电平时进行转换,数据在SCL高电平期间保持有效。
- 位读取:主设备在读取位之前需要释放SDA总线。
- 确认(ACK和NACK):数据传输的第9位用于确认,0表示ACK,1表示NACK。
7.1.2 通信方式
- 单字节写入:主设备生成起始条件,写入从地址字节( (R / bar{W}=0) )、内存地址、数据字节,最后生成停止条件。
- 多字节写入:主设备生成起始条件,写入从地址字节( (R / bar{W}=0) )、内存地址,最多写入8个数据字节,最后生成停止条件。
- 单字节读取:主设备生成起始条件,写入从地址字节( (R / bar{W}=1) ),读取数据字节并发送NACK,最后生成停止条件。
- 多字节读取:主设备在读取每个字节后发送ACK,直到读取最后一个字节时发送NACK,然后生成停止条件。
7.2 JTAG操作
DS4550的JTAG端口包含测试访问端口(TAP)控制器状态机。TAP控制器是一个有限状态机,根据TCK上升沿时TMS的逻辑电平进行状态转换。
7.2.1 指令寄存器
指令寄存器包含一个4位的移位寄存器和锁存并行输出。DS4550支持多种指令,如SAMPLE/PRELOAD、BYPASS、EXTEST等,每种指令有对应的操作和功能。
7.2.2 测试数据寄存器
- 旁路寄存器:1位移位寄存器,用于BYPASS、CLAMP和HIGHZ指令。
- 边界扫描寄存器:33位寄存器,包含移位寄存器路径和锁存并行输出。
- 识别寄存器:32位寄存器,用于IDCODE指令。
- 内存地址寄存器:8位寄存器,用于存储要读写的内存地址。
- 内存读取寄存器:8位只读寄存器,用于读取内存数据。
- 内存写入寄存器:8位只写寄存器,用于写入内存数据。
八、应用注意事项
8.1 电源去耦
为了获得最佳性能,建议在IC电源引脚使用去耦电容,典型值为0.01uF和0.1uF,使用高质量的陶瓷表面贴装电容,并尽可能靠近IC的 (VCC) 和GND引脚安装,以减少引线电感。
8.2 EEPROM写入
使用I2C或JTAG接口进行EEPROM写入时,即使只修改一页中的一个字节,DS4550也会写入整个EEPROM内存页。在写入EEPROM后,需要等待EEPROM写入时间( (t_{WR}) ),可以通过确认轮询的方式在设备准备好后继续通信。
九、总结
DS4550作为一款功能强大的I/O扩展器,提供了I2C和JTAG两种接口,具有非易失性I/O和64字节的用户存储器,适用于多种应用场景。通过深入了解其电气参数、引脚功能、内存映射和操作方式,工程师们可以更好地利用这款芯片进行电子设计。你在使用DS4550的过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
-
JTAG
+关注
关注
6文章
417浏览量
75324 -
I2C
+关注
关注
28文章
1565浏览量
131901
发布评论请先 登录
探索DS4550:I2C与JTAG接口的9位非易失性I/O扩展器
评论