您的位置 首页 基础

SPI的使用领会

最近在做一个使用SPI协议对ADS1298芯片进行数据读取的项目。通过这个项目也渐渐的了解了SPI的一些皮毛知识。在此记录,以后可用。SPI串口协

最近在做一个运用SPI协议对ADS1298芯片进行数据读取的项目。经过这个项目也逐渐的了解了SPI的一些皮裘常识。在此记载,今后可用。

SPI串口协议的作业原理是时钟信号操控移位寄存器的输入输出。主机发送时钟信号(SCLK),操控主机的寄存器和从机寄存器的移位。

最常用的全双工形式是这样作业的:

主机操控片选信号,使能咱们要操作的从机。

然后主机写一个数据,写数据的时分,会发送相应的SCLK,一起主机依照SCLK,将寄存器位中的数据逐个移位发送出来,从机也依照SCLK将从机寄存器的数据逐个移位出来。到最后一个时钟的时分,他们两个寄存器的数据互换了。

假如主机发送数据的时分,从机也会发送数据,从机发送的数据或许并不是有用数据,可是咱们去管他干什么呢。我买你将这次的数据抛弃便是了。也便是说发送的时分必定会有接纳。要想接纳那就必需要发送一个数据(不管是不是有用数据)。换句话讲,从机并不知道自己什么时分要移位发送数据,仅仅依据SCLK来发送数据。

咱们也可以这么了解,由于单片机内部设置的是,发送数据时分才会发生相应的SCLK,这时分从机知道了就会把寄存器中的数据发出来。咱们假如自己进行模仿的话,操控单片机或许FPGA发送SCLK就可以将从机的数据读出来,而不必运用主机的发送数据指令。即:SCLK操控和协调全部。

咱们以 ADS1298的读取寄存器 这样一个操作为例,主机运用STM32F103。

ADS1298读取寄存器指令是这样的:

咱们用单片机操控的话,不能操控SCLK的发生,那咱们就用写数据,来发生SCLK,读取后边的REG DATA。至于OPCODE,咱们便是直接发送了,为主机的有用数据,便是说前两个发送有用数据,接纳到的数据丢掉。第三个发送进程,发送数据随意填写,无效,而承受的数据为有用数据,咱们留起来用。

程序是这姿态写的:

这是主程序里边的阶段。

下面是读写子程序。

1、发送读寄存器的地址

2、发送读寄存器的个数

3、读发回来的数据(假如读寄存器的个数为n,那个就要有n个此条指令)

关于ADS1298,详细的仍是要细心阅读其阐明文档。像我自己在做试验的时分,总是无法读取出来正常的指令。经过示波器看到输入线上的数据不对,完全为0.。后来细心的阅读了其阐明文档,发现ADS1298在接连读数据形式下,无法有用完成读寄存器。然后在前面封闭了接连读形式,就可以成功的读取到寄存器的数据了。

留此,今后翻阅。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/257838.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部