打印
[STM8]

请教SPI方面的一个问题!!!

[复制链接]
1028|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangxiusong123|  楼主 | 2018-9-11 20:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,请教两个关于SPI的问题,第一个是,无论SPI工作于何种方式,是否数据传输都是以一字节为单位,即一次只传输8位的数据,不能一次传输更多位?比如一次传输16位数据?18位?24位?或者更多等等,第二个问题是由第一问题产生的,我现在用STM8的SPI来接收24位AD芯片的数据,只要给时钟给AD芯片,然后接收就可以了,但是这个数据是连续的24位,中间不会有任何间隔或停顿,这个用STM8的SPI能实现吗?新手!勿喷!
沙发
huzi2099| | 2018-9-11 21:52 | 只看该作者
这个问题得分两部分,主机端是时钟控制端所以多个字节合并只要控制好时钟就行了,如果使用发送空中断可以做到无缝的发送.
从机端的收发可以把多台发送和接收串联起来扩展成多个字节,因为spi实质上就是一个环形移位器.你可以参考一下菊花链电路.

使用特权

评论回复
板凳
mohanwei| | 2018-9-11 22:26 | 只看该作者
当然可以。自己控制CS拉低,送出N字节*8bit的时钟,再拉高CS就行

使用特权

评论回复
地板
chenqiang10| | 2018-9-11 23:11 | 只看该作者
控制片选CS 就可以了。

使用特权

评论回复
5
chenqiang10| | 2018-9-11 23:13 | 只看该作者
SPI控制NRF24L01 就可以啊

使用特权

评论回复
6
磨砂| | 2018-9-12 07:41 | 只看该作者
楼上的 你说的这个可以输出几位啊

使用特权

评论回复
7
晓伍| | 2018-9-12 07:43 | 只看该作者
片选控制好就行

使用特权

评论回复
8
zhangxiusong123|  楼主 | 2018-9-12 08:23 | 只看该作者
谢谢各位的回答,这个AD芯片无片选功能,TI的ADS1251.

使用特权

评论回复
9
八层楼| | 2018-9-12 12:34 | 只看该作者
肯定有办法解决啊  这个芯片手册上的时序事什么啊

使用特权

评论回复
10
观海| | 2018-9-12 12:35 | 只看该作者
用那种模拟的开关进行切换能行吗

使用特权

评论回复
11
zhangxiusong123|  楼主 | 2018-9-12 15:19 | 只看该作者
已经搞定了,谢谢各位,其实就是连续读三次就好了,根据数据情况,比如ADC芯片发送数据的顺序是先高后低,那么第一次读到的就是数据最高8位,这个时候把它左移16位放进一个变量,再读中间的8位,然后左移8位放进一个变量,剩下最后一个直接赋值给一个变量,然后三个变量按位与就可以了,这里的三个变量必须定义为32位的。

使用特权

评论回复
12
zhangxiusong123|  楼主 | 2018-9-12 15:21 | 只看该作者
不对,是按位或哈

使用特权

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

本版积分规则

19

主题

86

帖子

0

粉丝