【英飞凌PSOC 4000T DIY】+基于CAPSENSETuner的液位检测实验
首先通过链接: HYPERLINK "https://www.infineon.com/cms/en/product/microcontroller/32-bit-psoc-arm-cortex-microcontroller/psoc-4-32-bit-arm-cortex-m0-mcu/psoc-4000-entry-level/psoc-4000t/"
找到ModusToolbox™ ,该软件是支持 Infineon 器件的开发工具和嵌入式资源的集合。ModusToolbox™ 工具包包括桌面应用程序,支持创建新的嵌入式项目、管理软件资源、配置设备外设和中间件,以及用于编译、编程和调试的多个 IDE 选项。支持Windows、Linux和MacOS。这些 ModusToolbox™ 应用程序利用了大量 GitHub 托管的存储库,其中包括来自 Infineon 及其合作伙伴的代码示例、板级支持包和中间件。中间件库包括 CAPSENSE™ HMI、连接性、机器学习、图形、安全性等。要注意的是这个软件只能在win10或者以上系统运行,某些低版本插件还要升级才能完成全部功能测试;如图所示打开软件安装其他调试软件。
打开软件Eclipse IDE for ModusToolbox™ 3.4,新建工程,选择合适芯片,如图:
在next的对话框中选择合适传感器:
选择液位传感器之后生成代码,编译之后生成代码下载调试,如果需要在电脑端观察液位波形图,可以打开CAPSENSE Tuner7.10,这里要注意这个版本需要自动升级,不然不会出现I2C接口,没办法接收数据。所以重新安装了部分软件,将ModusToolbox™Toolspackage3.40版本升级为3.50版本,再打开工程依次进行设置:
硬件接线如图,打开CAPSENSETuner8.0软件,点击连接按键,然后观察水位波形;
代码解读:
int main(void)
{cy_rslt_t result;
/* 初始化设备和外设 */
result = cybsp_init();
/* 芯片设置失败停止执行 */
if (result != CY_RSLT_SUCCESS)
{ CY_ASSERT(CY_ASSERT_FAILED); }
/* 使能全局中断 */
__enable_irq();
/* 初始化EZI2C使用I2C将传感器数据传输到芯片 */
initialize_capsense_tuner();
/* 初始化 MSC CAPSENSE和中断 */
initialize_capsense();
for (;;)
{uint32_t level_w_FR, level_wo_FR;
/* 扫描转化液位传感器看门狗 */
Cy_CapSense_ScanWidget(CY_CAPSENSE_LIQUIDLEVEL0_WDGT_ID, &cy_capsense_context);
/*等待转换结束 */
while(Cy_CapSense_IsBusy(&cy_capsense_context)) {}
/* Scan the Foam Rejection Widget */
Cy_CapSense_ScanWidget(CY_CAPSENSE_LIQUIDLEVEL0_FR_WDGT_ID, &cy_capsense_context);
/* Wait until the scan is finished */
while(Cy_CapSense_IsBusy(&cy_capsense_context)) {}
/* Process all th widgets */
Cy_CapSense_ProcessAllWidgets(&cy_capsense_context);
/* 将数据传到 the Tuner 界面*/
Cy_CapSense_RunTuner(&cy_capsense_context);
/* store the liquid level before and after foam rejection */
level_wo_FR = CY_CAPSENSE_LIQUIDLEVEL0_PTRPOSITION_VALUE->x;
level_w_FR = CY_CAPSENSE_LIQUIDLEVEL0_FR_PTRPOSITION_VALUE->x;
/* keep the compiler happy */
(void)level_wo_FR;
(void)level_w_FR;
}
}
|