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.

[参考译文] TMS320F28379D:如何将 LAUNCHXL-F28379D 上的 XCLKOUT 带到可以使用示波器查看的 GPIO 引脚?

Guru**** 2553420 points
Other Parts Discussed in Thread: TMS320F28379D, LAUNCHXL-F28379D, C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1379252/tms320f28379d-how-can-i-bring-xclkout-on-a-launchxl-f28379d-to-a-gpio-pin-that-can-be-viewed-with-an-oscilloscope

器件型号:TMS320F28379D
主题中讨论的其他器件: LAUNCHXL-F28379DC2000WARESysConfig

工具与软件:

这与 TMS320F28379D 论坛帖子相关:如何查看 LAUNCHXL-F28379D 中的 XCLKOUT? 推荐的解决方案是使用 F28379D X-Bar 在 LaunchXL-F28379D GPIO 引脚上访问的另一个 GPIO 引脚上回显 GPIO73的状态。 您能告诉我一个 C2000ware 示例项目、该项目使用 Xbar 从一个 GPIO 引脚复制到另一个引脚吗?

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

    其他信息:我在 C2000ware 文件夹中找到了类似示例工程的东西、使用 xbar 捕获 EPWM 信号- ecap_capture_pwm_xbar、但该文件夹未在 CCS 中显示为可导入工程。 这是项目标题中唯一提到 Xbar 的示例文件夹。

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

    更多其他信息:我找到了论坛文章 TMS320F28379D:交叉开关配置、它提供了使用 X-Bar 的 C2000ware 代码片段。 然后、我尝试创建一个短程序来将 GPIO73配置为在 GPIO15上输出 XCLKOUT。 代码未按预期运行。 您能告诉我哪里出了问题吗?

    //------------------------------------------------------------------------------
    //	XCLKOUT_test - Set XCLKOUT clock source as XTALOSC and set a divider of 1.
    //	Configure GPIO73 in PinMux to monitor XTALOSC, which operates at 20MHz on the LaunchXL board.
    //	Since GPIO73 is not accessible on a LaunchXL-F28379D board,
    //	mirror state of GPIO73 on GPIO15 so we can verify that XCLKOUT is working
    //	by attaching an oscilloscope to pin GPIO15.
    //------------------------------------------------------------------------------
    
    #include "C2000types.h"
    #include "F2837xD_sysctrl.h"
    #include "F2837xD_gpio.h"
    #include "pin_map.h"
    #include "sysctl.h"
    #include "gpio.h"
    #include "xbar.h"
    
    
    typedef enum ePinState_e
    {
    	GPIO_PIN_LOW,
    	GPIO_PIN_HIGH,
    	MAX_PIN_STATES
    } PIN_STATE_t;
    
    
    //	Function prototypes:
    void XtalClkInit( void );
    void GpioInitPins( void );
    void gpioInit( GPIO_Direction ePinDir, uint32_t nPinNo, PIN_STATE_t nPinState );
    void SWTimeDlyMicroSec_Asm( uint32_t nNumMicrosec );
    
    
    
    //------------------------------------------------------------------------------
    //	main.c
    //------------------------------------------------------------------------------
    int main( void )
    {
    	bool		bTestDone = false;
    
    	XtalClkInit();
    	GpioInitPins();
    
    	//	Configure XBar to mirror activity on GPIO73 to GPIO15.
        XBAR_setInputPin( XBAR_INPUT7, 73U );		//	Using XBarInputNum: XBAR_INPUT7, //!< eCAP1, X-BARsfrom ECAP1
        XBAR_setOutputMuxConfig( XBAR_OUTPUT4, XBAR_OUT_MUX00_ECAP1_OUT );
        XBAR_enableOutputMux( XBAR_OUTPUT4, XBAR_MUX00 );
        GPIO_setPinConfig( GPIO_15_OUTPUTXBAR4 );	//	We can access GPIO15 at OUTPUTXBAR4.
    
        while( !bTestDone )
    	{
    	}
    
    	return 0;
    }
    
    //----------------------------------------------------------------------------
    //! Initialize XCLKOUT clock source to the XTALOSC external oscillator.
    //
    //! Set XCLKOUT source as XTALOSC and divider 1.
    //! \param[in]  none
    //! \return     none
    //# REF-??
    //----------------------------------------------------------------------------
    void XtalClkInit( void )
    {
    	//  Configure the XCLKOUT clock source and divider.
    	SysCtl_selectClockOutSource( SYSCTL_CLOCKOUT_XTALOSC );
    	SysCtl_setXClk( SYSCTL_XCLKOUT_DIV_1 );
    }
    
    //----------------------------------------------------------------------------
    //! Initialize GPIO output pins.
    //
    //! Set GPIO output pins to their initial states.
    //! \param[in]  none
    //! \return     none
    //----------------------------------------------------------------------------
    void GpioInitPins( void )
    {
    	//  Configure DSP GPIO pin 73 to output the XCLKOUT clock signal.
    	GPIO_setPinConfig( GPIO_73_XCLKOUT );
    	//	The LaunchXL-F28379D demo board does NOT bring GPIO73 to an accessible pin.
    	//	So try using XBar to mirror GPIO73 activity on GPIO15.
    	gpioInit( GPIO_DIR_MODE_OUT, 15U, GPIO_PIN_LOW );
    }
    
    void gpioInit( GPIO_Direction ePinDir, uint32_t nPinNo, PIN_STATE_t nPinState )
    {
    	GPIO_setDirectionMode( nPinNo, ePinDir );
    	if( ePinDir == GPIO_DIR_MODE_OUT )
    	{
    		GPIO_writePin( nPinNo, nPinState );
    	}
    }
    

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

    请熟悉 XCLKOUT 和 Xbar 使用方法的人回答我的问题吗?

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

    为了简化操作、 这里是 我的测试项目的 ZIP 文件。 请确保修改链接资源中的路径以匹配您的环境。

    我已经在 LaunchXL-F28379D 演示板上添加了一个闪烁的 LED、以轻松判断程序正在执行。  XCLKOUT 信号配置为在 GPIO73上输出。 由于在 LaunchXL-F27379D 板上无法访问 GPIO73、  因此我要配置 XBar、以便  通过将示波器探头连接到 GPIO15来查看 XCLKOUT 信号。 Xbar 链接无法正常工作。 任何人:请 帮助我了解如何使 Xbar 按预期执行。  

    e2e.ti.com/.../XCLKOUT_5F00_Test2.zip

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

    您好、Thomas:

    该工程实际上位于名为 CCS 的目录中。

    以下是您要查找的工程的工程位置路径: device_support\f2837xd\examples\cpu1\ecap_capture_pwm_xbar\cpu01\ccs

    看看您是否可以导入此项目并对其进行评估。

    此致、

    Ozino

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

    我找到了。 感谢您的帮助。 该示例程序对我原来的问题没有多大帮助、因为它使用 ECAP 来测量 PWM 脉冲的脉冲宽度和周期。 我仍然需要解决我的测试程序试图解决的问题、即 将 LaunchXL 板上无法访问的 GPIO73的 XCLKOUT 信号镜像到 GPIO15、  您是否熟悉 Xbar 以帮助我调试为此目的使用 Xbar? 如果不能、您可以将我转介给能够帮助我调试 Xbar 逻辑的 TI 支持人员吗?

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

    通常我会在几天内收到某种回复。 对我的帖子保持沉默是不寻常的。 这里是否没有人非常熟悉 Xbar、能够 帮助我确定我的 Xbar 逻辑不起作用的原因、或者 建议使用 Xbar 以外的替代方法将 GPIO73上的 XCLKOUT 镜像到可以使用示波器探针访问的另一个 GPIO 引脚?

    Kevin Allen18对5年前发布的"TMS320F28379D:如何检查 LAUNCHXL-F28379D 中的 XCLKOUT"进行了回复。 我已经设计了我的测试程序在 ZIP 文件我上面张贴基于他的答复。 他是否仍可以帮助我?

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

    您好、Thomas:

    是否仍有此问题? 我对延误深表歉意、我们有一些人离开办公室、并放弃了这一话题。  

    此致、

    Ben Collier

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

    Benjamin -感谢与我核对。 这仍然是一个尚未解决的未决问题。 您是否足够熟悉 Xbar 的使用、以便能够评论我的测试程序并帮助找出我需要更改的内容、使其按预期工作?

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

    大家好、Thomas、如果我的理解正确、您已将 XCLKOUT 连接到 GPIO73、并希望使用 INPUtxbar 和 OUTPUTxbar 将 XCLKOUT 路由到 GPIO15。

    您拥有的代码如下:

    XBAR_setInputPin( XBAR_INPUT7, 73U );		//	Using XBarInputNum: XBAR_INPUT7, //!< eCAP1, X-BARsfrom ECAP1
    	XBAR_setOutputMuxConfig( XBAR_OUTPUT4, XBAR_OUT_MUX00_ECAP1_OUT );
    	XBAR_enableOutputMux( XBAR_OUTPUT4, XBAR_MUX00 );
    	GPIO_setPinConfig( GPIO_15_OUTPUTXBAR4 );	//	We can access GPIO15 at OUTPUTXBAR4.

    这有几个问题、首先、输出 Xbar 只能访问输入 xbar 1-6、因此您应该使用不同的输入 Xbar (例如 INPUT Xbar 6)来读取 GPIO73、然后将输出 Xbar 配置为读取 INPUTXBAR6。

    我不知道您为什么将输出 Xbar 配置为读取 ECAP1_OUT。 这不应该读取输入 Xbar 吗?

    您是否可以尝试将代码更新为以下代码并查看其是否起作用?

    XBAR_setInputPin( XBAR_INPUT6, 73U );		//	Using XBarInputNum: XBAR_INPUT7, //!< eCAP1, X-BARsfrom ECAP1
    XBAR_setOutputMuxConfig(XBAR_OUTPUT4, XBAR_OUT_MUX11_INPUTXBAR6);
    XBAR_enableOutputMux(XBAR_OUTPUT4, XBAR_MUX11);
    GPIO_setPinConfig( GPIO_15_OUTPUTXBAR4 );	//	We can access GPIO15 at OUTPUTXBAR4.

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

    Luke -感谢您提供建议的代码更改。 我完全按照建议修改了定义 XBAR 配置的4行内容、然后在 controlCARD 和 LaunchXL-F28379D 板上测试了该程序。   在任一目标环境中、程序未将 XCLKOUT GPIO 引脚73上生成的信号重现到 GPIO15上。 您是否在 controlCARD 或 LaunchXL 板上对其进行了测试?

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

    嗨、Thomas、

    我使用 SysConfig 生成上述代码。 您能否通过在启用持续刷新的情况下观察 CCS 中的 GPADAT 寄存器来验证 XCLKOUT 是否显示在 GPIO15上? 当 CCS 对 GPADAT 寄存器进行采样时、您应该会看到 GPIO15的状态定期变化。

    谢谢!

    Luke

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

    Luke -我已尝试反复暂停 CCS 调试会话的执行并检查寄存器 GPADAT。 它会定期在0x20C21038和0xA0C21038值之间切换。 但这不能提供确认信号频率的功能。 我以前和现在使用 XBAR 的目标是将 GPIO73 (在 LaunchXL-F28379D 演示板上无法访问)上的活动镜像到 GPIO15上、而 GPIO15可连接到示波器探头来测量信号频率。

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

    您好、Thomas:

    此测试表明 GPIO73上发生了一些切换、这很好。 假设 XBAR 配置正确、您应该能够在 GPIO15上看到一些切换。 完成此操作后、您可以在 GPIO15上验证频率

    您是否看到 GPIO15的 GPAMUX 和 GPAGMUX 中的多路复用器选项已更改? GPIO15是否配置为输出?

    谢谢!

    Luke

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

    卢克-我必须道歉。 我错过了您在第一个源代码行中从 XBAR INPUT7对 INPUT6 所做的更改。 我的 XBAR 命令行现在看起来像您的一样。 我已经在 TI controlCARD 和 LaunchXL-F28379D 演示板上进行了测试。 现在可以在两个目标平台上的 GPIO15上访问时钟信号。 非常感谢您的帮助。