首先感谢面包板社区和RT-Thread提供这次试用的机会。本次测评一句话总结如下:

板子性能优异,可拓展性强,开发环境和资料完整,板子布局略显不合理。

下面是详细测评和二开的过程,供大家参考避坑。

开箱

        本次套件共包含两部分底板和无线模块,图片就不上了,大家测评都已经传过了。这里吐槽一下,无线模块安装之后会遮挡一半capsense的触摸条,影响capsense的使用。望厂家能改进下。

开发环境部署

        避坑:不要下载安装Modus toolbox,这是RT-Thread推出的开发板,和infineon官方的板子有一定区别,在Modus Toolbox中找不到对应评估板。一定要下载安装RT-Thread Studio开发环境。

  • 环境搭建第一步就是下载安装RT-Thread Studio,这一步没啥说的,一路next就行。
  • 安装完成之后安装开发板支持包,这里选择PSOC62-IFX-EVAL-KIT,一路向下所有的依赖就都安装好了。

152052t4jiyg6idtivqsta 152052f5rr71n7dgrlbwir

3、新建工程测试demo,这里RT-Thread提供了三个demo工程可供测试,一个是简单的底板LED闪烁,另外两分别是BLE和WIFI的测试,其中BLE的测试需要搭配infineio的app,有需要可以自行下载安装,demo测试非常顺利,说明板子硬件和开发环境没有问题。三个demo的代码和注意事项都在https://github.com/RT-Thread-Studio/sdk-bsp-cy8c624-infineon-evaluationkit.git 仓库中,有需要的伙伴自行下载。

152052xoda0mouddy4wn0a

152054epc46etpu2p5e27u

基于wifi和capsense的PC触控外设开发

  • 玩PSOC62肯定要试一下特色功能capsense slider功能,也就是电容感应触摸滑条功能,幸运的是这个功能RT-Thread也为我们提供了一个简单的demo,只要在配置中打开相应开关就可以启用相关功能,如下图所示。打开相应开关之后需要保存一下工程,IDE会自动更新配置。之后编译下载运行,通过串口输入“Slider_ctrl_sample”便可启动slider线程,直观的感觉就是通过触摸滑条板子上呼吸灯旁边的LED的亮度会有变化,拍视频多有不便,大家就自行体验吧。

152054xcmibibjja5fifat

  • 有了滑条和wifi只要在PC上写个简单的socket就可以实现无线触控功能了,想想还是挺酷的,哈哈,说干就干,第一步打开板子的socket支持,如下图所示,然后在滑条处理的函数中加上相应的socket处理过程,由于只是demo我就直接通过udp socket把触摸数据发送到电脑上了。

152054yg3gmw3szssc6f6d

        下面是简单的udp socket代码,供参考,使用的时候记得include相应的头文件。

int sock;

    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)

    {

        rt_kprintf("Socket error\n");

        return;

    }

    struct hostent *host;

    struct sockaddr_in server_addr;

    host = (struct hostent *) gethostbyname("192.168.1.12");

    server_addr.sin_family = AF_INET;

    server_addr.sin_port = htons(50001);

    server_addr.sin_addr = *((struct in_addr *)host->h_addr);

    rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));

    char brightChar[4]={0};

    itoa(ledData->brightness, brightChar, 10);

    sendto(sock, brightChar, 4, 0,

           (struct sockaddr *)&server_addr, sizeof(struct sockaddr));

    closesocket(sock);

这段代码插在slider_sample.c的void update_led_state(led_data_t *ledData)这个函数中,用来将led亮度变化的数据传致PC端,192.168.1.12是PC端IP地址,由于对路由器作了设置有线和无线可以互通。

  • 然后又是编译下载运行,成功运行之后串口控制台输出如下:

[12:46:58.549]收←◆

\ | /

- RT -     Thread Operating System

/ | \     5.0.1 build Jul 22 2024 10:40:24

2006 - 2022 Copyright by RT-Thread team

lwIP-2.0.3 initialized!

[I/sal.skt] Socket Abstraction Layer initialize success.

msh >

[12:46:59.438]收←◆WLAN MAC Address : CC:47:40:11:19:FF

WLAN Firmware    : wl0: Dec 12 2022 18:42:34 version 13.10.271.293 (9974213 CY) FWID 01-e2162f9b

WLAN CLM         : API: 18.2 Data: 9.10.0 Compiler: 1.36.1 ClmImport: 1.34.1 Creation: 2022-08-16 03:35:21

WHD VERSION      : 2.6.1.20115 : v2.6.1 : GCC 10.2 : 2023-06-28 02:01:23 +0000

[I/WLAN.dev] wlan init success

[I/WLAN.lwip] eth device init ok name:w0

[I/WLAN.dev] wlan init success

Function whd_wifi_get_mac_address failed at line 2776 checkres = 33556433

[I/WLAN.lwip] eth device init ok name:w1

上述表明程序启动正常,wifi初使化正常,然后通过wifi join SSID PASSWORD命令让无线模块接入无线路由器,成功之后会有如下反馈,192.168.1.16是wifi模块获取到的IP地址:

[12:47:31.606]收←◆WLAN.mgnt] wifi connect success ssid:CU_gdR3

msh >

msh >

[12:47:33.574]收←◆[I/WLAN.lwip] Got IP address : 192.168.1.16

然后输入 Slider_ctrl_sample 命令启动capsense滑条,触摸数据就可以直接发到PC端了,我这里用sscom模拟了一个UDP服务端,接收到的数据如下图所示,说明数据完全打通,后续计划用Qt作一个图形界面来处理模块发送的数据,实现更炫酷的功能,有兴趣的可以一起搞。测评就暂时先到这儿吧。

152054x3d3dt3gt6dt3d02