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.   修订历史记录

软件启动过程

启动时,一旦在“短状态”中设置了系统已初始化 标志,主机便可以开始发送命令来控制器件。这可由引导应用程序或主应用程序设置。有关短状态的更多详情,可以在节 8.2.87(主应用程序)和节 7.2.6(引导应用程序)中找到。在设置系统已初始化 标志之前,主机应该期望接收 NAK (I2C) 或无效数据 (SPI)。图 4-2 演示了主机在启动时应执行的操作。节 2.1.4.1 描述了一个可用于调试启动时序和进度的硬件信号。

DLPC230-Q1 通信就绪检查图 4-2 通信就绪检查
  • 读取短状态 - 尝试从硬件读取“短状态”。
  • 命令 NAK?- 如果通信硬件尚未初始化,将收到 NAK 或无效数据。
  • 系统是否已初始化?- 如果成功接收到“短状态”,则检查系统已初始化 位。如果该位被清除,则继续轮询“短状态”,直到该位被设置。
  • 是否设置了错误位?- 如果设置了任何短状态错误位,则会发生启动错误。可能的启动错误示例包括启动 BIST 故障或自动初始化批处理命令集执行错误。应读取错误历史,了解有关错误的详细信息,然后应清除“短状态”和“错误历史”,以清除之前的错误标志。然后,主机可以根据错误条件确定要采取的操作。
  • 应用程序 / 模式 == 符合预期?- 如果没有设置错误位,则应检查应用程序和运行模式,以确认软件是否处于预期状态。如果应用程序或模式不正确且未设置错误,则可以检查几个系统配置参数。检查 STAY-IN-BOOT 信号是否被拉至所需状态。这可确定是否执行主应用程序,或者是否仍在引导应用程序中执行。检查闪存头文件是否指示为初始启动模式选择了正确的主应用程序工作模式(待机或显示)。

引导应用程序驻留在 DLPC230-Q1 的引导 ROM 中。在 DLPC230-Q1 硬件在启动时完成初始化后,执行引导应用程序。引导应用程序的目的是从闪存加载主应用程序,并在启动期间验证其内容。引导应用程序的执行流程如图 4-3 所示。它会读取节 2.1 中所述的硬件引脚信号以配置主机通信接口,然后确定是否已设置 STAY-IN-BOOT。如果设置了 STAY-IN-BOOT,引导应用程序将进入一个循环,等待主机命令的指令。如果未设置 STAY-IN-BOOT 信号,引导应用程序将从闪存加载主应用程序并对其进行验证。如果验证失败,错误将记录在“错误历史”中,引导应用程序将进入 wait-for-command 循环。如果验证成功,将执行主应用程序。

DLPC230-Q1 引导应用程序执行流程图 4-3 引导应用程序执行流程

主应用程序执行流程如图 4-4 所示。主应用程序首先初始化时钟,然后从硬件检索上次复位的原因。然后,它执行通过闪存选项选择的任何非周期性 BIST。主应用程序将检查闪存选项以确定它是应保持在待机模式还是自动切换到显示模式。进入所需模式后,自动初始化批处理命令集将从闪存存储器运行。有关批处理命令集的更多信息,请参阅节 5.2。如果在启动期间没有要执行的命令,则自动初始化批处理命令集可以为空。自动初始化批处理命令集也可以更改工作模式。完成自动初始化批处理命令集后,主应用程序将设置系统已初始化 短状态标志,以指示可以从主机发送命令事务。

DLPC230-Q1 主应用程序执行流程图 4-4 主应用程序执行流程