选用C6748 SPI0的SPI0_SCSn2作为片选,配置后CS2信号一直没有反应,帮忙看看配置是否有问题?

选用C6748 SPI0的SPI0_SCSn2作为片选,配置后CS2信号一直没有反应,帮忙看看配置是否有问题?

此问题尚无答案
All Replies
  • 秀才10分
    /****************************************************************************/
    /*                                                                          */
    /*              PSC初始化                                            */
    /*                                                                          */
    /****************************************************************************/
    void PSCInit(void)
    {
     PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UPP, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
     PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
     PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
        PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_SPI0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);//ADD SPI0
    }
    /****************************************************************************/
    /*                                                                          */
    /*              GPIO 管脚复用配置                                           */
    /*                                                                          */
    /****************************************************************************/
    void GPIOBankPinMuxSet(void)
    {
     // 配置相应的 GPIO 口功能为普通输入输出口
     // 核心板 LED
     GPIOBank6Pin12PinMuxSetup();
     GPIOBank6Pin13PinMuxSetup();
     //SPIO PinMux
     SPIPinMuxSetup(0);
     //SPI0 CS0
     SPI0CSPinMuxSetup(2);//片选改成CS2
     UARTPinMuxSetup(0, FALSE);

     // 核心板 LED
        GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  // GPIO6[12]
        GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  // GPIO6[13]
    }
    /****************************************************************************/
    /*                                                                          */
    /*              SPI 初始化                                         */
    /*                                                                          */
    /****************************************************************************/
    void SPIInit(void)
    {
        unsigned char cs  = 0x4;//改成CS2
        unsigned char dcs = 0x4;//改成CS2
        unsigned int  val = SIMO_SOMI_CLK_CS;
        SPIReset(SOC_SPI_0_REGS);
        SPIOutOfReset(SOC_SPI_0_REGS);
        SPIModeConfigure(SOC_SPI_0_REGS, SPI_MASTER_MODE);
        SPIClkConfigure(SOC_SPI_0_REGS, 150000000, 1000000, SPI_DATA_FORMAT0);
        SPIPinControl(SOC_SPI_0_REGS, 0, 0, &val);
        SPIDefaultCSSet(SOC_SPI_0_REGS, dcs);
        // 配置 SPI 数据格式
        SPIDataFormatConfig(SPI_DATA_FORMAT0);
        // 配置 SPI 数据格式及片选信号
        SPIDat1Config(SOC_SPI_0_REGS, (0 | SPI_DATA_FORMAT0), cs);
        // 使能 SPI
        SPIEnable(SOC_SPI_0_REGS);
    }
    /****************************************************************************/
    /*                                                                          */
    /*              SPI 传输                                                    */
    /*                                                                          */
    /****************************************************************************/
    void WriteReg(unsigned char addr,unsigned int data)
    {
     unsigned int status;
        SPIDat1Config(SOC_SPI_0_REGS, SPI_DATA_FORMAT0, 0x4);//改成CS2
        SPITransmitData1(SOC_SPI_0_REGS, addr);
        status=SPI_SPIFLG_TXINTFLG;
        while(status!=SPI_SPIFLG_TXINTFLG)
        {
            status=SPIIntStatus(SOC_SPI_0_REGS, SPI_SPIFLG_TXINTFLG);
        }
        Delay(50);
        status=SPIDataReceive(SOC_SPI_0_REGS);
        SPIDat1Config(SOC_SPI_0_REGS, SPI_DATA_FORMAT0, 0x4);//改成CS2
        SPITransmitData1(SOC_SPI_0_REGS, data);
        status=SPI_SPIFLG_TXINTFLG;
        while(status!=SPI_SPIFLG_TXINTFLG)
        {
            status=SPIIntStatus(SOC_SPI_0_REGS, SPI_SPIFLG_TXINTFLG);
        }
        Delay(50);
        status=SPIDataReceive(SOC_SPI_0_REGS);
    }
    请教下是不是配置有问题呢?CS2不能正常动作。
  • 榜眼49646分

    数据能出去吗?数据线上有信号吗

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 秀才260分

    mo信号没有输出 说明什么呢?

    SPI1-CS2可以用,依葫芦画瓢的SPI1-CS1却不能用,真是崩溃!

  • 榜眼49646分

    你的是问题是这个贴子的问题吗?不是一个人发的啊,你如果有新问题,别起一个贴子,将你的配置及现象尽量描述清楚。

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal