打印

请问SPI接收的时候是发送0XFF还是0X00

[复制链接]
16919|75
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
似水无痕|  楼主 | 2012-5-1 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发送0XFF或者0X00是不是要看CPOL和CPHA? 如果CPOL是HIGH的话(平时DATAOUT一直是HIGH,那么发送的时候发送0XFF才能算是没数据,如果CPOL是LOW的话,则需要发送0X00才算是没有数据,请问我这样理解的对吗?
评分
参与人数 1威望 +1 收起 理由
119641189 + 1

相关帖子

沙发
NE5532| | 2012-5-2 08:06 | 只看该作者
天啊,万能的神啊,告诉我楼主用的是哪种单片机吧~~~~!阿门~~!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
nongfuxu + 1
板凳
elec921| | 2012-5-2 08:38 | 只看该作者
崩溃

使用特权

评论回复
地板
ayb_ice| | 2012-5-2 08:40 | 只看该作者
一般无所谓

使用特权

评论回复
5
airwill| | 2012-5-2 09:31 | 只看该作者
没有这个说法, 数据传递取决于 sck 信号

使用特权

评论回复
6
似水无痕|  楼主 | 2012-5-2 11:33 | 只看该作者
需要说明是哪一种单片机吗? CPOL CPHA不是标准的参数吗?
一般单片机的驱动都是
uint8 spitransmit( unit8 senddata);

{
    recv = spitransmit( 0xff ); // 期望只接收,不发送有效数据
}

我是想问是不是无论什么极性的SPI,MOSI线上发0XFF都是合理的?是要跟MOSI空闲信号电平一致,还是要跟接收端协商一个无意义字符,是我表达能力太差了?

使用特权

评论回复
7
NE5532| | 2012-5-2 12:02 | 只看该作者
需要说明是哪一种单片机吗? CPOL CPHA不是标准的参数吗?
一般单片机的驱动都是
uint8 spitransmit( unit8 senddata);

{
    recv = spitransmit( 0xff ); // 期望只接收,不发送有效数据
}

我是想问是不是无论什 ...
似水无痕 发表于 2012-5-2 11:33


楼主你真的是才入门啊,随便给两个寄存器名字,WHO能知道你用的啥东西啊。

使用特权

评论回复
8
原野之狼| | 2012-5-2 12:32 | 只看该作者
可以直接贴原文   说说你的理解

使用特权

评论回复
9
似水无痕|  楼主 | 2012-5-2 13:41 | 只看该作者
楼主你真的是才入门啊,随便给两个寄存器名字,WHO能知道你用的啥东西啊。
NE5532 发表于 2012-5-2 12:02

请你随便去翻看STM8或者STM32或者MSP430或者AVR单片机的DATSHEET、REFERANCE MANUAL,请搜索CPOL。看你能不能搜索到。
人家牛人也没像你搞那么大个字,就显着你了。

使用特权

评论回复
10
似水无痕|  楼主 | 2012-5-2 13:45 | 只看该作者
我错了,430里叫
CKPH CKPL
对不起,请无视我的帖子吧,请你不要用这么招摇的字体再回复我的帖子了,谢谢你。

使用特权

评论回复
11
hys0401| | 2012-5-2 15:05 | 只看该作者
这两个是相位。

但明显楼主最基本的概念都没弄清,也别怪别人用大字回复你。

使用特权

评论回复
12
NE5532| | 2012-5-2 15:24 | 只看该作者
呵呵,我不回,你这个帖子摆在这里就没人回了,初学入门,面子放下,搞技术,又不是整人呢,有啥不好意思的,谁都是菜过来的呢。

使用特权

评论回复
13
tangzzbb| | 2012-5-2 18:37 | 只看该作者
本帖最后由 tangzzbb 于 2012-5-3 10:01 编辑
我错了,430里叫
CKPH CKPL
对不起,请无视我的帖子吧,请你不要用这么招摇的字体再回复我的帖子了,谢谢你。
似水无痕 发表于 2012-5-2 13:45


哈哈?

使用特权

评论回复
14
cumtljy| | 2012-5-2 19:32 | 只看该作者
一直是这样理解的,由于SPI通信要由主机产生sck时钟信号,只有存在时钟才从机才能把寄存器内数据发送出去,所以只要保证发送的数据从机不会产生动作(无效数据)即可。

使用特权

评论回复
15
567| | 2012-5-2 19:34 | 只看该作者
SPI不能只接收不发送,接收的时候必然在发送,发送的时候必然在接收。

使用特权

评论回复
16
mcuisp| | 2012-5-2 22:59 | 只看该作者
无所谓什么数据的。

使用特权

评论回复
17
aozima| | 2012-5-3 02:00 | 只看该作者
本帖最后由 aozima 于 2012-5-3 02:16 编辑

楼主问的问题很有深度,我反省一下前天看到这个贴没有回复。
因为当时觉得我也没弄明白,就不出来瞎说了。

NE5532前辈不要激动,楼主问问题时没有提到具体芯片,说明他已经升了一级了。

P话讲了这么多,我也不知道答案,我都是发0xFF。
但见不同的SPI外设的dummy data的定义并不相同,大部分是0xFF,有些则用0x00.
以后会留意并研究一下。

使用特权

评论回复
18
aozima| | 2012-5-3 02:09 | 只看该作者
一直是这样理解的,由于SPI通信要由主机产生sck时钟信号,只有存在时钟才从机才能把寄存器内数据发送出去,所以只要保证发送的数据从机不会产生动作(无效数据)即可。 ...
cumtljy 发表于 2012-5-2 19:32

从机半双工接收数据时(不发送),主机可以直接丢弃(接收到的)数据。
但主机半双工从从机接收数据时(不发送),MOSI要如何处理?

因为很多芯片不完全靠CS来控制内部的状态机,也靠MOSI上面的数据(命令)。

使用特权

评论回复
19
shanefirst| | 2012-5-3 08:03 | 只看该作者
有同感

使用特权

评论回复
20
shanefirst| | 2012-5-3 08:03 | 只看该作者
有同感

使用特权

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

本版积分规则

6

主题

489

帖子

1

粉丝