主题中讨论的其他器件: C2000WARE
你(们)好,先生。
我使用的是 tms320f28388D 定制板。
我一直在使用集成在定制板中的外部闪存来实现 DFU。
目前、我使用来自外部闪存的 SPI 通信存储和读取 CPU1引导映像、并从 CPU1成功引导。
同样、我尝试 使用 SPI 从 CPU2中的外部闪存存储器存储和读取 CPU2映像。
因此、我像这样设置它:
------------------------------------------------------------------
[CPU1]
device_init();
DEVICE_initGPIO();
//GPIO 设置
GPIO_setPinConfig (GPIO_16_GPIO16);//GPIO16 -> FLASH_WP
GPIO_setPinConfig (GPIO_57_GPIO57);//GPIO57 -> FLASH_CS
GPIO_setPinConfig (GPIO_54_SPIA_SIMO);-> FLASH_SIMO
GPIO_setPinConfig (GPIO_55_SPIA_SOMI);-> FLASH_SOMI
GPIO_setPinConfig (GPIO_56_SPIA_CLK);-> FLASH_CLK
GPIO_setDirectionMode (FLASH_WP、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (FLASH_WP、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (FLASH_WP、GPIO_QUAL_SYNC);
GPIO_setDirectionMode (FLASH_CS、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (FLASH_CS、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (FLASH_CS、GPIO_QUAL_SYNC);
GPIO_setDirectionMode (100、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (100、GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode (100、GPIO_QUAL_SYNC);
GPIO_setMasterCore (16、GPIO_CORE_CPU2);//wp
GPIO_setMasterCore (57、GPIO_CORE_CPU2);/CS
GPIO_setMasterCore (54、GPIO_CORE_CPU2);//SIMO
GPIO_setMasterCore (55、GPIO_CORE_CPU2);//SOMI
GPIO_setMasterCore (56、GPIO_CORE_CPU2);//CLK
GPIO_setMasterCore (100、GPIO_CORE_CPU2);//CPU2引导检查 GPIO
GPIO_writePin (FLASH_WP、1);//高电平
GPIO_writePin (FLASH_CS、1);//高电平
//SPI 设置
SYSCTL_selectCPUForPeripheral (SYSCTL_CPUSEL6_SPI、1、SYSCTL_CPUSEL_CPU2);
SPI_disableModule (SPIA_BASE);
SPI_setConfig (SPIA_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、SPI_MODE_MASTER、1000000、 8);
SPI_disableFIFO (SPIA_BASE);
SPI_disableLoopback (SPIA_BASE);
SPI_setEmulationMode (SPIA_BASE、SPI_emulation_stop_midway);
SPI_enableModule (SPIA_BASE);
//引导至 CPU2
DEVICE_BOOTCPU2 (BOOTMODE_BOOT_TO_FLASH_SECTOR0);
//CTU2 检查
while (GPIO_readPin (100)=0);
while (1)
{
(笑声)
}
[CPU2]
device_init();
CS_LOW;
SPI_writeDataBlockingNonFIFO (SPIA_BASE、WREN);
SPI_readDataBlockingNonFIFO (SPIA_BASE);->已停止。
CS_HIGH;
GPIO_writePin (100、1);
while (1)
{
(笑声)
}
------------------------------------------------------------------
问题是 GPIO 设置正常、但在使用来自 CPU2的 SPI 通信获取数据时冻结。
我想知道 我的错了什么。 在 TRM 或 c2000ware 中似乎无法使用 CPU2的 SPI。
我可以 在 CPU2上使用 SPI 吗? 如果是、我应该如何配置 SPI?
谢谢你。