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.

[参考译文] TIC12400-Q1:CAN't READ 寄存器

Guru**** 2573695 points
Other Parts Discussed in Thread: TIC12400-Q1, TIC12400

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1569966/tic12400-q1-can-t-read-registers

器件型号:TIC12400-Q1
主题 TIC12400 中讨论的其他器件

工具/软件:

您好:

我有一个带有 TIC12400-Q1 和 esp32-wroom 的电路板

原理图:



与数据表一样、我在/INT 和 CS_n 中提供了上拉电阻器
VS 引脚为 24V、VDD 引脚为 3.3V

因此、我用 micropython 编写一个简单的脚本、尝试读取器件 ID:

从机器导入 PIN、SPI
导入时间


PIN_CS = 5
PIN_RESET = 21

CS = Pin (PIN_CS、Pin.out、Value=1)#starts、CS_N 处于高电平
RESET = Pin (PIN_RESET、Pin.out、Value=0)#starts、RESET 为低电平

SPI = SPI (2、波特率=100_000、极性=0、相位=1、位=8、firstbit=SPI.MSB、 SCK=引脚 (18)、MOSI =引脚 (23)、MISO =引脚 (19)


打印(“初始化 TIC“)
复位前的 TIME.SLEEP_ms (15)#15ms
RESET.VALUE (1)#在发送前将 RESET 置于高电平
TIME.SLEEP_ms (1)#在开始传输前等待 6ms

#读取解码 ID
TX = bytearray ([0x02、0x00、0x00、0x00])#32 位、带 0x01 ADD
RX = bytearray (4)

CS.value (0)#put CS_n 为低电平、以开始传输
time.SLEEP_ms (1)#在开始传输前等待 1ms
spi.write_readinto (TX、Rx)#start transmission
time.SLEEP_us (1)#在发送结束前等待 1ms
CS.value (1)#将 CS_n 置于高端到端传输状态

#显示 RX
device_id =(RX[1]<< 8)| RX[2]#collect data from reply RX MOSI

print(“TX =“、[“0x%02x"%“% b 表示 TX 中的 b)#show tx data
print(“RX =“、[“0x%02x"%“% b 表示 Rx 中的 b)#show RX data
print(“Device ID = 0x%04X“% device_id)#show device ID



在耳镜中、我有以下信号:


蓝色:cs_n
黄色:重置

-----

蓝色:cs_n
黄色:SCLK

-----

蓝色:cs_n

黄色:MISO (SO)

蓝色:SlCK

黄色:MISO (SO)


MOSI 引脚从不会改变状态、始终处于低电平。 坐标镜一直都很低。

我已经使用新的 TIC12400 尝试了 3 种不同的电路板、但行为完全相同。

是否可能获得一些支持? 设计好,代码好吗?


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

    您好、Jose、

    我们正在研究这一点、并将在明天作出反应。 谢谢!

    此致、

    Josh

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

    您好:

    感谢您的帮助。

    我仍然无法解决这个问题。 如果您能提供帮助、我很感激。

    此致、

    Jose  

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

    您好、Jose、

    对延迟深表歉意。 最后几个延迟是非常繁忙的,所以我没有时间回答你的问题。

    将在明天前提供答案。 感谢您的耐心。

    此致、

    Josh

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

    您好、Jose、

    下面的屏幕截图来自逻辑分析仪、显示了器件 ID 读取。 我正在不带奇偶校验位发送[0x02 0x00 0x00 0x00]、因为 TIC 仅支持奇校验。

    1) 在你的第一个波形中,我看到你的复位变高。 在本次练习中、我们能否将 RESET 引脚保持为低电平?  

    2) 是否可以将所有信号 (MOSI、MISO、CS、CLK) 全部包含在一个示波器屏幕截图中? 这将有助于进行调试

    3) 您能否探测 Vs 和 Vdd 以确保这些引脚的实际读数分别为 24V 和 3.3V?  

    此致、

    Josh

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

    你好 Josh、

    感谢您的帮助。

    4 个信号不能放在相同的示波器中。 我保持相同的触发并记录信号

    24V 和 3.3V(在 TIC 引脚中测量)

    我将复位设置为 GND(低电平)、从而获得以下结果:

    CLK(蓝色)和 CS_n(黄色)

    CLK(蓝色)和 MOSI(黄色)

    CLK(蓝色)和 MISO(黄色)

    MOSI(蓝色)和 MISO(黄色)



    我尝试在同一对齐视图中排列 4 个信号



    输出结果为:

    TX =['0x02'、'0x00'、'0x00'、'0x00']
    RX =['0x80'、'0x00'、'0x00'、'0x4']
    器件 ID = 0x0000

    因此、如果我在 SPI 中将 Phase 更改为“0",“,则、则可以获得以下结果:

    TX =[“0x02",“,"0x00"、"0x00",“,"0x00"“"0x00",、,"0x00"]“"0x00"]</s>“ 、““
    RX =['0xC0'、'0x00'、'0x00'、'0x00']
    器件 ID = 0x0000

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

    尊敬的 Jos é:

    我们仍在研究这个问题、并将很快作出答复。

    此致、

    插孔

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

    您好、Jack 先生、

    我感谢你的帮助。

    我认为这款 IC 是进行汽车硬件开发时的最佳选择、但我急于完成故障排除、确认此 IC 能按预期工作。

    我需要知道我应该继续使用此 IC 还是继续使用其他选项。

    如果你能帮我找到问题,我非常感激。

    在 TI 文档资料之外无法找到 TIC12400-Q1 的相关信息、这非常令人失望。  

    此致、

    Jos é

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

    您好、Jose、

    我们今天将提供答案。 感谢您的耐心。

    此致、

    Josh

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

    您好、Jose、

    观察 MISO 波形、器件 ID 为 20h。 数据在下降沿锁存、而不是在上升沿锁存。

    此外、您似乎在 MISO 信号中收到了奇偶校验失败标志。 当完成 32 个时钟周期时、CS 信号不会恢复到高电平状态、这对我来说没有什么突出的地方。

    即器件能够接收和发送 SPI 信号。

    作为健全性检查、您能否执行以下操作:

    • 读取 IN_EN (1Bh) 寄存器
    • 将 0xFFFFFFFF 写入 IN_EN
    • 再次读取 IN_EN 寄存器

    第二次读取 IN_EN 后、应该会在该寄存器中看到所有 1。 这是一个快速测试、可确定 SPI 通信没有任何问题

    此致、

    Josh

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

    你好、Josh 先生、

    感谢你的帮助。

    我将 RESET 连接到 GND、并 使用相同的指令代码(更改为 Phase=0)、尝试读取器件 ID、从而获得:



    结果:

    初始化 TIC
    TX =[“0x02",“,"0x00"、"0x00",“,"0x00"“"0x00",、,"0x00"]“"0x00"]</s>“ 、““
    RX =['0xC0'、'0x00'、'0x00'、'0x20']
    器件 ID = 0x20

    因此、我看到、如果我从 MOSI 断开坐标波器探头、则 MISO 引脚 读数为(“C0 00 00 00“)。 如果我将坐标仪探头连接到 SI 引脚、则 MISO 引脚读数为“C0 00 20 “。  

    CS_n 在 aprox 100us 之后恢复为高电平。



    我为器件 ID 获得 0x20、我假设这样可以。




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

    您好、Jose、

    由于返回的第一个数据读取 0xC0、这意味着检测到了 POR 和 SPI_FAIL。  

    由于在器件启动时发生这种情况、POR 标志是正常的。 这可以通过读取 INT_STAT 来清除。

    但是、SPI_FAIL 与 32 位时钟周期有关。 您是否可以读取 INT_STAT 并查看 0xC0 是否已清除?

    我也会建议你做我在上一条评论中提到的健全性检查. 但到目前为止、一切看起来都很好。

    此致、

    Josh