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.

[参考译文] TM4C1294NCPDT:通过 SSI 接口访问 Spansion 1 Gbit 闪存

Guru**** 2442210 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/628515/tm4c1294ncpdt-access-spansion-1-gbit-flash-through-ssi-interface

器件型号:TM4C1294NCPDT

你(们)好

我的新产品系列具有一个 Spansion 闪存(1Gbit)- S70FL01Gs-通过基于 Tiva TM4C1294NCPDT 的板的 SSI 接口连接、是否有任何经过验证的代码库可用于访问 Tiva 形式的 SPI 闪存?

谢谢

帕维特拉

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

    PAVILITRA、

    我的同事正致力于一个驾驶员来控制一个空间(现在是 Cypress)存储器。 尽管我们的器件型号不同、但协议可能相同... 我们的目标是在下周结束前使其发挥作用。

    无论如何、现在我可以帮助处理一段在 SSI 通信中确实有效的代码。 这个与一个32位字传感器进行通信、在发送一个"帧命令"后的下一个周期获得一个应答。 总线配置为7.5MHz。

    uint32_t FRAME = 0x0A0B0C0D;
    uint32_t rullRegister;//器件的32位响应
    
    帧高=帧>> 16;
    帧低=帧和0xFFFF;
    
    IntMasterDisable();
    GPIOPinWrite (gyroHW->hwFSSBase、gyroHW->hwFSSPin、0);//较低的 CSB
    SSIDataPut (gyrohw->hwSSIBase、frameHigh);//仅发送高16位
    SysCtlDelay ((system_clock_Hz/(3*7500000)));
    while (SSIBusy (gyroHW->hwSSIBase));//刷新前16位
    SSIDataGet (gyrohw->hwSSIBase、readCrap);//读取无用数据
    SSIDataPut (gyrohw->hwSSIBase、(frameLow));//这会发送其他16位
    SysCtlDelay ((system_clock_Hz/(3*7500000)));
    while (SSIBusy (gyroHW->hwSSIBase));//刷新第二个16位
    GPIOPinWrite (gyroHW->hwFSSBase、gyroHW->hwFSSPin、gyroHW->hwFSSPin);//提升 CSB
    SSIDataGet (gyrohw->hwSSIBase、readCrap);//读取无用数据
    GPIOPinWrite (gyroHW->hwFSSBase、gyroHW->hwFSSPin、0);//较低的 CSB
    SSIDataPut (gyrohw->hwSSIBase、frameHigh);//刷新第三个16位
    SysCtlDelay ((system_clock_Hz/(3*7500000)));
    while (SSIBusy (gyroHW->hwSSIBase));//等待位被清空
    SSIDataGet (gyrohw->hwSSIBase、read16High);//读取16位
    SSIDataPut (gyrohw->hwSSIBase、frameLow);//刷新最后16位
    SysCtlDelay ((system_clock_Hz/(3*7500000)));
    while (SSIBusy (gyroHW->hwSSIBase));//等待位被清空
    SSIDataGet (gyrohw->hwSSIBase、read16Low);//读取更多数据
    GPIOPinWrite (gyroHW->hwFSSBase、gyroHW->hwFSSPin、gyroHW->hwFSSPin);//提升 CSB
    IntMasterEnable();
    
    readReg =(read16High << 16)| read16Low;
    memcpy (fullRegister、&readReg、4);
    

    希望这对您有所帮助。 如果您稍后可以与您的"解决方案"结果协作、那将是不错的。

    布鲁诺