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.

[参考译文] AM5706:GPMC 与 NOR 闪存从器件不能按预期工作

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1192486/am5706-gpmc-is-not-working-as-expected-with-nor-flash-slave

器件型号:AM5706
Thread 中讨论的其他器件:SysConfig

您好,

我们希望在 GPMC 和 NOR 闪存类型的从器件之间实现通信、我们将在 以下配置下进行16位非多路复用异步读取写入操作

GPMC   焊球引脚 地址  
GPMC_a17 D8. 0x4A00 3554 0x5000E
GPMC_A16 C5 0x4A00 3498 0x50002
GPMC_a15 D6. 0x4A00 3494 0x50002
GPMC_A14 问题7 0x4A00 3490 0x50002
GPMC_A13 A4 0x4A00 348C 0x50002
GPMC_A12 G1 0x4A00 3460 0x50000
GPMC_A11 L3 0x4A00 346C 0x50000
GPMC_A10 J2 0x4A00 3468 0x50000
GPMC_A9 H1 0x4A00 3464 0x50000
GPMC_A8 K4. 0x4A00 3460 0x50000
GPMC_A7 K1 0x4A00 345C 0x50000
GPMC_A6 J1 0x4A00 3458 0x50000
GPMC_A5 K2 0x4A00 3454 0x50000
GPMC_A4 K3. 0x4A00 3450 0x50000
GPMC_A3 H6. 0x4A00 34D4 0x70005
GPMC_A2 L2 0x4A00 3448 0x50000
GPMC_A1 平方米 0x4A00 3444 0x50000
GPMC_a0 M1 0x4A00 3440 0x50000
GPMC_AD15 B4 0x4A00 343C 0x50000
GPMC_AD14 答3. 0x4A00 3438 0x50000
GPMC_AD13 C4 0x4A00 3434 0x50000
GPMC_AD12 C3 0x4A00 3430 0x50000
GPMC_AD11 B3 0x4A00 342C 0x50000
GPMC_AD10 答2. 0x4A00 3428 0x50000
GPMC_AD9 D3 0x4A00 3424 0x50000
GPMC_AD8 C2 0x4A00 3420 0x50000
GPMC_AD7 B2. 0x4A00 341C 0x50000
GPMC_AD6 B1 0x4A00 3418 0x50000
GPMC_AD5 D2 0x4A00 3414 0x50000
GPMC_AD4 D1 0x4A00 3410 0x50000
GPMC_AD3 C1 0x4A00 340C 0x50000
GPMC_AD2 E1. 0x4A00 3408 0x50000
GPMC_AD1 E2 0x4A00 3404 0x50000
GPMC_AD0 F1 0x4A00 3400 0x50000
GPMC_wait0 F6 0x4A00 34D8 0x70000
GPMC_cs0 F3 0x4A00 34B4 0x70000
GPMC_CS1 A6 0x4A00 34B0 0x70000
GPMC_CS3 G3 0x4A00 34BC 0x70000
GPMC_cs7 L4 0x4A00 34C0 0x7701
GPMC_oen_ren G5 0x4A00 34C8 0x70000
GPMC_Wen G6 0x4A00 34CC 0x70000
GPMC 配置
 GPMC_SysConfig   0x50000010 0x00000008
 GPMC_irqstatus   0x5000001C 0x00000100
 GPMC_TIMEOUT_CTRL   0x50000040 0x00001FF0
 GPMC_CONFIG   0x50000050 0x00000100
 GPMC_CONFIG_1   0x50000060 0x7A641000
 GPMC_CONFIG_2   0x50000064 0x00081D00
 GPMC_CONFIG_3   0x50000068 0x00010100
 GPMC_CONFIG_4   0x5000006C 0x08021D03
 GPMC_CONFIG_5   0x50000070 0x01081F1F
 GPMC_CONFIG_6   0x50000074 0x820302C0
 GPMC_CONFIG_7   0x50000078 0x00000000
 GPMC_CONFIG_7   0x50000078 0x00000F40


以便它从起始地址0x0映射到16 MB 的处理器存储器。  执行的读取操作、但没有活动。

我们正在执行的步骤包括:

