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.

TMS320F280049: F280049 SPB引脚I配置

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

你好!请教一下关于F280049 SPI_B引脚用寄存器配置的问题,硬件 SIMO:GPIO56   SOMI:GPIO25   CLK:GPIO26    STE:GPIO27   通过测试发现是引脚配置出了问题,找不到问题出在哪里,请指点。以下是引脚配置,谢谢,

  • 试一下将GpioCtrlRegs.GPAPUD.bit.gpio27 = 0;

    另外,你的其他3路信号都正常吗?你是怎么判断是GPIO配置导致通信问题的

  • 你好!将GpioCtrlRegs.GPAPUD.bit.gpio27 = 0;也不行,我验证的方法是通过库函数配置SPISIMO,SPISOMI,***。其他配置不变,如图所示,请帮忙分析一下原因,谢谢!

  • 再试一下把寄存器代码中的GPADIR寄存器配置部分代码删除。

    如果还不能解决问题的话建议把工程或者代码发上来一下

  • 试了,还不行,工程传不了,只能把配置敲上,有空帮忙看看,盼回复,谢谢!

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // F280049 SPIB
    // SIMO---GPIO56 SOMI---GPIO25 CLK---GPIO26 SET----GPIO27
    //
    void InitSoib(void)
    {
    EALLOW;
    //
    SpibinitPin();
    //使SPI-B
    CpuSysRegs.PCLKCR8.bit.SPI_B = 1;
    //SPI
    SpibRegs.***.bit.SPISWRESET = =0;
    DELAY_US(10);
    //
    SpibRegs.***.bit.CLKPOLARITY = 0;
    SpibRegs.***.bit.CLK_PHASE = 1;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 有可能是SpibinitPin() 中的 pinmux 配置不完整。 例如,对于 GPIO56,配置为SPIB_SIMO 模式的话要选择模式 9(1001b)。 写入 GPBGMUX2.GPIO56 = 10b 和 GPBMUX2.GPIO56 = 01b。

    对于SPI 配置,你可以参考C2000ware 中的 SPI 配置示例:C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f28004x\examples\spi

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //GPIO
    void SpibinitPin(void)
    {
    //SPISIMO
    GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 9;//SPISIMO
    GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; // 使
    //SPISOMI
    GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 6;//SPISOMI
    GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 3; //
    GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0; // 使
    //CLK
    GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 6;//CLK
    GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0; // 使
    //使
    GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 0;//IO
    GpioCtrlRegs.GPADIR.bit.GPIO27 = 1; //
    GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0; // 使
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    你好!重新配置了,如上代码也无法正常通信。

  • F280049C_Template.zip你好!这是我工程,目前SPI通过寄存配置还是都不到数据,请帮忙再看看我的配置哪里出了问题?谢谢!通过库函数配置验证过硬件是没有问题,请帮忙看看,谢谢!盼回复

  • MUX 寄存器有 2 个 :你需要配置MUX 和 GMUX。 这些字段有 2bit长。 mux 值的高 2 位应在 GMUX 寄存器中配置,低 2 位应在 MUX 寄存器中配置

    例如,为 GPIO56 配置 mux 选项 9 (b1001)。

    Fullscreen
    1
    2
    3
    GpioCtrlRegs.GPBGMUX2.bit.GPIO56 = 0x2;
    GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 0x1;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    建议你还可以使用 SysConfig 工具进行 pinmux 和基本外设初始化。 通过 GUI 完成的配置可以直接自动生成初始化代码。但是生成的代码是使用 driverlib 函数而不是位域寄存器的

  • 非常感谢,您的支持按照

    Fullscreen
    1
    2
    3
    GpioCtrlRegs.GPBGMUX2.bit.GPIO56 = 0x2;
    GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 0x1;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    这种配置,问题完美解决了,再次感谢!!

  • 客气了,很高兴你的问题解决了

x 出现错误。请重试或与管理员联系。