Loading...
Loading...
Compare original and translation side by side
skills/baremetal/spi-i2c-baremetalskills/baremetal/spi-i2c-baremetalPhysical probe → logic analyzer hardware (or GPIO bit-bang)
├── sigrok-cli / PulseView GUI
├── Protocol decoder (i2c, spi, uart)
└── Export VCD/CSV for scripts物理探头 → 逻辑分析仪硬件(或GPIO位 bang)
├── sigrok-cli / PulseView GUI
├── 协议解码器(i2c, spi, uart)
└── 导出VCD/CSV供脚本处理undefinedundefinedundefinedundefined| Phase | Lines |
|---|---|
| START | SDA fall while SCL high |
| Address + R/W | 7 bits + ACK |
| Data bytes | ACK per byte |
| STOP | SDA rise while SCL high |
0x48| 阶段 | 线路状态 |
|---|---|
| START | SCL为高电平时SDA下降 |
| 地址 + 读/写 | 7位地址 + ACK |
| 数据字节 | 每个字节对应一个ACK |
| STOP | SCL为高电平时SDA上升 |
0x48spi_setup()skills/kernel-dev/bus-drivers-i2c-spiskills/kernel-dev/bus-drivers-i2c-spispi_setup()import csv
with open("capture.csv") as f:
for ts, ch0, ch1 in csv.reader(f):
# edge detect, reconstruct bits
passimport csv
with open("capture.csv") as f:
for ts, ch0, ch1 in csv.reader(f):
# 边沿检测,重构比特流
passLogic capture timestamp
├── Match driver reg write sequence
├── Compare inter-byte delay vs datasheet max
└── Flag extra clock pulses (mode fault)逻辑捕获时间戳
├── 匹配驱动寄存器写入序列
├── 对比字节间延迟与数据手册最大值
└── 标记额外时钟脉冲(模式错误)/protocol-analysis Decode this I2C capture — device NACKs after register 0x0F write/protocol-analysis 解码这份I2C捕获数据——设备在写入寄存器0x0F后出现NACK| Symptom | Cause | Fix |
|---|---|---|
| Garbage decode | Wrong samplerate | ≥ 4× bus speed |
| Floating lines | Missing pull-ups | Enable internal pull or external |
| SPI shifted bits | Mode mismatch | CPOL/CPHA table from RM |
| UART framing errors | Baud drift | Measure actual bit time |
| No decoder | Missing sigrok build | Install |
| 症状 | 原因 | 解决方法 |
|---|---|---|
| 解码结果乱码 | 采样率错误 | 设置为总线速度的≥4倍 |
| 线路浮空 | 缺少上拉电阻 | 启用内部上拉或添加外部上拉电阻 |
| SPI比特移位 | 模式不匹配 | 参考参考手册的CPOL/CPHA表 |
| UART帧错误 | 波特率漂移 | 测量实际比特时间 |
| 无解码器 | sigrok构建不完整 | 安装 |
skills/baremetal/spi-i2c-baremetalskills/baremetal/uart-serial-baremetalskills/kernel-dev/bus-drivers-i2c-spiskills/profilers/strace-ltraceskills/embedded/openocd-jtagskills/baremetal/spi-i2c-baremetalskills/baremetal/uart-serial-baremetalskills/kernel-dev/bus-drivers-i2c-spiskills/profilers/strace-ltraceskills/embedded/openocd-jtag