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.

[参考译文] DS90UB914A-Q1:DS90UB914A-Q1 <-> DS90UB913A-Q1:

Guru**** 2479595 points
Other Parts Discussed in Thread: DS90UB914A-Q1, DS90UB913A-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/654458/ds90ub914a-q1-ds90ub914a-q1---ds90ub913a-q1

部件号:DS90UB914A-Q1
主题中讨论的其他部件: DS90UB913A-Q1ALP

大家好,

我在DS90UB914A-Q1中测试BIST时遇到问题。

设备: DS90UB914A-Q1。  DS90UB913A-Q1。

我能够读取和写入设备的寄存器,但当我启用反序列化器上的CRC错误生成或序列化器中的奇偶校验错误时。

BIST测试期间未生成这些错误。 计数器始终显示“0”。

ECU和串行器中的解串器是LVDS电缆连接的摄像头。

在启动BIST之前,DES和SER之间存在正确的通信链接。

如何在启动BIST之前禁用正常通信。

源代码:

写入(I2C地址,寄存器地址,寄存器数据)
ReadReg (I2C地址,注册地址)

#------------------ BIST测试序列----------------------------------

#------------------ 解串器配置----------------------------------
#第一个通话设置为914,设置I2C Passall
#Reset 914A to place in known state (重置914A以置于已知状态)
WRITE (0xC0,0x01,0x06)#reset only digital cores and not registeres set bit 1 do not set bit 0 (仅重置数字内核和未注册设置位1)
睡眠(0.5)
WriteReg (0xC0,0x21,0x97)#I2C Pass-Through All #Set I2C PassAll on 914 (在914上设置I2C PassAll)
时间睡眠(0.5)
WriteReg (0xC0,0x42,0x02)#在后通道帧中引入多个CRC错误。

