5.2.3. 编程指南

5.2.3.1. 初始化

  1. 根据系统配置,将 SPI ENC 模块连接到正确的 SPI 控制器。

    通过设置 SPIE_CTL[13:12] 选择连接的 SPI 控制器

  2. 设置密钥

    默认使用 eFuse 中的密钥数据,也通过 SPIE_DBGR, SPIE_KDBG, SPIE_NDBG 设置密钥

  3. 中断使能

    通过设置 SPIE_ICR 寄存器使能相应中断

5.2.3.2. 使用流程

  1. 读写 SPI 存储时,对于命令和 SPI 器件的 OTP 读写操作,不需要进行加解密

    传输时需要确保 SPIE_CTL[0] = 0(KEY_START = 0)

  2. 在进行 SPI 存储的加密数据传输时

    1. 首先要设置当前访问的数据地址 SPIE_ADDR和用于调整 Counter 值的 SPIE_TWEAK

    2. 以及设置当前传输的密文数据位置 SPIE_CPOS, SPIE_CLEN

  3. 最后开始计算分组密钥

    1. 设置 SPIE_CTL[0] = 1 (KEY_START = 1)

    2. 检查密钥是否已经产生(SPIE_ISR[0])

  4. SPI 控制器开始传输数据

  5. 通过 SPIE_ISR 检查

    1. 加解密是否完成

    2. 读取的数据是否为空数据(全为 0xFF)