打印
[应用相关]

浅层地震勘探仪的无线传输

[复制链接]
1290|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
浅层地震勘探仪的无线传输

使用特权

评论回复
沙发
ADZ2016|  楼主 | 2021-6-5 10:05 | 只看该作者

使用特权

评论回复
板凳
ADZ2016|  楼主 | 2021-6-5 10:06 | 只看该作者

使用特权

评论回复
地板
ADZ2016|  楼主 | 2021-6-5 10:07 | 只看该作者

使用特权

评论回复
5
ADZ2016|  楼主 | 2021-6-5 10:07 | 只看该作者

使用特权

评论回复
6
ADZ2016|  楼主 | 2021-6-5 10:08 | 只看该作者

使用特权

评论回复
7
ADZ2016|  楼主 | 2021-6-5 10:11 | 只看该作者

使用特权

评论回复
8
ADZ2016|  楼主 | 2021-6-5 10:12 | 只看该作者

使用特权

评论回复
9
carefull3357dc| | 2021-6-5 10:13 | 只看该作者
学习学习!

这个是属于ROLA吗?

使用特权

评论回复
10
ADZ2016|  楼主 | 2021-6-5 10:13 | 只看该作者

使用特权

评论回复
11
ADZ2016|  楼主 | 2021-6-5 10:14 | 只看该作者

使用特权

评论回复
12
ADZ2016|  楼主 | 2021-6-5 10:15 | 只看该作者

使用特权

评论回复
13
ADZ2016|  楼主 | 2021-6-5 10:15 | 只看该作者
在 STM32 控制 SI4463 芯片的过程中,SI4463 射频芯片中的 SDO、SDI、
SCK、n SEL引脚,分别对应STM32芯片上的SPI2 MISO、SPI2 MOSI、SPI2 SCK、
RA_nCS,具体的 STM32 与 SI4463 芯片接口设计图如图 3-4 所示。各个接口支
持的最大速率可以达到 50MHz,而且芯片支持标准的 SPI 总线协议,操作方便。
SDO 与 MISO 相接时,SI4463 模块通过 SPI 接口来写命令,此时是发送数据的
过程;类似的,SDI 与 MOSI 相接时,SI4463 模块通过 SPI 接口来读数据,此
时是接收数据的过程。SCK 引脚为时钟输入和串行接口控制端,n CS/n SEL 引
脚为 SPI 片选,n IRQ/n INT 引脚为中断请求,当数据发送完成或者接收到数据
的时候,都会触发控制单片机中断,这样就可以检测到什么时候数据发送成功,
什么时候接收到数据了。SDN 引脚是使能引脚,当 SDN 引脚拉高时,芯片关
闭,寄存器内容将丢失,拉低则芯片使能。

使用特权

评论回复
14
ADZ2016|  楼主 | 2021-6-5 10:16 | 只看该作者
SI4463 的配置:

SI4463 芯片想要正常有序的工作,就须得对其进行相关参数的初始化配置,
然而,SI4463 芯片本身不具有一上电就自动复位的功能,所以每次上电后都需
要人为的进行初始化操作,对其进行复位,然后才能对芯片进行相应的配置。
具体操作如下代码:
void SI446X_RESET( u8 radio ) //Si4463 复位函数
{
si_sdn_high(radio); //SDN 引脚拉高,芯片关断
delay_us(500); //延时 500us
si_sdn_low(radio); //SDN 引脚拉低,芯片使能
delay_ms(10); //延时 10ms,芯片自动复位
si_cs_high(radio); //CS 引脚拉高,禁止 SPI 片选,释放 SPI
return; //返回信息
}
芯片复位后,就可以对 SI4463 进行相关的配置了。首先对芯片进行相应的
初始化配置,具体程序代码如下:
void SI446X_CONFIG_INIT( u8 radio )
{
u8 i,buf[12];
u16 j = 0;
SI446X_POWER_UP(30000000,radio); //芯片上电
SI446X_INT_STATUS(buf,0x00,radio); //清除中断状态
while( ( i = config_table[j] ) != 0 )
{
j += 1;
SI446X_CMD( config_table + j, i,radio );
j += i;
}
SI446X_CONFIG_SPECIAL(radio);
}
其中 SI446X_CONFIG_SPECIAL(radio)主要是 SI4463 芯片的基本设置,主
要包括:数据包配置、中断配置、GPIO 和快速寄存器配置等。

使用特权

评论回复
15
ADZ2016|  楼主 | 2021-6-5 10:17 | 只看该作者
SI446X 系列中的 4460、4461 芯片均不需要射频控制开关,但对于 4463 却
是必须的。SI4463 芯片的 GDO2、GDO3 都是射频控制开关,分别是 33、32 引
脚。发射信息时必须使 GDO2=0,GDO3=1;接收信息时必须使 GDO2=1,
GDO3=0。操作如下:
SI446X_GPIO_CONFIG(26|0x40,0,32|0x40,33|0x40,0,0,0);
SI446X_GPIO_CONFIG(0,0,0x43,0x42,0,0,0);
上述语句具体函数配置说明如下:
void SI446X_GPIO_CONFIG( u8 G0,u8 G1,u8 G2,u8 G3,
u8 IRQ,u8 SDO,u8 GEN_CONFIG, u8 radio )
{
u8 cmd[10];
cmd[0] =GPIO_PIN_CFG;
cmd[1] =G0;
cmd[2] =G1;
cmd[3] =G2;
cmd[4] =G3;
cmd[5] =IRQ;
cmd[6] =SDO;
cmd[7] =GEN_CONFIG;
SI446X_CMD( cmd, 8, radio );
SI446X_READ_RESPONSE( cmd, 8, radio );
}

使用特权

评论回复
16
ADZ2016|  楼主 | 2021-6-5 10:18 | 只看该作者
SI446X_START_RX()函数的具体意义如下:
void SI446X_START_RX( u8 channel, u8 condition, u16 rx_len,
u8 n_state1, u8 n_state2, u8 n_state3, u8 radio )
{
u8 cmd[8];
SI446X_RX_FIFO_RESET( radio );
SI446X_TX_FIFO_RESET( radio );
cmd[0] = START_RX;
cmd[1] = channel;
cmd[2] = condition;
cmd[3] = rx_len>>8;
cmd[4] = rx_len;
cmd[5] = n_state1;
cmd[6] = n_state2;
cmd[7] = n_state3;
SI446X_CMD( cmd, 8, radio );
}

使用特权

评论回复
17
ADZ2016|  楼主 | 2021-6-5 10:18 | 只看该作者

使用特权

评论回复
18
ADZ2016|  楼主 | 2021-6-5 10:19 | 只看该作者

使用特权

评论回复
19
ADZ2016|  楼主 | 2021-6-5 10:20 | 只看该作者

使用特权

评论回复
20
ADZ2016|  楼主 | 2021-6-5 10:21 | 只看该作者

使用特权

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

本版积分规则

61

主题

1209

帖子

7

粉丝