This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:通过 SPI 连接外部闪存

Guru**** 2538950 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1420980/tms320f28379d-external-flash-via-spi

器件型号:TMS320F28379D

工具与软件:

我正在尝试通过 SPI 与外部闪存器件 Infineon S25FL512S 进行连接。

我曾提及 S25FL512S 数据表(https://www.digikey.com/en/htmldatasheets/production/1207771/0/0/1/s25fl512s)和 TMS320F2837xD TRM SPI 第18部分。  但是、我的所有命令都返回全部0xFF。  我将 示波器连接到 LaunchPad 的 J5引脚47 (应映射到 GPIO65、用于 SPICLKB)和接地、 然后我看到时钟信号断开。

我已经基于"spi_ex6_eeproM"创建了一个简单项目。  该编译器具有一个主循环、可向闪存器件发送 RDID 命令以读取其制造商和器件标识。

我指定了正确的 SPI 配置设置:

    SPI_disableModule(SPIB_BASE);

    SPI_setConfig(SPIB_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA1,  // Rising edge with delay
                  SPI_MODE_CONTROLLER, 1000000, 8); // bitRate = 1 MHz
    SPI_setPTESignalPolarity(SPIB_BASE, SPI_PTE_ACTIVE_LOW);
    SPI_disableFIFO(SPIB_BASE);
    SPI_disableLoopback(SPIB_BASE);
    SPI_setEmulationMode(SPIB_BASE, SPI_EMULATION_STOP_MIDWAY);
    SPI_enableModule(SPIB_BASE);

我已经三次检查 LaunchPad 上连接了正确的 GPIO 引脚:

GPIO63 = SPISIMOB = LaunchPad 引脚55
GPIO64 = SPISOMIB = LaunchPad 引脚54
GPIO65 = SPICLKB = LaunchPad 引脚47.
GPIO66 = SPISTEB = LaunchPad 引脚59

(包括3.3V 和接地)。

非常感谢您提供任何建议。

谢谢!

Diane

e2e.ti.com/.../8836.ExternalFlash.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现了问题。  S25FL512S RESET#引脚也必须连接到 GPIO、并且我必须将该 GPIO 拉至高电平。  我把它连接到 GPIO97 (LaunchPad 引脚45)、现在一切都可以正常工作。

        // configure GPIO 97 for the RESET signal
        GPIO_setPinConfig(GPIO_97_GPIO97);
        GPIO_setPadConfig(97, GPIO_PIN_TYPE_STD);
        GPIO_setDirectionMode(97, GPIO_DIR_MODE_OUT);    // GPIOX = output
    
    ...
    
        // RESET signal
        GPIO_writePin(97, 1);