1.将 CM_L3MAIN1_GPMC_CLKCTRL 0x4A008728配置为 0x0001

2.如 上表所示配置 PIMUX

3.通过设置 GPMC_SysConfig = 1来重置 GPMC

正在等待通过监控 GPMC_SYSSSTATUS 完成复位

配置 SysConfig、IRQENABLE、TIMEEUR_CONTINTRILE.ETC 寄存器

6.禁用 GPMC_SysConfig_7中的 CS

配置 GPMC_CONFIG[1:7]寄存器

启用 GPMC CS


请确认我们在哪里出错或遗漏了需要注意的东西。

此致、

Sarath

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

    您好 Sarath、

     根据上面 GPMC 的配置、您可以看到表15-515中的位。 GPMC_CONFIG1_I 设置为同步

    我建议您仔细阅读 TRM (技术参考手册)、并确保为 NOR 存储器设置了正确的配置。  第15.4.5章

    [引用 userid="516547" URL"~/support/processors-group/processors/f/processors-forum/1192486/am5706-gpmc-is-not-working-as-expected-with-nor-flash-slave ]16 位访问非复用异步读取写入[/quot]

    请参阅以下章节:  

    15.4.5.3 NOR 模式下的 GPMC 配置................................................................... 3615

    15.4.4.10 NOR 访问说明

    15.4.4.10.1异步访问说明

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

    您好、Josue、

    感谢您的回答。  

    正如您所说的" 我建议查看 TRM (技术参考手册)、并确保为 NOR 存储器设置正确的配置。  第15.4.5章"、我们已经完成了这一过程、并将 GPMC_CONFIG1寄存器更改为异步运行模式。

    在完成以下所述配置后:  

    / /

    HW_WR_REG32 (0x50000010 0x00000002);// GPMC 复位0x2用于复位

    while (0 =(HW_RD_REG32 (0x50000014)&0x1));//检查 GPMC_SYSSSTATUS 以完成复位。

    HW_WR_REG32 (0x5000001C、0x00000100);//GPMC_IRQENABLE
    HW_WR_REG32 (0x50000040、0x00001FF0);//GPMC_TIMEOUT_CONTROL
    HW_WR_REG32 (0x50000050、0x00000100);//wait0高电平有效 GPMC_CONFIG

    HW_WR_REG32 (0x50000078、0x00000000);for (int i=0;i<99999;i++);//禁用 CS GPMC_CONFIG7_I

    HW_WR_REG32 (0x50000060、0x52641000);//16位访问 GPMC_CONFIG1_I

    HW_WR_REG32 (0x50000064、0x00081D00);//GPMC_CONFIG2_I
    HW_WR_REG32 (0x50000068、0x00010100);//GPMC_CONFIG3_I
    HW_WR_REG32 (0x5000006C、0x08021D03);//GPMC_CONFIG4_I
    HW_WR_REG32 (0x50000070、0x01081F1F);//GPMC_CONFIG5_I
    HW_WR_REG32 (0x50000074、0x820302C0);//GPMC_CONFIG6_I
    HW_WR_REG32 (0x50000078 0x00000F41);//启用 CS 并设置 GPMC_CONFIG7_I 的掩码地址
    / /

    意见1:

    当我们通过存储器浏览器刷新 GPMC 0x5000 0000的配置空间时、如果同时探测 CS0、我们将得到 CS0的响应、根据我们的了解、我们不知道为什么会得到这种响应。

    意见2:

    当我们刷新 GPMC 0x5000 0000的配置空间时、寄存器 GPMC_NAND_COMMAND_I、GPMC_NAND_ADDRESS_I、GPMC_NAND_DATA_I 使用非零值进行更新。

    意见3:

    当我们看到上述两个观察结果、对我们的错误发生困惑时、我们发现 GPMC_ERR_TYPE 和 GPMC_ERR_ADDRESS 获得的值不为零

    尽管我们遵循了您提到的部分并获得了这些配置值、但我们仍然无法实现预期的行为。 终端设备是 NOR、但为什么 NAND 寄存器不会生效。 请向我们介绍一下我们错过的情况。

    此致、

    Sarath