大哥,在吗?我也遇到了2416不出时钟的问题了?能帮我看下程序不?
//prepare Enable
*sys_MISCCR |= (1<31); /*HS-SPI Select HSSPI_EN2 Must be set ‘1’*/
//Pin mux
*port_GPECON&=~(0x3f<<22);
*port_GPECON|=(1<<27)|(1<<25)|(1<<23); /*GPE13->SPICLK,GPE12->SPIMOSI,GPE11->SPIMISO; all clr*/
*port_GPLCON&=~(0x3<<26);
*port_GPLCON|=(1<<27);/*GPL13->SPISS,all clr*/
/*Pull/down-up disable*/
*port_GPEUDP&=~(0x3F<<22);
*port_GPLUDP&=~(0x3<<26);
//Clock on
*clk_SCLKCON|=(1<<14); /* For HS-SPI Enable HS-SPI_0 (EPLL) clock */
*clk_PCLKCON|=(1<<6); /* For HS-SPI Enable PCLK into the SPI_HS0 */
#if 1
//SPI Regs
/*1. Set Transfer Type. ( CPOL & CPHA set ) CPOL = 0, CPHA = 0 (Format A)*/
*spi_CH_CFG |= (1<<5); /*sw_rst enable*/
*spi_CH_CFG &= ~(1<<5); /*sw_rst disable*/
*spi_CH_CFG|=3<<2;
/*2. Set Clock configuration register. */
*spi_CLK_CFG=0x5; /*prescale=5*/
*spi_CLK_CFG|=(1<<8); /*Enable clock*/
/*3. Set HS_SPI MODE configuration register.*/
*spi_MODE_CFG|=(0x3FF<<19); /*Trailing count refresh*/
*spi_MODE_CFG|=(1<<5)|(1<<11); /*Triger level*/
/*4. Set HS_SPI INT_EN register. */
*spi_HS_SPI_INT_EN|=0x3F;
/*5. Set Packet Count configuration register if necessary. */
//*spi_SPI_PACKAGE_COUNTER_REG=0x105;
/*6. Set Tx or Rx Channel on. */
*spi_CH_CFG |= 1<<0; /*Tx channal on*/
*spi_CH_CFG |= 1<<1; /*Rx channal on*/
/*7. Set nSSout low to start Tx or Rx operation
A. Set nSSout Bit to low, then start TX data writing.
B. If auto chip selection bit is set, should not control nCS*/
*spi_SLAVE_SLECTION_REG|=(0xFF<<4);/*nCS_time_count*/
*spi_SLAVE_SLECTION_REG&=~(1<<0); /*Manual mode,Enable SPI_CS*/
/*8. test send Byte*/
*spi_SPI_TX_DATA = 0x55;
这篇博客主要讲述了在Linux系统中针对S3C2416微处理器进行SPI接口的配置,包括时钟频率设定、引脚复用、时钟使能等步骤。博主遇到SPI时钟和MOSI信号没有输出的问题,并分享了详细的配置代码,希望能得到解决此问题的帮助。
1426

被折叠的 条评论
为什么被折叠?



