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.

[参考译文] CCS/TMS320VC5501:McBSP int 未触发

Guru**** 2538950 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/791171/ccs-tms320vc5501-mcbsp-int-not-triggering

器件型号:TMS320VC5501

工具/软件:Code Composer Studio

根据 McBSP 手册、在几个地方、即使 McBSP 处于复位状态、也可以生成一个发送中断。 这似乎不起作用。 每当 McBSP 看到一个外部帧同步时、我就尝试触发一个 IRQ。 我将 XINT 设置为2、这应该是这样的。 如果我将 McBSP 保持在复位状态、我永远不会得到 int。 如果我让 McBSP 运行、我将获得有关任何新的 framesync 的 int。 因此、我知道我的中断例程和设置是正确的。

我需要这样做才能使我在第一个帧同步到达后正确启动 McBSP。 在其他资源中讨论了这一点、在这些资源中、您保持 McBSP 处于复位状态、直到第一个帧同步到达、然后您在 ISR 中启动 McBSP、并且下一个帧同步开始正确的数据传输。  

下面是我的代码片段。

hndlMcbsp2 = McBSP_open (McBSP_Port1、McBSP_open_reset);

McBSP_config (hndlMcbsp2、&mcbspConfig1);

#pragma DATA_SECTION (mcbspConfig1、".data1")
静态 McBSP_Config mcbspConfig1 ={
McBSP_SPCR1_RMK (
McBSP_SPCR1_DLB_OFF、
McBSP_SPCR1_RJUST_RZF、//McBSP_SPCR1_RJUST_LZF、
McBSP_SPCR1_CLKSTP_DISABLE、
McBSP_SPCR1_DXENA_NA、
McBSP_SPCR1_ABIS_DISABLE、
McBSP_SPCR1_RINTM_FRM、
0、
McBSP_SPCR1_RRST_DISABLE
)、
McBSP_SPCR2_RMK (
McBSP_SPCR2_FREE_YES、
McBSP_SPCR2_SOFT_YES、
McBSP_SPCR2_frst_reset、//McBSP_SPCR2_frst_FSG
McBSP_SPCR2_GRST_RESET、//McBSP_SPCR2_GRST_CLKG
McBSP_SPCR2_XINTM_FRM、//McBSP_SPCR2_XINTM_XRDY
0、
McBSP_SPCR2_XRST_DISABLE
)、
McBSP_RCR1_RMK (
McBSP_RCR1_RFRLEN1_of (15)、//(1)(7)
McBSP_RCR1_RWDLEN1_16BIT //McBSP_RCR1_RWDLEN1_16BIT
)、
McBSP_RCR2_RMK (
McBSP_RCR2_RPHASE_SINGLE、
McBSP_RCR2_RFRLEN2_of (0)、
McBSP_RCR2_RWDLEN2_8位、
McBSP_RCR2_RCOMPAND_MSB、
McBSP_RCR2_RFIG_NO、//McBSP_RCR2_RFIG_是、
McBSP_RCR2_RDATDLY_0BIT
)、
McBSP_XCR1_RMK (
McBSP_XCR1_XFRLEN1_of (15)、//(1)(7)
McBSP_XCR1_XWDLEN1_16BIT //McBSP_XCR1_XWDLEN1_16BIT
)、
McBSP_XCR2_RMK (
McBSP_XCR2_XPhase_Single、
McBSP_XCR2_XFRLEN2_of (0)、
McBSP_XCR2_XWDLEN2_8位、
McBSP_XCR2_XCOMPAND_MSB、
McBSP_XCR2_XCONFIG_NO、//McBSP_XCR2_XCONFIG_YES
McBSP_XCR2_XDATDLY_0BIT
)、
McBSP_SRGR1_RMK (
McBSP_SRGR1_FWID_of (1)、
McBSP_SRGR1_CLKGDV_of (1)
)、
McBSP_SRGR2_RMK (
McBSP_SRGR2_GSYNC_FREE、
McBSP_SRGR2_CLKSP_RISING、
McBSP_SRGR2_CLKSM_CLKS、//McBSP_SRGR2_CLKSM_INTERNAL McBSP_SRGR2_CLKSM_CLKS
McBSP_SRGR2_FSGM_DXR2XSR、
McBSP_SRGR2_FPER_of (1)
)、
McBSP_MCR1_DEFAULT、
McBSP_MCR2_DEFAULT、
McBSP_PCR_RMK (
McBSP_PCR_XIOTN_SP、
McBSP_PCR_RIOEN_SP、
McBSP_PCR_FSXM_EXTERNAL、
McBSP_PCR_FSRM_EXTERNAL、
McBSP_PCR_SCLKME_NO、//McBSP_PCR_SCLKME_NO
0、
McBSP_PCR_CLKXM_INPUT、
McBSP_PCR_CLKRM_INPUT、
McBSP_PCR_FSXP_ACTIVEHIGH、
McBSP_PCR_FSRP_ACTIVEHIGH、
McBSP_PCR_CLKXP_FALLING、//McBSP_PCR_CLKXP_RISING
McBSP_PCR_CLKRP_Rising
)、
McBSP_RCERA_DEFAULT、
McBSP_RCERB_DEFAULT、
McBSP_RCERC_DEFAULT、
McBSP_RCERD_DEFAULT、
McBSP_RCERE_DEFAULT、
McBSP_RCFP_DEFAULT、
McBSP_RCERG_DEFAULT、
McBSP_RCERH_DEFAULT、
McBSP_XCERA_DEFAULT、
McBSP_XCERB_DEFAULT、
McBSP_XCERC_DEFAULT、
McBSP_XCERD_DEFAULT、
McBSP_XCERE_DEFAULT、
McBSP_XC应急 循环_DEFAULT、
McBSP_XCERG_DEFAULT、
McBSP_XCERH_DEFAULT
};

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

    您能否在执行 CSL 示例时检查 McBSP 的行为、该示例可在以下位置下载:
    http://www.ti.com/tool/sprc133
    /examples/c5502/csl/mcbsp/mcbsp2

    此致、
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这并不是太容易。 我从另一位无法访问的工程师处接管了该项目。 我已经足够了解该项目、可以在现有 CCS 项目中工作。 但我还不知道如何创建新项目。 但是、我回顾了演示的功能及其所做的工作。 我无法将代码添加到当前项目中有多种原因、包括我使用 CCS BIOS 方法设置 INT、因此我无法进行混合和匹配。 但是、演示启动 McBSP:

    /*启用 McBSP 发送和接收*/
    McBSP_start (hMcbsp、
    McBSP_RCV_START | McBSP_Xmit_START、
    0
    );

    我知道、正如我在上面提到的、这将起作用、并且将生成一个 IRQ。 这对我很有用。 但是、当您这么做时、McBSP 正在运行。 我们需要保持 McBSP 处于复位状态、然后当我们获得 IRQ 时、我们将启动它。 McBSP 手册中有几个地方讨论过这一点,但它不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您看到我的回复了吗?