自开发一个控制器,用的MCU为S32K146 三条SPI总线都挂了多个SPI从设备。同一条SPI设备,存在每个从设备的时钟极性,相位,位宽不一致。这种情形在SIMULINK中根据不同的SPI从设备进行配置。SPI Reconfig模块用于同一总线上连接多个配置不同的从设备(如波特率、时钟极性/相位不同)。这个SPI Reconfig模块如何使用,有没SPI动态配置的示例。
你好@lsw
根据您的使用情况,我认为您不仅需要重新配置 PCS,还需要重新配置 SPI 配置传输的某些设置。
遗憾的是,S32K1 的 MBDT 并不是为此而设计的,也没有任何区块可以帮助您支持这样做。
不过,还有一种方法,即使用自定义代码插入,本文已讨论过这种方法: https://community.nxp.com/t5/NXP-Model-Based-Design-Tools/How-to-use-your-own-C-code-in-our-Toolbo...
你的情况比这更简单。
首先,您必须为 SPI 所需的第一个配置生成代码,并识别生成的代码序列,如下所示。
然后,你可以复制 lpspi_master_config_t 结构,并在其中填充所有连接到 SPI 总线的设备所需的设置。
每次要调整设置时,都需要先调用
LPSPI_DRV_MasterDeinit(uint32_t instance);
然后是带有所需参数的 Init 函数
LPSPI_DRV_MasterInit(0, &lpspiMasterState0, &spiConfig0);
希望这能帮到您,
Marius