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.
您好
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 配置 如下所示:
您好、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、但我对 额外的时钟周期感到困惑。
我使用的演示是:
来自 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_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_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
此致、
尼尔