Thread 中讨论的其他器件: C2000WARE
工具与软件:
我正在进行从 F28335 DSP 移植到 F28379D DSP 的项目固件更新。 我们为 SCI GPIO Init 使用了 C2000ware API、即函数 GPIO_setMasterCore、GPIO_setPinConfig、GPIO_setPadConfig 和 GPIO_setQualification Mode。 在新处理器上、SCI 和 CAN 通信已经运行了很长时间、包括在专有硬件以及我们用于调试通信的 LaunchXL-F28379D 板上。
在过去几个月中、一个新团队成员提出了用于初始化 GPIO 引脚的修订算法。 它将 GPIO 引脚多路复用分配与其他 GPIO 选项结合在一起-输入与输出、上拉或禁用上拉、异步与 SYNC、INIT 状态高电平或低电平等 除了 SCIB GPIO 引脚被分配给 GPIO18和 GPIO19在 LaunchXL-F28379D 板上进行测试时、新方案似乎适用于一切、但当使用 GPIO137和 GPIO138时、SCIB 连接到新的专有板上时、新方案似乎可以正常工作。 我一直在调试新的 GPIO 初始化方案、以尝试找出在使用新的初始化方案时 GPIO19无法接收的原因。
固件应用程序的所有其余部分保持不变。 只有新的 GPIO 初始化方法是不同的。 我已经通过 CCS 调试器验证 SYSCLK 和 LSPCLK 没有变化、200 MHz 和波特率都设置正确。 GPIO_18_SCITXDB 的 pinmux 位字段分配 为 0x00080402U、 GPIO_19_SCIRXDB 的 pinmux 位字段分配为 0x00080602U。 对于正在工作和未工作的固件版本、GPIO18和 GPIO19的 GPIO 控制寄存器内容如下:
GPIO18 GPIO19
GPAQSEL2: 0x11 0x11
GPAMUX2: 0x10 0x10
GPADIR: 0x1 0x0
GPAPUD: 0x1 0x0
两个 GPIO 引脚的所有其他控制寄存器条目都是0。
对于这些寄存器设置、旧的 GPIO 初始化可在115200波特、8位、无奇偶校验和一个停止位的条件下实现稳定的通信。 使用新方法进行初始化时、SCIB 无法接收数据。
在使用新的 GPIO 初始化方法执行固件时、我忽略了是否有 GPIO 配置组件、这可能会导致接收失败?

