This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TIDA-00421:ds90ub913 ds90ub914

Guru**** 663810 points
Other Parts Discussed in Thread: DS90UB913A-Q1, DS90UB960-Q1, TIDA-00455, TIDA-00421, DS90UB953-Q1, DS90UB933-Q1, DS90UB934-Q1, DS90UB935-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1220830/tida-00421-ds90ub913-ds90ub914

器件型号:TIDA-00421
主题中讨论的其他器件:TIDA-00455TDA2DS90UB953-Q1、DS90UB913A-Q1、 DS90UB933-Q1DS90UB934-Q1DS90UB935-Q1、DS90UB960-Q1

我们正在使用此设计中的器件 OV01640传感器和 DS90UB913/914串行器/解串器芯片开发产品。 我的问题:您能否告诉我如何对这些器件中的寄存器映射进行编程? 串行器和解串器? 您使用什么值对寄存器进行编程? 我在该应用手册页面上找不到任何文档或软件链接。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brian、

    让我浏览一下开发代码并给您回复。

    此致、

    布赖恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brian、

     

    TIDA-00421与 TIDA-00455一起开发。  https://www.ti.com/tool/TIDA-00455 TIDA-00455是4摄像头集线器、采用了连接到 TDA2x EVM 的 DS90UB960。  该系统的最终配置是从 EVM 上的 TDA2 SoC 完成的、当时在 SDK 中受到支持。

     

    OV10640配置文件由 Omnivision 提供。  这已经加载到与 OV490 ISP 关联的闪存中、但也可以通过 I2C 通过 SERDES 链路从处理器加载。  TIDA-00455设计指南介绍了此过程。 https://www.ti.com/lit/pdf/tiducb9

     

    下面是用于设置 DS90UB960和 DS90UB13中寄存器的部分代码。  DS90UB914的设置将非常类似。  您不需要执行任何页寄存器写入、因为 UB914是单个通道部分。  请注意在尝试写入之前释放解串器上的 PDB 后的延迟。  这使得 ADC 有时间读取 IDX 引脚并设置相应的 I2C 地址。

     

     

    void init_UB960 (void)

                   无符号字符 readVal;

     

                   P1OUT |= BIT5;                                                                                //将 P1.5设置为1 (I2C_SW_UB960)、将开关设置在位置2D+/2D-

     

                   P4OUT |= BIT0;                                                                             //将 PDB_UB960设置为1 ,释放 RESET UB960

                   __delay_cycles (200000);                                                                              //等待10ms 的监控器延迟

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x0C、0xCF);       //将 FPD-Link 控制通道0+1映射到 I2C 端口0、将2+3映射到 I2C 端口1

                   TSC_WriteI2CReg (UB960_i2c_Address、0x1F、0x05);        // CSI TX 频率800Mbps (400Mbit VCO)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x10、0x11);       //GPIO 0设置为显示输出值= 0;驱动输出低电平

                   TSC_WriteI2CReg (UB960_i2c_Address、0x11、0x85);       //GPIO 1 RX 端口1锁定指示

                   TSC_WriteI2CReg (UB960_i2c_Address、0x13、0x89);       //GPIO 3 RX 端口3锁定指示

                   TSC_WriteI2CReg (UB960_i2c_Address、0x14、0x8D);       //GPIO 4 RX 端口4锁定指示

                   TSC_WriteI2CReg (UB960_i2c_Address、0x19、0x01);       //FS_HIGH_TIME_1

                   TSC_WriteI2CReg (UB960_i2c_Address、0x1A、0x15);       //FS_HIGH_TIME_0

                   TSC_WriteI2CReg (UB960_i2c_Address、0x1B、0x14);       //FS_LOW_TIME_1

                   TSC_WriteI2CReg (UB960_i2c_Address、0x1C、0x9C);       //FS_LOW_TIME_0

                   TSC_WriteI2CReg (UB960_i2c_Address、0x18、0x01);       //启用帧同步

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x01);       //页 FPD3端口 RX0寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x58、0x58);       //将反向通道速率设置为2.5Mbit/启用 I2C 直通

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5D、0x60);       //成像仪从设备 ID = 0x60

                   TSC_WriteI2CReg (UB960_i2c_Address、0x65、0x60);       //成像仪从别名= 0x60

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5E、0x51);        //EEPROM 从器件 ID = 0x51

                   TSC_WriteI2CReg (UB960_i2c_Address、0x66、0x51);       //EEPROM 从别名、端口0

                   TSC_WriteI2CReg (UB960_i2c_Address、0x7C、0x01);       //在活动视频持续时间内设置帧有效极性低

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x12);       //页 FPD3端口 RX1寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x58、0x58);       //将反向通道速率设置为2.5Mbit/启用 I2C 直通

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5D、0x60);       //成像仪从设备 ID = 0x60

                   TSC_WriteI2CReg (UB960_i2c_Address、0x65、0x62);       //成像仪从别名= 0x62

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5E、0x51);        //EEPROM 从器件 ID = 0x51

                   TSC_WriteI2CReg (UB960_i2c_Address、0x66、0x53);       //EEPROM 从别名、端口1

                   TSC_WriteI2CReg (UB960_i2c_Address、0x7C、0x01);       //在活动视频持续时间内设置帧有效极性低

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x24);       //页 FPD3端口 RX2寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x58、0x58);       //将反向通道速率设置为2.5Mbit/启用 I2C 直通

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5D、0x60);       //成像仪从设备 ID = 0x60

                   TSC_WriteI2CReg (UB960_i2c_Address、0x65、0x64);       //成像仪从别名= 0x64

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5E、0x51);        //EEPROM 从器件 ID = 0x51

                   TSC_WriteI2CReg (UB960_i2c_Address、0x66、0x55);       //EEPROM 从别名、端口2

                   TSC_WriteI2CReg (UB960_i2c_Address、0x7C、0x01);       //在活动视频持续时间内设置帧有效极性低

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x38);       //页 FPD3端口 RX3寄存器、可读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x58、0x58);       //将反向通道速率设置为2.5Mbit/启用 I2C 直通

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5D、0x60);       //成像仪从设备 ID = 0x60

                   TSC_WriteI2CReg (UB960_i2c_Address、0x65、0x66);       //成像仪从别名= 0x66

                   TSC_WriteI2CReg (UB960_i2c_Address、0x5E、0x51);        //EEPROM 从器件 ID = 0x51

                   TSC_WriteI2CReg (UB960_i2c_Address、0x66、0x57);       //EEPROM 从别名、端口3

                   TSC_WriteI2CReg (UB960_i2c_Address、0x7C、0x01);       //在活动视频持续时间内设置帧有效极性低

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x0F);        //所有端口均写使能

                   TSC_WriteI2CReg (UB960_i2c_Address、0x0F、0x00);        //禁用所有 GPIO 输入

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6E、0x88);        //对于全部四个摄像头、将 GPIO1 (nReset)和 GPIO0 (fsin)设置为0

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6f、0x88);          //                对全部四个摄像头将 GPIO3和 GPIO2设置为0

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x01);         //页 FPD3端口 RX0寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x70、0x2B);         //RAW10_ID:MSB:00:将 VC 0分配给 RX0 CSI 数据类型:(0x2B 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x71、0x2C);         //RAW12_ID:MSB:00:将 VC 0分配给 RX0 CSI 数据类型:(0x2C 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x72、0x00);         // CSI_VC_MAP:将所有输入数据包从 RX0重新映射到 VC_ID0

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x12);         //页 FPD3端口 RX1寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x70、0x6B);         //RAW10_ID:MSB:01:将 VC 1分配给 RX1 CSI 数据类型:(0x2B 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x71、0x6C);         //RAW12_ID:MSB:01:将 VC 1分配给 RX1 CSI 数据类型:(0x2C 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x72、0x01);         //CSI_VC_MAP:将所有输入数据包从 RX1重新映射到 VC_ID1

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x24);         //页 FPD3端口 RX2寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x70、0x2B);         //RAW10_ID:MSB:00:将 VC 0分配给 RX2 CSI 数据类型:(0x2B 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x71、0x2C);         //RAW12_ID:MSB:00:将 VC 0分配给 RX2 CSI 数据类型:(0x2C 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x72、0x00);         // CSI_VC_MAP:将所有输入数据包从 RX2重新映射到 VC_ID0

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4C、0x38);         //页 FPD3端口 RX3寄存器、可读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x70、0x6B);         //RAW10_ID:MSB:01:将 VC 1分配给 RX3 CSI 数据类型:(0x2B 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x71、0x6C);         //RAW12_ID:MSB:01:将 VC 1分配给 RX3 CSI 数据类型:(0x2C 与 CSI 规范匹配)

                   TSC_WriteI2CReg (UB960_i2c_Address、0x72、0x01);         // CSI_VC_MAP:将所有输入数据包从 RX3重新映射到 VC_ID1

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x32、0x01);       //从 CSI 端口0读取,向 CSI 端口0写入

                   TSC_WriteI2CReg (UB960_i2c_Address、0x33、0x01);       //启用 CSI 端口0、4通道、 正常工作

                   

                   TSC_WriteI2CReg (UB960_i2c_Address、0x32、0x12);       //从 CSI 端口1读取,向 CSI 端口1写入

                   TSC_WriteI2CReg (UB960_i2c_Address、0x33、0x01);       //启用 CSI 端口1、4通道、 正常工作

     

                   TSC_WriteI2CReg (UB960_i2c_Address、0x20、0x0C);       //VC 0+1路由到 CSI 端口0、VC 2+3路由到 CSI 端口1

     

                   P1OUT &=~BIT5;                                                                           //将 P1.5设置为0 (I2C_SW_UB960)、将开关设置在位置1D+/1D-

    }

     

    void ENABLE_fsin (void)

                   P1OUT |= BIT5;

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4c、0x01);                         //页 FPD3端口 RX0寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6e、0x9a);                         //保持摄像头0的 GPIO1为1;GPIO0上的输出帧同步

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4c、0x12);                         //页 FPD3端口 RX1寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6e、0x9a);                         //保持摄像头0的 GPIO1为1;GPIO0上的输出帧同步

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4c、0x24);                         //页 FPD3端口 RX2寄存器、用于读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6e、0x9a);                         //保持摄像头0的 GPIO1为1;GPIO0上的输出帧同步

                   TSC_WriteI2CReg (UB960_i2c_Address、0x4c、0x38);                         //页 FPD3端口 RX3寄存器、可读/写

                   TSC_WriteI2CReg (UB960_i2c_Address、0x6e、0x9a);                         //保持摄像头0的 GPIO1为1;GPIO0上的输出帧同步

                   TSC_WriteI2CReg (UB960_i2c_Address、0x10、0x91);       //GPIO 0设置为传递生成的帧同步信号

                   P1OUT &=~BIT5;

    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Brian 这可以提供帮助。 我还有一个关于模式引脚在'914上设置10/12位和 hi/lo freq 的问题。 它由电阻器值设置、但在寄存器映射寄存器0x1F 中。 MODE 和 OSS 选择、意味着 MODE 设置来自反向通道上的远程 SER。 如果是这样、那么914上的 MODE 引脚电阻值是否重要? 如果模式设置是由"913决定的、它是否可以保持悬空?

    此致、Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Brian 这可以提供帮助。 我还有一个关于模式引脚在'914上设置10/12位和 hi/lo freq 的问题。 它由电阻器值设置、但在寄存器映射寄存器0x1F 中。 MODE 和 OSS 选择、意味着 MODE 设置来自反向通道上的远程 SER。 如果是这样、那么914上的 MODE 引脚电阻值是否重要? 如果模式设置是由"913决定的、它是否可以保持悬空?

    此致、Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brian、

    我认为此处的最佳实践是使用电阻分压器设置引脚的值、如数据表中所示。  您可以在引导购买更改寄存器后覆盖此设置。   

    顺便说一下、您是否见过有关迁移到较新部件集的应用手册?   https://www.ti.com/lit/pdf/snla286

    此致、

    布赖恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可以、但仍然可以从远程 SER 获取这些寄存器值吗? 我提出这个问题是因为我们的设计目标是、我们需要连接到设置未知的不同摄像头。 它们的远程 Sers 上可能有不同的模式设置。 在迁移上可以、但我们的客户指定了913/914部分。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Brian、我只是想重述我关于迁移到新器件的最后一篇文章、是否有 DES 器件能够向后兼容尽可能多的 Ser? 我们的客户想要与913 SER 兼容、而您提到的960器件也可以与之兼容、但我们可能会遇到其他客户想要与其他 SER 兼容。 我们还需要具有像素总线输出的 DES。 欢迎您提出任何建议。

    谢谢

    此致、Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正在检查 FPD-Link 产品线...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Brian、您好!

    DS90UB960-Q1兼容所有其他 FPD-Link III 摄像头、包括 DS90UB913A-Q1、DS90UB933-Q1、DS90UB935-Q1或 DS90UB953-Q1串行器。 此时、具有像素总线(DVP)接口的解串器被视为是传统器件、因此我们的产品系列中仅包含 DS90UB14A-Q1或 DS90UB934-Q1解串器、没有计划使用该接口的下一代解串器。 从技术上讲、也可以将这些器件与 DS90UB935-Q1或 DS90UB953-Q1链接、但有特定的时钟要求。 有关信息、请访问: https://www.ti.com/lit/pdf/snla270#:~:text=The%20DS90UB953%2DQ1%20is%20capable,previous%20generation%20DS90UB914A%2DQ1%20deserializers。

    此致、

    Casey  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Casey 960内置了陈旧功能(用于从原始到 RGB 转换的 Bayer 解码器)吗?  即使 DES 上的 MODE 引脚或寄存器与 SER 设置的不匹配、是否也可以根据其模式查询远程 SER?

    谢谢

    此致、Brian