TI论坛
直播中

刘艳芳

7年用户 231经验值
私信 关注
[问答]

用的是tms320c6747,调试spi0,4线模式,一直没有输出,请问哪里有可以参考的例子吗?

请教,我用的是tms320c6747,调试spi0,4线模式,一直没有输出,请问哪里有可以参考的例子吗?

回帖(5)

余少虹

2018-8-1 07:25:18
c6747EVM板里有SPI flash例程.
http://support.spectrumdigital.com/boards/evmomapl137/revg/
举报

刘艳芳

2018-8-1 07:41:45
引用: vuywsdfwf 发表于 2018-8-1 07:25
c6747EVM板里有SPI flash例程.
http://support.spectrumdigital.com/boards/evmomapl137/revg/

谢谢,但是网页打不开,下载不了
举报

刘艳芳

2018-8-1 07:55:49
引用: vuywsdfwf 发表于 2018-8-1 07:25
c6747EVM板里有SPI flash例程.
http://support.spectrumdigital.com/boards/evmomapl137/revg/

您好,这个我写的初始化函数和代码,我在主函数while(1)里面一直调用 spi发送函数,用示波器看不到clk信号和数据,不知道问题出在哪里?
void C6747_SPI_init ( )
[
//配置spi0的 cs clk mosi 为相应的功能引脚
PINMUX7 = 0x18111888; // EMIFB, 1.SPI0/CS P54 /2.SPIEN,P53/3.SPICLK PIN52 /4.SPISIMO PIN51
//1. Reset the SPI by clearing the RESET bit in the SPI global control register 0 (SPIGCR0) to 0.
SPI0_SPIGCR0 =0x00;
DELAY_US1(1000);
// 2. Take the SPI out of reset by setting SPIGCR0.RESET to 1.
SPI0_SPIGCR0 =0x01;
SPI0_SPIGCR1 =0
|(0<<24)
|(1<< 16)
|(1<<1)
|(1<<0);

SPI0_SPIPC0 =0
| (1<<11) //DI
| (1<<10) //DO
| (1<<9) //CLK
| (1<<1) //EHI
| (1<<0) ; //EH0

SPI0_SPIPC1 =0
| (1<<11)
| (0<<10)
| (1<<9)
| (1<<0); // SPIx_SCS[n]管脚方向为输出.
spidat1= 0
| (1 << 28)// The chip select signal is held active
| (0<< 24)
| (2<< 16)
| (0 << 0) ;
SPI0_SPIDAT1 =spidat1;
SPI0_SPIFMT0 = 0
| (0 << 20)
| (0 << 17)
| (1 << 16) // SPI clock delay.
| (4 << 8) // SPI clock frequency = SPI module clock/(PRESCALE + 1)
| 8; // SPI data word length.
SPI0_SPIDELAY =0
|(8<<24)
|(8<<16);
SPI0_SPIDEF =0
|(1<<1)
|(1<<0);
SPI0_SPILVL =0
|(0 <<8)
|(0<<6)
|(0<<4);
SPI0_SPIGCR1 |= (1 << 24); // SPI enable.

]
void C6747_SPI_write_read ( Uint8 data )
[
while( (SPI0_SPIBUF & 0x1000000) ); // 0<<29 发射寄存器空, 1<<28 位发射错误
SPI0_SPIDAT1 |= data;
]
举报

余少虹

2018-8-1 08:12:17
引用: 秦翙栀610 发表于 2018-8-1 07:41
谢谢,但是网页打不开,下载不了

这个是外部网可以打开的, 可能你们公司的网络有问题.
 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分