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

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

[复制链接]
freeelectron 发布时间:2018-8-22 17:15
本帖最后由 freeelectron 于 2018-8-22 17:26 编辑
; i- f5 V9 g" b: u9 F
% V) Z; x/ k) X" E背景:前一阵在支持客户的一个项目,据他们自己说是主要搞嵌入式linux的,现在需要用到LoRa,用stm32做了LoRa的板子,在官方的驱动的基础上,只改了GPIO,但是stm32与LoRa就是一直有问题,让他们用我们的试了试,是没问题的,之后看了他们的原理图,发现LoRa芯片的几个中断GPIO与stm32的连接上有问题。7 ^3 _/ {4 J" V' M& T" Z2 S

* g8 u' J6 c: R' x3 H. y# KLoRa除了需要SPi通讯外,还需要6个GPIO配置成外部中断,来产生接收中断,发送超时中断,发送完成中断,cad中断等等,这几个外部中断非常非常非常重要,如下图:
& w# r0 R( `$ t" T7 P1 u8 m$ h  _
3.png 1 E% T1 M5 M9 G* M) W

' ]! x5 T# P/ t8 l( GSTM32的每一个GPIO都可以配置成外部中断,但是对于初次接触的人,或者说是硬件设计的人来说,这里就需要注意了:# B- @$ Z2 \9 q# L( A4 u+ F0 x
' c  ~/ Q1 I9 `3 J) ]# |
PA0~PG0 对应的是外部中断0
5 L' M% s. T# B5 u$ e1 l  bPA1~PG1 对应的是外部中断19 {* m% k& B# q& w  F! o/ u
PA2~PG2 对应的是外部中断2
2 g" a% Q7 z& S; APA3~PG3 对应的是外部中断3
3 y; U3 o4 i1 _" GPA4~PG4 对应的是外部中断4
1 ~- X, e1 N4 U# i- g! F……! Y9 J* ^& c- U: I/ W3 m3 A. x0 V1 S
PA15~PG15 对应的是外部中断15
$ D; a) a9 Q7 l5 Q; @! I* M7 ~( ^  l" _" @) z/ }
以外部中断0为例来说:同一时刻PA0~PG0只能有一个配置为外部中断。换句话说,STM32只能同时支持16个外部中断。(题外话,LoRa需要六个外部中断是见过的比较多的了,应用需要的外部中断大于16个,可能就要另辟蹊径了)- x1 ?+ n) X3 U( F  t. X( d7 D
9 F( b( @! x3 T* s

& H( P/ j1 G7 j可以看到官方的设计,7 R5 r$ a. V  [* O5 v7 a% n
DIO5<->PA15/ e# X7 c# c) t4 a4 }" ~
DIO4<->PB3! t+ t$ ~! r/ x& `( z' L; ^
DIO3<->PB4
, ]7 _5 z, u2 p9 S8 F* Z0 P5 X0 ODIO2<->PB9& e4 w- i: m! S+ A  H9 x/ w
DIO1<->PC13: Z  `6 t* l1 y. ^4 G0 E( e8 R9 d$ Q9 i
DIO0<->PB11
; l1 i$ b" k& t0 I% p; V! W0 w/ j% a0 \如下图:- Q" t8 W6 s' K
1.png 2.png 8 A8 v" W  N% L( K, e6 ~
5 ^0 E" m; U4 e9 B9 J. u+ D
附件,semtech官方的设计原理图: SensorNode-schematic.pdf (1.93 MB, 下载次数: 201)
赞 收藏 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
  f9 I) Q! T5 W! `2 P; u没有那么多中断吧  5~9共用一个中断线 10~15共用一个中断线

" _) y. J4 o1 a4 |6 P, z5-9 共用一个中断函数  10-15也是共用一个中断函数  
STM1024 回答时间:2018-8-23 14:01:24
中断源最多只有16个(line)! I4 [; r8 T6 z7 _0 G; {8 |
1,2,3,4可独立配置中断函数$ s9 e* S  r5 M9 Z; a
5-9共用一个中断函数
& M. p# @/ ?4 O6 ?! x1 l% F, Y10-15共用一个中断函数
兄弟连 回答时间:2018-9-6 09:03:11
标记8 o; }$ T+ P, I& {4 o# t* d
sujido 回答时间:2018-9-26 21:22:03
谢谢
mmuuss586 回答时间:2018-12-5 15:22:33

/ |, G$ ^4 v) v2 {" l用的1276不错;
mffthan 回答时间:2019-5-2 20:59:38
谢谢。回头试试
淡々とS★Y 回答时间:2020-2-29 16:02:14
谢谢楼主
李康1202 回答时间:2020-3-2 15:08:29
一般一个DIO0就可以了
$ W. C+ V4 v# P% {
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版