主题中讨论的其他器件:AMIC110、 TMDSECATCNCD379D、 controlSUITE
您好、C2000冠军
我的客户使用 F28377S 评估 AMIC110 EtherCAT 解决方案。 但我们遇到了一些问题。
我 使用 F28379D launchpad 和 AMIC110 EVM 运行 TMDSECATCNCD379D_EtherCAT_Reference 项目 SPIA 模式、这可以正常工作。 EtherCAT 可以在操作模式下工作并与 C2000进行通信。
但是、当我将项目迁移到客户 F28377s 电路板时、将 SPIA 更改为 SPIB 以及相关 的 ESC_SPI_INT_GPIO、但 SPIB 无法使用函数 HW_EscReadWord (test_read、test_addr)从 AMIC110读取数据; 以及无法初始化 AMIC110、无法在运行模式下工作。
调试后、我发现:
在 ESC_readSPI ()中使用不同代码的 SPIA 和 SPIB。 我不知道为什么。
2、即使在 F28377S 客户电路板中使用 SPIA、如果将 GPIO61设置为 SPISTE、它也不能工作、而是需要将 GPIO61配置为 GPIO 并运行为 CS、就像示例中的 GPIO22一样。 为什么?
// GpioCtrlRegs.GPBGMUX2.bit.GPIO61 = 0x3;
// GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0x3;
GpioCtrlRegs.GPBGMUX2.bit.GPIO61=0;
GpioCtrlRegs.GPBMUX2.bit.GPIO61=0;
GpioCtrlRegs.GPBDIR.bit.GPIO61=1;
//将 SPISTEAn 拉至低电平以启用芯片选择
GpioDataRegs.GPBSET.bit.GPIO61=1;
//在双核 LP Booster Pack 接头上、我们将 GPIO22用作芯片选择
//将 SPISTEAn 引脚启用为 GPIO (输出引脚)
GpioCtrlRegs.GPADIR.bit.GPIO22 = 1;
//将 SPISTEAn 拉至低电平以启用芯片选择
GpioDataRegs.GPASET.bit.GPIO22 = 1;
目前,SPIA 模式下的 SPI CLK 为5MHz,因此 SPIB 或***在 ESC_initSPIFIFO()中具有不同的 SPI 时钟设置。
我们可以设置的最大 SPI CLK 是多少、并使 EtherCAT 实时通信性能更好?
在我的测试中、只需要 SPIA 接口和 SPI_INT_GPIO、然后 EtherCAT 通信就可以正常工作。 那么、这意味着可以保存其他四个 GPIO 吗?
#ifdef USE_SPIA
#define ESC_SPI_INT_GPIO 29
#define ESC_SYNC0_GPIO 0
#define ESC_SYNC1_GPIO 0
#define ESC_RESET_ET1100_GPIO 0
#define ESC_EEPROM_LOADD_GPIO 0
5.是否有更详细的技术文档讨论了 C2000如何与 AMIC110协同工作? 例如、我不知道为什么 AMIC110需要 C2000进行初始化、以及如何使其在操作模式下工作。
谢谢!