找回密码
 立即注册

微信扫码登录

查看: 204|回复: 3

[BLE Mesh] GPIO检测双边沿问题

[复制链接]

1

主题

2

回帖

29

积分

英勇黄铜

积分
29
发表于 2025-2-21 09:36:12 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
SDK及版本: V4.1.0.1
本帖最后由 helloworld 于 2025-2-22 11:35 编辑

  GPIO不支持双边沿中断。那用软件实现替代,上升沿触发后中断回调中再配成下降沿触发,不断重新配置边沿类型,以此来实现。

那这种方式检测会不会有漏掉的,

应用: 检测电机脉冲,需要2个GPIO中断同时检测,几百US级别的上升和下降沿(周期小于1MS)

问题1:这种软件替代方式能检测上述和下降沿,相隔多少US,才能检测到?

问题2: 两个GPIO同时检测几百US的上升下降沿能同时检测到?

1

主题

2

回帖

29

积分

英勇黄铜

积分
29
 楼主| 发表于 2025-2-26 14:23:58 | 显示全部楼层
没人回复,GPIO中断可以检测多少US间隔的中断

12

主题

70

回帖

560

积分

管理员

积分
560
发表于 2025-2-26 18:32:10 | 显示全部楼层
主要的时间消耗不在pad信号到mcu,期间会先经过gpio边沿采样(消耗1-2个pclk),采样后的信号经过过plic传到mcu需先硬件保存一些参数,需要消耗十几个个hclk周期左右。

时间消耗主要看你你剩下的软件处理,正常情况下(不能死机,不能总线被占用,一直忙,或者有更高优先级的中断进来等等)主要跟你实际执行的指令周期和相关时钟频率有关,时钟频率你可以自己根据需求配置,指令执行周期建议转成汇编或者机器码进行计算。

这部分的流程是:MCU根据相关的CSR寄存器值响应中断,跳转到中断处理函数执行自定义函数代码时,需先压入通用寄存器以及函数内用到的局部栈数据,然后执行函数内容,最后退出前,弹栈。


上述红色字体为用户可配或可控的,综上所述,理论上用我们的芯片你要在100us内或者10us内检测到双边沿应该是可行的。

1

主题

2

回帖

29

积分

英勇黄铜

积分
29
 楼主| 发表于 昨天 18:57 | 显示全部楼层
本帖最后由 helloworld 于 2025-3-12 18:59 编辑

两个GPIO分别触发中断源,检测不到这么多中断数。单独一个检测是没问题的

有什么办法解决吗


测试频率是3HZ,50%占空比,
两个波形相差69MS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-3-13 00:23 , Processed in 0.089946 second(s), 21 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表