打印

MSP430FR5969 响应外部中断延迟太长,6us

[复制链接]
2437|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大家好,请教大家个问题,折腾有几天了。用的MSP430FR5969 LAUNCHPAD.因为功耗严格,频率4m,下降沿中断,用示波器看,从外部信号有效,到中断程序内第一条指令,太长有有6us。记得430只要6条指令就可以响应中断。百思不得其解时间都去哪儿了,望大家指点有可能有些什么问题?检查那些地方。谢谢大家了

相关帖子

沙发
nirvana|  楼主 | 2015-6-9 22:50 | 只看该作者
我曾经以为是低功耗模式唤醒占用了,但是改成激活模式,没有显著变化,现在用的是LMP0,外部信号也很陡直。

使用特权

评论回复
板凳
dirtwillfly| | 2015-6-10 08:50 | 只看该作者
你可以看看汇编代码,看这段时间都做什么事情了。

使用特权

评论回复
地板
ayl439| | 2015-6-10 08:54 | 只看该作者
参考最新的手册计算,你从示波器上看,看到的延迟是唤醒时间+进入中断的时间(貌似是6个时钟周期)+产生你从示波器上看到的信号的那条指令的运行时间

注意如果你使用了外部高频晶振,fDCO应该是按照默认的值来算的

QQ截图20150610085038.png (137.63 KB )

QQ截图20150610085038.png

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
dirtwillfly + 6 很给力!
5
nirvana|  楼主 | 2015-6-10 09:14 | 只看该作者
dirtwillfly 发表于 2015-6-10 08:50
你可以看看汇编代码,看这段时间都做什么事情了。

汇编代码看不出什么来,感觉是什么激活唤醒一类的占用了

使用特权

评论回复
6
nirvana|  楼主 | 2015-6-10 09:16 | 只看该作者
ayl439 发表于 2015-6-10 08:54
参考最新的手册计算,你从示波器上看,看到的延迟是唤醒时间+进入中断的时间(貌似是6个时钟周期)+产生你 ...

谢谢,这个表我也仔细看过,但肯定是LMP0,看了SR寄存器,FRAM一直都是激活的,我会再仔细再看看,我也感觉是什么唤醒一类的占用了时间。请教有没有可能其他的中断冲突了呢?

使用特权

评论回复
7
ayl439| | 2015-6-10 10:01 | 只看该作者
nirvana 发表于 2015-6-10 09:16
谢谢,这个表我也仔细看过,但肯定是LMP0,看了SR寄存器,FRAM一直都是激活的,我会再仔细再看看,我也感 ...

估算一下,差不多要4、5uS的,再加上示波器观察可能有一定误差,基本是你这个结果

唤醒时间(唤醒中断发生,到DCO起振的时间)400nS+1.5/fDCO,假设你用的外部高频晶振4MHz,实际DCO仍然是1MHz,那么这个结果是2uS,假设用内部DCO,为4MHz,那么这个时间也有0.8uS

进入中断需要6个时钟周期,6/4MHz为1.5uS

第一条指令运行需要6个时钟周期,6/4MHz为1.5uS

那么你看到的时间是2uS+1.5uS+1.5uS=5uS   或者  0.8uS+1.5uS+1.5uS=3.8uS

使用特权

评论回复
8
ayl439| | 2015-6-10 10:02 | 只看该作者
dirtwillfly 发表于 2015-6-10 08:50
你可以看看汇编代码,看这段时间都做什么事情了。

谢谢版主给分~哈哈~!

使用特权

评论回复
9
dirtwillfly| | 2015-6-10 11:54 | 只看该作者
ayl439 发表于 2015-6-10 10:02
谢谢版主给分~哈哈~!

不客气。本来该打赏的,可惜我账号上没有钱,只能给你加点分了

使用特权

评论回复
10
可可球| | 2015-6-10 14:11 | 只看该作者
到底是什原因呢

使用特权

评论回复
11
nirvana|  楼主 | 2015-6-10 15:38 | 只看该作者
ayl439 发表于 2015-6-10 10:01
估算一下,差不多要4、5uS的,再加上示波器观察可能有一定误差,基本是你这个结果

唤醒时间(唤醒中断发 ...

谢谢指点,很有技术含量,学习了。
其实我没有使用外部晶振,就是使用的DCO,项目不需要太精确时钟,但是今天我把频率调到8m情况也差不多。现在我准备把时钟输出看看,到底是多少,等消息

使用特权

评论回复
12
ayl439| | 2015-6-10 15:45 | 只看该作者
本帖最后由 ayl439 于 2015-6-10 16:12 编辑
nirvana 发表于 2015-6-10 15:38
谢谢指点,很有技术含量,学习了。
其实我没有使用外部晶振,就是使用的DCO,项目不需要太精确时钟,但是 ...

SORRY,弄错了……4MHz和8MHz差别应该是挺大的

使用特权

评论回复
13
ayl439| | 2015-6-10 15:48 | 只看该作者
本帖最后由 ayl439 于 2015-6-10 16:12 编辑
nirvana 发表于 2015-6-10 15:38
谢谢指点,很有技术含量,学习了。
其实我没有使用外部晶振,就是使用的DCO,项目不需要太精确时钟,但是 ...

另外前面那个表上的唤醒时间指的是中断产生以后,到DCO时钟产生的时间,你可以把DCO设置为MCLK,然后从某个引脚把MCLK输出,然后用示波器观察这个时间差,就是手册上所说的唤醒时间

早年我观察过4系列的,还是比较准确的

使用特权

评论回复
14
ayl439| | 2015-6-10 16:13 | 只看该作者
12楼之前说错了……

使用特权

评论回复
15
nirvana|  楼主 | 2015-6-11 09:53 | 只看该作者
昨天晚上输出了时钟,发现犯了一个大错误,把DIVM__0写成了DIVM_0, CPU频率除了2 。惭愧的很。
但是还是不行,那延迟好像还在,我等下再确认下

使用特权

评论回复
16
Thor9| | 2015-6-11 21:21 | 只看该作者
等待更新...

使用特权

评论回复
17
firstblood| | 2015-6-11 21:43 | 只看该作者
这个问题的先从硬件设计上找下的吧,中断信号的处理上的。

使用特权

评论回复
18
冰河w| | 2015-6-12 20:29 | 只看该作者
楼主问题解决了吗,怎么解决的

使用特权

评论回复
19
nirvana|  楼主 | 2015-6-12 23:41 | 只看该作者
今天才彻底解决,还是提高了些频率,有预想的4m提高到了6.67m,估计未来要改下电源,本来是想用数据端口供电的,估计要加个电池了,同时把一些原来在下降沿做的工作放到了上升沿做,今天测试还很稳定了。谢谢大家。还有,有二十分,论坛新手,不知道怎么加?

使用特权

评论回复
20
nirvana|  楼主 | 2015-6-12 23:44 | 只看该作者
我测试了下,MSP430FR5969,4m -6.67m 的DCO,都准确,但是8m的,就只有7.3m超过规范很多了,不知道大家的板子如何?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