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

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

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

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:$ i- G8 _  N0 G
* }& u" D( |: y4 P9 o5 i
I. 正常模式
, v, d" \% z0 {# [3 E1 Ba) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去  ?% e2 g0 C1 s( \
b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中$ W* C5 q1 K; f
, e$ m# O! g2 k1 R. W1 c( r8 u1 U7 l
" }" I  ^7 Y) o. V) E" @7 y
II. 直接 FIFO 模式
) b% M2 ?  G6 ^* t# `: ma) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去
) V, d- v$ ^0 d: l  Lb) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析
& I- n8 B+ Y5 S. F4 I
0 t8 p. f. n$ A+ u- l
! _; A) P0 ]& s5 i, o6 `+ d
III. 直接 GPIO 模式' ~: u4 G3 M' k9 d2 z
1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)
3 @2 m! j+ A, E* A1 B1 [, S' N2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。
' U* v9 m" y/ W8 v2 y5 m1 |, Y
2. 应用场景
2 j' r- b0 O3 _% _+ m) a& y. Y
为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:
& c* V" N, j0 M1 {

* [( }" G$ {% e8 b+ m

% ]' M6 s- d; a7 L7 V) v- D: _
微信图片_20230528153820.png

3 @( N$ o9 G9 t' N: G
1 A) c, H! q+ ^9 q从上图可知,搭建这个场景需要如下设备:

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

2. FKI868V2 开发板 * 3

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

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

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1


+ X/ e" {) P5 Z以及帧格式如下图 2 所示:
& Y2 x' q. \" m  V3 _% `0 w! P# p6 h
微信图片_20230528153816.png
- F; H+ u  `' M; [5 H- m

0 s0 O# c9 O: J) `( h+ @2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:8 F( w: t6 a; P) Q; @6 V
微信图片_20230528153813.png

, a* F4 ?7 S5 W+ z( ~7 k6 Q
' [9 w$ d$ q5 z! X2.1.2. 设备 A2 D/ E. D5 F  ]0 }0 \  S* y3 ?
同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:) @. L" Y7 [2 b9 f* e" Z7 a  \3 d
微信图片_20230528153810.png
1 R# p/ d; p% i% w
# Q7 V4 _) }' w) c
配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:
/ Q( S! a6 \* l5 Y
1 @: C* M3 `5 j& U  r

9 s: ?) U- H' L- \9 w* ~8 i  a/ X
微信图片_20230528153807.png

: H& t/ T, m' K4 {% ?, ?! N. K3 O; j% m
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。

# Q( N! I" q0 c+ c$ H* |8 ~- |) J& G8 N, R' v1 c: t
2.1.3. 设备 B' h" W3 R) Z  |( L- x. V
由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:

9 e$ @  g1 J. E; `  G) o
& N' \% n7 ]" m* N. h: m. T( Q

5 Z* {+ z- K% J/ o4 J
微信图片_20230528153803.png

& g2 F0 t" N4 Q% P# n: T$ y

7 ]  q- o9 ?6 N因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:% f2 Q- g" ^' x6 B
微信图片_20230528153759.png

1 D6 P* Z+ X% _  g: E; B
0 k, r: b0 G; A2.1.4. 设备 C
8 Q8 j9 {" k) B! }/ G6 g2 |设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
6 ~9 J  A" Z7 ?1 K* Y' B

/ D# b- h$ T/ j# n3 y2 @/ J
微信图片_20230528153755.png

9 h& }8 D, k7 q' c3 z( a9 S  h- C$ ?4 p$ s
而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:
% t; l2 `+ Z, \, q" g, `2 A
微信图片_20230528153747.png
/ ~1 l1 k% ^6 t& P
3. 实验结果
1 x" z0 S' Q3 H7 r" X
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。
; }5 Q/ @  q8 x+ c/ z8 ?$ _
微信图片_20230528153039.png

( Z( i' p& ?1 X" t0 D9 ^. G如有侵权请联系删除
2 Q7 u6 d8 E; Z& z" @( _/ L* v+ s
9 g0 p  R* @2 l! `8 M& ]$ h. E
收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版