# A62 非阻塞 I²C 写入、配置读取与共享总线归属

状态：源码/ARM 构建/主机模型通过；FABRICATION_HOLD；未烧录、未上电。

## 已完成

新增灯板 I²C1 主循环独占归属模块。读取器和写入器在 START 前取得归属，STOP 完成或故障后释放；非归属对象不能取消或释放另一对象的事务。不支持 IRQ/DMA/HAL 并发访问。

新增非阻塞写入器：复制调用方数据，TXIS 逐字节发送；全部字节发送、STOPF 出现且 BUSY 清除后才发布完成。总事务和轮询间隔均限制 5 ms。NACK、总线错误、仲裁丢失、溢出、超时、配置丢失、提前 STOP 和异常阶段均拒绝完成；仲裁丢失时不追加 STOP。

候选支持 2 字节单寄存器帧，以及 25 字节 PWM/IREF 帧。仅允许三个候选单播地址，不支持广播、软件复位或地址寄存器写入。突发写入需要上层事先配置并回读验证 MODE1 的自动递增模式；底层传输不会证明电流/光学许可。

读取器新增配置寄存器范围 0x00..0x39、0x3f..0x46，排除组地址范围。这为 MODE、LEDOUT、PWM、IREF 的写后回读提供接口；完整初始化与逐项匹配状态机尚未接入。

A61 三芯片诊断继续在主循环运行路径中；新写入器已链接但尚无主循环启动调用。复位释放逻辑维持 A61，OE 高、电源请求低、看门狗不踢、eligible 掩码为 0；不授予开灯许可。

## 本轮验证

- ARM GCC 16.2.0：text 21096、data 4、bss 3272 字节；镜像静态检查确认读写模块归属获取，以及写入器尚未进入主循环。
- ASan/UBSan：50 项时钟配置检查、65,731 项扩展读取检查、26 组三芯片集成模型、120 个诊断运行场景通过。
- 新写入模型：18 个完整帧、275 个逐字节/STOP 阶段错误注入、65,536 个地址/控制字组合、27 种长度，以及双向读写竞争、错误对象取消/释放、时钟变化、时间倒退、超时检查通过。
- 旧读取模型的清理顺序已修正：先取消上次事务并释放归属，再重置 MMIO 和初始化时钟。不能在初始化新时钟后才取消旧事务，否则会关闭刚初始化的外设。
- 模型不证明实板 ACK、波形、负载、温升或光学效果；此前其他模块的完整回归及变异测试未全部重跑。

## 原厂依据

PCA9956B 原厂寄存器表和控制字/自动递增说明用于帧地址与范围设计：https://www.nxp.com/docs/en/data-sheet/PCA9956B.pdf 。调用方仍需证明 MODE1 配置匹配突发类型，底层发送成功不等于配置匹配。

## 下一步与未完成项

需要实现先于诊断运行的完整暗态初始化和逐寄存器回读状态机，并将 PWM/IREF 输出适配改为有界异步流程；现有同步驱动回调不能直接接到本写入器上。之后继续电流/热限制、视觉控制和原产品功能效果验证。

三款共 20 项实物效果要求仍未验证；没有样品、实板 I²C 波形、锁定供应商成本报价。每款 1000 台、优先整机成本的目标保持。最新驱动板为 A59，其 CAD 全部 0 错误不等于可以直接量产。没有购买、下单、Gerber/CAM 放行、烧录或上电。

## 文件与复核

可编辑源码、ARM bin/elf/map、反汇编、构建验证 JSON、主机模型与日志随包提供；包根 `sh run_host_checks.sh`，目标目录 `sh build.sh` 使用 ARM GCC。SHA256-MANIFEST.json 可核对逐项文件。
