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.

[参考译文] LP-AM243:使用Beckhoff EtherCAT从属堆栈(LP砖式)后,无法打开LP上的OSPI闪存

Guru**** 2587345 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1090726/lp-am243-unable-to-open-ospi-flash-on-lp-after-working-with-beckhoff-ethercat-slave-stack-lp-bricked

部件号:LP-AM243
Thread:sysconfig中讨论的其它部件

您好,

我一直在使用Beckhoff EtherCAT从属堆栈。 具体来说,我一直在使用EtherCAT主设备更改从EEPROM (仿真并存储在OSPI闪存中)的内容。

但是,执行此操作几次后,OSPI闪存不再打开,LP会'被欺骗'。  即使我以Hello World为例并通过SYSCFG添加Flash,主板初始化也会失败。 我也无法使用EVM设置过程重新初始化LP -它在第二步挂起(参见下图)。

第一次发生这种情况(星期日),我把它放到了一个有问题的板上。 然而,在我借的第二个LP上多了几个小时之后,同样的事情发生了(两个坏了的LP)。

是否有任何方法可以恢复此问题?  

谢谢!

Steve

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

    哦,Hello World with OSPI闪存报告:


    错误:Board_flashOpen:98:实例0的闪存打开失败!!!

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

    你(们)好

    [quote userid="31.7967万" url="~/support/picros/arm-based picrocers-group/arm-based picrocs/f/arm-based picrospum/109.0726万/lp-am243-unable-to open-ospi-flash-on-lp-after working-with-Beckhoff-EtherCAT-slaver-I-lp-stackwicked已在该堆栈上关闭。 具体来说,我一直在使用EtherCAT主设备更改从EEPROM (仿真并存储在OSPI闪存中)的内容。[/QUOT]

    您是否在这里谈论"examples\industrial_comms\etherCAT_slaver_Beckhoff_SSC_demo"? 此示例不使用闪存保存EEPROM内容。 闪存用于FOE (通过EtherCAT进行Filletransfer)功能。

    如果您正在讨论"examples\industrial_comms\etherCAT_slaver_demo",它将使用闪存来保存您提到的EEPROM内容。 但是EtherCAT示例使用的闪存偏移与bootloader使用的闪存偏移不同。

    [quote userid="31.7967万" url="~/support/picros/arm-based微控制器-group/arm-based微控制器/f/arm-based微控制器-forum/109.0726万/lp-am243-unable-to open-ospi-flash-on-lp-after working-beckhoff-etherCAT-slaver-stack-lp-lp-wicked,但是,在这段时间后,不会再打开几次SPI'spi'spi'thicked'。  即使我以Hello World为例并通过SYSCFG添加Flash,主板初始化失败[/QUOT]

    是否可以共享已更新的.syscfg文件? 您在sysconfig中选择了哪个“闪存设备”?

    [quote userid="31.7967万" url="~/support/picros/arm-based微控制器-group/arm-based微控制器/f/arm-based微控制器-forum/109.0726万/lp-am243-unable-to open-ospi-flash-on-lp-after working-with -Beckhoff-EtherCAT-slaver-stack-i-lp-am-lp无法使用第二个步骤(请参见下面的EVM),无法初始化lp,请参见下面的图片)

    您能否确认您是否遵循此处提及的所有步骤? 您是否对"tools\boot\SBL_prebuild\am243x-lp\default_SBL_null.cfg"文件进行了任何更改?

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_02_00_31/exports/docs/api_guide_am243x/EVM_SETUP_PAGE.html#EVM_FLASH_SOC_INIT

    此致
    Dhaval Khandla

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

    您好,Dhaval:

    我使用的演示来自:

    C:\ti\MCU_plus_SDK_am243x_08_02_00_31\examples\industrial_comms\EtherCAT_slaver_Beckhoff_SSC_DEMO

    我一直在尝试修改EtherCAT从属EEPROM的内容,使其与ESI文件匹配(我正在使用Beckhoff EtherCAT一致性测试工具)。 我可以 更改内容 ,但此操作似乎 会导致LP上的OSPI闪存无法运行。 这种情况在短时间内发生了两次(我现在有两块死板)。

    关于hello world的更改-请参阅下面syscfg的屏幕截图和zip。

    关于重新初始化LP EVM的步骤,它们与您描述的完全相同。

    谢谢,Steve

    e2e.ti.com/.../1738.example.zip

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

    Steve
    感谢您的快速响应。

    I修改394.0478万修改文件的内容,以匹配CAT 4.0478万/I。 我可以 更改内容 ,但此操作似乎 会导致LP上的OSPI闪存无法运行。 这种情况在短时间内发生了两次(我现在有两块死板)。[/QUOT]

    我们需要研究这个问题。 据我所说,EtherCAT EEPROM操作与 闪存 问题无关,因为此示例不使用闪存来存储EEPROM数据。 它使用I2C EEPROM。

    您能否在板上运行"examples\drivers\ospi\ospi_flash_diag\am243X lp"示例,并与我们共享UART控制台的日志?

    此致
    Dhaval Khandla

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

    您好,Dhaval:

    [OSPI闪存诊断测试]正在启动...
    [OSPI Flash Diagnostic Test] Flash Manufacturer ID:0x9A
    [OSPI闪存诊断测试]闪存设备ID:0x150D
    [OSPI Flash Diagnostic Test] Executing Flash Erase on First block...(OSPI闪存诊断测试)
    [OSPI闪存诊断测试]完成!!!
    [OSPI Flash Diagnostic Test] Performing Write-Read Test...(OSPI闪存诊断测试)
    错误:ospi_flash_diag_test_compare_buffers:165:OSPI读取数据不匹配!!!
    某些测试失败!!

    谢谢!

    Steve

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

    我在另一个主板上遇到相同的错误。

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

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

    您好,Dhaval,已经订购了一些替换闪存IC (和4个以上的LP)。

    我在闪存重置,CS和CLK上放置了一个示波器-从低电平来看,所有这些都是按顺序进行的。

    闪存是否有可能被意外置于写保护 模式? 是否有用于'复位'的命令序列? 或者您认为他们失败了吗?

    在 替换LP到达之前,我将停止开发流程,以便对任何想法表示感谢。

    谢谢,Steve

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

    为您提供更多信息Dhaval,

    在Flash Diag示例代码(ospi_flash_diag.c)中, 重置初始化QSPI闪存后:

    /*以1s1s1s模式初始化闪存设备*/
    ospi_norFlashInit1s1s1s1(sospiHandle);

    闪存状态寄存器1 OSI_NOR_CMD_RDSR返回0x80 - NOT BUSY。

    但是,在尝试启用写入后(在我的调试代码中):

    OSPI_norFlashCmdWrite (ospiHandle,0x6,0xFFFFFFFF,NULL,0);

    闪存状态寄存器1 OSPI_NO_CMD_RDSR无限期地返回0x81 (占线),这意味着等待就绪呼叫失败并超时:

    状态= OSPI_norFlashWaitReady (ospiHandle,(600U * 1000U));

    在Flash Diag示例中也会发生相同的情况,在对OSPI_norFlashErase:的调用中输入代码

    DebugP_LOG("[OSPI Flash Diagnostic Test] Executing Flash Erase on First block...\r\n");
    OSI_norFlashErase(ospiHandle, offset);

    其中  ,不  检查OSPI_norFlashErase的返回状态 ,但 它处于非零错误状态。  

    总之,我认为闪存自身的非易失性配置已因某种原因而损坏,使其无法用于提供的正常驱动程序。

    您是否有代码片段来正确地重新配置LP上的闪存?

    谢谢,Steve

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

    您好,Dhaval,我即将更换闪存芯片,因为我无法继续。

    但是,在执行此操作之前,我对闪存行进行了分析(下图)。

    顺序为:

    /*以1s1s1s模式初始化闪存设备*/
    状态= OSPI_norFlashInit1s1s1s1(sospiHandle);
    状态= OSPI_norFlashCmdRead (ospiHandle,0x05,&readStatus,1);
    状态= OSPI_norFlashWaitReady (ospiHandle,(600U * 1000U));

    //写入启用
    状态= OSPI_norFlashCmdWrite (ospiHandle,0x06,0xFFFFFFFF,NULL,0);
    状态= OSPI_norFlashCmdRead (ospiHandle,0x05,&readStatus,1);
    状态= OSPI_norFlashWaitReady (ospiHandle,(600U * 1000U));

    跟踪从 // write enable (cmd 0x06)开始,然后读回状态(cmd 0x05)。 状态显示位0和7已设置。 第7位是 STCFWR,意味着它应遵守WP#引脚。 WP#针脚贯穿高,所以我不知道为什么位0 RDYBSY被卡住(等待功能超时)。

    我现在将更换闪存(但我确实有第二块板出现相同的故障)。

    谢谢,Steve

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

    我更换了闪存芯片-主板似乎现在可以工作。

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

    我有另一个此错误的实例:

    错误:Board_flashOpen:198:闪存打开失败,用于实例0!!!

    这是发生的第三个Launchpad。

    唯一常见的操作是在两个示例程序之间切换:etherCAT_slaver_Beckhoff_ssc_demo_am243xlp-r5fss0-0_FreeRTOS_ti-arm-clang和 etherCAT_slaver_simple_demo_am243xlp-lp/r5fss0-0_FreeRTOS_ti-arm-clang。

    但是,这一次 ,ospi_flash_diag_am243x_LP_r5fss0-0_nortos_ti-arm-clang的工作原理是:

    [OSPI Flash Diagnostic Test] Starting ...
    [OSPI Flash Diagnostic Test] Flash Manufacturer ID : 0x9A
    [OSPI Flash Diagnostic Test] Flash Device ID       : 0x150D
    [OSPI Flash Diagnostic Test] Executing Flash Erase on first block...
    [OSPI Flash Diagnostic Test] Done !!!
    [OSPI Flash Diagnostic Test] Performing Write-Read Test...
    [OSPI Flash Diagnostic Test] Write-Read Test Passed!
    [OSPI Flash Diagnostic Test] SFDP Information : 
    ================================================
                          SFDP                      
    ================================================
    SFDP Major Revision                       : 0x1
    SFDP Minor Revision                       : 0x8
    Number of Parameter Headers in this Table : 4
    
    Types of Additional Parameter Tables in this flash
    ---------------------------------------------------
    4 BYTE ADDRESSING MODE INSTRUCTIONS TABLE
    SECTOR MAP TABLE
    STATUS CONTROL AND CONFIGURATION REGISTER MAP TABLE
    
    Flash_NorXspiDevDefines gFlashNorXspiDeviceDefines_<part-number> = {
    
        .XSPI_NOR_CMD_RSTEN = 0x66,
        .XSPI_NOR_CMD_RSTMEM = 0x99,
        .XSPI_NOR_CMD_WREN = 0x06,
        .XSPI_NOR_CMD_WRREG = 0x71,
        .XSPI_NOR_CMD_BULK_ERASE = 0xC7,
        .XSPI_NOR_CMD_SECTOR_ERASE_3B = 0x20,
        .XSPI_NOR_CMD_SECTOR_ERASE_4B = 0x21,
        .XSPI_NOR_CMD_BLOCK_ERASE_3B = 0xD8,
        .XSPI_NOR_CMD_BLOCK_ERASE_4B = 0xDC,
        .XSPI_NOR_CMD_PAGE_PROG_3B = 0x02,
        .XSPI_NOR_CMD_PAGE_PROG_4B = 0x12,
        .XSPI_NOR_CMD_RDSR = 0x05,
        .XSPI_NOR_CMD_RDREG = 0x65,
        .XSPI_NOR_CMD_RDID = 0x9F,
        .XSPI_NOR_CMD_READ = 0x03,
        .XSPI_NOR_CMD_888_SDR_READ = 0x00,
        .XSPI_NOR_CMD_888_DDR_READ = 0x00,
        .XSPI_NOR_CMD_444_SDR_READ = 0xEB,
        .XSPI_NOR_CMD_444_DDR_READ = 0x00,
        .XSPI_NOR_CMD_114_READ = 0x6B,
        .XSPI_NOR_SR_WIP = 1,
        .XSPI_NOR_SR_WEL = 2,
        .XSPI_NOR_RDID_NUM_BYTES = 5,
        .XSPI_NOR_MANF_ID = 0x9A,
        .XSPI_NOR_DEVICE_ID = 0x150D,
        .XSPI_NOR_114_READ_MODE_CLKS = 0,
        .XSPI_NOR_114_READ_DUMMY_CYCLES = 8,
        .XSPI_NOR_444_READ_MODE_CLKS = 2,
        .XSPI_NOR_444_READ_DUMMY_CYCLES = 8,
        .XSPI_NOR_444_READ_DUMMY_CYCLES_LC = 0x08,
        .XSPI_NOR_QUAD_CMD_READ_DUMMY_CYCLES = 0x00,
        .XSPI_NOR_OCTAL_READ_DUMMY_CYCLE = 0,
        .XSPI_NOR_OCTAL_READ_DUMMY_CYCLE_LC = 0x00,
        .XSPI_NOR_OCTAL_DDR_RDSR_DUMMY_CYCLE = 0,
        .XSPI_NOR_OCTAL_DDR_RDREG_ADDR_BYTES = 0, 
        .XSPI_NOR_OCTAL_DDR_WRREG_ADDR_BYTES = 0, 
        .XSPI_NOR_OCTAL_DDR_RDVREG_DUMMY_CYCLE = 0, 
        .XSPI_NOR_OCTAL_DDR_RDNVREG_DUMMY_CYCLE = 0, 
        .XSPI_NOR_OCTAL_RDSFDP_DUMMY_CYCLE = 0, 
        .XSPI_NOR_OCTAL_RDSFDP_ADDR_TYPE = 0, 
        .XSPI_NOR_WRR_WRITE_TIMEOUT = 5120,
        .XSPI_NOR_BULK_ERASE_TIMEOUT = 256000000,
        .XSPI_NOR_PAGE_PROG_TIMEOUT = 512,
        .XSPI_NOR_VREG_OFFSET = 0x800000,
        .XSPI_NOR_NVREG_OFFSET = 0x0,
        .XSPI_NOR_QUAD_MODE_CFG_ADDR = 0x3,
        .XSPI_NOR_QUAD_MODE_CFG_BIT_LOCATION = 0x6,
        .XSPI_NOR_DDR_OCTAL_MODE_CFG_ADDR = 0x0,
        .XSPI_NOR_DDR_OCTAL_MODE_CFG_BIT_LOCATION = 0x0,
        .XSPI_NOR_DUMMY_CYCLE_CFG_ADDR = 0x3,
        .XSPI_NOR_FLASH_SIZE = 67108864,
        .XSPI_NOR_PAGE_SIZE = 256,
        .XSPI_NOR_BLOCK_SIZE = 262144,
        .XSPI_NOR_SECTOR_SIZE = 4096,
        .addrByteSupport = 1,
        .dtrSupport = 1,
        .qeType = 5,
        .seq444Enable = { 0, 0, 0, 1, 0 },
        .seq444Disable = { 0, 0, 1, 1 },
        .oeType = 0,
        .cmdExtType = 0,
        .byteOrder = 0,
    };
    
    All tests have passed!!

    但是,例如,ospi_flash_io_am243x_LP_r5fss0-0_nortos_ti-arm-clang失败:

    [MAIN_Cortex_R5_0_0]错误:Board_flashOpen:98:闪存打开失败,用于实例0!!!
    断言:3.61.6962万s:../ospi_flash_io.c:ospi_flash_io_main:58: status=SystemP_Success failed!!!

    我的Launchpad有什么功能?

    感谢您的紧急响应。

    Steve

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

    要明确一点,我正在从属设备上运行Beckhoff EtherCAT符合性测试工具(我正在尝试使TI示例完全符合要求,但它们不符合要求!)。

    Steve

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

    微移。 有什么想法?

    我们的EtherCAT开发已经停止,直到我们获得解决方案-我们只有有限的Launchpad供应。

    谢谢,Steve

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

    你(们)好

    [quote userid="31.7967万" url="~/support/picros/arm-based picrocers-group/arm-based picrospecters/f/arm-based pexforum/109.0726万/lp-am243-unable-to open-ospi-flash-on-lp-after working-with -Beckhoff-EtherCAT-slaver-stack-stack-forum-forum-forum/TI不符合以下各项标准[4.0467万]#40467/TI的4.0467万的实例:

    您能否提供有关此方面的更多详细信息?

    此致

    Dhaval Khandla

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

    您好,Dhaval -本周我期待更多LP,并将向您发送违规报告。

    谢谢,Steve