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.

[参考译文] AM335x:GPMC 读取访问

Guru**** 2541610 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/605347/am335x-gpmc-read-access

我一直在尝试获取为 TI Sitara am335xevm 评估板创建的驱动程序。  我们删除了评估板设置附带的大多数电路板堆栈。  几个电路板模块之后、我们连接到 FPGA 评估板。

我的器件已启动并正在运行、我们有写入"工作"、但是读取访问不会为器件生成任何 GPMC 时钟或其他引脚活动。  我们希望至少看到总线上的地址被驱动。

 我已将 GPMC 时钟引脚正确设置为启用输入。  这似乎是最常见的问题,但并没有向我们提出。  我们没有在 EVM 板上使用 GPMC_clk 引脚、我们有引脚多路复用器将 CSN1引脚配置为时钟(AM335X_CTRL_PADCONF_GPMC_CSN1)。  寄存器值为0x00000021。

 芯片选择区域0

GPMC 配置0_1:0x79001201

GPMC 配置0_2:0x00141400

GPMC 配置0_3:0x00060604

GPMC 配置0_4:0x120c140a

GPMC 配置0_5:0x02121a14

GPMC 配置0_6:0x900a0000

GPMC 配置0_7:0x00000848

我已将其中的一些设置分解为允许我即时更改它们的命令 不用担心代码会清除配置 reg7的启用位、然后在进行任何更改后进行设置:

csOnTime:0

csWrOffTime:20

csRdOffTime:20

AdvOnTime:4

高级偏移时间:6

advRdOffTime:6

AdvExtraDelay:0

oeOnTime:12

很特别的酒店:0

oOffTime:20

weOnTime:12

特外代尔:0

WeOffTime:18

wrCyclTime:26

wrAccessTime:16

读周期时间:20

读访问时间:18

pgBurstAccess:2.

 c2cDly:0

c2cSameCS:0

c2cDiffCS:0

总线收费时间:0

wrDataOnADMux:10

RD_ACC_TYPE:1

RD_TYPE:1

GPMC_DEV_pg_len:2

我不认为这是违反 GPMC FSM 时序的行为、我已经介绍了该系列器件上 GPMC 的时序规则。

我发现另一个奇怪的现象是、虽然我们的器件在附加的器件页面长度字段中配置了16个"字"访问、但我们只得到8个字的突发。  正如这里的另一个线程中所指出的、CPU 只能进行8个字的访问、EDMA 是获取16个字的唯一方法。  因此、对于 GPMC FSM、器件页长度字段似乎更多地是一个建议、而不是一个规则。  也许这是读写和写建议的规则?

请提出任何建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请发布您使用的软件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nucleus 操作系统。 我从 pdk_am335x_1_0_6中获取了 TI 驱动程序、并将其集成到 Nucleus 操作系统中。 我在该软件集中没有看到清晰的 NOR 闪存驱动程序。 封装的 startware 02_00_01_01仅具有 NAND GPMC、但我也对此进行了擦除。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    恐怕我们在 Nucleus 方面没有太大帮助。 您的时间安排似乎正常、有两条评论:

    1.您已经设置了 GPMC 时钟分频器。 您是否考虑过这只影响外部时钟、而所有时序仍与内部 GPMC_FCLK 相关?

    2. GPMC_CONFIG6中的 WRACCESSTIME 似乎错误。