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

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

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

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:
4 R8 F( O7 l$ _# z9 g" U

$ @7 c% G# @" z$ I4 B4 j+ c7 ~I. 正常模式
3 y5 ~" j7 f9 W! j# n$ \/ O, na) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去) m8 g1 s2 {, S1 L7 W- L
b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中
8 y: s( |; l! ^  X: {
3 I6 T  U2 N* b1 \0 T1 V

$ n5 P$ z4 O3 x; u/ R  j/ s9 YII. 直接 FIFO 模式' Y( G: B/ `: \: b! s, m% m4 m
a) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去$ U. m$ K2 `0 D6 n+ N, C
b) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析
5 [3 M9 ^( x& a# {- F
3 d+ M7 {* o; @( x
+ x  |2 g# n- d, f1 \3 q
III. 直接 GPIO 模式
+ _5 m8 U, X. I- w8 c2 |& U1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)
9 v8 Z& U6 c9 d  V4 N1 I3 b9 o2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。

1 J4 x- H& c; ]! k" r
2. 应用场景

" `; x' O8 _0 }8 W& c/ x为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:/ A, ^$ D* @# M- q* e) U( l9 m
9 W. j9 [! t/ T0 `/ f3 C: {2 Z

$ A2 H6 i' J- K4 y! Z0 a
微信图片_20230528153820.png

- n3 V% [7 n& \5 y8 E7 m4 p% i& v, }6 N0 U6 E7 q+ |/ B' P
从上图可知,搭建这个场景需要如下设备:

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

2. FKI868V2 开发板 * 3

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

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

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1


" |4 W& w' C. k0 {# y; {% t0 L5 J以及帧格式如下图 2 所示:, S( \# E! c: T, A- V$ K! o
微信图片_20230528153816.png
" o7 W! M; D- ?1 T9 I' D
& [& B5 Q  f' O
2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:
/ q4 U9 p# P( k, X- P& E$ N8 I- k
微信图片_20230528153813.png
( W7 M- }5 W0 Q9 t5 O

+ @% ^  g% t/ M" s' N. C: w' ^2.1.2. 设备 A, W- ]1 k/ x! C) S+ D8 f
同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:' ]1 Q% S% s$ V/ @; N1 i8 }2 E
微信图片_20230528153810.png

+ u0 ^  H& O/ ~. {$ |# y6 M- V& `! ^' K" [- G2 M
配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:

- b4 c- C4 o; M! e3 z2 E5 Q" ]9 K8 W; o& \. f- ^  ~

: u+ q9 A  b4 G/ E0 z8 E  X! i: q
微信图片_20230528153807.png
. }: r5 ^0 o8 M
/ y/ ?$ ?) a" G" _( n! n  \
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。
$ y" C8 }9 _) t* S: r
# `8 {5 k8 v5 @9 i" k* N$ ?
2.1.3. 设备 B3 c- \: U" X0 B/ g' B9 b. B0 i
由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:

- B0 Q0 w( k. t8 c. e( h- D5 u# n% R+ `% }
+ e4 f( U8 r+ S2 k& C
微信图片_20230528153803.png

6 I7 e9 D# U' z+ s2 L

9 @! r$ N1 N( y因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:3 D" m% U. s% Z6 y) R
微信图片_20230528153759.png
/ O. x3 p9 t% L0 I  {# e8 S+ C" `9 R
) ?$ j% N6 ]* `! R
2.1.4. 设备 C3 }9 w. c% h$ i9 U. m) t
设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
, D' Q/ {( @# @7 e6 S' I& t/ G  \
/ V! i7 J& q, x
微信图片_20230528153755.png

; b+ O* @* I- j. y9 x
4 B8 E& a9 H. p$ D- w; Y而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:
& s- E8 X6 Z: X- n7 F
微信图片_20230528153747.png

- B: e, k1 n* q4 J/ M
3. 实验结果

% ^: \4 u& w$ _  q" ?* |8 M, @0 ]# b
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。

) J* k& b) ~6 [9 I/ e
微信图片_20230528153039.png

: M# L& r/ j  `* b  S6 ], S+ |如有侵权请联系删除) z; s7 x3 [) x, f+ Z( m
: ~& \: M" R0 Z6 @7 P0 I: k
赞 收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

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