九鼎创展论坛

标题: SPI控制器时钟如何输出? [打印本页]

作者: hanping1020911    时间: 2016-11-8 15:14
标题: SPI控制器时钟如何输出?
本帖最后由 hanping1020911 于 2016-11-8 15:16 编辑

在x4418开发板上,要从spi接口,接一个SPI设备,作为slave设备。目前用示波器产看SPI管脚发现没有信号,输出。
开发板上的核心板上SPI相关的154到158管脚,对应到J13端口的7,9,11,13,15,在J13端口。要想再开发板的端口上看到CLK时钟波形,该怎样操作,需要修改哪些程序,做什么配置,就可以看到波形了。在源码程序上,还没有配置。谢谢大家。

未命名2.jpg (43.11 KB, 下载次数: 153)

原理图

原理图

未命名1.jpg (11.43 KB, 下载次数: 150)

硬件管脚

硬件管脚

spi.png (15.76 KB, 下载次数: 155)

时序图

时序图

作者: hanping1020911    时间: 2016-11-23 09:10
在pl022程序中的probe函数里面,添加数据传说代码就可以看到波形了
#if 1
       //disable spi
       //pl022->virtbase = 0xf005b000;
                writew((readw(SSP_CR1(pl022->virtbase)) & (~SSP_CR1_MASK_SSE)),
                        SSP_CR1(pl022->virtbase));
       //set master
        writew((readw(SSP_CR1(pl022->virtbase)) & (~SSP_CR1_MASK_MS)),
                        SSP_CR1(pl022->virtbase));
        //enable spi
                writew((readw(SSP_CR1(pl022->virtbase)) | (SSP_CR1_MASK_SSE)),
                        SSP_CR1(pl022->virtbase));
                for(hp=0;hp<10;hp++)
                {
                if(spitxbf1 == 0x5a5a)
                        spitxbf1 = 0xaa55;
                else spitxbf1 = 0x5a5a;
                pl022->tx = &spitxbf1;
                readwriter(pl022);
                writew((*(u16 *) (pl022->tx)), SSP_DR(pl022->virtbase));       

                a = readw(SSP_DR(pl022->virtbase));
                }               
#endif       
作者: swet123    时间: 2016-12-23 22:11
收藏了. 就是为了SPI而来的.




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2