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

[复制链接]
 楼主| 它山之石 发表于 2016-1-16 17:56 | 显示全部楼层 |阅读模式
本帖最后由 它山之石 于 2016-1-17 10:41 编辑

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

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

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


airwill 发表于 2016-1-17 18:17 | 显示全部楼层
这个时钟选择基本可以适应各种条件要求, 但设置应该根据器件的时序特性.
总体上, 看了你的时序图, 应该选择上升沿移位, 下降沿采样
 楼主| 它山之石 发表于 2016-1-17 20:42 | 显示全部楼层
本帖最后由 它山之石 于 2016-1-17 20:48 编辑
airwill 发表于 2016-1-17 18:17
这个时钟选择基本可以适应各种条件要求, 但设置应该根据器件的时序特性.
总体上, 看了你的时序图, 应该选择 ...

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

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

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

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

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


airwill 发表于 2016-1-17 20:57 | 显示全部楼层
还是可以用 1 个 spi 驱动的, 因为其实 595 不存在采样的问题.
都是时钟上升沿移位, 所以两个器件对 SPI 的时钟要求是一致的
 楼主| 它山之石 发表于 2016-1-17 21:20 来自手机 | 显示全部楼层
我知道您说的肯定是对的。但是按照网上的分析方法,595应该是上升沿采样锁存数据,下降沿才移动数据的啊?
 楼主| 它山之石 发表于 2016-1-17 21:23 来自手机 | 显示全部楼层
airwill 发表于 2016-1-17 20:57
还是可以用 1 个 spi 驱动的, 因为其实 595 不存在采样的问题.
都是时钟上升沿移位, 所以两个器件对 SPI 的 ...

我知道您说的肯定是对的。但是按照网上的分析方法,595应该是上升沿采样锁存数据,下降沿才移动数据的啊?我在楼上的分析哪里有问题呢?请您指教啊。想不明白吃不下饭。。
戈卫东 发表于 2016-1-18 06:11 | 显示全部楼层
估计可以用默认值。。。。不过我没有试过
airwill 发表于 2016-1-18 08:00 | 显示全部楼层
我没有去查 595 的手册, 从你给出的时序图看, 是时钟上升沿移位的.
其实即使弄错了也是可以用的, 我记得那时候我测试, 4种方式只有一种会发现错位的错误. 你可以试试
天灵灵地灵灵 发表于 2016-1-18 13:35 | 显示全部楼层
SPI还分极性吗?不是就那么一套规则吗,从来没搞这么复杂过。
diweo 发表于 2016-1-18 16:28 | 显示全部楼层
595还是很简单的。直接IO口复位置位就可以产生上升沿,再复位就是下降沿了,用不着SPI。
 楼主| 它山之石 发表于 2016-1-18 17:21 | 显示全部楼层
diweo 发表于 2016-1-18 16:28
595还是很简单的。直接IO口复位置位就可以产生上升沿,再复位就是下降沿了,用不着SPI。 ...

打算用stm32的硬件SPI。stm32的spi有四个时钟极性,不知道用哪个了 蒙圈了
 楼主| 它山之石 发表于 2016-1-18 17:24 | 显示全部楼层
天灵灵地灵灵 发表于 2016-1-18 13:35
SPI还分极性吗?不是就那么一套规则吗,从来没搞这么复杂过。

如果用stm32的硬件SPI,就要考虑极性啊
 楼主| 它山之石 发表于 2016-1-18 17:24 | 显示全部楼层
戈卫东 发表于 2016-1-18 06:11
估计可以用默认值。。。。不过我没有试过

:dizzy:
可可球 发表于 2016-1-18 20:17 | 显示全部楼层
上图是时钟上升沿移位的呀
 楼主| 它山之石 发表于 2016-1-20 09:18 | 显示全部楼层
可可球 发表于 2016-1-18 20:17
上图是时钟上升沿移位的呀

1.jpg

拿595来看,在我标注的2时刻,输入数据DS发生变化,由高到低,即 移位。所以我得出的结论是 DS在时钟的下降沿移位。和你们说的正好相反。为什么呢?还望指教。
天灵灵地灵灵 发表于 2016-1-20 21:01 | 显示全部楼层
95应该是上升沿采样锁存数据
 楼主| 它山之石 发表于 2016-1-22 09:21 | 显示全部楼层
天灵灵地灵灵 发表于 2016-1-20 21:01
95应该是上升沿采样锁存数据

是不是可以这样理解。595在时钟上升沿时采样锁存数据,采样锁存的意思就是将这个数据移动到内部的移位寄存器。
huangcunxiake 发表于 2016-1-29 13:56 | 显示全部楼层
595应该是上升沿采样锁存数据
500days 发表于 2016-1-29 14:52 | 显示全部楼层
这个时钟极性得和你的应用相互配合吧
zhuotuzi 发表于 2016-1-30 10:24 | 显示全部楼层
应该选择上升沿移位, 下降沿采样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

95

主题

547

帖子

4

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