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

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

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

1. 正常模式

2. 直接 FIFO 模式

3. 直接 GPIO 模式

其中,它们三者之间的区别如下:' t5 _- K4 H5 C5 U/ i' p- e- ]

# M2 |8 d. f6 O- h& kI. 正常模式+ E' Z* z9 q. h
a) TX,有效的载荷包数据填充至 FIFO,当发送 TX 命令时,就会按照设置好的帧格式将数据发送出去1 L7 A( K7 I# H; S; f$ j
b) RX,对接收到的数据进行识别,当且仅当同步字匹配时,才会将数据填充至 FIFO 中
( f7 m3 E5 V4 f/ d+ n8 x: ^  D) V/ y- u4 J% M. H3 D7 M

9 w. o6 K0 K' `6 _7 b6 CII. 直接 FIFO 模式
4 d) a" D: j4 Y2 p8 O' @, i3 _5 a1 [a) TX,用户需要自行拼装帧格式并填充至 FIFO,数据就会从 FIFO 中直接发送出去: D3 C" Q+ I# n% a
b) RX,对接收到的数据不进行任何处理,直接填充至 FIFO 中,用户自行在应用 层中解析
  l# u1 V  L4 J) o, M8 l& z
5 Q# U6 p. ]! V* c

. M8 \. F  l- G' D" R! BIII. 直接 GPIO 模式* {# w7 T, \' G0 s6 C3 l
1. TX,从 GPIO 口获取得到数据后不作任何处理,数据就直接被发送出去;同时 伴随一个时钟用于传送数据(上升沿有效): K* B  c# \8 l; ^+ a- e
2. RX,对接收到的数据不进行任何处理,直接通过 GPIO 输出;同时伴随一个时 钟用于接收数据(下降沿有效)
本文以直接 GPIO 模式为例,讲解如何利用 S2-LP_DK GUI 配置直接 GPIO 模式并互相 通信。
  Z; n& J5 D4 ^/ f( n7 ^' u# W
2. 应用场景
( T# w; j/ u/ n5 m2 T! i; K
为了更好地阐述如何利用 S2-LP_DK GUI 配置直接 GPIO 模式,我们假设这样一个场 景: 设备 A 从信号发生器接收数据,然后通过 GPIO 口输出并作为设备 B 的数据源,而设 备 B 通过 GPIO 接收这些数据,然后直接发送出去,最后设备 C 接收设备 B 的数据并输出 Log 信息。这个场景的拓扑如下图 1 所示:
4 {+ C& a8 p- [( U$ @' H

( {- F* g) m: A9 s0 D
7 y1 ^& b5 B& |: b7 \
微信图片_20230528153820.png
% P2 [* H1 n2 x

: _% X+ \/ n9 w+ M" T" j从上图可知,搭建这个场景需要如下设备:

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

2. FKI868V2 开发板 * 3

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

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

2. 通讯速率:38.4Ksps

3. 频率偏差:20Khz

4. 接收带宽:100Khz

5. 调制方式:2GFSK-1


6 V3 J; S5 r. |2 U5 W) V以及帧格式如下图 2 所示:
, \* R& a3 c" z
微信图片_20230528153816.png

" |& K6 D0 j1 a- W6 m8 q. @- ~/ v+ y# E5 k
2.1.1 矢量信号发生器这里仅需要根据上述的配置中提及的参数设置即可,详情如下图 3 所示:2 l  W3 I& Y4 [
微信图片_20230528153813.png
, ]: \, S. O5 ?

" ?# a; \' ?- T2.1.2. 设备 A
5 x( K0 h# P! w* B0 v5 `' {' Q' o同理,设备 A 想要从矢量信号发生器获取数据,对应的射频参数就要设置成一样,如下图 4 所示:
+ k5 [* S: R0 p* d" u; V4 v
微信图片_20230528153810.png

5 e; @% e+ Z! U& C+ z
& u' h: r- F/ ?: l0 U# e- Z/ _配置完上述的参数之后,在 Low Level Command 选项中点击 Data on GPIO no Packet,即可让设备 A 进入直接 GPIO 接收模式,如下图 5 所示:
2 N7 d# e  e, D- J5 G2 F) U: i5 @2 z
) U2 K; h7 L. X
$ B+ Q# `1 J2 t# `0 c
微信图片_20230528153807.png

( [, h9 y2 F6 N  _) Z& v" T- ~& t9 J5 T
然后,将 GPIO0 连接至设备 B 的 GPIO0 即可。

9 C9 n8 \8 K" B$ j. g" e
( N% @3 I* V2 ^. y2.1.3. 设备 B! Z( R. h2 D; e" Z2 X" {$ w# G
由于设备 A 与设备 B 之间的时钟是不同步的,所以为了获取设备 A 的数据,设备 B 应该采用过采样的方式,即设备 B 的通讯速率应该至少等于设备 A 的 8 倍,也就是 38.4 * 8 = 307.2Ksps。但是,目前 GUI 最大只能设置 250Ksps 的速率,所以设备 B 想要配置通讯速率为 307.2Ksps,需要手动修改寄存器;具体如下图 6 所示:

  H1 K5 C8 [8 O6 m- o) b6 s5 g6 B
2 f6 C1 J2 p* D) _- g

: P: [5 }. \5 I2 T% H
微信图片_20230528153803.png
& b* K4 o) I( J$ V) X9 }
- r" n. U$ `! ^$ E
因为设备 B 此时是作为 TX 端,因此不需要配置接收带宽参数;同时为了避免引起歧义,将中心频点变更为 840Mhz。最后,在 Low Level Command 选项中点击 Send Data from GPIO,即可让设备 B 进入直接 GPIO 发射模式,如下图 7 所示:5 u1 q: p* }, ^9 g, F- K( j7 p
微信图片_20230528153759.png
4 s- N, `" r/ {0 h+ j. k4 K  f
, ^4 S- A9 V- b& X# Z" F3 m
2.1.4. 设备 C" K( \$ I( z  Q0 f6 i4 Y! Z% k
设备 C 是通过天线接收设备 B 传送过来的数据,所以中心频点应该跟设备 B 一样,其他的数跟设备 A 一样,详情如下图 8 所示:
8 b$ T# ~) U1 m" t% [6 R

8 y: j0 B' T& q# S: `+ \# V
微信图片_20230528153755.png

- u# [6 j' m$ F$ x( _
6 r8 r( N, ]# I- K3 ~而帧格式的配置应保持与上述配置中提及的相同。至此,所有的设备配置均已完成,最终的实物搭建如下图 9 所示:& G2 B5 q! w, p1 F% i. {2 H
微信图片_20230528153747.png
3 k2 u2 u( `& S$ H3 z
3. 实验结果

& X. k& Q- I* p6 y
下图 10 展示了基于直接 GPIO 模式的设备 B,接收到从设备 A 传送过来的 GPIO 口数据,并通过天线发送给设备 C 并显示出来。

6 i+ O% o1 e8 w9 f% C0 A
微信图片_20230528153039.png

: w' A/ D0 x% M如有侵权请联系删除* K6 \5 a% [/ |3 z, }+ K

7 `, L$ A3 X* i# K& R
收藏 评论0 发布时间:2023-5-28 15:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

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