英飞凌CYW20829这块开发板非常的不错,其所使用的低功耗蓝牙系统级芯片(SoC)支持最新的蓝牙5.4规范,凭借其低功耗与高性能完美结合,可支持完整的低功耗蓝牙(LE)用例,包括智能家居、传感器、医疗看护、照明、蓝牙mesh网络、远程控制、人机交互设备(鼠标、键盘、虚拟现实和游戏控制器)、工业自动化以及汽车等。
收到开发板,外包装精美,但板子是最重要的,具体如下:
下面,就先建立开发环境,开始玩起来了。
一、开发工具下载英飞凌CYW2082开发板需要使用ModusToolbox开发工具,这个工具不是公开下载的,需要在英飞凌的官方注册账号,然后下载。账号注册:https://softwaretools.infineon.com/tools
访问后,点击右上角对应位置,然后注册账号:
注册后,在搜索modus,找到开发工具,下载:
然后,再访问:https://softwaretools.infineon.com/software ,下载离线包:
二、开发工具安装
下载完成后,直接点击安装即可:
安装完成,选择打开开发工具:
首次使用,需要登录:
点击登录,会打开浏览器,用之前注册的账号登录即可,成功后如下:
最终开发工具也登陆成功:
如果下载了前面的离线包,可以直接安装离线包,就不需要下面的步骤了。
待上述界面刷新后,会列出可以安装的包:
勾选上面的这些即可,然后继续:
安装过程中,可能会有失败的:
待它安装完可以安装的后,再重试失败的。
或者挂一个可靠的上网方式,就能顺利安装了。
实在不行,就用上面的离线包吧,虽然大点,但是省心得很。
另外,需要注意的是,有的工具需要Request以后,审核通过了,才能下载:
如:ModusToolbox™ Smart Induction Cooktop Pack
安装完成以后,即可打开Dashboard,开始进行开发了:
三、第一个测试工程
在Dashboard界面,按照自己的IDE的习惯,选择合适的即可,这里我用的是VSCode。
然后打开项目创建工具:
在搜索对应的开发板类型:CYW20829,并选择具体对应的型号。
然后设置好路径,选择对应的样例工程即可:
第一次,可以选择Hello World样例程序。
创建完毕后,去设置的目录中,用VsCode打开创建的工程:
将开发板连接后以后,可以直接从调试界面中,选择运行模式:
上述四项,分别为:
选择第一项,并点击绿色运行小图标,代码编译完成后,就会进入如下的界面:
在这个界面中,可以进行断点调试,对于排查程序运行过程,以及调试问题,非常的方便。
四、调试串口输出工程
在工程创建界面,选择串口样例,创建对应工程:
然后用VSCode打开创建的工程:
在main.c文件中,取消原有的for(;;)部分,添加对应的串口输出的代码:
const char info[] = "Hello 21ic, Hello Infineon CYW20829!\r\n";
int l = sizeof(info)/sizeof(info[0]);
for (;;)
{
for (int i=0;i<l;i++)
{
if (CY_RSLT_SUCCESS != cyhal_uart_putc(&cy_retarget_io_uart_obj, info[i]))
添加完成后,即可调试运行:
此时,打开串口监听工具,监听如下的调试串口:
然后让程序继续运行,就可以收到串口发送的信息了:
五、呼吸灯实验
首先,使用工程创建工具,创建一个基于Ramping LED using SmartIO的工程:
然后在VsCode中打开,查看Smart IO的定义:
及其对应的引脚定义:
从上可以得知,这个工程中的Smart IO,使用的是P3.7。
然后,通过使用手册可以得知,开发板上的USER LED的引脚:
将P3.7和P1.1(USER_LED1)或者P5.2(USER_LED2)连接起来:
然后编译烧录工程,程序跑起来以后,USER_LED2就成为了呼吸灯了:
六、串口收发实验
在前面的串口工程中,将收发部分的代码打开:
然后重新编译烧录并运行,最终结果如下:
当通过串口发送数据时,开发板收到发送的数据,并再次发送回来。
另外,从用户手册中可以得知,UART对应的接口:
七、QSPI外设实验
从用户手册中可以得知,CYW20829开发板带有8M QSPI Flash,可以用于用户数据存取。
下面,就进行读取测试。
首先,创建一个串口Flash读写工程:
然后用VsCode打开生成的工程:
并在合适的位置,添加延时语句。
再修改原有的代码,将测试区块的数据都清零,然后写入:Hello 21ic, Hello Infineon CYW20829!
最后,再读取出来,检查读取的数据是否和原来写入的数据一致,并输出读取到处的数据。
修改完成后,打开串口监听工具,然后编译烧录到开发板运行,最终结果如下:
从上面的输出中可以看到,写入字符串到Flash:Hello 21ic, Hello Infineon CYW20829!
最终,从Flash中读取出来的字符串,也是:Hello 21ic, Hello Infineon CYW20829!
这说明,写入和读取校验正确。
|