目录
1 前言
2 Reset
3 SPI接口
3.1 属性要求
3.2 时序参数要求
1)离开Sleep模式时的时序
4 BUSY引脚
4.1 Tsw
4.2 TswMode
5 DIO
5.1 DIO1
5.2 DIO2
5.3 DIO3
6 IRQ
7 各模式下引脚状态
1 前言
本文主要介绍SX126x系列芯片的数字接口和控制引脚。主要包括如下几个部分:
- Reset引脚
- SPI接口
- Busy引脚
- IRQ
- DIO引脚
2 Reset
该引脚用于芯片内部逻辑复位,需要注意的是,至少保证引脚拉低100us
3 SPI接口
3.1 属性要求
- 芯片作为Slave设备端
- 满足CPOL = 0; CPHA = 0
- 最大速率支持16M
3.2 时钟来源
内部的13M Hz RC
3.3 时序参数要求
1)离开Sleep模式时的时序
退出Sleep模式的方法之一就是NSS的下降沿,通俗点理解就是会存在Sleep模式对某些寄存器进行操作,此时处于Sleep模式下的芯片接收到NSS下降沿后,会自动开启唤醒序列以及内部硬件初始化,在此阶段BUSY引脚会一直处于高电平。所以此时使用SPI通信时,需注意NSS下降沿到SCK的第一个上升沿之间需预留足够的时间,即时间t10,需要满足大于100us
- 这点在移植驱动时需要尤为注意,Semetch官方代码中在所有会操作SPI接口的函数中先执行SX126xCheckDeviceReady()
void SX126xCheckDeviceReady( void )
{
//通过全局变量判断是否在Sleep模式,如果是的则执行SX126xWakeup()
//这里的MODE_RX_DC模式其实是receive duty cycle mode,该模式执行完后会自动进入Sleep模式,所以也默认做为Sleep模式处理
if( ( SX126xGetOperatingMode( ) == MODE_SLEEP ) || ( SX126xGetOperatingMode( ) == MODE_RX_DC ) )
{
SX126xWakeup( );
}
SX126xWaitOnBusy( );
}
void SX126xWakeup( void )
{
//执行一次获取状态的命令(本质还是NSS的下拉沿)来使芯片唤醒。
GpioWrite( &SX126x.Spi.Nss, 0 );
SpiInOut( &SX126x.Spi, RADIO_GET_STATUS );
SpiInOut( &SX126x.Spi, 0x00 );
GpioWrite( &SX126x.Spi.Nss, 1 );
//等待BUSY引脚拉低
SX126xWaitOnBusy( );
//全局变量记录当前处于的工作模式
SX126xSetOperatingMode( MODE_STDBY_RC );
CRITICAL_SECTION_END( );
}
4 BUSY引脚
表示芯片内部的状态,低电平表示内部空闲允许接收命令;拉高表示内部已占用不能接受SPI命令。
4.1 Tsw
- 写命令操作过程中,当NSS上升沿,表示一个完整命令的结束。芯片接收到命令后,内部状态机需环境并开始处理命令,这个时间就是Tsw。即NSS上升沿到BUSY拉高的时间
- 读命令不影响内部状态机,因此命令发送完后,BUSY会一直低电平
- Tsw最大值600ns
- 虽然Tsw过程中,BUSY引脚是低电平,但该阶段是无法接收命令的
4.2 TswMode
- CS上拉到BUSY下拉的时间,即转换时间
- 写命令会导致模式之间的切换,该切换对应时间如下
5 DIO
- 用于中断输出引脚或者特殊功能引脚,总共有3个:DIO1,DIO2,DIO3。
- 如果映射到DIOx上的中断出发,DIOx会输出上升沿
5.1 DIO1
- 通用中断引脚,任何芯片内部的中断源都能映射到该引脚
Irq Mask - 中断源使能,对应bit置1即使能
DIO1 Mask - 映射到DIO1的中断源使能,对应BIT置1即使能
DIO2 Mask - 映射到DIO2的中断源使能,对应BIT置1即使能
DIO3 Mask - 映射到DIO3的中断源使能,对应BIT置1即使能
5.2 DIO2
- 两个功能2选一:1)和DIO1一样,通用中断引脚; 2)可以配置成RF开关控制引脚
- RF开关控制引脚是通过命令 SetDIO2AsRfSwitchCtrl来使能的。在这种模式下,DIO2将在Tx期间输出高电平,在任何其他模式下输出低电平。
5.3 DIO3
- 两个功能2选一:1)和DIO1一样,通用中断引脚; 2)可以配置成TCXO(温度补偿晶振)的电源
- 电源功能是通过命令 SetDio3AsTCXOCtrl来使能的。
tcxoVoltage - 输出电源电压值
delay - 等待TCXO起振的超时时间
6 IRQ
- 总共有10各中断源
- 每个中断源都能映射到引脚DIO1,DIO2,DIO3上
7 各模式下引脚状态