ZHCUC57E August   2016  – July 2024

 

  1.   1
  2.   商标
  3. 引言
    1. 1.1 文档概览
    2. 1.2 软件概述
    3. 1.3 前照灯概述
  4. 电气接口
    1. 2.1 加电信号
      1. 2.1.1 STAY-IN-BOOT (TSTPT_0)
      2. 2.1.2 HOST_IF_SEL
      3. 2.1.3 CRCZ_CHKSUM_SEL
      4. 2.1.4 HOST_SPI_MODE
        1. 2.1.4.1 引导流程调试
      5. 2.1.5 SPREAD-SPECTRUM-DISABLE (TSTPT_5)
    2. 2.2 系统信号
      1. 2.2.1 HOST_IRQ
      2. 2.2.2 GPIO
      3. 2.2.3 PWM 控制
  5. 通信协议
    1. 3.1 命令协议
    2. 3.2 SPI 规格
    3. 3.3 I2C 规范
    4. 3.4 写入
      1. 3.4.1 短写入
        1. 3.4.1.1 SPI 短写入
        2. 3.4.1.2 I2C 短写入
      2. 3.4.2 批量写入
        1. 3.4.2.1 SPI 批量写入
        2. 3.4.2.2 I2C 批量写入
      3. 3.4.3 写入命令处理
    5. 3.5 读取
      1. 3.5.1 读取预取
        1. 3.5.1.1 SPI 读取预取
        2. 3.5.1.2 I2C 读取预取
      2. 3.5.2 读取激活
        1. 3.5.2.1 SPI 读取激活
        2. 3.5.2.2 I2C 读取激活
      3. 3.5.3 短状态读取
        1. 3.5.3.1 SPI 短状态读取
        2. 3.5.3.2 I2C 短状态读取
      4. 3.5.4 读取命令处理
    6. 3.6 CRC 和校验和
      1. 3.6.1 CRC 计算
        1. 3.6.1.1 CRC 示例实现
        2. 3.6.1.2 CRC 示例
      2. 3.6.2 校验和计算
    7. 3.7 命令标签
  6. 系统运行
    1. 4.1 工作模式
      1. 4.1.1 待机
      2. 4.1.2 显示
    2. 4.2 软件启动过程
  7. 应用和用例
    1. 5.1 显示和源
      1. 5.1.1 显示图像
      2. 5.1.2 支持的图像处理
      3. 5.1.3 外部视频
      4. 5.1.4 测试模式
      5. 5.1.5 启动界面图像
      6. 5.1.6 图像翻转
    2. 5.2 批处理命令集
    3. 5.3 闪存编程
      1. 5.3.1 闪存程序 - 主应用程序
      2. 5.3.2 闪存读取 - 主应用程序
      3. 5.3.3 闪存程序 - 引导应用程序
    4. 5.4 视频帧和照度分级延迟
    5. 5.5 平稳照明转换
    6. 5.6 温度管理
      1. 5.6.1 DMD 停止/解除停止温度管理
      2. 5.6.2 PWM 温度管理功能
    7. 5.7 ADC 测量
      1. 5.7.1 序列对齐的 ADC 测量
      2. 5.7.2 单个 ADC 测量
  8. 测试和诊断
    1. 6.1 概述
    2. 6.2 紧急关闭
      1. 6.2.1 紧急关闭原因
    3. 6.3 诊断存储器接口
    4. 6.4 测试说明
      1. 6.4.1 周期性测试
        1. 6.4.1.1  视频源损耗检测
          1. 6.4.1.1.1 配置
          2. 6.4.1.1.2 执行
          3. 6.4.1.1.3 失败操作
          4. 6.4.1.1.4 错误代码
        2. 6.4.1.2  视频信号灯校验和
          1. 6.4.1.2.1 配置
          2. 6.4.1.2.2 执行
          3. 6.4.1.2.3 失败操作
          4. 6.4.1.2.4 错误代码
        3. 6.4.1.3  视频帧计数器校验和
          1. 6.4.1.3.1 一像素帧计数器
          2. 6.4.1.3.2 七像素帧计数器
          3. 6.4.1.3.3 配置
          4. 6.4.1.3.4 执行
          5. 6.4.1.3.5 失败操作
          6. 6.4.1.3.6 错误代码
        4. 6.4.1.4  画面平均值
          1. 6.4.1.4.1 配置
          2. 6.4.1.4.2 执行
          3. 6.4.1.4.3 失败操作
          4. 6.4.1.4.4 错误代码
        5. 6.4.1.5  Ping 命令丢失
          1. 6.4.1.5.1 配置
          2. 6.4.1.5.2 执行
          3. 6.4.1.5.3 失败操作
          4. 6.4.1.5.4 错误代码
        6. 6.4.1.6  DLPC230-Q1 处理器存储器 ECC
          1. 6.4.1.6.1 配置
          2. 6.4.1.6.2 执行
          3. 6.4.1.6.3 失败操作
          4. 6.4.1.6.4 错误代码
        7. 6.4.1.7  闪存表传输 CRC
          1. 6.4.1.7.1 配置
          2. 6.4.1.7.2 执行
          3. 6.4.1.7.3 失败操作
          4. 6.4.1.7.4 错误代码
        8. 6.4.1.8  帧缓冲区交换看门狗
          1. 6.4.1.8.1 配置
          2. 6.4.1.8.2 执行
          3. 6.4.1.8.3 失败操作
          4. 6.4.1.8.4 错误代码
        9. 6.4.1.9  序列发生器指令读取看门狗
          1. 6.4.1.9.1 配置
          2. 6.4.1.9.2 执行
          3. 6.4.1.9.3 失败操作
          4. 6.4.1.9.4 错误代码
        10. 6.4.1.10 DMD 复位指令看门狗
          1. 6.4.1.10.1 配置
          2. 6.4.1.10.2 执行
          3. 6.4.1.10.3 失败操作
          4. 6.4.1.10.4 错误代码
        11. 6.4.1.11 DLPC230-Q1 系统电压监控器
          1. 6.4.1.11.1 配置
          2. 6.4.1.11.2 执行
          3. 6.4.1.11.3 失败操作
          4. 6.4.1.11.4 错误代码
        12. 6.4.1.12 DLPC230-Q1 DMD 电压监控器
          1. 6.4.1.12.1 配置
          2. 6.4.1.12.2 执行
          3. 6.4.1.12.3 失败操作
          4. 6.4.1.12.4 错误代码
        13. 6.4.1.13 DLPC230-Q1 TPS99000-Q1 带隙监视器
          1. 6.4.1.13.1 配置
          2. 6.4.1.13.2 执行
          3. 6.4.1.13.3 失败操作
          4. 6.4.1.13.4 错误代码
        14. 6.4.1.14 DMD 温度监测器
          1. 6.4.1.14.1 配置
          2. 6.4.1.14.2 执行
          3. 6.4.1.14.3 失败操作
          4. 6.4.1.14.4 错误代码
        15. 6.4.1.15 DMD 时钟监测器
          1. 6.4.1.15.1 配置
          2. 6.4.1.15.2 执行
          3. 6.4.1.15.3 失败操作
          4. 6.4.1.15.4 错误代码
        16. 6.4.1.16 DMD 高速接口训练
          1. 6.4.1.16.1 配置
          2. 6.4.1.16.2 执行
          3. 6.4.1.16.3 失败操作
          4. 6.4.1.16.4 错误代码
        17. 6.4.1.17 DMD 低速接口信号
          1. 6.4.1.17.1 配置
          2. 6.4.1.17.2 执行
          3. 6.4.1.17.3 失败操作
          4. 6.4.1.17.4 错误代码
        18. 6.4.1.18 TPS99000-Q1 DLPC230-Q1 处理器看门狗 (WD1)
          1. 6.4.1.18.1 配置
          2. 6.4.1.18.2 执行
          3. 6.4.1.18.3 失败操作
          4. 6.4.1.18.4 错误代码
        19. 6.4.1.19 TPS99000-Q1 DLPC230-Q1 序列发生器看门狗 (WD2)
          1. 6.4.1.19.1 配置
          2. 6.4.1.19.2 执行
          3. 6.4.1.19.3 失败操作
          4. 6.4.1.19.4 错误代码
        20. 6.4.1.20 TPS99000-Q1 温度警告/错误
          1. 6.4.1.20.1 配置
          2. 6.4.1.20.2 执行
          3. 6.4.1.20.3 失败操作
          4. 6.4.1.20.4 错误代码
        21. 6.4.1.21 TPS99000-Q1 时钟比率监视
          1. 6.4.1.21.1 配置
          2. 6.4.1.21.2 执行
          3. 6.4.1.21.3 失败操作
          4. 6.4.1.21.4 错误代码
        22. 6.4.1.22 TPS99000-Q1 寄存器密码锁定
          1. 6.4.1.22.1 配置
          2. 6.4.1.22.2 执行
          3. 6.4.1.22.3 失败操作
          4. 6.4.1.22.4 错误代码
        23. 6.4.1.23 TPS99000-Q1 寄存器校验和
          1. 6.4.1.23.1 配置
          2. 6.4.1.23.2 执行
          3. 6.4.1.23.3 失败操作
          4. 6.4.1.23.4 错误代码
        24. 6.4.1.24 软件监控器线程
          1. 6.4.1.24.1 配置
          2. 6.4.1.24.2 执行
          3. 6.4.1.24.3 失败操作
          4. 6.4.1.24.4 错误代码
      2. 6.4.2 非周期性测试
        1. 6.4.2.1  执行时间
        2. 6.4.2.2  DLPC230-Q1 前端功能 BIST(主)
          1. 6.4.2.2.1 配置
          2. 6.4.2.2.2 执行
          3. 6.4.2.2.3 失败操作
          4. 6.4.2.2.4 错误代码
        3. 6.4.2.3  DLPC230-Q1 后端功能 BIST(主)
          1. 6.4.2.3.1 配置
          2. 6.4.2.3.2 执行
          3. 6.4.2.3.3 失败操作
          4. 6.4.2.3.4 错误代码
        4. 6.4.2.4  DLPC230-Q1 存储器 BIST(主)
          1. 6.4.2.4.1 配置
          2. 6.4.2.4.2 执行
          3. 6.4.2.4.3 失败操作
          4. 6.4.2.4.4 错误代码
        5. 6.4.2.5  TPS99000-Q1 接口信号连接测试(主)
          1. 6.4.2.5.1 配置
          2. 6.4.2.5.2 执行
          3. 6.4.2.5.3 失败操作
          4. 6.4.2.5.4 错误代码
        6. 6.4.2.6  DMD 存储器测试(主)
          1. 6.4.2.6.1 配置
          2. 6.4.2.6.2 执行
          3. 6.4.2.6.3 失败操作
          4. 6.4.2.6.4 错误代码
        7. 6.4.2.7  闪存数据验证(引导/主)
          1. 6.4.2.7.1 配置
          2. 6.4.2.7.2 执行
          3. 6.4.2.7.3 失败操作
          4. 6.4.2.7.4 错误代码
        8. 6.4.2.8  DLPC230-Q1 引导 ROM CRC(引导)
          1. 6.4.2.8.1 配置
          2. 6.4.2.8.2 执行
          3. 6.4.2.8.3 失败操作
          4. 6.4.2.8.4 错误代码
        9. 6.4.2.9  DLPC230-Q1 闪存表 CRC(引导)
          1. 6.4.2.9.1 配置
          2. 6.4.2.9.2 执行
          3. 6.4.2.9.3 失败操作
          4. 6.4.2.9.4 错误代码
        10. 6.4.2.10 DLPC230-Q1 主应用程序 CRC(引导)
          1. 6.4.2.10.1 配置
          2. 6.4.2.10.2 执行
          3. 6.4.2.10.3 失败操作
          4. 6.4.2.10.4 错误代码
        11. 6.4.2.11 DLPC230-Q1 命令和闪存接口存储器测试(引导)
          1. 6.4.2.11.1 配置
          2. 6.4.2.11.2 执行
          3. 6.4.2.11.3 失败操作
          4. 6.4.2.11.4 错误代码
      3. 6.4.3 接口测试
        1. 6.4.3.1 温度传感器接口
          1. 6.4.3.1.1 失败操作
        2. 6.4.3.2 DLPC230-Q1 至 TPS99000-Q1 SPI 接口
          1. 6.4.3.2.1 失败操作
        3. 6.4.3.3 DLPC230-Q1 至 TPS99000-Q1 ADC 接口
          1. 6.4.3.3.1 失败操作
        4. 6.4.3.4 DMD 插座连通性测试
          1. 6.4.3.4.1 配置
          2. 6.4.3.4.2 执行
          3. 6.4.3.4.3 失败操作
          4. 6.4.3.4.4 错误代码
  9. 命令 - 引导应用程序
    1. 7.1 命令表
    2. 7.2 命令定义
      1. 7.2.1  系统复位 - 写入 (00h)
      2. 7.2.2  读取预取 - 写入 (01h)
      3. 7.2.3  读取激活 (02h)
      4. 7.2.4  系统软件版本 - 读取 (B0h)
      5. 7.2.5  闪存器件 ID - 读取 (B1h)
      6. 7.2.6  短状态 - 读取 (C0h)
      7. 7.2.7  错误历史 - 读取 (C1h)
      8. 7.2.8  清除短状态错误 - 写入 (C2h)
      9. 7.2.9  清除错误历史 - 写入 (C3h)
      10. 7.2.10 闪存完全擦除 - 写入 (E0h)
      11. 7.2.11 闪存数据写入 - 写入 (E1h)
      12. 7.2.12 闪存数据验证 - 写入 (E2h)
      13. 7.2.13 闪存接口速率 - 写入 (E3h)
      14. 7.2.14 闪存接口速率 - 读取 (E4h)
  10. 命令 - 主应用程序
    1. 8.1 模式可用性
    2. 8.2 命令定义
      1. 8.2.1  系统复位 - 写入 (00h)
      2. 8.2.2  读取预取 - 写入 (01h)
      3. 8.2.3  读取激活 (02h)
      4. 8.2.4  运行模式 - 写入 (03h)
      5. 8.2.5  运行模式 - 读取 (04h)
      6. 8.2.6  源选择 - 写入 (05h)
      7. 8.2.7  源选择 - 读取 (06h)
      8. 8.2.8  准备源切换 - 写入 (07h)
      9. 8.2.9  显示图像方向 - 写入 (18h)
      10. 8.2.10 显示图像方向 - 读取 (19h)
      11. 8.2.11 系统模式选择 - 写入 (1Ch)
      12. 8.2.12 系统模式选择 - 读取 (1Dh)
      13. 8.2.13 执行批处理命令集 - 写入 (21h)
      14. 8.2.14 执行延迟 - 写入 (22h)
      15. 8.2.15 GPIO 配置 - 写入 (23h)
      16. 8.2.16 GPIO 配置 - 读取 (24h)
      17. 8.2.17 GPIO 输出 - 写入 (25h)
      18. 8.2.18 GPIO 输出 - 读取 (26h)
      19. 8.2.19 GPIO 保留 - 读取 (27h)
      20. 8.2.20 执行非周期性 BIST - 写入 (28h)
      21. 8.2.21 外部视频校验和控制 - 写入 (29h)
      22. 8.2.22 外部视频校验和控制 - 读取 (2Ah)
      23. 8.2.23 外部视频校验和设置 - 写入 (2Bh)
      24. 8.2.24 外部视频校验和设置 - 读取 (2Ch)
      25. 8.2.25 DMD 插座连通性测试 - 写入 (2Dh)
      26. 8.2.26 DMD 插座连通性测试 - 读取 (2Eh)
      27. 8.2.27 画面平均值控制 - 写入 (2Fh)
      28. 8.2.28 画面平均值控制 - 读取 (30h)
      29. 8.2.29 Ping 控制丢失 - 写入 (33h)
      30. 8.2.30 Ping 控制丢失 - 读取 (34h)
      31. 8.2.31 PWM 温度管理使能 - 写入 (35h)
      32. 8.2.32 PWM 温度管理使能 - 读取 (36h)
      33. 8.2.33 PWM 温度管理源 - 写入 (37h)
      34. 8.2.34 PWM 温度管理源 - 读取 (38h)
      35. 8.2.35 PWM 温度管理占空比 - 读取 (39h)
      36. 8.2.36 前照灯 Ping - 写入 (46h)
      37. 8.2.37 PWM 控制 - 写入 (47h)
      38. 8.2.38 PWM 控制 - 读取 (48h)
      39. 8.2.39 照明转换速率 - 写入 (49h)
      40. 8.2.40 照明转换速率 - 读取 (4Ah)
      41. 8.2.41 去伽马选择 - 写入 (54h)
      42. 8.2.42 去伽马选择 - 读取 (55h)
      43. 8.2.43 ADC 测量 - 读取 (5Ch)
      44. 8.2.44 ADC 单次测量 - 读取 (63h)
      45. 8.2.45 照度分级选择 - 写入 (70h)
      46. 8.2.46 照度分级选择 - 读取 (71h)
      47. 8.2.47 TPS99000-Q1 TIA1 修整 - 写入 (86h)
      48. 8.2.48 TPS99000-Q1 TIA1 修整 - 读取 (87h)
      49. 8.2.49 TPS99000-Q1 TIA1 增益 - 写入 (88h)
      50. 8.2.50 TPS99000-Q1 TIA1 增益 - 读取 (89h)
      51. 8.2.51 TPS99000-Q1 TIA1 电容 - 写入 (8Ah)
      52. 8.2.52 TPS99000-Q1 TIA1 电容 - 读取 (8Bh)
      53. 8.2.53 TPS99000-Q1 TIA1 暗偏移 - 写入 (8Ch)
      54. 8.2.54 TPS99000-Q1 TIA1 暗偏移 - 读取 (8Dh)
      55. 8.2.55 TPS99000-Q1 TIA1 输入偏移 - 写入 (8Eh)
      56. 8.2.56 TPS99000-Q1 TIA1 输入偏移 - 读取 (8Fh)
      57. 8.2.57 TPS99000-Q1 驱动模式 - 读取 (93h)
      58. 8.2.58 TPS99000-Q1 ADC 配置 - 写入 (94h)
      59. 8.2.59 TPS99000-Q1 ADC 配置 - 读取 (95h)
      60. 8.2.60 TPS99000-Q1 照明同步控制 - 写入 (96h)
      61. 8.2.61 TPS99000-Q1 照明同步控制 - 读取 (97h)
      62. 8.2.62 TPS99000-Q1 TIA2 控制 - 写入 (98h)
      63. 8.2.63 TPS99000-Q1 TIA2 控制 - 读取 (99h)
      64. 8.2.64 LED 驱动错误 - 读取 (9Ah)
      65. 8.2.65 LED 驱动错误清除 - 写入 (9Bh)
      66. 8.2.66 TPS99000-Q1 测试多路复用选择 - 写入 (9Ch)
      67. 8.2.67 TPS99000-Q1 测试多路复用选择 - 读取 (9Dh)
      68. 8.2.68 闪存数据类型选择 - 写入 (A0h)
      69. 8.2.69 闪存数据擦除 - 写入 (A1h)
      70. 8.2.70 闪存数据写入 - 写入 (A2h)
      71. 8.2.71 闪存数据读取 - 读取 (A3h)
      72. 8.2.72 闪存数据验证 - 写入 (A4h)
      73. 8.2.73 闪存块计数 - 读取 (A5h)
      74. 8.2.74 闪存块 CRC - 读取 (A6h)
      75. 8.2.75 闪存结构版本 - 读取 (A7h)
      76. 8.2.76 闪存数据大小 - 读取 (A9h)
      77. 8.2.77 系统软件版本 - 读取 (B0h)
      78. 8.2.78 闪存器件 ID - 读取 (B1h)
      79. 8.2.79 DLPC230-Q1 器件 ID - 读取 (B2h)
      80. 8.2.80 DMD 器件 ID - 读取 (B3h)
      81. 8.2.81 TPS99000-Q1 器件 ID - 读取 (B4h)
      82. 8.2.82 系统温度 - 读取 (B5h)
      83. 8.2.83 当前源信息 - 读取 (B6h)
      84. 8.2.84 当前显示信息 - 读取 (B8h)
      85. 8.2.85 系统信息 - 读取 (BAh)
      86. 8.2.86 闪存接口速率 - 读取 (BBh)
      87. 8.2.87 短状态 - 读取 (C0h)
      88. 8.2.88 错误历史 - 读取 (C1h)
        1. 8.2.88.1 信息位 - 命令或通信
        2. 8.2.88.2 信息位 - 系统电压
        3. 8.2.88.3 信息位 - DMD 高速接口训练
        4. 8.2.88.4 信息位 - DMD 存储器测试
      89. 8.2.89 清除短状态错误 - 写入 (C2h)
      90. 8.2.90 清除错误历史 - 写入 (C3h)
  11. 命令 - 诊断接口
    1. 9.1 诊断命令读取过程
    2. 9.2 命令表
    3. 9.3 命令定义
      1. 9.3.1 读取预取 - 写入 (01h)
      2. 9.3.2 读取激活 (02h)
      3. 9.3.3 诊断接口状态 - 读取 (F0h)
      4. 9.3.4 诊断接口状态清除 - 写入 (F1h)
  12. 10闪存配置
    1. 10.1 概述
    2. 10.2 系统模式概述
    3. 10.3 暂存区数据
      1. 10.3.1 CRC
      2. 10.3.2 块编号
      3. 10.3.3 版本(主要、次要、补丁)
      4. 10.3.4 自定义数据
  13.   A 错误代码
    1.     A.1 引导应用程序
    2.     A.2 主应用程序
  14.   修订历史记录

