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.

[参考译文] AM263P4-Q1:如何调试旋转变压器激励输出缺失?

Guru**** 2555070 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534497/am263p4-q1-how-to-debug-missing-resolver-excitation-output

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

工具/软件:

您好:

我有自定义硬件可以运行示例工程: resolver_ANGLE_SPEED_am263px-cc_r5fss0-0_nortos_ti-arm-clang(来自 SDK 9.2.0.56)。

我必须注释掉多路复用、因为它不适用。

    //Board_driversOpen();
    /* setting up resolver related pins on board muxes */
    //i2c_io_expander_resolver_adc();

还将激励输出从 D16 更改为 D17、但仅此而已。 以下是我的旋转变压器的示例工程激励正弦波:

和示例输出:

[Cortex_R5_0] setting up the EPWM ISR!!
setting up the EPWM ISR Complete!!
Resolver Enabled!!
Forcing the Sync Pulse from the EPMW0!!
4000 Iterations complete. Printing some of the values
	    ANGLES (DEGREES)					||	VELOCITIES (RPS)			
----------------------------------------------------------------||-----------------------------------------------
	ATAN		RAW_TRACK2	SW_TRAKC2		||	HW_TRACK2		SW_TRACK2
	83.457642	83.364258	-0.006338		||	83.369751	83.391724
	83.446655	83.419189	83.397217		||	0.006747	0.006747
	83.474121	83.413696	83.391724		||	0.006165	0.006165
	83.430176	83.424683	83.402710		||	0.007423	0.007423
	83.430176	83.424683	83.402710		||	0.007232	0.007232
	83.402710	83.419189	83.397217		||	0.006859	0.006859
	83.430176	83.413696	83.391724		||	0.006487	0.006487
	83.446655	83.408203	83.386230		||	0.004764	0.004764
	83.446655	83.413696	83.391724		||	0.006319	0.006319
	83.457642	83.413696	83.391724		||	0.006370	0.006370
All tests have passed!!

我的问题是、当我使用相同的自定义硬件将相同的配置(旋转变压器,ePWM、ePWM SYNCOUT XBAR)延续到我们的应用项目时、我看不到激励输出。 原因肯定是软件、但我很难理解如何找到根本原因。

 Drivers_epwmSyncoutXbarOpen()、Drivers_epwmOpen() 和 Drivers_resolverOpen() 的内容在示例和我的应用程序之间是相同的。

我在应用程序中调用了以下命令一次


RDC_enableResolver(CONFIG_RESOLVER0_BASE_ADDR);
EPWM_forceSyncPulse(RESOLVER_SYNC_BASE_ADDR);

但此后看不到任何 PWM 输出。

非常感谢提供一些指导来调试出错的地方。 作为参考、可以使用在我的自定义硬件上运行的经修改的示例工程 PFA。

e2e.ti.com/.../resolver_5F00_angle_5F00_speed_5F00_am263px_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip

