打印
[STM32F1]

stm32的SPI时钟极性如何设置?

[复制链接]
3596|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 它山之石 于 2016-1-17 10:41 编辑


打算按照上图用STM32的SPI1同时驱动一个74HC595和一个74HC165.    595先使能发送行扫描信号,然后再使能165读回按键值。

现在有个疑问想请教大家。

stm32的SPI1的时钟极性如何设置?我自己分析的是时钟和相位都设置成0。还有595和165在用一个SPI驱动的时候,时钟极性是否相同。谢谢。

下面是595和165的时序图.




沙发
airwill| | 2016-1-17 18:17 | 只看该作者
这个时钟选择基本可以适应各种条件要求, 但设置应该根据器件的时序特性.
总体上, 看了你的时序图, 应该选择上升沿移位, 下降沿采样

使用特权

评论回复
板凳
它山之石|  楼主 | 2016-1-17 20:42 | 只看该作者
本帖最后由 它山之石 于 2016-1-17 20:48 编辑
airwill 发表于 2016-1-17 18:17
这个时钟选择基本可以适应各种条件要求, 但设置应该根据器件的时序特性.
总体上, 看了你的时序图, 应该选择 ...

谢谢您的回复。
网上说主从的时钟模式要设置成一致的。我是这么分析的,您看我哪块分析错了。、

先看595的时序图

我认为595在1时刻采样,即时钟的上升沿采样,在2时刻,即时钟的下降沿移动数据。时钟空闲时是低电平。对应着stm32 spi的CPOL=0,CPHA=0.

然后看165的时序图

我认为165是在1时刻,即时钟的下降沿采样,在2时刻,即时钟的上升沿移动数据。时钟空闲时是低电平。对应着stm32 spi的模式CPOL=0,CPHA=1.

那么问题来了,两个595和165两个器件需要的主机SPI时钟的设置模式不一样,是不是就不能用同一个SPI驱动了?

我的想法错在哪?还望您指点。


使用特权

评论回复
地板
airwill| | 2016-1-17 20:57 | 只看该作者
还是可以用 1 个 spi 驱动的, 因为其实 595 不存在采样的问题.
都是时钟上升沿移位, 所以两个器件对 SPI 的时钟要求是一致的

使用特权

评论回复
5
它山之石|  楼主 | 2016-1-17 21:20 | 只看该作者
我知道您说的肯定是对的。但是按照网上的分析方法,595应该是上升沿采样锁存数据,下降沿才移动数据的啊?

使用特权

评论回复
6
它山之石|  楼主 | 2016-1-17 21:23 | 只看该作者
airwill 发表于 2016-1-17 20:57
还是可以用 1 个 spi 驱动的, 因为其实 595 不存在采样的问题.
都是时钟上升沿移位, 所以两个器件对 SPI 的 ...

我知道您说的肯定是对的。但是按照网上的分析方法,595应该是上升沿采样锁存数据,下降沿才移动数据的啊?我在楼上的分析哪里有问题呢?请您指教啊。想不明白吃不下饭。。

使用特权

评论回复
7
戈卫东| | 2016-1-18 06:11 | 只看该作者
估计可以用默认值。。。。不过我没有试过

使用特权

评论回复
8
airwill| | 2016-1-18 08:00 | 只看该作者
我没有去查 595 的手册, 从你给出的时序图看, 是时钟上升沿移位的.
其实即使弄错了也是可以用的, 我记得那时候我测试, 4种方式只有一种会发现错位的错误. 你可以试试

使用特权

评论回复
9
天灵灵地灵灵| | 2016-1-18 13:35 | 只看该作者
SPI还分极性吗?不是就那么一套规则吗,从来没搞这么复杂过。

使用特权

评论回复
10
diweo| | 2016-1-18 16:28 | 只看该作者
595还是很简单的。直接IO口复位置位就可以产生上升沿,再复位就是下降沿了,用不着SPI。

使用特权

评论回复
11
它山之石|  楼主 | 2016-1-18 17:21 | 只看该作者
diweo 发表于 2016-1-18 16:28
595还是很简单的。直接IO口复位置位就可以产生上升沿,再复位就是下降沿了,用不着SPI。 ...

打算用stm32的硬件SPI。stm32的spi有四个时钟极性,不知道用哪个了 蒙圈了

使用特权

评论回复
12
它山之石|  楼主 | 2016-1-18 17:24 | 只看该作者
天灵灵地灵灵 发表于 2016-1-18 13:35
SPI还分极性吗?不是就那么一套规则吗,从来没搞这么复杂过。

如果用stm32的硬件SPI,就要考虑极性啊

使用特权

评论回复
13
它山之石|  楼主 | 2016-1-18 17:24 | 只看该作者
戈卫东 发表于 2016-1-18 06:11
估计可以用默认值。。。。不过我没有试过

:dizzy:

使用特权

评论回复
14
可可球| | 2016-1-18 20:17 | 只看该作者
上图是时钟上升沿移位的呀

使用特权

评论回复
15
它山之石|  楼主 | 2016-1-20 09:18 | 只看该作者
可可球 发表于 2016-1-18 20:17
上图是时钟上升沿移位的呀



拿595来看,在我标注的2时刻,输入数据DS发生变化,由高到低,即 移位。所以我得出的结论是 DS在时钟的下降沿移位。和你们说的正好相反。为什么呢?还望指教。

使用特权

评论回复
16
天灵灵地灵灵| | 2016-1-20 21:01 | 只看该作者
95应该是上升沿采样锁存数据

使用特权

评论回复
17
它山之石|  楼主 | 2016-1-22 09:21 | 只看该作者
天灵灵地灵灵 发表于 2016-1-20 21:01
95应该是上升沿采样锁存数据

是不是可以这样理解。595在时钟上升沿时采样锁存数据,采样锁存的意思就是将这个数据移动到内部的移位寄存器。

使用特权

评论回复
18
huangcunxiake| | 2016-1-29 13:56 | 只看该作者
595应该是上升沿采样锁存数据

使用特权

评论回复
19
500days| | 2016-1-29 14:52 | 只看该作者
这个时钟极性得和你的应用相互配合吧

使用特权

评论回复
20
zhuotuzi| | 2016-1-30 10:24 | 只看该作者
应该选择上升沿移位, 下降沿采样

使用特权

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

本版积分规则

个人签名:<img src="static/image/smiley/comcom/3.gif" class="vm">

95

主题

547

帖子

4

粉丝