2.4G模块及SPI通讯

SPI协议

SPI(Serial Peripheral Interface)串行外围设备接口,是一种高速、全双工、同步通信总线,常用于单片机和E2PROM、FLASH、实时时钟、数字信号处理器等器件的通信,它主要是主从方式通信,通常只有一个主机和数个从机。

SPI接口一般使用四条信号线通信:
MOSI(主输出从输入),MISO(主输入从输出),SCLK(时钟,必须的,其他信号线可以删减),CS(片选,CS引脚拉低选中该设备)

MSB与LSB:
首先传输一个字节的高位(MSB),最后传输该字节的低位(LSB),而SPI默认是MSB,但是多个字节的话是低字节先传输。

提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的读写操作,都是由主设备发起。当存在多个从设备时,通过各自的片选信号CS进行管理。

数据线通过时钟线的边沿触发数据输出以及采样 根据CPOL和CPHA的不同可自定义是上升沿触发数据输出还是数据采样

时钟极性(CPOL)决定时钟SCLK空闲时间的电平:
CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时

时钟相位(CPHA)定义数据的采集时间:
CPHA=0,在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样,在第二个边沿数据输出
CPHA=1,在时钟的第一个跳变沿(上升沿或下降沿)进行数据输出,在第一个边沿数据采样
如:CPOL=1,CPHA=1
此时SCLK空闲时间时为高电平,在第一个边沿时即SCLK从高电平拉到低电平的下降沿时进行数据输出,在第二个边沿时即从低电平拉到高电平的上升沿时进行数据采样。

对于下图的时序,我们易得出图中的SCLK的空闲电平为低电平,即CPOL=0;在时钟的第一个边沿(上升沿)进行数据输出(MOSI输出C7-C0),时钟的第二个边沿(下降沿)进行数据采样(MISO采样S7-S0),即CPHA=1;
综上,此时CPOL=0;CPHA=1;
要结束SPI协议就将SCLK拉回空闲态所处的电平状态。
在这里插入图片描述
一主多从
在这里插入图片描述

NRF24L01:

在这里插入图片描述
原理:利用单片机把它配置为接收模式或发送模式,还可以配置频道、地址、每次发送的字节数、是否带CRC校验、功率等。配置成发送模式以后,用单片机把要发送的数据写进去,它就会自动把数据发出去;配置成接收模式以后,单片机通过观察它的IRQ引脚,就可以知道是否接收到数据,IRQ为低电平,说明接收到了数据,单片机可以通过SPI口把接收到数据取出来。
注:CE引脚在配置前拉低,配置完成后拉高
**初始化流程:**首先得配置GPIO
1.选择通道并选择有效数据宽度
2.写入TX地址
3.写入RX地址,注意一致
4.使能自动ACK
5.使能通道的接收地址
6.设置自动重发配置(一个寄存器中包含延时时长与最大自动重发次数)
7.设置射频信道(共有125个信道,每个信道间隔1MHZ,默认02为2402MHZ,00即2400MHZ即2.4GHZ)
8.设置射频配置(包含发射接收功率,速率等)
9.配置工作模式(CONFIG寄存器选择发送还是接收模式,)
10.清除发送及接收的FIFO缓存

变更工作模式后最好清除发送及接收的FIFO缓存

两个2.4G模块成功通讯需要配置成信道、地址(目标对方地址TX_ADDR、本地接收地址通道0 RX_ADDR_P0)、数据宽度、速率相同

写寄存器数据:先发送要写入寄存器的地址,再发送寄存器要修改的数据
【要写入寄存器的地址组成:寄存器操作指令|寄存器地址(|表运算符按位或)】
读寄存器状态:发送要读出的寄存器地址,之后发送0xFF空操作同时会接收寄存器的数据
在这里插入图片描述

发送流程(带ACK):
主机发送数据,从机接收数据后发送ACK信号,主机收到ACK信号(通过接收管道0接收)后完成一次完整发送并产生TX DS中断且状态寄存器接收标志位置高(这需要配置CONFIG寄存器),且数据包一次最多发送32字节数据(Byte0用于统计数据包长度,Byte1-31是用户操作位)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2.4寸触摸屏模块SPI驱动是一种控制和管理2.4寸触摸屏模块的设备驱动程序。SPI(串行外设接口)是一种常见的通信协议,用于在微控制器和外部设备之间传输数据。 在2.4寸触摸屏模块中,SPI驱动负责实现与主控芯片的通信,并将接收到的指令和数据传递给触摸屏控制器,以及从触摸屏控制器接收触摸事件数据并传输给主控芯片。 SPI驱动的关键功能包括初始化SPI总线,设置通信参数(如时钟频率、数据位数等),发送和接收数据以及处理异常情况。在初始化阶段,SPI驱动需要配置主控芯片的SPI接口,确保其与触摸屏控制器能够进行正确的通信。之后,SPI驱动可以通过发送指令和数据来控制触摸屏模块的各个功能,如显示图像、切换菜单等。同时,当触摸屏控制器产生触摸事件时,SPI驱动需要及时接收这些数据,并将其传递给主控芯片进行进一步处理。 在编写SPI驱动程序时,需要了解触摸屏模块和触摸屏控制器的通信协议和规范,并根据具体的硬件和软件平台进行相应的配置和代码实现。SPI驱动的正确性和稳定性对于触摸屏模块的正常运行至关重要,因此在开发过程中需要进行充分的测试和调试工作,确保SPI驱动程序能够正常地与主控芯片和触摸屏控制器进行通信和数据传输。 总而言之,2.4寸触摸屏模块SPI驱动是一项重要的技术工作,通过实现与主控芯片的通信和控制,使得触摸屏模块能够准确地接收和处理用户的触摸输入,并将相应的数据传递给主控芯片,从而实现更好的用户体验和交互功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值