TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335x SPI_D1无输入

测试官网提供的spi示例(mcspiFlash),发现不能够正常运行。然后我为了方便调试,将主程序修改为连续读ID命令(9F)。起初测试时,发现SPID0官角无输出,通过查询论坛上相关内容,可能是管角方向的配制问题,然后我修改了管角方向,用示波器查看,发现SPID0有输出,并且为9F,但是去测SPID1时,发现没有任何输入。找了很久,仍然没有查到可能的问题在哪里。

说明:使用的是自己板子,4个管角连接是am335x默认SPI功能管脚一样。flash的工作电压测了是3.3V。

int main(void)
{volatile unsigned int count = 0x0FFFu;unsigned int retVal = FALSE;unsigned char choice = 0;unsigned int i ;/* Enable the clocks for McSPI0 module.*/McSPI0ModuleClkConfig();/* Perform Pin-Muxing for SPI0 Instance */McSPIPinMuxSetup(0);/* Perform Pin-Muxing for CS0 of SPI0 Instance */McSPI0CSPinMuxSetup(chNum);/* Initialize the UART utility functions *///UARTStdioInit();//UARTPuts("Here the McSPI controller on the SoC communicates with", -1);//UARTPuts(" the SPI Flash.\r\n\r\n", -1);/* Enable IRQ in CPSR.*/IntMasterIRQEnable();/* Map McSPI Interrupts to AINTC */McSPI0AintcConfigure();/* Do the necessary set up configurations for McSPI.*/McSPISetUp();while(1){for(i = 0 ; i < 0xff ; i++);	ReadId() ;}
}


static void ReadId(void)
{//unsigned int retVal = FALSE;txBuffer[0] = 0x9F ;;length = 1 ;McSPITransfer();
}

将McSPISetUp配制作如下修改
static void McSPISetUp(void){
...McSPIMasterModeConfig(SOC_SPI_0_REGS, MCSPI_SINGLE_CH,MCSPI_TX_RX_MODE, MCSPI_DATA_LINE_COMM_MODE_6,//MCSPI_DATA_LINE_COMM_MODE_1chNum);
...
}
Steven Liu1:

建议,直接用寄存器访问,查看D1的pinmux是否真正修改生效了。

其次,你发送数据的时候是两个通道同事发的吗?那么channel的config配置好了吗?tx的buffer是否正确配置了。看你的描述一个D0已经调通了,你直接把相应的配置改成D1看看是否通的,这样可以协助验证是不是你硬件上的问题。然后再进行D0/D1同时发的这一配置。

afsa af a:

回复 DachuanLiu:

是的,我把所有管脚均配制成你所说的这种模式,就可以了。

赞(0)
未经允许不得转载:TI中文支持网 » AM335x SPI_D1无输入
分享到: 更多 (0)