#------------------ 串行器配置----------------------------------
#NOW Talk to 913 -清除CRC计数器,启用CRC Checker,启用奇偶校验生成器
#启用CRC检查器
WriteReg (0xB0,0x03,0xE5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器,奇偶校验发生器启用。
睡眠(0.5)
WriteReg (0xB0,0x03,0xC5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器启用。
睡眠(0.5)
WriteReg (0xB0,0x2D,0x0F)#Forces 16 number of Parity errors in BIST mode (在BIST模式下强制出现16个奇偶校验错误)。

#------------------ 在解串器中启用BIST和读取奇偶校验错误----------------------------------
#设置BIST以使用PCLK,然后启用
WriteReg (0xC0,0x24,01)#启用BIST,通过寄存器位"reg_24[0]配置BIST,BIST时钟= PCLK
睡眠(60)#等待60秒延迟
WriteReg (0xC0,0x24,00)#禁用BIST
睡眠(1)
CERRCNT=BOARE.ReadReg (0x25)# Read BIST Error Count (CERRCNT=BOARE.ReadReg (0x25)#读取BIST错误计数 BIST模式下的正向信道奇偶校验错误数。

#------------------ 读取串行器中的CRC错误----------------------------------
#现在从913开始获取BC错误
BCLSB=ReadReg (0xB0,0x2A)# BIST模式CRC错误计数。 处于BIST模式时背面通道中的CRC错误数
BCMSB=读注册器(0xB0,0x0B)
BCERRCNT =(BCMSB*256)+ BCLSB

此致。

哈里。

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

    如何生成CRC/Parity错误。

    已启用所需的寄存器,但未检测到错误。

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

    您好,

    您的代码有一些问题。

    WriteReg (0xC0,0x42,0x02)#在后通道帧中引入多个CRC错误。

    0x42仅在正常操作模式下引入CRC错误。 它在BIST模式下不起作用。 当前,只能在BIST期间强制执行奇偶校验错误。

    WriteReg (0xB0,0x2D,0x0F)#Forces 16 number of Parity errors in BIST mode (在BIST模式下强制出现16个奇偶校验错误)。

    此行是正确的,应在BIST模式下强制出现错误。

    CERRCNT=BOARE.ReadReg (0x25)# Read BIST Error Count (CERRCNT=BOARE.ReadReg (0x25)#读取BIST错误计数 BIST模式下的正向信道奇偶校验错误数。

    此行似乎有语法错误。 所有其它读数的格式为ReadReg (I2C地址,寄存器地址)。 但是,此行只具有寄存器地址,而不具有I2C地址。 如果您设置了正确的I2C地址和寄存器地址,则应该能够读取正确的奇偶校验错误。

    此致,

    查利蔡

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

    您好,Charley,

    谢谢你的答复。

    我根据你的答复修改了代码,失败我不能产生奇偶校验错误。

    #------------------ 解串器配置----------------------------------

    #第一个通话设置为914,设置I2C Passall
    #Reset 914A to place in known state (重置914A以置于已知状态)
    WRITE (0xC0,0x01,0x06)#reset only digital cores and not registeres set bit 1 do not set bit 0 (仅重置数字内核和未注册设置位1)
    睡眠(0.5)
    WriteReg (0xC0,0x21,0x97)#I2C Pass-Through All #Set I2C PassAll on 914 (在914上设置I2C PassAll)
    #------------------ 串行器配置----------------------------------

    #NOW Talk to 913 -清除CRC计数器,启用CRC Checker,启用奇偶校验生成器
    #启用CRC检查器
    WriteReg (0xB0,0x03,0xE5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器,奇偶校验发生器启用。
    睡眠(0.5)
    WriteReg (0xB0,0x03,0xC5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器启用。
    睡眠(0.5)
    WriteReg (0xB0,0x2D,0x0F)#Forces 16 number of Parity errors in BIST mode (在BIST模式下强制出现16个奇偶校验错误)。

    #------------------ 在解串器中启用BIST和读取奇偶校验错误----------------------------------
    #设置BIST以使用PCLK,然后启用
    WriteReg (0xC0,0x24,01)#启用BIST,通过寄存器位"reg_24[0]配置BIST,BIST时钟= PCLK
    睡眠(60)#等待60秒延迟
    WriteReg (0xC0,0x24,00)#禁用BIST
    睡眠(1)
    FCERRCNT=ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)。 BIST模式下的正向信道奇偶校验错误数。

    此致,

    哈里。

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

    Hari,您好!

    您是否使用ALP来读取和写入寄存器? 我已附加了强制BIST错误的脚本。 您应该能够将扩展名更改为.py并在ALP中运行它。

    您的脚本中的各个寄存器设置是正确的,可强制BIST。 如果未使用ALP,则可能存在特定于程序的语法错误。 此外,您是否可以验证是否有锁定和PCLK输入?

    e2e.ti.com/.../BIST-force-error-913_5F00_914.txt

    此致,

    查利蔡

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

    您好,Charley,

    感谢您提供测试代码。

    我尝试了您的代码仍然无法检测BIST /奇偶校验错误。

    很遗憾,我们没有使用 TI提供的ALP。

    我们正在使用定制的ECU。 ECU和SER上提供的DSER是通过同轴电缆连接的摄像机。

    我们通过CAN通道将命令发送到DSER和SER

    MCU到MPU (ARM)- CAN总线

    MPU到DSER -> SER - I2C总线

    是的,我已在 BIST启用之前和之后从DSER的寄存器(0x1C)验证锁定信号状态。 它返回0x03。

    BIST重复后,我也验证了相同的信号,但我还是收到了0x03。 因为ECU和摄像头处于持续通信状态。

    PCLK信号未验证。

    请告诉我,其他需要核实的事情。  

    根据我们的要求修改了测试代码。

    写入(I2C地址,寄存器地址,寄存器数据)
    ReadReg (I2C地址,注册地址)
    设备地址为默认值

    #------------------ BIST测试序列----------------------------------

    #------------------ 解串器配置----------------------------------
    #第一个通话设置为914,设置I2C Passall
    #Reset 914A to place in known state (重置914A以置于已知状态)
    WriteReg (0xC0,0x01,0x06)#reset only digital cores and not registeres set bit 1 do not set bit 0 (仅重置数字内核和未注册设置位1不设置位0)
    睡眠(0.5)
    WriteReg (0xC0,0x21,0x97)#I2C Pass-Through All #Set I2C PassAll on 914 (在914上设置I2C PassAll)
    时间睡眠(0.5)
    WriteReg (0xC0,0x42,0x02)#在后通道帧中引入多个CRC错误。

    #------------------ 串行器配置----------------------------------
    #NOW Talk to 913 -清除CRC计数器,启用CRC Checker,启用奇偶校验生成器
    #启用CRC检查器
    WriteReg (0xB0,0x03,0xE5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器,奇偶校验发生器启用。
    睡眠(0.5)
    WriteReg (0xB0,0x03,0xC5)#像素时钟边缘选择(1)提升边缘,I2C自动ACK启用,CRC检查器启用。
    睡眠(0.5)
    WriteReg (0xB0,0x2D,0x0F)#Forces 16 number of Parity errors in BIST mode (在BIST模式下强制出现16个奇偶校验错误)。

    #------------------ 在解串器中启用BIST和读取奇偶校验错误----------------------------------
    #设置BIST以使用PCLK,然后启用
    WriteReg (0xC0,0x24,03)#启用BIST,BIST选择50MHz内部时钟
    睡眠(60)#等待60秒延迟
    WriteReg (0xC0,0x24,00)#禁用BIST
    睡眠(1)
    FCERRCNT=ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)。 BIST模式下的正向信道奇偶校验错误数。

    此致,

    哈里。

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

    您好,

    我不知道MCU如何处理变量CERRCNT。  FCERRCNT=ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)。 BIST模式下的正向信道奇偶校验错误数。  

    运行此行后,它将返回0?

    是否可以将以上代码行更改为 "ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)"。 仅BIST模式下的正向通道奇偶校验错误数 ,查看您是否可以读取任何内容。  

     

    是否可以将此行 WriteReg (0xC0,0x42,0x02)#Introduces multiple CRC errors into back channel frame.更改为 WriteReg (0xC0,0x42,0x01)? 此行运行后,请检查913A上的寄存器0x0A。数字应增加一。  

    在运行BIST之前,您是否可以写入 WriteReg (0xB0,0x2D,0x80)并读取ReadReg (0xc0,0x1A)以查看是否可以在正常模式下强制奇偶校验错误?

     

     

    此致,

    查利蔡

     

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

    您好,Charley,

    根据您的建议进行测试。

    ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)。 BIST模式下的正向信道奇偶校验错误数。  

    运行此行后,它将返回0?

    是,它返回0。

     

    是否可以将以上代码行更改为 "ReadReg (0xC0,0x25)# Read BIST Error Count (读取BIST错误计数)"。 仅BIST模式下的正向通道奇偶校验错误数 ,查看您是否可以读取任何内容。  

    它返回0。

     

    是否可以将此行 WriteReg (0xC0,0x42,0x02)#Introduces multiple CRC errors into back channel frame. 更改为 WriteReg (0xC0,0x42,0x01)? 此行运行后,请检查913A上的寄存器0x0A。数字应增加一。

    尝试如下:

    ReadReg (0xB0,0x0A)->返回'0'

    WriteReg (0xC0,0x42,0x01)

    ReadReg (0xB0,0x0A)->返回 '1'

    是,增加了'1'。

    在运行BIST之前,您是否可以写入 WriteReg (0xB0,0x2D,0x80)并读取ReadReg (0xc0,0x1A)以查看是否可以在正常模式下强制奇偶校验错误?

    它返回0。

    此致,

    哈里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hari,您好!
    在正常和BIST模式下无法强制执行奇偶校验错误是意外的。
    在设备启动后和运行代码后,您是否可以向我提供913A和914A的寄存器转储?


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

    您好,Charley,

    谢谢你。

    请告诉我您需要分析哪些寄存器数据。

    因为有了CAN通信,我需要单独读取寄存器。

    此致,

    哈里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hari,您好!
    很抱歉回复太慢。 我一直在与同事交谈,我们没有看到类似的问题。
    这可能需要系统级调试,我想将讨论移至电子邮件。

    此致,
    查利蔡