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

TMS320F280049: SPI 无法发送数据

Part Number:TMS320F280049Other Parts Discussed in Thread:ADS131M06

MCU SPI能输出时钟信号,SOMI能接收外部输入信号,但是SIMO无输出信号,一直为0

IO映射:

RESET :GPIO56

DRDY   :GPIO27

SCLK    :GPIO26

SOMI    :GPIO31

SIMO    :GPIO30

SPI从设备为ads131m06,不管mcu发出什么数据,SIMO上捕获到的数据总是0.

将GPIO30配置为普通IO,可以控制其高低电平。

请帮忙看看是哪里出了问题

初始化SPI代码:

void SPI_Initialize(void)
{SpibRegs.SPICCR.bit.SPISWRESET = 0;//spi reset to configuration modeSpibRegs.SPICCR.bit.CLKPOLARITY = 0;//DOut on falling Edge,Din on rising EdgeSpibRegs.SPICCR.bit.SPICHAR = (8-1);//16-bit wordSpibRegs.SPICCR.bit.SPILBK = 0;//loopback disabledSpibRegs.SPICTL.bit.MASTER_SLAVE = 1;//MasterSpibRegs.SPICTL.bit.TALK = 1;//Transmit EnableSpibRegs.SPICTL.bit.CLK_PHASE = 0;//normal clocking scheme,no delayingSpibRegs.SPICTL.bit.SPIINTENA = 0;//Interrupt DisableSpibRegs.SPIBRR.bit.SPI_BIT_RATE = SPI_BRR; //500kbpsSpibRegs.SPIPRI.bit.FREE = 1;//Halting on a breakpoint will not halt the SPIDELAY_US(10);//b15,SPIRST=1,resume FIFO to transmit or receive//b14,SPIFFENA  =1,enable FIFO//b13,TXFIFO=1,release TX FIFO from reset//b6,TXFFINTCLR =1,clear SPIFFTX[TXFFINT] flag//b4~b0,TXFFIL  =4,generate TX FIFO interrupt when there are less than 4 words in TX bufferSpibRegs.SPIFFTX.all = 0xE040;//b13,RXFIFORESET=1,re-enable RXFIFO//b6,RXFFINTCLR =1,clear SPIFFRX[RXFFINT] flag//b4-b0,RXFFIL  = F,generate RX FIFO intterupt when there are more than 15 words in RX bufferSpibRegs.SPIFFRX.all = 0x204F;//no delay between every transfer from FIFO transmit buffer to transmit shift registerSpibRegs.SPIFFCT.all = 0x0;SpibRegs.SPICCR.bit.SPISWRESET = 1;//Release the SPI from resetSPI_InitGpio();
}
//
// InitSpiGpio - Initialize SPIA GPIOs
//
void SPI_InitGpio()
{EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO30 = 0; // Enable pull-up  (SPISIMO)GpioCtrlRegs.GPAPUD.bit.GPIO31 = 0; // Enable pull-up  (SPISOMI)GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0; // Enable pull-up  (SPICLK)GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0; // Enable pull-up  (SPISTE)GpioCtrlRegs.GPAQSEL2.bit.GPIO30 = 3; // Asynch input  (SPISIMO)GpioCtrlRegs.GPAQSEL2.bit.GPIO31 = 3; // Asynch input  (SPISOMI)GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 3; // Asynch input  (SPICLK)GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 3; // Asynch input  (SPISTE)GpioCtrlRegs.GPAGMUX2.bit.GPIO30 = 0; //0x3GpioCtrlRegs.GPAMUX2.bit.GPIO30  = 3; //SPIB_SIMOGpioCtrlRegs.GPAGMUX2.bit.GPIO31 = 0; //0x3GpioCtrlRegs.GPAMUX2.bit.GPIO31  = 3; //SPIB_SOMIGpioCtrlRegs.GPAGMUX2.bit.GPIO26 = 1; //0x6GpioCtrlRegs.GPAMUX2.bit.GPIO26  = 2; //SPIB_CLKGpioCtrlRegs.GPAGMUX2.bit.GPIO27 = 0; //GpioCtrlRegs.GPAMUX2.bit.GPIO27  = 0; //GpioCtrlRegs.GPADIR.bit.GPIO27= 0; // InputGpioCtrlRegs.GPAPUD.bit.GPIO27= 0; // Enable pull-up /DRDYGpioCtrlRegs.GPACTRL.bit.QUALPRD3= 0x3;//6 SYSCLK cycles

	GpioCtrlRegs.GPBGMUX2.bit.GPIO56 = 0;
	GpioCtrlRegs.GPBMUX2.bit.GPIO56  = 0;GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; // Enable pull-up  (SPI /RESET)GpioCtrlRegs.GPBDIR.bit.GPIO56 = 1; // OutputGpioDataRegs.GPBSET.bit.GPIO56 = 1; // High// GpioDataRegs.GPBCLEAR.bit.GPIO56 = 1; // Low,保持复位状态//GpioCtrlRegs.GPAGMUX2.bit.GPIO30 = 0; //0//GpioCtrlRegs.GPAMUX2.bit.GPIO30  = 0; //GPIO30//GpioCtrlRegs.GPADIR.bit.GPIO30 = 1; // OutputEDIS;
}

Annie Liu:

内容重复,我会关闭这个帖子。工程师将在下帖中跟进您的问题:https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/757646/tms320f280049-spib-simo 

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049: SPI 无法发送数据
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1