谢谢你。

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

    尊敬的 Kier:

    对迟来的答复表示歉意。 考虑到硬件之间的代码是相同的、我可以想到的一些基本检查

    • 您是否在新硬件中使用完全相同的针脚 (D16 或 D17) 进行探测? 您能否将其与原理图交叉验证一次?
    • 如果在正确的引脚上进行探测、您能否在硬件上对连接 D16 和 D17 的布线上的任何串联电阻器进行交叉验证(未安装或 DNI)?
    • 您只需在同一 D16 和 D17 引脚上尝试简单的 GPIO 切换、看看是否能证明它正在切换、从而确保设置和探测正确无误。

    我还会请我的同事从软件的角度来看待它。 同时、如果可能、您可以查看上述内容吗?

    谢谢、

    Tejas Kulakarni

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

    尊敬的 Tejas:

    感谢您、但您的请求表明您对这种情况的理解不正确。 这不是软件在一个 PCB 上工作的问题、而是在另一个不同的 PCB 上工作的问题。 我在工作和非工作条件下具有相同的硬件。

    考虑到硬件之间的代码相同、我可以想到的基本检查很少

    代码不同、只有部分(我认为)与 TI 的旋转变压器 TBC 相关。

    正如开场问题中所解释的那样、我做了比基本检查更远的事情、这就证明了为什么不可能成为硬件问题。 简而言之、在比较工作和非工作条件时:

    -硬件是相同的。

    Drivers_epwmSyncoutXbarOpen()、Drivers_epwmOpen() 和 Drivers_resolverOpen() 的内容是相同的。

    - D17 的引脚复用是相同的。

    我需要检查(或其他建议)的寄存器字段值列表、尝试了解我的应用中没有 PWM 输出的原因。

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

    尊敬的 Kier:

    为误解道歉。 我将请我的同事从软件的角度来了解它。

    我看到行为上的差异是两者之间的

    resolver_ANGLE_SPEED_am263px-cc_r5fss0-0_nortos_ti-arm-clang(来自 SDK 9.2.0.56

    和  

    resolver_ANGLE_SPEED_am263px-cc_r5fss0-0_nortos_ti-arm-clang.zip

    谢谢、

    Tejas Kulakarni

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

    尊敬的 Tejas:

    这不正确。

    行为上的差异体现在以下方面:

    (1) resolver_angle_SPEED_am263px-cc_r5fss0-0_nortos_ti-arm-clang(来自 SDK 9.2.0.56)、但稍作修改 (OK)

    ...和...

    (2) 我的应用程序(不正常)

    ...其中两个软件都在同一个自定义硬件上运行。

    我已将 (1) 附加为 zip 文件(称为 resolver_angle_speed_am263px-cc_r5fss0-0_nortos_ti-arm-clang.zip)、仅供您参考、因为我必须从示例代码略微对其进行修改。

    我当然不能给你 (2)。

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

    尊敬的 Kier:

    我处理旋转变压器的 SW。 我正在尝试理解您所面临的问题。 除了 IO 扩展器之外、电路板配置中实际上没有任何应该配置/限制旋转变压器的内容、这些内容不应该适用于您的定制硬件。

    我看到 PMIC、i2c、mcspi 在驱动程序打开状态下仍然亮起。 PMIC OPEN 可能正在寻找板载外设的一些响应。 我在您的工程中尝试了以下内容、并看到它现在正在运行。

    1. board.c 文件、从构建中删除或注释掉
      1. resolver_angle_speed.c
      2. 删除 i2c-io-expander 的外部定义
      3. //extern void i2c_io_expander_resolver_adc ();
    2. syscfg 文件
      1.  如果工程中未使用 PMIC 和添加的从属模块、如 MCSPI、I2C、EDMA

    谢谢。此致、

    Madhava.

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

    尊敬的 Kier:

    请查看随附的以下项目文件、其中包含 Madhava 在上述内容中提到的更改

    e2e.ti.com/.../resolver_5F00_angle_5F00_speed_5F00_am263px_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang_2D00_Madhava_5F00_modified.zip

    如果对此有任何进一步的疑问、请写回。

    谢谢、

    Tejas Kulakarni

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

    尊敬的 Madhava:

    我看到 PMIC、i2c、mcspi 在驱动程序打开状态下仍处于打开状态。 PMIC OPEN 可能正在寻找板载外设的一些响应。 我在您的项目上尝试了以下操作、然后看到它现在正在运行。

    谢谢、但我所附的 zip 文件不是我的目标工程、而是来自 SDK 的 TI 工程并进行修改。 此工程在我的硬件上工作正常、因此无需进一步修改。 该演示仅供参考、用于演示我可以在硬件上获得 PWM 输出。

    我的项目(我不能给你)不起作用。 我的请求是、您建议我检查我的工程中的哪些寄存器、看看是否有任何设置不正确、这可能会阻止 PWM 输出。

    例如、 必须设置 resolvers_regs_global_CFG.MASTER_EN 来获得 PWM 输出。 是这样吗? “我不知道,我也不知道。“ 关键是我想告诉我要检查哪些寄存器、以便找出没有 PWM 输出的原因。

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

    尊敬的 Kier:

    请检查旋转变压器寄存器、

    1. 查看是否设置了 MASTER_En 位。 在 resolvers_regs_global_CFG 位 0 中
    2. 查看您是否具有 PWM 同步使能。 在 resolvers_regs_excit_sample_CFG2 位 29 中
      1. 如果已启用、则查看 SYNC_IN_EVENT 状态。 在  resolvers_regs_excit_sample_CFG2 位 31 中
      2. 如果没有、则无需进行检查。

    在复位默认设置中、这些是旋转变压器生成 10kHz 旋转变压器 PWM 输出所需的旋转变压器寄存器。 如果 IOMUX 配置正确、则应该可以使用波形。  

    如果需要、请尝试在调试模式下编译应用(降低优化级别并将静态内联 API 保持为可调用函数)逐步执行解析器配置 API、然后查看解析器寄存器是否正确更新。  

    除此之外、随附的 zip 文件具备所有功能、可让解析器正常工作。 (根据我之前回答的注释)如果您的实际工程已经在执行与该共享工程完全相同的所有操作、关于解析器(以及 PWM 同步和 PWM XBar 配置)、则生成 PWM OUT 信号的旋转变压器不应该有任何问题。 Tejas 和我检查了 D16 和 D17 上的 PWM 输出信号。

    我有一些后续问题、

    1. 您的应用和共享的应用、它们是否具有相同的旋转变压器配置?  
    2. 应用中的 PWM 同步和 PWM XBar 配置正确(与共享控制器类似或相同)
    3. IOMUX 是否正确配置了 D16/D17? 并且相应的引脚没有短接到任何其他位置?  
      1. 请不要以为我错、在开发的早期阶段、我们在设计放大器电路时遇到了类似的情况。  
    4. 如果使用 PWM 同步、您的 EPWM 计数器是否正在运行?   
      1. 如果这两种都不可能、  
        1. TB 计数器模式可以是停止和冻结模式
        2. 禁用 TBCLKSYNC
      2. 如果没有、您是否像您共享的应用程序一样强制使用同步信号?
    5. 您是否发现此特定电路板或更多类似电路板存在此问题?
      1. 预期引脚“可能“出现故障的一些错误场景。  
      2. 尝试进行 GPIO 配置并切换 D16/D17、如 Tejas 建议、以确认 PIN 是否正常。 我知道这种情况极不可能发生。

    谢谢。此致、

    Madhava.  

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

    尊敬的 Kier:

    除了上面提到的 Madhava 外、您提到的无法共享您的工程、如果可以、您能否仅共享代码的 SysConfig 部分? 我们将能够使用旋转变压器和 IOMUX 配置来检查这些配置、这将极大地帮助进行调试。 如果没有问题、请分享一下。

    谢谢、
    Tejas Kulakarni

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

    非常感谢您提供了全面的调试点。 我认为这些将非常有用。

    [报价 userid=“533208" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534497/am263p4-q1-how-to-debug-missing-resolver-excitation-output/5915094 #5915094“]
    • 查看是否设置了 MASTER_En 位。 在 resolvers_regs_global_CFG 位 0 中
    • 查看您是否具有 PWM 同步使能。 在 resolvers_regs_excit_sample_CFG2 位 29 中
      1. 如果已启用、则查看 SYNC_IN_EVENT 状态。 在  resolvers_regs_excit_sample_CFG2 位 31 中
      2. 如果没有、则无需进行检查。
    [/报价]

    谢谢你。 这是解析器寄存器:

    对于解析器(以及 PWM 同步和 PWM XBar 配置)配置、生成 PWM 输出信号的解析器不应存在任何问题。

    好的、感谢您的确认。

    IOMUX 正在正确配置 D16/D17?

    宾果游戏! 这是根本原因。  调用 Pinmux_config () 后、D17 的引脚函数正确 (8):

    但在运行代码几秒钟后、我重新检查了、引脚功能更改为 TRC_DATA2

    我 还记得 、现在我的应用正在尝试使用跟踪。 因此、我禁用了跟踪功能、现在我的应用得到了激励输出。

    对不起,我应该检查这个早,而不是晚。 我想这是第二对眼睛的好处!

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

    尊敬的 Tejas:

    您能否仅分享您代码的 SysConfig 部分?

    谢谢、这是一个好主意。 将来、我将发布我的.syscfg。

    如您所见、问题现已解决、但感谢您努力取得进展。

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

    尊敬的 Kier:

    感谢您让我们知道。 如果还有其他问题、请随时写信给我们。

    此致、

    Tejas Kulakarni