目录
1. 简介
本文分享使用 AD2 快速调试 I2C 设备的案例。
- 通过 Waveform 读写 EEPROM。
- 通过 Javascript 脚本配置 Si5338 芯片。
I2C接口
I2C(Inter-Integrated Circuit)接口是一种高度灵活的通信协议,通过仅使用两条线(即数据线SDA 和时钟线 SCL)实现了多个设备间的数据传输。
Si5338芯片
Si5338 可以生成四个独立的时钟信号,每个输出时钟都可以独立配置以支持各种信号格式和供电电压。这使得它非常适合在有限空间内实现多频率合成。Si5338 具有极低的抖动性能。它广泛应用于网络、通讯、高性能计算等领域,特别是在需要精确时钟信号的场合。Si5338通过I2C接口进行配置和控制,可以灵活地设置输出频率、相位和其他参数,满足不同应用的需求。
2. 软件工具介绍
Waveform 中包含三个与 I2C 接口相关的工具模块:
- Logic:逻辑分析仪。
- Protocol:相当于数字模式发生器和逻辑分析仪的组合。
- Script:直接使用脚本控制硬件。
2.1 逻辑分析仪功能
可以单独使用 Logic Analyzer 捕获波形,也可以联合 Protocol 一起使用。
在 I2C 触发向导中,可以指定以下选项:
- 触发:选择在 I2C 开始、停止、任何 ACK/NACK 和特定地址、读/写、确认以及数据选项之间进行选择。
- 地址/数据:指定连续的地址和数据值,或选择忽略它。
- 读/写:选择读取、写入或忽略操作类型。
- 确认:选择 ACK、NAK 或忽略确认。
2.2 IIC 模式
2.2.1 Master 模式
Master Mode 用于创建完整的读写传输。
假设你有一个 I2C 设备地址为 0x50,想要将 1 2 3 h45 b10101111 这五个数据写入到该设备的 0x02 开始的寄存器,可以这样配置:
- Clock Stretching 是 I2C 协议中的一个机制,允许从设备在需要更多时间处理数据时,将时钟信号(SCL 线)保持在低电平,从而暂停与主设备的通信。当从设备准备好继续通信时,它会释放时钟信号,主设备检测到这一点后,继续数据传输。这个机制也用于处理速度不同的设备之间的通信,不过 Clock Stretching 也可能导致总线带宽降低。
注意:一般情况下,需要关闭 Clock Stretching。
2.2.2 Spy 模式
- 监听模式用于解码 I2C 通信。
- Filter 选项用于指定要记录的地址和(读或写)操作。
- FreqFilte r启用接收频率过滤器,以消除信号上的干扰。指定的频率用于过滤掉10%的干扰,例如对于100kHz的脉冲,短于1微秒的将被忽略。
- 齿轮下拉菜单包含启用时间戳的选项。
3. ClockBuilder
3.1 流程
3.2 配置 ClockBuilder
1)Home Page
2)Universal Pin Configuration
3)Supply Voltages and Host Interface
4)Input Clocks
5)Output Frequencies
6)Output Driver
7)Frequency and Phase Offset