你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32配置 S2-LP 的直接 GPIO 模式

[复制链接]
STMCU小助手 发布时间:2023-5-28 15:37
1. 引言
在使用 Spirit 系列的 Sub1G 产品时,有一些特殊的场景,其数据来源于 GPIO 口,然后再将获取到的 GPIO 数据发送出去。当前 ST Spirit 系列支持以下三种数据模式:

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:& l, d0 J" {" V2 C3 k
! L9 A6 k) z/ ~+ q+ J. j2 B  M( h
I. 正常模式
; W, v% {% Z- }9 j) T7 [+ H- d) Ia) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去- V% ?, k- l+ Q) L; C
b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中
1 x/ w: g- }9 I7 F* c% W2 i$ t
5 D; G/ |* p# g  K3 |# f. ]; S
# G3 X; T1 f" l' s' d
II. 直接 FIFO 模式* p! D5 k! H- l" P* K4 T
a) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去
1 b* g5 z8 p: w' F# w4 Z5 X* t. \b) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析
- y7 z  r9 ~' Q' p& G5 h9 e  M9 {: J& b
' r* j5 R0 \/ M/ I2 h9 ?
III. 直接 GPIO 模式
3 U, X* m9 [- P) Y& K1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)
* B, y' n! v2 d2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。

' r7 P$ }! _/ L  O% `: r' Z) K9 f; j
2. 应用场景
. |2 n& s0 N& g& ^! s# `$ _
为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:
) N2 D5 g1 P/ e* u/ H

- I2 O; \* A4 [) a( E; U4 W
& y$ D! T! H3 R3 o" P" `' z
微信图片_20230528153820.png

. O" I. [- r# P+ ?; }) p/ ^/ x! M4 m" p9 ^1 d( R
从上图可知,搭建这个场景需要如下设备:

1. 矢量信号发生器,R&S SMBV100A

2. FKI868V2 开发板 * 3

2.1 配置为了简化该场景的配置,这里采用默认的射频参数,即:

1. 中心频点:868Mhz or 840Mhz

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1


; x' w4 g) w/ c( S( o2 V以及帧格式如下图 2 所示:1 E# I* y* t' W( T
微信图片_20230528153816.png
. m& g9 b4 y' s2 c0 F9 W  {

5 `2 x& c0 ?/ [( }9 r2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:) h8 S1 m* H# }$ k) I- `( v
微信图片_20230528153813.png
5 h4 _' ?# g, u- ~# v& J& ^: P+ X

( ~' N; J* |2 \$ {6 y* W2.1.2. 设备 A+ ^0 u/ t5 b9 K( s2 Q  P
同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:
6 B; ^* v1 _& l% o
微信图片_20230528153810.png
, f) |' P9 U# D" g# h
( C3 Z1 E$ w6 R% F6 P/ G
配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:

8 h9 ~: f" X% Z+ ~2 n- g+ L" p3 F% \

- L( q# s& O9 G/ X
微信图片_20230528153807.png
+ N/ I* P( p5 L9 ~5 Z. K

# F9 u  H3 I4 ^, J# D
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。
. f. C) y9 e0 X) O- q

$ D) N) j7 E5 d, y. D: `" b2.1.3. 设备 B. T$ ^- }2 f% d- W5 e
由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:

2 p3 ^6 J7 a/ M- W7 n
/ V; b0 j9 L4 K1 v$ H

* [1 k% D0 O7 D
微信图片_20230528153803.png

# T! v7 Y! |. Q  Z9 R& ?' R
  B/ [5 z* T8 ~* ?$ C, b
因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:; a4 ~5 a. `' E* B# Y) K# o& A  h5 M- n
微信图片_20230528153759.png

- ]; ?' Y( R* p& w0 U9 ^) q2 e
2.1.4. 设备 C5 |; b' u9 i4 u9 i* S& U( _' C5 T' h
设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
# g% R) _/ h0 y2 H- d

0 m+ O: b/ ?( X
微信图片_20230528153755.png
/ W: [1 d) H7 W$ ]! w) \) i
* y3 p; a& l3 I! H7 D/ [% Y( Y; m; Y
而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:9 J% T; n2 ^$ J7 Z6 b
微信图片_20230528153747.png

( E& ?" e; \0 H' {3 z! L0 a
3. 实验结果
+ Y7 ^- z/ s# |9 ]8 Q
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。
7 A1 s" f2 I  x& t
微信图片_20230528153039.png

0 ~3 a- y- _- c如有侵权请联系删除! n# m9 S2 H( L; l7 n5 g' g) _. R+ y

) M( V) a/ |9 x" B5 e. o* v! }
赞 收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版