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.

[参考译文] AM2434:OSPI 读取命令第一位半级问题。

Guru**** 2393725 points
Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question

器件型号:AM2434
主题中讨论的其他器件: SysConfig

工具与软件:

尊敬的专家:

    (AM2434 + S28HL512T)  

闪存数据表:  

https://www.infineon.com/dgdl/Infineon-S28HS512T_S28HS01GT_S28HL512T_S28HL01GT_512MB_1GB_SEMPER_TM_FLASH_OCTAL_INTERFACE_1_8V_3-DataSheet-v68_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee6bca96f97

    在8D 模式下读取 OSPI 闪存时的波形、发现 DQS 引脚的高电平未到达第一个数据位处的 VDD、如下图所示。

对应于以下标记。

我们认为这 可能是由于 SysConfig 的此配置值造成的

通过 ospi_flash_diag 项目、我们可以从闪存芯片中读取 dummyClksRd = 24、  它恰好比 SysConfig 值低一个时钟。

主机延迟了 CLK 释放 DQS 引脚的时间、导致出现半电平?

在测试时、将该值更改为26、 然后再扩展一个 CLK 半电平、如下图所示。  

然后 更 改为24、无法正确从闪存读取值。

现在我们想问一下我们的猜测是否正确、如何消除这个半层次的问题?

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

    最新动态:

    OSPI 配置的器件。 "协议使能配置"->"Dummy Clocks (Read)"= 25、但闪存芯片虚拟寄存器=24。 但是、当我将它们调整为相同值时、例如24、25或8、从闪存读取的值不正确。

    为什么主机虚拟周期需要大于从器件?

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

    您好!

    假设您在定制电路板上。

    如果是、您可以继续操作并运行 OSPI 闪存诊断示例。

    这样、它将为虚拟时钟命令和虚拟时钟读取提供一些值。

    我知道适用于闪存器件 S28HL512T 的 SysConfig 中已经填充了该值、但如果您能够运行诊断程序并共享日志、我将不胜感激。

    请从日志设置虚拟时钟读取和虚拟时钟命令。

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

    关键问题是:

    如何为 OSPI 控制器和器件/闪存配置虚拟周期。 从测试结果来看、控制器侧需要比器件/闪存侧多1个周期。  

    OSPI 示例的默认 SysConfig 也会设置为此模式、原因和基础?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请从日志中设置虚拟时钟读取和虚拟时钟命令。

    此调制不起作用、我已尝试过 S28HS512T/S28HL512T/MX25LM256。

    读取 json 配置、如下所示:

    "flashSize":67108864、
    "flashPageSize":256、
    "flashManfId":"0x34"、
    "flashDeviceId":"0x5A1A"、
    "flashBlockSize":262144、
    "flashSectorSize":4096、
    "cmdBlockErase3B":"0xDC"、
    "cmdBlockErase4B":"0xDC"、
    "cmdSectorErase3B":"0x21"、
    "cmdSectorErase4B":"0x21"、
    "protos":{
    "P111":{
    "isDTr":错误、
    "cmdRd":"0x03"、
    "cmdWr":"0x02"、
    "modeClksCmd":0、
    "modeClksRd":0、
    "dummyClksCmd":0、
    "dummyClksRd":0、
    "enableType":"0"、
    "enableSeq":"0x00"、
    "dummyCfg":null、
    "protoCfg":null、
    "strDtrCfg":空
    }、
    "P112":null、
    "P114":null、
    "p118":null、
    "P444s":null、
    "P444d":null、
    "P888s":null、
    "p888d":{
    "isDTr":正确、
    "cmdRd":"0xEE"、
    "cmdWr":"0x12"、
    "modeClksCmd":0、
    "modeClksRd":0、
    "dummyClksCmd":4、
    "dummyClksRd":24、
    "enableType":"0"、
    "enableSeq":"0x00"、
    "dummyCfg":{
    "isAddrReg":true、
    "cmdRegRd":"0x65"、
    "cmdRegWr":"0x71"、
    "cfgReg":"0x00800003"、
    "Shift":0、
    "mask":"0x03"、
    "bitP":11.
    }、
    "protoCfg":{
    "isAddrReg":true、
    "cmdRegRd":"0x65"、
    "cmdRegWr":"0x71"、
    "cfgReg":"0x00800006"、
    "Shift":0、
    "mask":"0x00"、
    "bitP":0
    }、
    "strDtrCfg":{
    "isAddrReg":true、
    "cmdRegRd":"0x65"、
    "cmdRegWr":"0x71"、
    "cfgReg":"0x00800006"、
    "移位":1、
    "mask":"0x00"、
    "bitP":1.
    }
    }、
    "pCustom":{
    "fxn":空
    }
    }、
    "addrByteSupport":"1"、
    "fourByteAddrEnSeq":"0xA0"、
    "cmdExtType":"Repeed"、
    "ResetType":"0x10"、
    "deviceBusyType":"1"、
    "cmdWren":"0x06"、
    "cmdRdsr":"0x05"、
    "srWip":0、
    "srWel":1、
    "cmdChipErase":"0xC7"、
    "rdIdSettings":{
    "cmd":"0x9F"、
    "numBytes":5、
    "dummy4":0、
    "dummy8":0
    }、
    "xspiWipRdCmd":"0x65"、
    "xspiWipReg":"0x800000"、
    "xspiWipBit":0、
    "flashDeviceBusyTimeout":256000000、
    "flashPageProgTimeout ":512
    }

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

    您好!

    在 SysConfig 前面设置的值在 TI EVM 上进行测试、并且同样适用。

    由于您的定制板上当前设置的值、是否存在任何功能阻塞?

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

    它功能强大、

    #1。 但是、波形在读取的第一个数据位上是异常的。 如何解读中间电平的波形。

    #2。 24/25适用于200MHz、它太大、不需要用于33.5MHz、废弃物循环和引线低吞吐量。

    #3. 使用33.5MHz 验证5 (闪存)/6 (soc)虚拟周期、它通过数据写入/读取测试。

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

    尊敬的 Tony:

    我需要在我的 TI EVM 上运行它。

    您能从下面突出显示的部分告诉我何时发现此行为吗?

    是就在读取/写入事务开始之前、还是其他地方?

    此致、

    Vaibhav  

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

    每个读取事务的数据阶段的第一位。

    在 OSPI 引导期间也可以捕获到数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="589657" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question "]

    对应于以下标记。

    [报价]

    如图所示、如果第一个读取字节等于0xff、您可以在所有 DQS 引脚上重现此行为

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

    您好、Vaibhav、是否有任何更新? 同样的问题可能会在 EVM 板上重现。

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

    您好!

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

    尊敬的 Vaibhav:

    您的线程告诉您如何根据运行的 ospi 时钟频率选择虚拟周期数。  

    但我的问题是:   

    #1。 为什么需要将 控制器侧的虚拟周期配置为比器件/闪存侧多1个周期。 否则访问失败。

    #2。 使用#1获取中间层中的第一个数据位波。

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

    尊敬的 Tony:

    24/25适用于200MHz、太大了、33.5MHz 不需要、

    客户设置的时钟频率和时钟分频器是多少? 如果出现以下情况、还请告诉我:

    1. 在 OSPI 部分是否启用 DMA。
    2. 启用 PHY 选项会怎么样。
    [报价 userid="35100" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5682929 #5682929"]#1。 为什么需要将 控制器侧的虚拟周期配置为比器件/闪存侧多1个周期。 否则访问失败。[/QUOT]

    我已经和软件团队核实了这一点。 理想情况下、应为闪存数据表中提到的值假定 x。

    由于 TI EVM 板上存在其他延迟以及电路板启动时的延迟、我们设置 的值 与闪存数据表中提到的值相差1。

    [报价 userid="35100" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5682929 #5682929"]#2。 使用#1获取中间层中的波形第一个数据位。

    我将在探测 DQS 线路后得到这个波形、目前我已经探测了所有数据线路、芯片选择和时钟。 一旦创建了波形、我将共享如何捕获第一个位、并显示 CS、CLK、D0...D7和 DQS 线路的行为。 从这一点开始、我们可以继续讨论并制定改进计划。

    期待您的答复。

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

    客户设置的时钟频率和时钟分频器是什么? 还请告诉我是否:

    我们知道如何设置、只是想让 BU 知道默认 SysConfig 值不合理。  

    [报价 userid="531612" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5701702 #5701702"]由于 TI EVM 板上存在其他延迟以及电路板启动时、我们设置的 值 与闪存数据表中提到的值相差1。

    仍然不了解为何、如果由于电路板延迟、除了+1个周期之外应该减去1 (与前文所述的闪存数据表相比)。  

    如果这是规则、应该会在某个位置突出显示它。

    [报价 userid="531612" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5701702 #5701702"]我在探测 DQS 线后将得到此波形、目前我探测了所有数据线、芯片选择和时钟。

    是否正在处理其他问题、对于该问题、捕获一个数据位就足够了、只需检查第一个位边沿、原因是它需要为1而不是0。

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

    尊敬的 Tony:

    感谢您的耐心。

    [报价 userid="35100" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5703275 #5703275"]

    仍然不了解为何、如果由于电路板延迟、除了+1个周期之外应该减去1 (与前文所述的闪存数据表相比)。  

    如果这是规则、应该会在某个位置突出显示它。

    [报价]

    我将与软件团队核实如何改进此产品并使客户易于理解。

    您是要解决其他问题、对于此问题、捕获一个数据位就足够了、只需检查第一个位边沿、原因是它需要是1而不是0。

    我一直在处理一个并行问题、所以我在线程之间在进行杂耍。 我不必担心向您发送波形、但以下波形可能没有探测 DQS 线路、它会向您显示 CS、CLK 和所有8条数据线路 D0、...D7。

    请在此处查找:

    e2e.ti.com/.../memcpy_5F00_128bytes_5F00_8d_5F00_8d_5F00_8d.sal

    如何查看波形?

    要查看波形、只需前往此网站并 下载 Logic 2软件 https://www.saleae.com/pages/downloads

    下载后、您可以保存附加的扩展名为.Sal 的波形、然后只需单击即可。 它将自动打开逻辑2软件并显示波形。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="53612" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5704256 #5704256"]

    我一直在处理一个并行问题、所以我在线程之间在进行杂耍。 我不必担心向您发送波形、但以下波形可能没有探测 DQS 线路、它会向您显示 CS、CLK 和所有8条数据线路 D0、...D7。

    请在此处查找:

    memcpy_128bytes_8d_8d_8d.Sal

    [报价]

    尊敬的 Vaibhav:  

    逻辑分析仪不适合捕获半电平、它只有两个值0/1。 示波器正常。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    逻辑分析仪不适合捕获半级、它只有两个值0/1。 示波器正常。[/QUOT]

     我需要看看能否快速获得一个示波器并捕获波形。

    请允许我工作几个工作日。 一旦我在这方面取得进展、我就会提供更新。

    如果我在1S-1S-1S 模式下捕获波形、可以吗?

    因为获取全部8条数据线将是一项具有挑战性的任务、尤其是对于示波器而言。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="53612" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5704407 #5704407"]

    如果我在1S-1S-1S 模式下捕获波形、可以吗?

    因为获取全部8条数据线将是一项具有挑战性的任务、尤其是对于示波器而言。

    [报价]

    如果第一个字节= 0xff、则可以捕获任何一个 DQ 引脚、无需捕获所有 DQ 引脚。 我们仅在8d 模式下进行了测试

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于获取全部8条数据线将是一项艰巨的任务、尤其是对于示波器。

    您认为为何需要捕获全部8条数据线路? 我们已明确声明仅检查任何数据线波形的第一位。

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

    尊敬的 Vaibhav:

    波形是否有更新?

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

    我目前将测量波形、并会在某个时间内更新。

    感谢您对此的温柔提醒。

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

    您好!

    我看到以下内容、以及使用逻辑分析仪选择的模拟波形选项。

    此致、

    Vaibhav

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

    Vaihbav

    这不是我们要检查的点。  

    #1。 我们的问题是读取数据的第一位、而不是读取命令的第一位。  

    #2。 逻辑分析仪采样率的模拟波形是不够的、不能提供有价值的信息。

    #3. 您能找到示波器吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    #3. 您能找到示波器吗?  [报价]

    另一个团队目前正在使用它来调试另一个客户问题。

    我稍后将获取该工具并检查波形。

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

    您好!

    这是我读取时看到的情况、假设使用 OSPI_readDirect 时有128个字节、并且探测恰好在执行 memcpy 时发生。

    毫无疑问、对于发送命令和地址字节、波形上显示的数据位、D0线发送位0。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    探测恰好在 memcpy 执行时发生。
    非常确定其波形上看到的数据位与发送命令和地址字节有关、D0行发送位0。

    如果被置位、它是命令和地址级、而不是从闪存级读回的数据。

    我们需要看到读取数据的第一个数据位边沿。 而非命令和地址级数据引脚波形。

    最好将 DQS 一起探测、然后可以知道何时是第一个读取数据位。

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

    我已经取出/探测除 DQS 之外的所有线路、一旦我在某个时候也取出 DQS、然后我可以继续捕获 D0和 DQS、以便在捕获第一个位时知道它。

    因此,一旦我做了,我会给你一张同样的照片。

    感谢您的耐心。

    此致、

    Vaibhav

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

    DQS 网络上有许多电阻器残桩、在 EVM 上探测起来并不困难。 客户做的很容易。 是否有时间表?

    同样、无需探测所有数据引脚。 只要数据为 FF、使用 DQS 触发以捕获任何一个数据引脚、然后第一个位为高电平、就可以看到中间电平信号。

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

    尊敬的 Tony:

    我可以在本周内提供最新信息。

    此致、

    Vaibhav

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

    您好!

    我已经探测了 DQS 和数据线 D0、并且观察到信号如下所示:

    我已读取128个字节。

    可以看到读取多少个字节时的行为? 此外、我假设您也启用了 PHY、因为只有 DQS 线有效、否则不使用它。

    此致、

    Vaibhav

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

    波形在某种程度上会失真、我建议关闭 phy 模式以降低频率。

    即使 PHY 模式关闭、DQS 也有效。 您的 DQS 波形看似存在一些问题、不确定是不是引脚或示波器问题

    我假设您也启用了 PHY、因为只有 DQS 行有效、否则不使用它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的耐心。

    [报价 userid="589657" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477203/am2434-ospi-read-command-first-bit-half-level-question/5739028 #5739028"]

    波形在某种程度上会失真、我建议关闭 phy 模式以降低频率。

    即使 PHY 模式关闭、DQS 也有效。

    [报价]

    嗯、当 SysConfig 中未打开 PHY 模式时、DQS 应该根本无效。

    DQS 仅在我们启用 PHY 时使用、因此在未启用 Phy 时将 DQS 与读取结合使用没有意义。

    其中一个从 FC40000开始的 OSPI 寄存器的 DQS 使能字段的初始复位值为0、而不是1。 当我们调用 API OSPI_phyTuneDDR 或 OSPI_phyTuneSDR 时、该位设置为1

    此致、

    Vaibhav

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