这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 使用TC27xD实现SPC通信,如何设置AURIXpincfg?

共2条 1/1 1 跳转至

使用TC27xD实现SPC通信,如何设置AURIXpincfg?

工程师
2024-02-18 22:04:23     打赏

我正在尝试使用 TC27xD 实现 SPC 通信。 我能够使用 2 个不同的引脚发送 SPC 触发器并接收响应:1 个用于输入,1 个用于输出。
但是,当使用单引脚时,我感觉端口保持输出模式,从不切换到输入模式。 我能看到触发器正在发送,但无法收到响应帧。
我已将发送频道设置为:
  ifxsent_sent3b_p00_4_in,ifxport_inputMode_nopullDevice,//已发送 输入
  ifxsent_spc3_p00_4_out,ifxport_outputMode_open Drain,//已发送输出

我应该如何设置 AURIX pincfg? 使用与 SENTOUT 相同的 SENtiN 引脚设置我的 SENT 频道时,我的连接处于悬空状态,因为我无法将引脚(在我的情况下为 P00.4)输入设置同时设置为输出设置。 因此,我在SENT3.TRIG上将引脚方向设置为输出,芯片输入变为灰色且未配置,芯片输出设置为漏极开路。

阅读文档时,它提到了控制引脚方向的 SDIR 信号。 我猜引脚必须从输入(接收 SPC 帧)切换到输出(发送 SPC 触发器)等等。 但是,这个开关是由 SPC 模块完成的,还是每次想要发送触发器和接收帧时都必须手动更改引脚方向?




关键词: TC27xD     AURIX     SPC    

助工
2024-02-18 22:04:46     打赏
2楼

要在TC27xD上实现SPC通信,您需要正确设置AURIX的pincfg。首先,您需要确保正确设置发送和接收通道。可以使用以下代码示例设置发送和接收通道:

// 设置发送通道
IfxSent_Sent_Out sentOut;
IfxSent_initSentOutPin(&sentOut, &MODULE_SENT, &IfxSent_SENT3_P00_4_OUT, IfxPort_OutputMode_openDrain, IfxPort_PadDriver_cmosAutomotiveSpeed3);

// 设置接收通道
IfxSent_Spc_In sentIn;
IfxSent_initSpcInPin(&sentIn, &MODULE_SENT, &IfxSent_SPC3_P00_4_IN, IfxPort_InputMode_nopullDevice, IfxPort_PadDriver_cmosAutomotiveSpeed3);

上述代码:

- 使用sentOut变量初始化发送通道。在这里,请确保引脚与您的设置相匹配(P00_4_OUT)。
- 使用sentIn变量初始化接收通道。同样,请确保引脚与您的设置相匹配(SPC3_P00_4_IN)。

然后,您需要将这些通道设置为SENT模块。这可以通过以下代码完成:

// 设置发送通道
IfxSent_initSent(&MODULE_SENT, &sentOut);

// 设置接收通道
IfxSent_initSpc(&MODULE_SENT, &sentIn);

上述代码将发送和接收通道与SENT模块关联起来。

最后,您可以在发送触发器和接收响应之间执行必要的操作。如您所提到的,您可以使用2个不同的引脚来实现此操作。您需要确保在发送触发器时将发送通道切换到输出模式,并在接收响应时将其切换到输入模式。这可以通过设置相应引脚的输入/输出模式来实现。以下代码示例展示了如何执行这些操作:

// 发送触发器
IfxPort_setPinState(&IfxSent_SENT3_P00_4_OUT, IfxPort_State_high);  // 设置输出电平,发送触发器

// 接收响应
IfxPort_setPinModeInput(&IfxSent_SENT3_P00_4_OUT, IfxPort_InputMode_pullUp);  // 设置为输入模式,以接收响应帧

上述代码将引脚切换到输出模式(发送触发器)和输入模式(接收响应)。

请注意,根据您的实际硬件设置,引脚的名称和编程接口可能会有所不同。请查阅TC27xD的文档以确定正确的引脚和函数。

希望这可以帮助您设置AURIX的pincfg并实现SPC通信。祝您好运! 


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]