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

[复制链接]
20303|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 | 显示全部楼层
一般无所谓
airwill 发表于 2012-5-2 09:31 | 显示全部楼层
没有这个说法, 数据传递取决于 sck 信号
 楼主| 似水无痕 发表于 2012-5-2 11:33 | 显示全部楼层
需要说明是哪一种单片机吗? CPOL CPHA不是标准的参数吗?
一般单片机的驱动都是
uint8 spitransmit( unit8 senddata);

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

我是想问是不是无论什么极性的SPI,MOSI线上发0XFF都是合理的?是要跟MOSI空闲信号电平一致,还是要跟接收端协商一个无意义字符,是我表达能力太差了?
NE5532 发表于 2012-5-2 12:02 | 显示全部楼层
需要说明是哪一种单片机吗? CPOL CPHA不是标准的参数吗?
一般单片机的驱动都是
uint8 spitransmit( unit8 senddata);

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

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


楼主你真的是才入门啊,随便给两个寄存器名字,WHO能知道你用的啥东西啊。
原野之狼 发表于 2012-5-2 12:32 | 显示全部楼层
可以直接贴原文   说说你的理解
 楼主| 似水无痕 发表于 2012-5-2 13:41 | 显示全部楼层
楼主你真的是才入门啊,随便给两个寄存器名字,WHO能知道你用的啥东西啊。
NE5532 发表于 2012-5-2 12:02

请你随便去翻看STM8或者STM32或者MSP430或者AVR单片机的DATSHEET、REFERANCE MANUAL,请搜索CPOL。看你能不能搜索到。
人家牛人也没像你搞那么大个字,就显着你了。
 楼主| 似水无痕 发表于 2012-5-2 13:45 | 显示全部楼层
我错了,430里叫
CKPH CKPL
对不起,请无视我的帖子吧,请你不要用这么招摇的字体再回复我的帖子了,谢谢你。
hys0401 发表于 2012-5-2 15:05 | 显示全部楼层
这两个是相位。

但明显楼主最基本的概念都没弄清,也别怪别人用大字回复你。
NE5532 发表于 2012-5-2 15:24 | 显示全部楼层
呵呵,我不回,你这个帖子摆在这里就没人回了,初学入门,面子放下,搞技术,又不是整人呢,有啥不好意思的,谁都是菜过来的呢。
tangzzbb 发表于 2012-5-2 18:37 | 显示全部楼层
本帖最后由 tangzzbb 于 2012-5-3 10:01 编辑
我错了,430里叫
CKPH CKPL
对不起,请无视我的帖子吧,请你不要用这么招摇的字体再回复我的帖子了,谢谢你。
似水无痕 发表于 2012-5-2 13:45


哈哈?
cumtljy 发表于 2012-5-2 19:32 | 显示全部楼层
一直是这样理解的,由于SPI通信要由主机产生sck时钟信号,只有存在时钟才从机才能把寄存器内数据发送出去,所以只要保证发送的数据从机不会产生动作(无效数据)即可。
567 发表于 2012-5-2 19:34 | 显示全部楼层
SPI不能只接收不发送,接收的时候必然在发送,发送的时候必然在接收。
mcuisp 发表于 2012-5-2 22:59 | 显示全部楼层
无所谓什么数据的。
aozima 发表于 2012-5-3 02:00 | 显示全部楼层
本帖最后由 aozima 于 2012-5-3 02:16 编辑

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

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

P话讲了这么多,我也不知道答案,我都是发0xFF。
但见不同的SPI外设的dummy data的定义并不相同,大部分是0xFF,有些则用0x00.
以后会留意并研究一下。
aozima 发表于 2012-5-3 02:09 | 显示全部楼层
一直是这样理解的,由于SPI通信要由主机产生sck时钟信号,只有存在时钟才从机才能把寄存器内数据发送出去,所以只要保证发送的数据从机不会产生动作(无效数据)即可。 ...
cumtljy 发表于 2012-5-2 19:32

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

因为很多芯片不完全靠CS来控制内部的状态机,也靠MOSI上面的数据(命令)。
shanefirst 发表于 2012-5-3 08:03 | 显示全部楼层
有同感
shanefirst 发表于 2012-5-3 08:03 | 显示全部楼层
有同感
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

489

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部