sunsili 发表于 2023-5-25 18:05:24

应用笔记|如何配置 S2-LP 的直接 GPIO 模式

应用笔记|如何配置 S2-LP 的直接 GPIO 模式

1. 引言在使用 Spirit 系列的 Sub1G 产品时,有一些特殊的场景,其数据来源于 GPIO 口,然后再将获取到的 GPIO 数据发送出去。当前 ST Spirit 系列支持以下三种数据模式: 1. 正常模式2. 直接 FIFO 模式3. 直接 GPIO 模式其中,它们三者之间的区别如下: I. 正常模式a) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中II. 直接 FIFO 模式a) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去b) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析 III. 直接 GPIO 模式1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。
2. 应用场景
为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:

从上图可知,搭建这个场景需要如下设备: 1. 矢量信号发生器,R&S SMBV100A 2. FKI868V2 开发板 * 3
2.1 配置
为了简化该场景的配置,这里采用默认的射频参数,即:1. 中心频点:868Mhz or 840Mhz2. 通讯速率:38.4Ksps3. 频率偏差:20Khz4. 接收带宽:100Khz5. 调制方式:2GFSK-1以及帧格式如下图 2 所示:
2.1.1 矢量信号发生器
这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:
2.1.2. 设备 A
同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:
配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:

然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。
2.1.3. 设备 B
由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:
因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:
2.1.4. 设备 C
设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:
3. 实验结果
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。
4. 小结
本篇章内容详细介绍了如何基于 S2-DK GUI 上位机工具,实现不同设备间利用直接 GPIO 模式进行数据透传,为了解 S2-LP 的直接 GPIO 模式性能以及类似的应用场景提供了很好的实验样本。



页: [1]
查看完整版本: 应用笔记|如何配置 S2-LP 的直接 GPIO 模式