RTThread出品的Edge Talk开发板使用Infineon的PSoC Edge E84芯片作为主控,本文介绍如何使用英飞凌的ModusToolbox工具集配置开发板的外设,运行英飞凌的官方例程。
1、英飞凌ModusToolbox工具集
英飞凌的ModusToolbox工具集,用于英飞凌MCU的片上资源配置(Device Configurator)、BSP生成(BSP Assistant)、外部存储器件管理(QSPI Configurator)、工程组件库管理(Library Manager)等。相关的工具在VSCode开发环境中进行调用。

2、RTThread Edge Talk硬件资源配置
对于RTThread的Edge Talk,不算官方的开发板,ModusToolbox默认安装中不支持这块开发板,需要相应的BSP支持包,RTThread官方提供的仓库中可以找到相应的BSP支持包,类似ST的CubeMX、Renesas的FSP(RASC)、NXP的MCUXpresso SDK,作用是用于提供MCU的驱动代码。
Edge Talk的仓库文档中,有开发板的核心板和基板的原理图。
"sdk-bsp-psoc_e84-edgi-talk\docs\board\PSOC-Edge-E84\PSoc_Edge_Core_Schematic.pdf"
"sdk-bsp-psoc_e84-edgi-talk\docs\board\PSOC-Edge-E84\PSoc_Edge_Basic_Schematic.pdf"
以调试器串口的引脚为例,下图左侧为核心板原理图的截图,引脚名称左侧的数字表示关联该引脚的其他页面的序号。右侧为基板的原理图,从原理图的引脚连接,通过几张图连接到一起,确定调试器串口引脚和MCU引脚的连接关系。

调试器引脚连接器引脚MCU引脚
| DEBUG_UART_RX | UART_RX | P6_7 |
| DEBUG_UART_RX | UART_TX | P6_5 |
同样地,可以找到板载的三个LED的引脚。

调试器引脚连接器引脚MCU引脚
| USER_LED1 | USER_LED1 | P16_7 |
| USER_LED2 | USER_LED2 | P16_6 |
| USER_LED3 | USER_LED3 | P16_5 |
ModusToolbox DashBoard提供BSP Assistant的启动和说明书。
BSP Assistant选择Create a new BSP->Select device part numbers,根据PSE846GPS2DBZC4选择芯片,并指定BSP的存储位置。

在管理界面显示BSP可配置的不同选项以及对应选项可以使用的软件工具。

启动Device Configurator,配置MCU的引脚、时钟等资源,核心板使用ECO外部晶振电路用于提供外部时钟源,Device Configurator的Clock选项卡中设置ECO时钟源。

Peripherals选项卡中用于使能MCU使用到的外设和设置相应的外设参数

Clock界面中调整时钟树的配置,用于生成SCB2的时钟驱动。

板载的LED引脚设置,通过Pins选项卡,使能引脚和设置GPIO的参数。

PSoC Edge E84可以选择从内部地RRAM启动或者外部的Flash启动,开发板默认是从外部的Flash启动,通过调整开发板的拨码开关进行BOOT选项的切换。

核心板的外部Flash(S25FS128SAGMFI101)和PSRAM(S70KS1283GABHV020)的原理图如下。

两个器件对应的MCU引脚如下

Device Configurator的Perpherals选项卡中勾选用于管理外部Flash和HyperRAM的QSPI0和QSPI1外设。

时钟树中配置CLK_PATH0、PLL0和CLK_HF3,用于QSPI0的时钟驱动

QSPI0外设配置页面选择时钟和引脚

类似地,QSPI1的时钟和外设配置如下。


BSP Assistant中添加用于管理QSPI存储的QSPI Configuration,其中用于管理QSPI存储器件的地址和指令,是高度集成化的工具。完成QSPI的读写驱动、外部FlashLoader生成等。

启动QSPI Configurator,配置外部Flash和HyperRAM,关于QSPI Configurator的具体使用说明,可以查看Help链接的文档。

QSPI Configrator中默认支持开发板的Flash和HyperRAM型号,根据对应的QSPI接口设置相应的存储芯片型号、接口类型、读写权限和XIP参数。QSPI可以生成用于烧录外部Flash的FlashLoader文件,勾选上方的FlashLoader Directories并设置文件夹名称,保存QSPI Configurator文件,在BSP的bsps\TARGET_Edge_Talk\config\GeneratedSource路径下会生成PSE84_SMIF.FLM用于外部Flash烧录的FlashLoader文件,将其复制到bsps\TARGET_Edge_Talk\config\FlashLoaders中,用于工程后续的固件烧录。

BSP Assistant中,可以额外添加宏定义,经过测试,工程需要添加CYBSP_MCUBOOT_HEADER_SIZE=0x400宏。

生成的宏设置可以在bsps\TARGET_Edge_Talk\bsp.mk中找到。
3、使用BSP创建ModusToolbox示例工程
ModusToolbox的Project Creator中会自动导入创建的BSP,根据创建的BSP的存放路径,选择自定义的Edge Talk BSP。

由于BSP只配置了串口,在示例选择界面,选择Hello World示例程序,用于验证BSP设置是否正确。
Edge_Talk_Hello_World\proj_cm33_ns\main.c
/* \x1b[2J\x1b[;H - ANSI ESC sequence for clear screen. */
printf("\x1b[2J\x1b[;H");
printf("****************** "
"PSOC Edge MCU: RTThread Edge Talk "
"****************** \r\n\n");
printf("Hello World!\r\n\n");
printf("For more projects, "
"visit our code examples repositories:\r\n\n");
printf("https://github.com/Infineon/"
"Code-Examples-for-ModusToolbox-Software\r\n\n");编译并烧录程序到开发板后,查看开发板的串口输出信息如下

我要赚赏金