写入命令处理

写入命令处理程序必须检查短状态,以确保系统不再因之前的事务而繁忙,并检查是否发生任何错误。错误可能与当前命令事务或其他后台系统进程有关。图 3-5 介绍了使用短写入或批量写入协议的任何写入命令的命令处理程序流程。

有关短状态的更多详情,可以在节 8.2.87(主应用程序)和节 7.2.6(引导应用程序)中找到。此命令处理程序流程对两种应用程序都有效。

DLPC230-Q1 写入命令处理程序图 3-5 写入命令处理程序

  • 写入任意命令 - 根据特定命令的要求,使用短写入协议批量写入协议 写入所需的命令。记录为该命令选择的标签 (A)。
  • 读取短状态 - 使用短状态读取协议 读取“短状态”。
  • 紧急关闭?- 此“短状态”位指示是否发生了紧急关闭情况。如果发生这种情况,命令处理应停止,以便处理紧急关闭。如果发生这种情况,HOST_IRQ 信号也将触发。有关紧急关闭的更多信息,请参阅节 6.2
  • CmdTag == (A)? - 检查“短状态”是否包含与写入命令一起发送的标签。这表示命令由软件执行,无论命令是否成功。如果这与所需的标签 (A) 不匹配,请继续轮询“短状态”,直到标签匹配。
  • 系统繁忙 | 请求正在进行中?- 检查是否设置了系统繁忙请求正在进行中 短状态位。如果设置了这些位,系统仍然在处理写入命令,且不应该发送新命令。如果设置了这些位中的一个,则继续轮询短状态,直到这两个位都被清除。
  • COMM | CMD 错误?- 检查通信错误命令错误 短状态位。如果设置了任一位,则写入命令已失败。在这种情况下,应读取错误历史 以确定特定的错误详细信息。读取“错误历史”后,“错误历史”和“短状态”应在下一个事务之前清除先前的错误。然后,主机可以确定要执行什么操作,例如重新发送命令或重新启动系统。
  • BIST | 运行错误?- 检查 BIST 错误运行错误 短状态位。如果任一位置位,表示后台进程出现错误。如果设置了任一错误位但未设置 CMD 错误位,则该错误与当前命令事务无关。这方面的一个示例是常规主应用程序轮询期间的温度传感器故障。在这种情况下,仍应读取“错误历史”以确定错误原因,但并不意味着当前的写入命令事务已失败。

请注意,只有命令错误通信错误 短状态位应视为命令失败。如果设置了 BIST ErrorOperational Error 位,但未设置 Command Error 或 Communication Error 位,则另一个进程收到了错误,但命令仍已完成。