完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在我的应用中,我正在采样加速度计在1600赫兹。在我的ISR中,我设置了一个标志,然后在我的主循环中进行处理。当我不使用任何睡眠模式时,效果很好。
但是,一旦我在主循环中添加CysSpMyStudieEp(),我就不会醒来并服务中断。在睡觉前,我为中断服务一次,但永远不要醒来,重新为它服务。 根据这份文件,GPIO中断是一个有效的唤醒源,来自深度睡眠: HTTP://www. CyPress .COM/FIL/121271/A下载 在另一份文件中,它指出所有GPIO在进入深度睡眠时自动冻结(第10.12节): HTTP://www. CyPress .COM/FIL/127101下载 我所看到的行为意味着后者是正确的,因为好像GPIO绑在我的加速度计上不再让我从深度睡眠中醒来。我只有深睡眠这个问题,因为CysYSPMLeSEP()在没有问题的情况下工作,我看到我的AccEL在1600赫兹中断。 我是否误解了其中的一个应用笔记,因为它们似乎有冲突的信息?非常感谢您的帮助! |
|
相关推荐
17个回答
|
|
杰森T,Bob Marlowe:你指的是这个应用笔记:HTTP://wwwyCysP.COM/FIL/121271/Access。这是针对PSoC4,没有名字的BLE。PSOC4和PSoC4BLE是如何联系的?PSoC4BLE与PSoC4相当,除了BLE之外?或者,我应该只使用为PSoC4BLE开发的信息(比如应用笔记)吗?
|
|
|
|
PSoC是一个基本概念:一个带有Flash和SRAM的CPU,一组可修改的组件,引脚和路由。PSoC族(PSoC1、3, 4和5)之间的差异定义了使用哪种CPU,一个家庭内的不同设备指示资源的数量(Flash、RAM、组件)。BLE是基于PoSO4作为PROC的,所以大多数规范都适用于它们。在BLE的时钟分布中存在差异。并且除了大多数通信接口之外,大多数组件都不存在。
我是否应该只使用PSOC4BLE提供的信息(比如应用笔记)来进行开发?AC和DC规范、引脚等当然是从芯片特定TRM中提取的。组件和组件行为被写在组件的数据表中。Sou,您可以使用PSOC4的例子,并在PSOC4 BLE上使用它们。你可能耗尽了资源,但是你将在项目的早期状态看到。 鲍勃 |
|
|
|
谢谢您。很高兴知道PSOC4信息可以用于PSoC4BLE。
|
|
|
|
一个“冻结”GPIO保持其当前的输出状态,PIN中断用于GPIO输入。可以有这样的情况,即冻结的IOTPUT状态不允许中断威廉希尔官方网站
所看到的电平变化。
不要使用ISR组件,PIN中断由PICU处理。 记住,从深度睡眠中醒来需要12到25Ms的东西,这与你的1600个SPS的采样率不相称。 鲍勃 |
|
|
|
嗨,鲍伯,
谢谢你的回复,根据这个说明: HTTP://www. CyPress .COM/FIL/121271/A下载 (第2节电源模式摘要) PSoC可以在25岁的时候从深度睡眠中醒来。情况不是这样吗? |
|
|
|
|
|
|
|
鲍勃,
是的,你的早期职位是: 记住,从深度睡眠中醒来需要12到25Ms的东西,这与你的1600个SPS的采样率不相称。 我同意你原来的估计,唤醒25毫秒太长的ODR为1600赫兹,但25我们不应该是一个问题。你能确认它确实是25美元,而不是你的邮件25毫秒吗? 谢谢你的帮助! |
|
|
|
|
|
|
|
25秒是正确的,对不起。
你的意思是说,这可没有ISR组件将取消冻结的GPIO的问题? 是的,没有ISR组件。但这并不能阻止冻结的PIN。你当然可以重新编程引脚输入睡觉前Hi - Z放回原模式时醒来。 鲍勃 |
|
|
|
zmyecho 发表于 2019-10-8 20:19 谢谢你的澄清,非常感谢! 那么,没有办法使用GPIO从加速度计中断来从深度睡眠中醒来吗? |
|
|
|
|
|
|
|
嗯,这就是我一直在尝试做的事情。我正在使用一个GPIO上升沿中断来唤醒深度睡眠。问题是中断正在射击,但是我没有从深度睡眠中醒来。
如果我只使用睡眠,或者根本没有低功耗模式,我就没有问题。问题只在于深度睡眠。 |
|
|
|
|
|
|
|
摘自PIN数据表。Page 17
某些设备上的专用中断端口没有专门的端口中断,能够从深睡眠中唤醒芯片。然而,它们都可以提供从芯片休眠模式唤醒端口宽度。检查专用中断复选框,以便能够使用端口专用中断逻辑,如果您不打算使用它从深度休眠模式唤醒。但是,如果您确实希望使用PIN作为来自芯片深度睡眠的唤醒源,那么请参阅TRM以查看该特定端口是否具有唤醒设备从芯片深度休眠的能力。 我读到,因为它必须被禁用。 此外同步模式: 我建议选择“透明”,因为在深度睡眠中没有高频率的时钟。 ISR组件不需要从深度睡眠中恢复。 鲍勃 |
|
|
|
ncmza 发表于 2019-10-8 21:26 谢谢鲍伯。根据TRM,所有PSoC 4100/4200 GPIO都可以作为一个中断来从深度睡眠中醒来,所以我认为我在这方面是可以的。 我禁用了“专用中断”选项,也切换到透明。我在固件中配置GPIO作为一个上升沿中断如下: UIT32 ReVaVa= 0x00 U;ReVaVa= CythGETYGRI32(HygGuiTn1In In-ItCFG);Reaval&App=(ClultTyMask≪lt;(HigggIn 1nIn移位** 2));CythSeTyReG32(HygGuiTun1in in Sy-ItCFG,ReavValy(RISIGIN Sead & L&;lt;(HigggIn 1In IOSHIFT ** 2)); 同样,如果我不使用深度睡眠,这是有效的。一旦我添加回电话,即使中断线变高,我也不会醒来。 关于ISR组件,使用它有什么不利之处吗?必须移除吗? 谢谢! |
|
|
|
鲍勃,
好吧,我想我已经成功了!我在PoSoC数据表中遵循PSoC 4专用端口中断,并添加了AlelPutt信号和相关的中断组件。在ISR中,我检查我的PIN中断并清除它。 似乎正在工作,但我将继续测试,并确保我看到当前的图纸,我希望。谢谢你让我指向正确的方向! |
|
|
|
令人惊叹的!不要忘记在执行电流测量时禁用调试(通过设置引脚到GPIO)。调试费用很高。
UIT32 ReVaVa= 0x00 U;ReVaVa= CythGETYGRI32(HygGuiTn1In In-ItCFG);Reaval&App=(ClultTyMask≪lt;(HigggIn 1nIn移位** 2));CythSeTyReG32(HygGuiTun1in in Sy-ItCFG,ReavValy(RISIGIN Sead & L&;lt;(HigggIn 1In IOSHIFT ** 2)); 对不起,我根本无法理解那些神秘的作业。为什么不使用配置对话框和API呢?这通常比手工敲击更容易出错。 鲍勃 |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2110 浏览 1 评论
1858 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1791 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
575浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
429浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
440浏览 2评论
390浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
927浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 09:38 , Processed in 1.429967 second(s), Total 107, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号