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

STM32+LoRa硬件设计中的一个小“坑”

[复制链接]
freeelectron 发布时间:2018-8-22 17:15
本帖最后由 freeelectron 于 2018-8-22 17:26 编辑
+ x2 m3 \1 j5 u$ V( v! h9 s5 r0 H: q
背景:前一阵在支持客户的一个项目,据他们自己说是主要搞嵌入式linux的,现在需要用到LoRa,用stm32做了LoRa的板子,在官方的驱动的基础上,只改了GPIO,但是stm32与LoRa就是一直有问题,让他们用我们的试了试,是没问题的,之后看了他们的原理图,发现LoRa芯片的几个中断GPIO与stm32的连接上有问题。
! T; o3 J2 \3 l) U+ H
: ^% b) L; E/ M2 R: @; KLoRa除了需要SPi通讯外,还需要6个GPIO配置成外部中断,来产生接收中断,发送超时中断,发送完成中断,cad中断等等,这几个外部中断非常非常非常重要,如下图:
/ |7 b9 [$ R+ a& F
3.png
4 r  w& }2 y$ u6 Y! K0 N- b

* r* r" `+ k1 @+ i! b  JSTM32的每一个GPIO都可以配置成外部中断,但是对于初次接触的人,或者说是硬件设计的人来说,这里就需要注意了:8 a, T$ G9 ?4 L' m4 D. _$ U: ^& X
  h; J6 H" H  b: c
PA0~PG0 对应的是外部中断0
) U4 x9 d( ^7 f9 l: ~, \PA1~PG1 对应的是外部中断1& o& p1 |, B2 |/ ~
PA2~PG2 对应的是外部中断2
8 j, s; s. h' h- m  ?! e0 ?PA3~PG3 对应的是外部中断3
6 j1 P5 F; p5 N7 c  ?2 K- p+ R. MPA4~PG4 对应的是外部中断4: `; ?- ^( L7 R" P: |
……
( R% i5 l  C# \, O  xPA15~PG15 对应的是外部中断15
7 h: J  H, f4 P4 d. x3 k/ W  {; }: t) {( n/ Q9 h8 s
以外部中断0为例来说:同一时刻PA0~PG0只能有一个配置为外部中断。换句话说,STM32只能同时支持16个外部中断。(题外话,LoRa需要六个外部中断是见过的比较多的了,应用需要的外部中断大于16个,可能就要另辟蹊径了; f" [, H; C. d4 I, P  t  w) j

0 F1 G: z, H# \& Q7 X3 D  G' Q; X; y. K: p& A9 a
可以看到官方的设计," B% l* O  r( Y1 p! ^# s, H4 v1 g
DIO5<->PA15
: B8 T) a; p; K8 m3 a) SDIO4<->PB3& E# j* ~; E: k# h
DIO3<->PB4
7 m5 c' b* S! Q2 P2 vDIO2<->PB9, u2 |' m: L( n1 J, H
DIO1<->PC13
: u. l9 A8 x" j1 x. J9 }0 b! VDIO0<->PB11) E& `* I- {1 G
如下图:) W/ ]$ o1 U6 ]+ t( S
1.png 2.png
" \) u) W" _! q% M! `
8 a. {0 v4 ]6 P* a* O/ V! y" y( z8 e附件,semtech官方的设计原理图: SensorNode-schematic.pdf (1.93 MB, 下载次数: 199)
收藏 3 评论10 发布时间:2018-8-22 17:15

举报

10个回答
zero99 回答时间:2018-8-22 17:53:10
大佬大佬,支持下
Departures 回答时间:2018-8-22 17:58:44
没有那么多中断吧  5~9共用一个中断线 10~15共用一个中断线
freeelectron 回答时间:2018-8-23 09:08:09
machiato 发表于 2018-8-22 17:58+ j: a* R# W; A) k2 s  m
没有那么多中断吧  5~9共用一个中断线 10~15共用一个中断线
5 G) z6 ]. H0 m( }; o
5-9 共用一个中断函数  10-15也是共用一个中断函数  
STM1024 回答时间:2018-8-23 14:01:24
中断源最多只有16个(line)& {1 C! X: G7 o  P3 z2 i4 q: V2 z
1,2,3,4可独立配置中断函数
- v7 ?' Z8 E$ [6 W5 u5-9共用一个中断函数* [2 [- _9 o5 h0 B0 G1 k) G
10-15共用一个中断函数
兄弟连 回答时间:2018-9-6 09:03:11
标记9 f+ E6 |. f( |0 K* ]3 a$ `
sujido 回答时间:2018-9-26 21:22:03
谢谢
mmuuss586 回答时间:2018-12-5 15:22:33

$ z% ], C8 D6 j+ I+ B用的1276不错;
mffthan 回答时间:2019-5-2 20:59:38
谢谢。回头试试
淡々とS★Y 回答时间:2020-2-29 16:02:14
谢谢楼主
李康1202 回答时间:2020-3-2 15:08:29
一般一个DIO0就可以了8 N9 w( e- d% _2 ^7 I$ I  b$ {* A

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版