- 2025-02-06
-
回复了主题帖:
测评入围名单: PolarFire SoC FPGA Discovery 套件
感谢eeworld,确认可完成测评计划。{:1_138:}
- 2025-01-18
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】③Capsense触摸按钮初体验
CoderX9527 发表于 2025-1-16 23:31
谢谢分享。
不仅分享了基础用例,还分享了触控调教,点赞。
嘿嘿,这就是所谓理论联系实际,我发现很多坛友发帖,有的只有案例,没有细讲背后的原理,有的干将理论死活不跑个实际案例,结果都是不太好的。
- 2024-12-15
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】③Capsense触摸按钮初体验
Capsense触摸功能是业界第一的看门功夫,尽管瑞萨、德仪都有,但英飞凌仍独领风骚,自己顶一个先。
-
加入了学习《Follow me第二季第3期 视频介绍》,观看 Follow me第二季第3期 任务提交
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】⑥作品提交:电机触控及屏显系统
lugl4313820 发表于 2024-12-14 08:32
看了一下,楼主的工具挺多呀,这转盘也是有个性哦!
顺带当作给自家小朋友的玩具(有多种不同类型的转盘,转起来效果各异)
- 2024-12-13
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】⑤SPI点亮TFT LCD屏幕
TL-LED 发表于 2024-12-12 22:02
模拟SPI刷新速度有点慢,硬件SPI方式会好些。
是这样的,模拟SPI唯一的优点就是移植性非常好,拿过来任何一款MCU,能在几分钟内搞定显示,但要去吃透硬件SPI可没那么简单。
- 2024-12-10
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】⑥作品提交:电机触控及屏显系统
结合前述分享,本篇提交作品:基于PSOC™ 4100S Max的电机触控及屏显系统。
基本架构如图:
其中:
触摸按钮用到了板载的 BTN0和BTN1触摸按钮
TFT-LCD使用基于SPI协议驱动的屏幕
电机驱动板使用基于L9110S芯片的直流电机驱动板,如下图:
电路如下图,MCU通过两个IO口(本例P8.0、P8.1)控制电机正反转。
控制逻辑如下图:
IA=H;IB=0 正转
IA=0;IB=H 反转
配置好硬件,我们着手软件的编写:
main函数,主要进行初始化设置、IO设置,屏幕初始化、显示“Infineon”LOGO,然后进入循环。
int main(void)
{
cy_rslt_t result = CY_RSLT_SUCCESS;
/* Initialize the device and board peripherals */
result = cybsp_init();
/* Board init failed. Stop program execution */
if (result != CY_RSLT_SUCCESS)
{
CY_ASSERT(CY_ASSERT_FAILED);
}
/* Enable global interrupts */
__enable_irq();
/* Initialize EZI2C */
initialize_capsense_tuner();
/* Initialize MSC CapSense */
initialize_capsense();
#if CY_CAPSENSE_BIST_EN
/* Measure the self capacitance of sensor electrode using BIST */
measure_sensor_cp();
#endif /* CY_CAPSENSE_BIST_EN */
/* Start the first scan */
Cy_CapSense_ScanAllSlots(&cy_capsense_context);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,2u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,3u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,4u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,5u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,6u,CY_GPIO_DM_PULLDOWN,0,0);
Lcd_Init(); //初始化LCD
delayms(10); //延时一段时间
Lcd_Clear(black );
Show_RGB(0,0,176,44,blue);
Show_RGB(0,44,176,88,green);
Show_RGB(0,88,176,132,magenta);
Show_RGB(0,132,176,176,red);
Show_RGB(0,176,176,220,yellow);
Show_RGB(0,0,176,44,yellow);
Show_RGB(0,44,176,88,red);
Show_RGB(0,88,176,132,blue2);
Show_RGB(0,132,176,176,green);
Show_RGB(0,176,176,220,blue);
delayms(10); //延时一段时间
showimage(gImage_infineon);
Cy_GPIO_Pin_FastInit(GPIO_PRT8,0u,CY_GPIO_DM_PULLUP,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT8,1u,CY_GPIO_DM_PULLUP,0,0);
for (;;)
{
if(CY_CAPSENSE_NOT_BUSY == Cy_CapSense_IsBusy(&cy_capsense_context))
{
/* Process all widgets */
Cy_CapSense_ProcessAllWidgets(&cy_capsense_context);
/* Turns LED ON/OFF based on button status */
led_control();
/* Establishes synchronized communication with the CapSense Tuner tool */
Cy_CapSense_RunTuner(&cy_capsense_context);
/* Start the next scan */
Cy_CapSense_ScanAllSlots(&cy_capsense_context);
/* Toggles GPIO for refresh rate measurement. Probe at P10.4. */
Cy_GPIO_Inv(CYBSP_SENSE_SCAN_RATE_PORT, CYBSP_SENSE_SCAN_RATE_NUM);
}
}
}
在led_control函数中,添加电机控制的代码以及屏幕显示代码。
按下BTN0,IA拉高(默认IA、IB都是0),电机顺时针旋转,并显示顺时针文字(实际是图片)。
松开时,IA=0,电机不转。
按下BTN1,IB拉高(默认IA、IB都是0),电机逆时针旋转,并显示逆时针文字(实际是图片)。
松开时,IB=0,电机不转。
static void led_control(void)
{
if(MSC_CAPSENSE_WIDGET_INACTIVE != Cy_CapSense_IsWidgetActive(CY_CAPSENSE_BUTTON0_WDGT_ID, &cy_capsense_context))
{
Cy_GPIO_Write(CYBSP_LED_BTN0_PORT, CYBSP_LED_BTN0_NUM, CYBSP_LED_STATE_ON);
Cy_GPIO_Set(GPIO_PRT8,0u);
showimage1(gImage_shun);
}
else
{
Cy_GPIO_Write(CYBSP_LED_BTN0_PORT, CYBSP_LED_BTN0_NUM, CYBSP_LED_STATE_OFF);
Cy_GPIO_Clr(GPIO_PRT8,0u);
}
if(MSC_CAPSENSE_WIDGET_INACTIVE != Cy_CapSense_IsWidgetActive(CY_CAPSENSE_BUTTON1_WDGT_ID, &cy_capsense_context))
{
Cy_GPIO_Write(CYBSP_LED_BTN1_PORT, CYBSP_LED_BTN1_NUM, CYBSP_LED_STATE_ON);
Cy_GPIO_Set(GPIO_PRT8,1u);
showimage1(gImage_ni);
}
else
{
Cy_GPIO_Write(CYBSP_LED_BTN1_PORT, CYBSP_LED_BTN1_NUM, CYBSP_LED_STATE_OFF);
Cy_GPIO_Clr(GPIO_PRT8,1u);
}
}
顺时针:
逆时针:
演示视频1
[localvideo]ebf3e8332faabc36417cbb0532ad64b7[/localvideo]
演示视频2
[localvideo]08cde9632b93b17f45311b201a16441a[/localvideo]
本次分享就到这里,谢谢!
- 2024-12-07
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】⑤SPI点亮TFT LCD屏幕
上一篇我们已经基于HAL库进行了基本的点灯,本章更进一步以SPI协议点亮TFT LCD屏幕。
这款屏幕采用的是ILI9320主控,SPI接口。显示尺寸为 176*220
TFT模块与开发板的接线方式如下:
//*****************************************************************************
//CS P1.2
//RST P1.3
//RS P1.4
//SDA P1.5
//CLK P1.6
//*****************************************************************************
硬件准备完毕,接下来就是软件编写环节。
本例采用IO口模拟SPI协议,这样具备快速移植的优点,当然速度不及硬件SPI。
TFT模块涉及到的5个控制引脚分别对应IO的高低。
#define CS_1 Cy_GPIO_Set(GPIO_PRT1, 2u);
#define CS_0 Cy_GPIO_Clr(GPIO_PRT1, 2u);
#define RST_1 Cy_GPIO_Set(GPIO_PRT1, 3u);
#define RST_0 Cy_GPIO_Clr(GPIO_PRT1, 3u);
#define RS_1 Cy_GPIO_Set(GPIO_PRT1, 4u);
#define RS_0 Cy_GPIO_Clr(GPIO_PRT1, 4u);
#define SDA_1 Cy_GPIO_Set(GPIO_PRT1, 5u);
#define SDA_0 Cy_GPIO_Clr(GPIO_PRT1, 5u);
#define CLK_1 Cy_GPIO_Set(GPIO_PRT1, 6u);
#define CLK_0 Cy_GPIO_Clr(GPIO_PRT1, 6u);
程序首要进行IO的设置:
输出模式
在模拟SPi协议环节,关键的串行发送一个byte的函数为:
在显示图片环节:
首先对目标图片进行取模操作:
(注意宽度不要超过屏幕显示宽度176)
生成了一个巨大的数组:
显示图片的函数如下:
//取模方式 水平扫描 从左到右 低位在前
void showimage(const unsigned char *p) //显示40*40 QQ图片
{
int i;
unsigned char picH,picL;
Lcd_Clear(white);//清屏
Lcd_SetRegion(0,70,175,152); //坐标设置
for(i=0;i<176*82;i++)
{
picL=*(p+i*2); //数据低位在前
picH=*(p+i*2+1);
Lcd_WriteData_16Bit(picH<<8 | picL);
}
}
最终main函数如下。
int main(void)
{
Cy_GPIO_Pin_FastInit(GPIO_PRT1,2u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,3u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,4u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,5u,CY_GPIO_DM_PULLDOWN,0,0);
Cy_GPIO_Pin_FastInit(GPIO_PRT1,6u,CY_GPIO_DM_PULLDOWN,0,0);
Lcd_Init(); //初始化LCD
delayms(10); //延时一段时间
Lcd_Clear(black );
Show_RGB(0,0,176,44,blue);
Show_RGB(0,44,176,88,green);
Show_RGB(0,88,176,132,magenta);
Show_RGB(0,132,176,176,red);
Show_RGB(0,176,176,220,yellow);
Show_RGB(0,0,176,44,yellow);
Show_RGB(0,44,176,88,red);
Show_RGB(0,88,176,132,blue2);
Show_RGB(0,132,176,176,green);
Show_RGB(0,176,176,220,blue);
delayms(10); //延时一段时间
showimage(gImage_infineon);
}
附上源代码:
程序包括了刷屏,和显示图片两部分:
[localvideo]8e380ec409854d4424e4b33dca3a9f45[/localvideo]
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
冰是睡着的水吗 发表于 2024-12-7 20:06
你自己花了800多吗?那这800块给你报销没有
哥们你咨询管理员吧,咱们参加的不是同一个活动,谢谢!
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
冰是睡着的水吗 发表于 2024-12-7 18:33
知道,老哥,你是直接让群主给你买的,还是需要先自己下单买后面报销
自己购买。
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
冰是睡着的水吗 发表于 2024-12-7 15:11
兄弟,你是深圳的 X超?
哥们,我的是【英飞凌PSOC™ 4100S Max Pioneer套件】,跟你的不一样
你测评的那款是【CY8CKIT-062S2-AI评估板】,购买链接见:
https://www.digikey.cn/zh/products/detail/infineon-technologies/CY8CKIT-062S2-AI/24372080
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
冰是睡着的水吗 发表于 2024-12-7 15:11
兄弟,你是深圳的 X超?
你好,有啥事吗
- 2024-12-02
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
秦天qintian0303 发表于 2024-12-2 09:06
这图形化配置工具一家一个特色啊
用了这么多家,个人感觉还是ST的CubeMX最好用:loveliness:
- 2024-12-01
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】④基于HAL的极简点灯之旅
本篇分享一个简单的点灯之旅。
首先,我们新建一个空白的(模板)项目:
在新建的工程,左下角可以看到:Device Configurator 4.0
没错,这就是英飞凌Modus Toolbox的图形化配置工具,类似意法半导体的CubeMX
在Device Configurator 界面,我们可以看到熟悉的画面。
外设设置
管脚设置
时钟设置
DMA设置
设置好后,对应的右侧就自动生成了可用的代码。
/* NOTE: This is a preview only. It combines elements of the
* cycfg_pins.c and cycfg_pins.h files located in the folder
* C:/Users/Administrator/InfineonWork/00/libs/TARGET_CY8CKIT-041S-MAX/COMPONENT_BSP_DESIGN_MODUS/GeneratedSource.
*/
#include "cy_gpio.h"
#if defined (CY_USING_HAL)
#include "cyhal_hwmgr.h"
#endif //defined (CY_USING_HAL)
#define ioss_0_port_6_pin_4_PORT GPIO_PRT6
#define ioss_0_port_6_pin_4_PORT_NUM 6U
#define ioss_0_port_6_pin_4_PIN 4U
#define ioss_0_port_6_pin_4_NUM 4U
#define ioss_0_port_6_pin_4_DRIVEMODE CY_GPIO_DM_PULLDOWN_IN_OFF
#define ioss_0_port_6_pin_4_INIT_DRIVESTATE 1
#ifndef ioss_0_port_6_pin_4_HSIOM
#define ioss_0_port_6_pin_4_HSIOM HSIOM_SEL_GPIO
#endif
#define ioss_0_port_6_pin_4_IRQ ioss_interrupt_gpio_IRQn
#if defined (CY_USING_HAL)
#define ioss_0_port_6_pin_4_HAL_PORT_PIN P6_4
#define ioss_0_port_6_pin_4 P6_4
#define ioss_0_port_6_pin_4_HAL_IRQ CYHAL_GPIO_IRQ_NONE
#define ioss_0_port_6_pin_4_HAL_DIR CYHAL_GPIO_DIR_OUTPUT
#define ioss_0_port_6_pin_4_HAL_DRIVEMODE CYHAL_GPIO_DRIVE_PULLDOWN
#endif //defined (CY_USING_HAL)
const cy_stc_gpio_pin_config_t ioss_0_port_6_pin_4_config =
{
.outVal = 1,
.driveMode = CY_GPIO_DM_PULLDOWN_IN_OFF,
.hsiom = ioss_0_port_6_pin_4_HSIOM,
.intEdge = CY_GPIO_INTR_DISABLE,
.vtrip = CY_GPIO_VTRIP_CMOS,
.slewRate = CY_GPIO_SLEW_FAST,
.vregEn = 0UL,
.ibufMode = 0UL,
.vtripSel = 0UL,
.vrefSel = 0UL,
.vohSel = 0UL,
};
#if defined (CY_USING_HAL)
const cyhal_resource_inst_t ioss_0_port_6_pin_4_obj =
{
.type = CYHAL_RSC_GPIO,
.block_num = ioss_0_port_6_pin_4_PORT_NUM,
.channel_num = ioss_0_port_6_pin_4_PIN,
};
#endif //defined (CY_USING_HAL)
void init_cycfg_pins(void)
{
Cy_GPIO_Pin_Init(ioss_0_port_6_pin_4_PORT, ioss_0_port_6_pin_4_PIN, &ioss_0_port_6_pin_4_config);
}
void reserve_cycfg_pins(void)
{
#if defined (CY_USING_HAL)
cyhal_hwmgr_reserve(&ioss_0_port_6_pin_4_obj);
#endif //defined (CY_USING_HAL)
}
本例完成简单的点灯之旅,因功能极其简单,就直接用HAL函数了。
cy_gpio.h
#include "cy_pdl.h"
#include "cybsp.h"
#include "cy_gpio.h"
int main(void)
{
Cy_GPIO_Pin_FastInit(GPIO_PRT6,4u,CY_GPIO_DM_PULLDOWN,0,0); //P6.4下拉,功能为IO,初始值0
Cy_GPIO_Pin_FastInit(GPIO_PRT12,0u,CY_GPIO_DM_PULLDOWN,0,0); //P12.0下拉,功能为IO,初始值0
for (;;)
{
Cy_GPIO_Inv(GPIO_PRT6, 4u);
Cy_GPIO_Inv(GPIO_PRT12, 0u);
/* Wait for 0.5 seconds */
Cy_SysLib_Delay(500);
}
}
编译运行就可以看到LED2(P6.4),LED3(P12.0)闪烁了。
[localvideo]a88c92344f9cb8d5dae9e597d1a0789b[/localvideo]
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】①开箱及开发环境搭建
我已经将很难下载的ModusToolbox 软件以及离线包分享到阿里云盘和百度网盘了,有需要可以下载。
https://bbs.eeworld.com.cn/thread-1300411-1-1.html
- 2024-11-30
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】③Capsense触摸按钮初体验
本章来到开发板的特色功能:触摸,也即英飞凌第五代Capsense。
既然是第五代,听起来已经发展了很久,来看新闻稿:
【2022 年 1 月13日,德国慕尼黑讯】英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)近日发布了该公司第五代CAPSENSE™电容和电感式触摸感应人机界面(HMI)技术。新一代CAPSENSE解决方案集成于PSoC™微控制器中,可为家电、工业、消费级和物联网产品等要求严苛的用户界面提供更强的性能和更低的功耗。增强型HMI改进了检测范围、手势检测和指向性功能,并加入针对未来先进触摸屏的悬停检测功能,可实现近距离传感等先进解决方案。
新一代CAPSENSE技术的性能是前几代的十倍,功耗仅是前几代的十分之一,不仅支持工程师开发更直观的用户界面,降低了整体功耗,而且满足便携式电池供电的物联网设备的低功耗需求。全新CAPSENSE是智能门锁、智能开关、恒温器、智能音箱、电动工具、工业触摸屏等各种家用电器、工业应用以及其他物联网设备的理想选择。新技术也很适合有较大触摸屏的电磁炉、洗衣机和烘干机、冰箱、烤箱等工业和家用电器产品。
看重点,第五代Capsense相比第四代,信噪比高10倍,功耗低10倍,看起来很厉害有木有!!!
支持各类触控场景:按键(零维)、滑条(一维)、触摸屏(二维)、接近感应(三维)等……
第5代与第4代比一比:重点突出信噪比提升、功耗下降。
在开始本次测评前,我重点阅读了英飞凌的官方文档:
AN64846:CAPSENSE™入门
这个文档非常详细,总计131页,目录就可以看得出来,从原理到设计应有尽有,看完足足花了两个小时。
触摸按钮的主要原理是触摸导致电容变化被Capsense模块侦测并计算。
可分为自电容(按键、滑条)和互电容(支持多点触控的触控板)
各类触控场景及原理介绍:
以及重点介绍水滴和水流对 CAPSENSE™产生的影响
后面还介绍了各类触控传感器的设计要点,非常详细:
第二个重点参考的文档是:
【讲师演讲PDF】第五代触摸感应技术赋能物联网应用-英飞凌-彭祖年
这个PPT重点介绍第五代Capsense的新特性。
说了这么多,我们赶快开始我们的Capsense触摸按钮初体验吧!
新建项目时,选择MSC_CAPSENSE_CSD_Button_Tuning例程,也就是最基本的自电容按钮:
我们重点看例程的main.c函数
int main(void)
{
cy_rslt_t result = CY_RSLT_SUCCESS;
/* Initialize the device and board peripherals */
result = cybsp_init();
/* Board init failed. Stop program execution */
if (result != CY_RSLT_SUCCESS)
{
CY_ASSERT(CY_ASSERT_FAILED);
}
/* Enable global interrupts */
__enable_irq();
/* Initialize EZI2C */
initialize_capsense_tuner();
/* Initialize MSC CapSense */
initialize_capsense();
#if CY_CAPSENSE_BIST_EN
/* Measure the self capacitance of sensor electrode using BIST */
measure_sensor_cp();
#endif /* CY_CAPSENSE_BIST_EN */
/* Start the first scan */
Cy_CapSense_ScanAllSlots(&cy_capsense_context);
for (;;)
{
if(CY_CAPSENSE_NOT_BUSY == Cy_CapSense_IsBusy(&cy_capsense_context))
{
/* Process all widgets */
Cy_CapSense_ProcessAllWidgets(&cy_capsense_context);
/* Turns LED ON/OFF based on button status */
led_control();
/* Establishes synchronized communication with the CapSense Tuner tool */
Cy_CapSense_RunTuner(&cy_capsense_context);
/* Start the next scan */
Cy_CapSense_ScanAllSlots(&cy_capsense_context);
/* Toggles GPIO for refresh rate measurement. Probe at P10.4. */
Cy_GPIO_Inv(CYBSP_SENSE_SCAN_RATE_PORT, CYBSP_SENSE_SCAN_RATE_NUM);
}
}
}
分析下程序流程:
/* Initialize the device and board peripherals */ 初始化设备和外设
/* If Board init failed. Stop program execution */ 判断是否初始化成功
/* Enable global interrupts */ 开启全局中断
/* Initialize EZI2C */ 开启I2C,这个主要是用于Capsense调教
/* Initialize MSC CapSense */ 初始化CapSense单元
/* Start the first scan */ 开启第一次扫描
for 循环
/* Process all widgets */
/* Turns LED ON/OFF based on button status */ 根据按钮状态开启/关闭对应的LED灯
/* Establishes synchronized communication with the CapSense Tuner tool */ 与CapSense调教软件同步
/* Start the next scan */ 开启下一次扫描
/* Toggles GPIO for refresh rate measurement. Probe at P10.4. */ 翻转P10.4引脚,作为刷新率测量手段
LED控制代码块,也比较简单:根据按钮状态开启/关闭对应的LED灯
/*******************************************************************************
* Function Name: led_control
********************************************************************************
* Summary:
* Turning LED ON/OFF based on button status
*
*******************************************************************************/
static void led_control(void)
{
if(MSC_CAPSENSE_WIDGET_INACTIVE != Cy_CapSense_IsWidgetActive(CY_CAPSENSE_BUTTON0_WDGT_ID, &cy_capsense_context))
{
Cy_GPIO_Write(CYBSP_LED_BTN0_PORT, CYBSP_LED_BTN0_NUM, CYBSP_LED_STATE_ON);
}
else
{
Cy_GPIO_Write(CYBSP_LED_BTN0_PORT, CYBSP_LED_BTN0_NUM, CYBSP_LED_STATE_OFF);
}
if(MSC_CAPSENSE_WIDGET_INACTIVE != Cy_CapSense_IsWidgetActive(CY_CAPSENSE_BUTTON1_WDGT_ID, &cy_capsense_context))
{
Cy_GPIO_Write(CYBSP_LED_BTN1_PORT, CYBSP_LED_BTN1_NUM, CYBSP_LED_STATE_ON);
}
else
{
Cy_GPIO_Write(CYBSP_LED_BTN1_PORT, CYBSP_LED_BTN1_NUM, CYBSP_LED_STATE_OFF);
}
}
编译下载后,就能看到BTN0,BTN1的按钮动作,触发LED2,LED3亮灭了。
[localvideo]b11343bef72530a53c5adebcdd2fd6c2[/localvideo]
接下来,我们重点体验英飞凌触控重点功能:Capsense Tuner(调教)
CAPSENSE™系统的最佳性能取决于电路板布局、按键尺寸、覆盖层材料和应用要求。除了这些因素,还必须谨慎选择开关频率和阈值,以实现稳定可靠的性能。调校是一个使参数达到最优值的过程。调试用于维持较高的触摸敏感度,以及弥补这个过程中传感器板、覆盖层材料和环境条件的不确定性。
多种 CAPSENSE™器件支持英飞凌的 SmartSense 自动调校算法。该算法将自动配置各个参数以得到最佳性能,然后连续补偿由于系统、生产过程和环境不同引起的变化。
在主界面点击:Capsense Tuner 5.0
会打开Capsense Tuner 5.0界面
点击左上角的Connect,再点击其右边的Start就可以开启我们的调教过程了。
比如按下BTN0,就可以精确看到实时信号值。
注意在最下面的状态栏,可以看到用于Capsense调教的 I2C 通讯信息:刷新速率,状态,地址,时钟,电压等》
切换到Graphic View:可以看到实时曲线,包括了原始数据、计算数据。
然后切换到SNR Measurement 也就是信噪比测量选项卡:
1. 测量本地噪声(默认手指未按下时的电容、转换为计时器的数据)
2. 按下按钮,测量手指按下时的电容、转换为计时器的数据
3. 计算得出信噪比13.66。
另外还可以通过Logging按钮,设置实时记录各项数据用于调试分析,可以说非常详细了!
最后我们可以把手动调教的数据更新到程序中:
注意看左侧展示的设定数据:
最重要的就是触摸阈值:
Finger thredshold:64
手指门槛,也就是触摸阈值,大于64就被认为是按下了按钮。
下面是调教的视频:
[localvideo]e8a1f35634c660d081250f02eb8e03c8[/localvideo]
本次的分享就到这里。
- 2024-11-28
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】②modustoolbox软件及modustoolbox-offline-content分享
本帖最后由 cc1989summer 于 2024-11-28 22:24 编辑
书接上文:
https://bbs.eeworld.com.cn/thread-1298987-1-1.html
ModusToolbox 软件目前最新版是3.3版本。
ModusToolbox 3.3以及ModusToolbox 3.0下载地址:
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
ModusToolbox™ Offline Libraries离线软件包下载地址:
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxofflinecontentpackage
然而由于上述地址下载简直是龟速,速度几乎在10KB/S,甚至会中途莫名其妙中断,我也是费了好大劲才下载下来。
为了方便坛友,特意把这3个软件上传到了阿里云盘(上传下载速度都能达到1MB/S以上,百度网盘就略显尴尬了)
PS:离线软件包不知是否因为zip格式且过大的原因无法分享成功...........
modustoolbox_3.3.0.16857_Windows_x64.exe 等文件
https://www.alipan.com/s/WoVPutBe3Rr
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
百度网盘:
通过百度网盘分享的文件:modustoo…等3个文件
链接:https://pan.baidu.com/s/106nqWsvv3DcbBFAEvqKltA?pwd=1r8i
提取码:1r8i
复制这段内容打开「百度网盘APP 即可获取」
今天的分享就到这里:)
- 2024-11-14
-
回复了主题帖:
【STM32H7S78-DK】(11)语音控制之旅
ly87802541 发表于 2024-11-13 12:31
大佬给力!竟然输出10+篇。
这么强大的板子,测评100+也不过分:loveliness:
- 2024-11-13
-
回复了主题帖:
【英飞凌PSOC™ 4100S Max】①开箱及开发环境搭建
nmg 发表于 2024-11-13 10:06
感谢分享
:loveliness:好东西一起分享
- 2024-11-12
-
发表了主题帖:
【英飞凌PSOC™ 4100S Max】①开箱及开发环境搭建
本帖最后由 cc1989summer 于 2024-11-12 22:04 编辑
非常感谢EEWORLD以及DigiKey 得捷提供我这次试用机会。
早就听闻英飞凌在汽车控制领域的大名,这是我第一次使用英飞凌MCU,非常期待。
提前大致了解了下,英飞凌的MCU产品线主要有4类。
1. TC系列,主要是汽车控制,是英飞凌的王牌产品。基于TriCore™ 的产品在汽车中的应用非常广泛,包括内燃机控制、纯电动和混合动力汽车、变速器控制单元、底盘域、制动系统、电动转向系统、安全气囊、联网和高级驾驶辅助系统,并推动着自动化,电动化以及网联化的发展。
2. PSOC系列(收购cypress),涵盖较广,汽车控制、工业控制、消费电子、物联网等等都有涉及。
3. T2G系列,采用高性能 32 位 Arm® Cortex-M4F® 和 M7F CPU,工作频率最高可至 350 MHz,适用于互联汽车应用。
4. XMC系列,基于ARM® Cortex®-M内核。这个产品系列专门针对功率转换、工厂自动化、楼宇自控、交通和家用电器等领域的应用而打造。
以下为产品线图示:
回到开发板本身,收到后打开感觉十分惊艳,包装精美,看起来不像电子开发板,倒像个精致的礼物。
开发板做工也十分精美,最引人注目的是巨大的触摸板,这也是英飞凌的看家本领,第五代CapSense。
第五代CAPSENSE技术的性能是前几代的十倍,功耗仅是前几代的十分之一,不仅支持工程师开发更直观的用户界面,降低了整体功耗,而且满足便携式电池供电的物联网设备的低功耗需求。全新CAPSENSE是智能门锁、智能开关、恒温器、智能音箱、电动工具、工业触摸屏等各种家用电器、工业应用以及其他物联网设备的理想选择。新技术也很适合有较大触摸屏的电磁炉、洗衣机和烘干机、冰箱、烤箱等工业和家用电器产品。
配置温习下:
32 位 MCU 子系统
带有 DMA 控制器的 48 MHz Arm® Cortex®-M0+ CPU
384 KB 闪存和 32 KB SRAM
带 PLL 的外部 MHz 振荡器 (ECO) 和 32 KHz 手表晶体振荡器 (WCO)
加密块包括 AES、TRNG、CRA、PRNG 和 SHA
可编程模拟块
1 个 12 位、1 Msps SAR ADC
两个运算放大器可配置为可编程增益放大器 (PGA)、比较器 (CMP) 等。
两个低功耗比较器 (CMP)
两个 MSC(多传感转换器)模块集成了第五代 CAPSENSE 和电感传感
可编程数字模块
两个 16 位定时器/计数器/脉宽调制器 (TCPWM) 模块
两个串行通信模块 (SCB),可配置为 I2C、SPI 或 UART
段码式 LCD
I2S 音频输出
一个 CAN-FD(具有灵活数据速率的控制器局域网络)控制器
通电后,有个触摸演示程序。
[localvideo]7799f6b9298a0ff6a61f1d26d395b9ae[/localvideo]
接下来是开发环境搭建。
麻烦事来了。
目前最新版开发工具是ModusToolbox 3.3
下载网址,实际也包含ModusToolbox 3.0:
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
下载(下载速度10+KB/s)安装后,新建工程,发现无法获取芯片列表,该列表需要从github获取,然而由于无法连上github,实际无法使用。
后来发现这是个通病,英飞凌的本地化做的不够好,没有在中国设置服务器。
EEWORLD已经有坛友发过这个问题,
https://bbs.eeworld.com.cn/thread-1237088-1-1.html
https://bbs.eeworld.com.cn/thread-1237247-1-1.html
解决方案是安装ModusToolbox 3.0 以及离线软件包。
ModusToolbox 3.0
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
ModusToolbox™ Offline Libraries离线软件包
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxofflinecontentpackage
下载下来后(下载速度10+KB/s,早上6点可达到500KB/s),
先安装ModusToolbox 3.0,设置好环境变量CY_TOOLS_PATHS
新建项目,仍然得到错误信息,此时,选择offline选项,
注意看下面的报警提示:
没有找到离线包。
那么我们就在提示的目录新建 .modustoolbox目录,然后将下载下来的离线包(整体是个offline目录)存到此目录。
然后重新打开软件新建工程终于可以了!!!!!!
选择官方例程:GPIO pins
然后进行编译及下载。
注意Debug设置,选择 Program(KitProg3)
以下是下载信息:
Open On-Chip Debugger 0.11.0+dev-4.4.0.2134 (2022-09-08-13:07)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
kitprog3 set_latest_version: C:/Users/Administrator/ModusToolbox/tools_3.0/fw-loader 2.40.1241
Info : auto-selecting first available session transport "swd". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
** Auto-acquire enabled, use "set PSOC4_USE_ACQUIRE 0" to disable
cortex_m reset_config sysresetreq
Info : Using CMSIS-DAPv2 interface with VID:PID=0x04b4:0xf155, serial=14060E6D01042400
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: Atomic commands supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : KitProg3: FW version: 2.30.1155
Info : KitProg3: Pipelined transfers enabled
Info : KitProg3: Asynchronous USB transfers enabled
Info : VTarget = 4.885 V
Info : kitprog3: acquiring the device (mode: reset)...
Info : clock speed 2000 kHz
Info : SWD DPIDR 0x0bc11477
Info : [psoc4.cpu] Cortex-M0+ r0p1 processor detected
Info : [psoc4.cpu] target has 4 breakpoints, 2 watchpoints
Info : [psoc4.cpu] external reset detected
*****************************************
** Silicon: 0x2E2D, Family: 0xBE, Rev.: 0x11 (A0)
** Detected Family: PSoC 4100S Max
** Detected Device: CY8C4149AZI-S598
** Detected Main Flash size, kb: 384
** Chip Protection: OPEN
*****************************************
Info : gdb port disabled
Info : starting gdb server for psoc4.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : SWD DPIDR 0x0bc11477
Info : kitprog3: acquiring the device (mode: reset)...
psoc4.cpu halted due to debug-request, current mode: Thread
xPSR: 0xa1000000 pc: 0x10000040 msp: 0x20007fe8
** Device acquired successfully
** Programming Started **
auto erase enabled
Info : Padding image section 0 at 0x0000146c with 148 bytes (bank write end alignment)
Warn : Only mass erase available, erase skipped! (psoc4 mass_erase)
[ 4%] [# ] [ Programming ]
[ 9%] [## ] [ Programming ]
[ 14%] [#### ] [ Programming ]
[ 19%] [###### ] [ Programming ]
[ 23%] [####### ] [ Programming ]
[ 28%] [######## ] [ Programming ]
[ 33%] [########## ] [ Programming ]
[ 38%] [############ ] [ Programming ]
[ 42%] [############# ] [ Programming ]
[ 47%] [############### ] [ Programming ]
[ 52%] [################ ] [ Programming ]
[ 57%] [################## ] [ Programming ]
[ 61%] [################### ] [ Programming ]
[ 66%] [##################### ] [ Programming ]
[ 71%] [###################### ] [ Programming ]
[ 76%] [######################## ] [ Programming ]
[ 80%] [######################### ] [ Programming ]
[ 85%] [########################### ] [ Programming ]
[ 90%] [############################ ] [ Programming ]
[ 95%] [############################## ] [ Programming ]
[100%] [################################] [ Programming ]
wrote 5376 bytes from file C:/Users/Administrator/InfineonWork/GPIO_Pins/build/APP_CY8CKIT-041S-MAX/Debug/mtb-example-psoc4-gpio.hex in 0.291444s (18.014 KiB/s)
** Programming Finished **
** Program operation completed successfully **
srst_only separate srst_gates_jtag srst_open_drain connect_deassert_srst
Info : SWD DPIDR 0x0bc11477
Polling target psoc4.cpu failed, trying to reexamine
Info : SWD DPIDR 0x0bc11477
Info : [psoc4.cpu] Cortex-M0+ r0p1 processor detected
Info : [psoc4.cpu] target has 4 breakpoints, 2 watchpoints
shutdown command invoked
Info : psoc4.dap: powering down debug domain...
Warn :
*******************************************************************************************
* KitProg firmware is out of date, please update to the latest version (2.40.1241)
* using fw-loader tool which can be found in the following folder
* C:/Users/Administrator/ModusToolbox/tools_3.0/fw-loader
*******************************************************************************************
运行效果如下:
[localvideo]74999f0ea117114a68fbab4650a38d04[/localvideo]
本次的开箱分享就到这里了~