如何使用capsense功能读取按键电容值-自电容按键带shield篇
当自电容按键同时有shield屏蔽时,shield信号的充放电时间尤为重要,为满足整个触摸系统的正常工作,观测较大电容值的shield网络比起自电容本身的电容值要更重要。首选我们要使能capsese configurator的 Self-test library,并正确配置好按键,shield对应的引脚。
回到程序,在确认capsense功能和tunner功能都正常工作的前提下,在initialize_capsense();之后加上
Cy_CapSense_RunSelfTest(CY_CAPSENSE_BIST_SNS_CAP_MASK | CY_CAPSENSE_BIST_SHIELD_CAP_MASK, &cy_capsense_context);
由于tunner目前不支持直接观测shield通道的电容值,我们需要在main()之外定义个一变量 32uint_t Cp_shiled
然后在主循环内添加一句Cp_shiled = *(uint32_t *) (cy_capsense_context.ptrBistContext->ptrChShieldCap);来读shield的电容值
编译并烧录之后打开tunner,可以之间观测到自电容按键的电容值 = 4164fF ≈ 4.1pF
而shield的电容值我们需要通过debug断点观测,在Expressions界面添加之前的变量Cp_shiled,观测到其值=64pF
但这个值并非实际的shield电容值,真实shield电容值需要减去shield范围内所有的自电容按键的电容值,在本例中只有一个自电容=4.1pF,
所以shield的真实电容值= 64pF - 4.1PF = 59.9pF
因为引入了shield,后续扫描时间参数,需要以shield的电容值为主调整,以保证整机触摸性能
页:
[1]