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

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

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

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:
) K- U! x) t. n# v3 ^  Q

: k( h8 g& v( L7 p  `I. 正常模式
8 ^6 k$ _% |8 r' W- Ma) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去
  Y0 x3 y" T- b1 vb) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中0 a) c2 i) A3 u# p9 l* n8 Y5 y1 X( O

* t5 g$ a& V- o2 q2 R5 b$ c, E
9 f0 X* v# d: Y  ~
II. 直接 FIFO 模式
, N3 N6 J5 X0 P* ~" l! Ca) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去
8 d  X& p& L# {/ ]5 N% U2 m+ Zb) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析
" T8 I0 Q' @6 ]* e8 T8 l% b  u9 r- _5 H# h2 h
( I- r5 ^3 L, ^: a4 k2 g* Y. x  U
III. 直接 GPIO 模式' r- a: k" e9 a! Z1 T5 Z
1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效)
; v9 x7 y) d% x+ P- ~) f2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。

6 n0 |& Q- Y8 p. H1 j% k
2. 应用场景

, B4 s& p; d0 C6 d为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:: m! B2 C  d% F# u, `
. z& B. F' J, K5 Z
) f8 J, o5 n( v; I
微信图片_20230528153820.png
. ~" U2 H; p( Y
# B: c1 r0 H2 O1 J
从上图可知,搭建这个场景需要如下设备:

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

2. FKI868V2 开发板 * 3

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

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

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1

4 U- T( u4 V* s7 e' J# X' f" x
以及帧格式如下图 2 所示:
* P- Q  k  Z5 R7 `: [% z8 R
微信图片_20230528153816.png

" \' n, r9 Y& k8 [
9 f+ b! u3 q$ h2 o; H6 G2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:) c2 ]( ~. r7 L( Y2 d
微信图片_20230528153813.png

# z( L& l$ l- A3 G) x* [% e( }1 i1 {) f) a
2.1.2. 设备 A
0 \7 L+ L! }7 f同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:
$ W! Z3 N  i  I1 u7 x
微信图片_20230528153810.png
) d) e! Y' }9 i) c5 {+ U6 \

4 |/ y0 w! |3 r5 Z* O配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:
5 _: @$ h/ M. |- a: ?: u7 q8 T

( Y% y' t3 u: w' W8 R, `2 ?

! B$ t7 i- W( ?& T6 X/ x6 V
微信图片_20230528153807.png
9 x4 m. T6 V* X3 P

0 H* Z) b" v' X9 n( B
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。

% b& ~: g6 M2 f/ g/ N3 J9 C* J/ T9 `4 c
2.1.3. 设备 B
" Q- M6 T1 L* ^3 ?, y由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:

4 m4 @* h" C% }7 `  k% A- P
6 g! J2 x7 h% R. `

. a2 A2 n* O* j! R( G% d
微信图片_20230528153803.png

, u7 _3 E& r1 k8 Y4 V0 |" S3 A" Z0 h
. D1 b2 I% B/ G' w3 ^6 ]* J; I- P
因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:6 T* r# D2 q/ y& ^' @3 ?
微信图片_20230528153759.png
8 C2 ~; |4 V0 a" m7 L& i5 c: v8 v/ O4 A
7 c: _* w* s4 G& b
2.1.4. 设备 C
' O1 Q  w  `, R' h设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
8 T/ \6 u, M( D; v$ f

; H; }/ e2 f/ r) h( b; y* J3 u
微信图片_20230528153755.png
* k) B4 V: p& O  M8 x: J- e
5 H5 k; R1 P2 B2 ]0 U, t, e8 u2 {! m
而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:( X- w4 L* [* @( Q8 m
微信图片_20230528153747.png
6 G2 Q, ~: u  f7 R
3. 实验结果

# o, m7 w- g% F! l6 W6 ?
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。

4 h2 i' j% J& j2 F( V& i
微信图片_20230528153039.png

' K* g/ U" d1 ]" @+ Y- ~! G; t如有侵权请联系删除
5 `' h( I8 I% l  V5 A
; S. |0 p2 G$ S2 m3 Z$ c6 y
收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

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