九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 2988|回复: 2
打印 上一主题 下一主题

SPI控制器时钟如何输出?

[复制链接]
跳转到指定楼层
楼主
发表于 2016-11-8 15:14:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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, 下载次数: 145)

原理图

原理图

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

硬件管脚

硬件管脚

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

时序图

时序图
回复

使用道具 举报

沙发
 楼主| 发表于 2016-11-23 09:10:40 | 只看该作者
在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       
回复 支持 反对

使用道具 举报

板凳
发表于 2016-12-23 22:11:03 | 只看该作者
收藏了. 就是为了SPI而来的.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-4-20 16:01 , Processed in 0.033578 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表