Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PM电源管理
最近用rtthread系统下AD采样并低功耗,中断响应不及时
发布于 2016-01-29 20:03:10 浏览:5396
订阅该版
问题一描述:rtthread下采样AD,AD中断大概80微秒一次,并且CPU执行4MHZ,目的是降低功耗。 大概分析了原因可能是内核的调度程序过程void rt_schedule(void);中关闭全局中断,导致AD中断无法及时响应,因为此时CPU运行在4MHZ。 各位有没有好的办法啊?最好改一下内核什么或者其他。 问题二描述:rtthread如果调度过程中并开启中断会出现什么情况?没有仔细想,先mark一下这个问题
查看更多
8
个回答
默认排序
按发布时间排序
aozima
2016-01-29
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
测算出AD的ISR的执行时间,并评估可能性。 尽可能把AD用DMA来采
qq_到底为了什么
2016-01-29
这家伙很懒,什么也没写!
补充:rtthread下采样AD,是采用DMA方式,当DMA数据传送结束以后,需要及时在DMA的中断服务程序中重新写入DMA搬运的长度,DMA的中断服务程序大概是80微秒中断一次。
qq_到底为了什么
2016-01-29
这家伙很懒,什么也没写!
问题二:是对临界区的保护,无法开启中断。
grissiom
2016-01-30
这家伙很懒,什么也没写!
>问题一描述:rtthread下采样AD,AD中断大概80微秒一次,并且CPU执行4MHZ,目的是降低功耗。 >大概分析了原因可能是内核的调度程序过程void rt_schedule(void);中关闭全局中断,导致AD中断无法及时响应,因为此时CPU运行在4MHZ。 >各位有没有好的办法啊?最好改一下内核什么或者其他。 > >问题二描述:rtthread如果调度过程中并开启中断会出现什么情况?没有仔细想,先mark一下这个问题 --- 中断 80us 一次,CPU频率 4MHz,两次中断之间 CPU 只能运行 320 条单周期指令…… 你这系统别干别的了,光进中断出中断就已经跑死了……
qq_到底为了什么
2016-02-03
这家伙很懒,什么也没写!
需求:ADC 采样频率 1S/12800个,即78us采样一次,并且要求4个通道采到,CPU频率需要工作在4MHZ或者8MHZ,以便保证功耗,采用rtthread 系统,CPU采用cortex-M0+,freescale KL series,此芯片有个限制:4个ADC通道不能同时采样。 一、 需要解决的问题: 1、 ADC轮流采样。 2、 78us采样一次。 3、 低功耗问题。 4、 在cpu工作在4MHZ或者8MHZ情况下,rtthread系统在78us能及时的响应。 二:对策及思考: 1、 根据一、条件4,采用中断方式基本行不通,大概评估了一下在4MHZ情况,rtthread系统响应时间大约要150us. 2、 采用DMA方式来采样ADC的值。 3、 采用DMA方式来改变ADC的采样通道从而触发ADC采样,DMA的触发源为:周期性硬件定时器 78us触发一次。 二、 方案: 图1 三、 实现: 图2 图3 五、上述方案及实现存在的问题: 1、如上图2: 当4个通道值传送完成以后,DMA0的BCR如何及时进行填充?因为TPM的触发频率78us/次,如果DMA0传送结束以后没有及时填充BCR,会导致DMA0出错。 2、同样上图3:DMA1的BCR如何及时填充?虽然它的触发间隔是78us+DMA0传送时间+ADC采样完成时间。 试了一下这个是可以用DMA中断来进行BCR填充,但它仍然有一定的风险,导致DMA1出错。 六、接下去的方案及实现: 就是解决 五 中的2个问题,由于芯片有一个link功能:当一个DMA结束以后可以启动另一个DMA,即采用另一个DMA(设DMA2)中对DMA0的BCR进行赋值。 这里DMA2需要传送清除DMA0完成标志+DMA0的BCR等2个数据到DMA0的寄存器来实现,而DMA2本身的BCR可以采用DMA2中断来实现,因为DMA2中断只要在有大约64*4*78us时间里面完成对BCR的填充就OK。 同时道理可以在DMA1 link 到DMA3,让DMA3来完成DMA1的BCR和清除标志的工作。当DMA3中断来时发信号量到任务,然后进行数据copy,为了防止采样BUF溢出,采用循环2倍BUF,同时在DMA3中断到来时,cpu根据标志读取相应的BUF段。 如下图: 注:相当于采用4个DMA来规避。 注: 不知道怎么上传图片。。。。
bernard
2016-02-04
这家伙很懒,什么也没写!
你的方案本身有问题呐。另外一个,低功耗和实时性有的时候是比较难兼顾到的
qq_到底为了什么
2016-02-06
这家伙很懒,什么也没写!
啥问题?请指教,哈!
撰写答案
登录
注册新账号
关注者
1
被浏览
5.4k
关于作者
qq_到底为了什么
这家伙很懒,什么也没写!
提问
8
回答
15
被采纳
0
关注TA
发私信
相关问题
1
STM32F103的低功耗
2
rt-thread低功耗休眠应用问题请教
3
关于RTT对低功耗的支持
4
RT-Thread怎么休眠实现低功耗。
5
RT-Thread V3.0支持的低功耗,OS会自行进入吗?
6
关于RTThread3.0低功耗休眠模式
7
RTT3.0的bsp包中哪些MCU自带低功耗定时器?
8
关于低功耗上次说针对L4出个BSP的,怎么迟迟不见呀
9
低功耗问题。
10
STM32L4低功耗
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus从机调试说明
2
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
3
基于 RT-Thread 星火一号开发板的俄罗斯方块
4
RTThread studio 中添加 Micro_ROS 软件包有 Bug
5
【1024 RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习】
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
WIZnet_W5500
I2C_IIC
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
793
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部