Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG, LP-MSPM0G3507, BOOSTXL-DRV8323RS
器件型号: MSPM0G3507
Thread 中讨论的其他器件: sysconfig、 BOOSTXL-DRV8323RS
#【错误报告】MSPM0G3507:将 PA15 配置为 GPIO 会导致 SPI1 停止工作
##摘要
在 SysConfig 中将**PA15 配置为 GPIO**时、** SPI1 停止正常运行**、即使 PA15 没有直接分配给任何 SPI1 信号也是如此。 这似乎是 SysConfig 内部资源管理中的一个错误。
##环境
-** MCU**:MSPM0G3507
-**电路板**:LP-MSPM0G3507 (LaunchPad)
-** BoosterPack**:BOOSTXL-DRV8323RS(堆叠在 LaunchPad 上)
-** IDE**:CCS Theia
-** SDK 版本**:(请指定您的版本)
-** SysConfig 版本**:(请指定您的版本)
##重要说明:BOOSTXL-DRV8323RS 连接
** BOOSTXL-DRV8323RS BoosterPack 在 LP-MSPM0G3507 上堆叠时、会重现此问题。**
BOOSTXL-DRV8323RS 影响此行为的确切原因目前未知、但这是重现此问题的关键条件。
### BOOSTXL-DRV8323RS 引脚使用(参考)
根据 BOOSTXL-DRV8323RS 用户指南 (SLVUB01C):
| J3/J4 引脚|功能 |说明 |
|----- |----- |---------------------------------------- |
| J3.13 | SCLK | SPI CLK |
| J4.12 | SDI | SPI MOSI(DRV832xx 的数据输入) |
| J4.14 | SDO | SPI MISO(DRV832xx 的数据输出)|
| J4.18 | NSCS/GAIN | SPI 芯片选择 |
**注意**:PA15 对应于 LP-MSPM0G3507 上的 J3.30、BOOSTXL-DRV8323RS 不直接在其引脚表中使用该引脚。 但是、如果存在此 BoosterPack、则问题发生似乎是必需的。
##问题描述
###当前 SPI1 配置(工作)
```javascript
//.syscfg 文件中的 SPI1 引脚分配
SPI1.peripheral.sclkPin.$assign =“BoosterPack.7";“; // PA12
SPI1.peripheral.mosiPin.$assign =“BoosterPack.15";“; // PB8
SPI1.peripheral.misoPin.$assign =“BoosterPack.14";“; // PB7
SPI1.peripheral.cs2Pin.$assign =“BoosterPack.12";“; // PB0
```μ s
**注意**:`BoosterPack.15`对应于**PB8**、而不是 PA15(由 LaunchPad 用户指南图 2-10 确认)。
要重现的###步骤
1.创建有效的 SPI1 配置、如上所示
2.将以下 GPIO 配置添加到.syscfg 文件:
```javascript
GPIO1.associatedPins.create (2);
GPIO1.associatedPins[1].$name =“USER_TEST";“;
gpio1.associatedPins[1].initialValue =“set";“;
GPIO1.associatedPins[1].pin.$assign =“PA15";“;
```μ s
3.构建并刷写项目
4.**结果**:SPI1 通信失败
预期行为###
- PA15 配置为 GPIO 不应影响 SPI1 操作
- SPI1 正在使用 PB8 (MOSI)、PB7 (MISO)、PA12 (SCLK)、PB0 (CS2)
- PA15 未分配给任何 SPI1 信号
###实际行为
-当 PA15 被配置为 GPIO 时,SPI1 停止工作
-删除 PA15 GPIO 配置会恢复 SPI1 功能
##调查结果
#### PA15 备选函数(来自数据表表表 6-2)
PA15 (PINCM37) 具有以下数字交替功能:
- UART0_RTS [UART0=2] PF
-** SPI1_CS2 [CS2=3]** PF←关键点
- I2C1_SCL [I2C1=4] PF
- TIMA1_C0 [TIMA1=5] PF
- TIMG8_IDX [TIMG8=6] PF
- TIMA1_C0N [TIMA1=7] PF
- TIMA0_C2 [TIMA0=8] PF
###键观察
- PA15 列为 SPI1_CS2**的**备用引脚
-然而,在我的配置中,SPI1_CS2 被明确分配给**PB0**(`BoosterPack.12`)
*** PA15 没有直接分配给 CS2 或任何其他 SPI1 功能**
###疑似根本原因
SysConfig 似乎存在内部资源管理问题、其中:
当 PA15 配置为 GPIO 时、SysConfig 会检测到 PA15 将 SPI1_CS2 用作替代功能
2.即使 SPI1_CS2 明确分配给 PB0、SysConfig 也会错误地处理 PA15 配置
3、这会导致对 SPI1 外设配置进行意外的更改
###相关的已知问题
从** MSPM0 SDK 已知问题和常见问题解答**开始:
>选择能够同时在同一引脚上工作的模拟外设输入/输出时, SysConfig 将显示资源冲突错误。
>
>解决方法:选择所需的特定引脚(不要保留为“任何“),然后选择忽略错误的选项。
该问题记录下来会影响模拟外设、但数字外设 (SPI) 上可能会发生类似的资源冲突。
##引脚映射基准
| BoosterPack 引脚| MCU 引脚| Project 中的功能|
|------------ |----- |---------------------- |
| BoosterPack.7 | PA12 | SPI1_SCLK |
| BoosterPack.14 | PB7 | SPI1_POCI (MISO) |
| BoosterPack.15 | PB8 | SPI1_PICO (MOSI) |
| BoosterPack.12 | PB0 | SPI1_CS2 |
| BoosterPack.30 | PA15 |(尝试 GPIO) |
##问题
1.这是 SysConfig SPI 芯片选择备用引脚的资源管理中的已知问题吗?
2.是否有权变措施可以在将 SPI1_CS2 保持在 PB0 上的同时使用 PA15 作为 GPIO?
3. TI 能否确认这是否是将在未来的 SDK/SysConfig 版本中修复的错误?
##解决方法请求
请告知是否有任何解决方法:
-使用 PA15 作为 GPIO
-在 PB0 上保持带有 CS2 的 SPI1
##附件
-.syscfg 文件(可按需提供)
-生成的 ti_msp_dl_config.h/c 文件显示问题(可应要求提供)
——
**感谢您调查此问题