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.

[参考译文] TCAN4550-Q1:`读取器件 ID

Guru**** 1956055 points
Other Parts Discussed in Thread: AWR2544, TCAN4550, TCAN4550-Q1, AWR2944
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1361810/tcan4550-q1-do-n-read-device-id

器件型号:TCAN4550-Q1
主题中讨论的其他器件:AWR2544TCAN4550、、 AWR2944

您好

n`t 使用 AWR2544与 TCAN4550一起使用,但现在我不读取 TCAN 设备 ID (寄存器0x0000-0x000C 不n`t 读取)。

我使用 TI 的代码示例(C:\ti\mmwave_mcuplus_sdk_04_06_00_01\mcu_plus_sdk_awr2544_09_01_00_05\examples\drivers\mibspi\mibspi_loopback)、  

 TCAN4550_demo 进行了演示。 我们使用  mibspi 连接的 TCAN。  硬件原理图如下所示:

AWR2544示例演示 mibspi_loopback 配置 如下所示:

2544初始复位 TCAN RST 引脚,
void freertos_main (void * args)
{
  drivers_open()
  Board_driversOpen()
  
  uint32_t baseAddr =(uint32_t) AddrTranslateP_getLocalAddr (CONFIG_GPIO0_TCAN4550_RST_BASE_ADDR);
  GPIO_pinWriteHigh (baseAddr、CONFIG_GPIO0_TCAN4550_RST_PIN);
  ClockP_SLEEP (1);
  GPIO_pinWriteLow (baseAddr、CONFIG_GPIO0_TCAN4550_RST_PIN);
  ClockP_usleep (5000);
  //mibspi_loopback_main (NULL);

  Test_Com ();
  vTaskDelete (NULL);
Test_Com ()
{
  int32_t status = SystemP_Success;
  uint32_t i
  int32_t transferOK
  MIBSPI_Transaction spiTransaction



  DebugP_log ("[MIBSPI]数字测试示例已启动...\r\n");

  内部长度= 0
  gMibspiTxBuffer[len++]= 0x41
  gMibspiTxBuffer[len++]= 0x00
  gMibspiTxBuffer[len++]= 0x00
  gMibspiTxBuffer[len++]= 0x01
  gMibspiTxBuffer[len++]= 0x00
  gMibspiTxBuffer[len++]= 0x00
  gMibspiTxBuffer[len++]= 0x00
  gMibspiTxBuffer[len++]= 0x00
  SPI_WRITE (gMibspiTxBufferlen);
  SPI_READ (gMibspiRxBufferlen);
  SPI_READ (gMibspiRxBufferlen);
  SPI_READ (gMibspiRxBufferlen);


  返回;
根据上面的发送、读取 DeviceID、逻辑分析仪图如下:
当我取消初始化 TCAN Rst 引脚时、MISO 所有字节均为0xff、其他波形如上图所示。
您能帮助 mA、让 SPI 与 TCAN 正确通信吗、谢谢您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nill:

    原理图看起来一般都可以、但我看不出用于 VSUP、VIO 电源引脚的电压电平、以及上拉电阻器连接到了什么电压电平。  您能否告诉我在测试过程中以下引脚的电压电平是多少、以便我可以验证器件是否正确通电以及内部 LDO 是否处于正确的值?

    VSUP、VIO、VCCOUT、FLTR、INH、 RST

    在 CS 信号转换为高电平之前的额外时钟周期之前、SPI 信号看起来正常。  这些时钟周期将导致器件产生 SPI 错误、因为它们在 CS 信号为低电平时发生。  TCAN4550将对时钟周期进行计数、如果数字不正确、则会丢弃所有 SPI 写入命令、并设置 SPI 错误(SPIERR)中断状态标志。  如果 SPI 工作正常、您将看到在每个 SPI 事务上的 MISO 信号上返回 SPIERR 位。

    SPI 错误的常见原因包括协议或格式问题、器件电源/复位问题或时钟问题。

    即使有几个额外的时钟周期会导致 SPI 错误、该协议看起来足够好、可以看到用于器件 ID 读取的 MISO 信号上有一些活动。  

    可以对器件 ID 寄存器读取排除时钟、因为寄存器0x0000-0x000C 仅使用 SPI 时钟、不使用器件时钟(晶体)。  因此、如果 SPI 信号正确并且没有电源等其他问题、那么您应该能够读取器件 ID 寄存器。

    由于我没有看到您的 MISO 信号有任何活动、因此器件可能存在电源或复位问题。  如果电源电压过低、或复位(RST)引脚为"高电平"、则器件将处于复位状态、并且不响应 SPI。  这就是我要求对电源和复位引脚值进行验证的原因。

    此致、

    乔纳森

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

    您好、 Jonathan

    我使用示波器来测量  引脚的电压电平、图片如下:

    (VSUP:最小值=11.2v、最大值=11.8。      VIO:最小值= 3.20v、最大值= 3.34v、RST 为"低电平")

      

    器件n`t /复位`m 正常、我对为什么不读取 TCAN 感到非常困惑。  

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

    您好、Nill:

    感谢验证 VSUP 和 VIO 的输入电压轨以及 RST 电压。  您是否还可以验证 VCCOUT、FLTR 和 INH 电压电平?  这些电压是器件输出的、它将告诉我们该部件是否正确加电。  如果这些电压未处于正确电平、则器件可能已由于失效防护功能和睡眠唤醒错误(SWE)计时器到期而进入睡眠模式、并且它将无法响应 SPI。

    上电后、处理器有大约4分钟的时间来配置 TCAN4550-Q1、清除 PWRON 标志或将器件配置为正常模式。 如果没有发生这种情况、则器件将进入睡眠模式、内部 LDO 将被禁用、并且无法进行 SPI 通信。

    如果器件在尝试进行 SPI 通信时通电超过4分钟、则可能需要对 TCAN4550-Q1进行下电上电、或者通过脉冲 WAKE 引脚发出本地唤醒信号、或在 CAN 总线上提供唤醒模式(WUP)、以将 TCAN4550-Q1从睡眠模式唤醒并使其进入待机模式、然后重新启动4分钟 SWE 计时器。

    您能否尝试通过测量 VCCOUT、FLTR 和 INH 引脚上的电压来验证器件是否处于睡眠模式、以及在下电上电后立即尝试 SPI 通信?

    此致、

    乔纳森

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

    您好 Jonathan M ü,

    每次 SPI 通信、上电后都会立即执行所有操作、即使我在 程序初始化中将 RST 引脚置为低电平-高电平-低电平也是如此。

    我将测量 VCCOUT、FLTR 和 INH 引脚上的电压。  

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

    您好、Nill:

    RST 脉冲结束后、您要等待多长时间才能尝试通过 SPI 进行通信?  您至少需要等待700us。  如果您在 RST 脉冲后且在700us 结束之前尝试立即与器件通信、则器件将通过 SPI 没有响应、这可能是您看不到任何 SPI 活动的原因。

    请检查 RST 脉冲与 SPI 通信开始之间的时间。

    此致、

    乔纳森

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

    我正在尝试在 RST 脉冲变为高1和低5秒后进行通信。

    (fltr:min = 1.0 v、max = 1.33V      Vccout:最小值= 4.58V、最大值= 4.91V)

    我n`t  测量  INH 引脚上的电压、因为它位于电路板上的裸露位置。

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

    您好、Nill:

    谢谢。  电压电平似乎略低于预期、但表明器件未处于睡眠模式、因此应该可以进行 SPI 通信。

    我仔细看了一下 SPI 波形、我认为时钟到数据采样边沿可能存在极性问题。  该数据在时钟的上升沿进行采样、在波形中、该数据显示其在上升沿进行转换。 数据表显示了应采用的时序格式。

    仔细观察逻辑分析仪图中的该时钟与数据之间的关系、可以看到数据在每个上升沿进行转换、这会阻止 TCAN4550看到用于读取的有效 SPI 运算代码0x41。  

    您是否可以尝试调整极性、以便数据位在时钟的下降沿转换、并在上升沿保持稳定?  希望这将解决 TCAN4550无响应的主要问题。

    此致、

    乔纳森

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

    你好、Jonathan

    我更改了 SPI TI 模式1、然后可以读取器件 ID、但我对 额外的时钟周期感到困惑。

       

    我使用的演示是:

    MMWAVE-MCUPLUS-SDK  适用于 AWR2544  、AWR2944和 AM2732的毫米波 SDK、   

    来自 TI.com 的演示、如下所示关于 MIBSPI 配置

    您能否查看有关 SPI 通信的2544 MIBSPI 演示?

    谢谢你。

    尼尔

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

    您好、Nill:

    很高兴我们现在解决了 SPI 极性格式问题、并且 TCAN4550正在识别和响应数据。  但是、我也会被额外的时钟周期感到困惑。  我的专长是 TCAN4550、我对 AWR2544没有任何经验、因此我必须将该主题重新分配到支持 AWR2544的论坛。

    此致、

    乔纳森

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

    您好、Nill:

    这与我们最近发现的已知问题类似、将在下一个 SDK 版本中正确修复。
    我将在此处附加一个 zip 文件:
    e2e.ti.com/.../SPI-issue.7z

    注意:该修复与 AWR2944有关、但也可在 AWR2544中使用、请根据所使用的 SDK 更新相应的路径。 您可以比较文件并进行必要的更改。 由于它是适用于 AWR2544的不同 SDK、因此请勿在不检查差异一次的情况下直接粘贴文件。

    此致、
    Saswat Kumar

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

    您好  Saswat ,

    根据您的文件和方法、我修改了 AWR2544 MIBSPI、并解决了启用 DMA 的 MIBSPI 中的问题。

    但如果在 MIBSPI 中禁用 DMA ,CS 引脚通常为低电平,因为 启用 DMA 时 csHold 将被清除。 对于在 MIBSPI 中禁用 DMA 的模式、最后一个 传输是不执行清除 cshold 的操作。

    我有另一个关于 TCAN4550的查询,我想问乔纳森:

    我完成了 TCAN4550初始化、参考  TCAN 演示、但当我调用函数时  

    TCAN4x5x_MCAN_ClearInterrupts 所有     //重置所有 MCAN 中断(不包括任何 SPIERR 中断)。

    然后我呼叫 TCAN4x5x_MCAN_WriteTXBuffer 要写入 TxBuffer、 我从 TCAN 接收到一个进行 SPI 通信的 CANERR。

    日志 如下(W 和 R 是同步的):

    清除中断所有
    W:0x61 0x10 0x50 0x01 0xff 0xff 0xff 0xff 0xff 0xff
    R:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    W:0x61 0x81 0x74 0x04
    R:0xA0 0x00 0x00 0x00

    此致、

    尼尔

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

    您好、Nill:

    感谢对修复的反馈、我将告知软件团队有关此问题的信息。 我现在希望您可以使用启用 DMA 的模式。

    让我让 Jonathan 知道这一点。

    此致、
    Saswat Kumar

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

    您好!

    我希望有人回答我的提问。

    我完成了 TCAN4550初始化、参考  TCAN 演示、但当我调用函数时  

    TCAN4x5x_MCAN_ClearInterrupts 所有     //重置所有 MCAN 中断(不包括任何 SPIERR 中断)。

    然后我呼叫  TCAN4x5x_MCAN_WriteTXBuffer  要写入 TxBuffer、 我从 TCAN 接收到一个进行 SPI 通信的 CANERR。

    日志 如下(W 和 R 是同步的):

    清除中断所有
    W:0x61 0x10 0x50 0x01 0xff 0xff 0xff 0xff 0xff 0xff
    R:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    W:0x61 0x81 0x74 0x04
    R:0xA0 0x00 0x00 0x00

    此致、

    尼尔

x 出现错误。请重试或与管理员联系。