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

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

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

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:
  W7 N# V3 w8 X7 _) z# O1 k) F

1 _- Z. t! ?1 I( AI. 正常模式
0 N8 X8 `5 L& T' \  Ca) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去* y: m% E7 z- O- d
b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中
& k% k2 ?, C7 I" |* v' l
3 o3 e5 ?/ L: p* q
4 G9 V" F3 R$ j/ {8 A
II. 直接 FIFO 模式
4 F( B( u% p. T2 Ka) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去# W7 ^/ G- Y6 o5 p  p
b) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析 , o, x9 D" u* v6 a2 r1 o

$ X( {0 ]( I, ^. M) K2 V5 r# A1 V2 v+ p; P9 u
3 K) R- D: N- M1 [
III. 直接 GPIO 模式8 a, d& Q0 c/ h8 z" }' z
1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)0 A9 ]$ z2 {5 e
2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。

, _% d% M. @9 m- U3 @5 G; Z
2. 应用场景
3 r6 U7 X% S8 |$ Y) \# J
为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:
$ k; l5 b; n; O5 d" L: B: z3 K" @

0 [7 u% L# P, c0 k
, \) E* O" v  x$ @6 G/ T( [
微信图片_20230528153820.png

4 ?, L6 a- |5 d- d5 H! d, t0 q' L4 p: t- k5 x  {' [
从上图可知,搭建这个场景需要如下设备:

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

2. FKI868V2 开发板 * 3

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

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

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1


/ Q8 R( g$ J# _/ a# L, ~, G以及帧格式如下图 2 所示:' j; y% u& p  ~" Q/ Q+ s* G% K
微信图片_20230528153816.png

7 j2 L: j1 p; |+ @$ q$ B6 Y+ w8 l: m  w8 l% T7 [, @, R
2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:
  w. e8 h. C9 y. q7 O0 g3 f
微信图片_20230528153813.png
3 ]5 B6 b% U9 c1 {' i; S0 V/ s% k
1 B  y# U# o" V; h' P" n) \" [
2.1.2. 设备 A
- d! j7 t% J9 b: c& ^& N% K; N( P同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:+ ~3 v1 V+ x5 P, ?  |1 _$ z6 a0 O
微信图片_20230528153810.png

# S0 Y8 n# T9 K0 G% i
1 `* R. |. m* N8 ]配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:
7 e9 @& T& k: y3 A
1 f/ F$ j8 e6 e( T. s/ L- p% w

$ R! L, u( T* y
微信图片_20230528153807.png
( `6 U  t7 w/ Z5 n, M" v. _) o

2 N. l6 C: `# Y$ \7 w- C
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。
7 V5 V  T0 C1 j4 y  f0 s2 Y* Q
- j0 p- Y% v' k! h7 t6 x- m
2.1.3. 设备 B
: A6 B) c  D& }/ I9 L, o由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:
7 ]; X8 s; S0 V7 b: c0 J/ I8 q  b
. W  }. R9 l5 X2 X

( l+ U5 y! _8 n/ f' H4 C
微信图片_20230528153803.png

' L0 n. R- k9 g0 Q! d5 m! Z
8 S$ a& N) f  S
因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:
; |( z' ~4 r( h/ y' r: s2 i% f6 W: t
微信图片_20230528153759.png
7 p. p' R3 _9 p8 k! b$ f
3 Q9 J- b4 x1 j( g7 _! ~  l' i
2.1.4. 设备 C: p/ a. t  l' u. A
设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
5 C( V5 o2 [. R6 w& i  d

! n5 K& r/ c. V, W' e4 N) v
微信图片_20230528153755.png
/ L2 Y3 j, }/ s
0 v# p( l2 x0 S) C0 o! ]
而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:" E7 a  k; L, f4 ]6 Y7 @3 M) l
微信图片_20230528153747.png
/ G) J$ E% b) B& u" A
3. 实验结果
+ P4 G; T8 u8 Y4 J: v5 ~+ T+ L7 w
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。

2 h+ I. n) h' e& ?, j5 e4 y2 M1 p
微信图片_20230528153039.png

+ f% W/ c  h/ t7 F( ]; }6 r3 ^如有侵权请联系删除
& @( x5 s. G1 w1 G; n# [( g( X4 J0 L& c
赞 收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

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