打印

SPI通信问题

[复制链接]
533|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a93268|  楼主 | 2016-6-20 23:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一颗AD,型号LMP90100,IO模拟SPI
设置ad的寄存器是没有问题的,读取的时候一直读不到数据,求助
芯片时序图如下:
读取代码如下(先写一个自己,在读一个字节,这个是依据的时序图,算是通信协议吧,代码中有一行被注释掉了,那个是时序上的一种尝试,结果是一样的,都读不出数据):
        uint8_t i,j,temp,num=0x80;
        temp=0;
        SPICLK(1);
        for(i=0;i<8;i++) //写一个字节指令
        {
                if(data & num)
                        MOSI(1);
                else
                        MOSI(0);
                SPICLK(0);
                Delay_ms(1);
                SPICLK(1);
                Delay_ms(1);
                if(num>0x01)
                        num>>=1;
        }       
        SPICLK(0);
        Delay_ms(1);       
        for(i=0;i<8;i++)//读一个字节数据
        {
                SPICLK(1);
                if(MISO())
                        temp++;
                //SPICLK(1);
                Delay_ms(1);               
                SPICLK(0);
                Delay_ms(1);
                if(i<7)
                        temp<<=1;
        }
        SPICLK(1);
        return temp;

相关帖子

沙发
dirtwillfly| | 2016-6-21 06:54 | 只看该作者
用逻辑分析仪或者示波器观察过时序没有?

使用特权

评论回复
板凳
51xlf| | 2016-6-21 16:46 | 只看该作者
你是没有反馈信号吗?

使用特权

评论回复
地板
51xlf| | 2016-6-21 16:49 | 只看该作者
查看一下Io是不是配置好了,

使用特权

评论回复
5
a93268|  楼主 | 2016-6-21 22:17 | 只看该作者
51xlf 发表于 2016-6-21 16:46
你是没有反馈信号吗?

写寄存器可以看LED,怎么设置都是OK,都有正确的现象反馈
读寄存器是将读到的信息通过串口输出,一直是0,串口确认是OK的

使用特权

评论回复
6
a93268|  楼主 | 2016-6-21 22:18 | 只看该作者
51xlf 发表于 2016-6-21 16:49
查看一下Io是不是配置好了,

这个早已经确认OK

使用特权

评论回复
7
a93268|  楼主 | 2016-6-21 22:20 | 只看该作者
dirtwillfly 发表于 2016-6-21 06:54
用逻辑分析仪或者示波器观察过时序没有?

示波器看过,SCLK信号和MOSI信号正常
MISO信号偶尔有数据,但是是错的,更多的时候是没有波形(维持一个电平)

使用特权

评论回复
8
angerbird| | 2016-6-21 22:57 | 只看该作者
根据楼上的数据时序图的进行数据的读取操作的。

使用特权

评论回复
9
angerbird| | 2016-6-21 22:57 | 只看该作者
这是需要注意起始位与停止位的应用的。。这个关系到一个数据的正确性的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

20

帖子

0

粉丝