飛淩課堂 I AM5718 GPMC驅動示例講解

原創 2020-03-07 18:05:00 AM5718 GPMC驅動

一、GPMC簡介

GPMC的全稱是 General-Purpose Memory Controller,即通用存儲控制器,是TI的arm芯片AM5718用來與外部存儲設備例如NOR FLASH、NAND FLASH、SRAM等等通信的一個接口。這個接口并不是AM5718特有的,在BeagleBone Black、AM35XX等芯片上也有類似接口。 

 

特點:

1.靈活的 8 位和 16 位異步存儲器接口

2.具有多達8個片選

3.支持NAND、NOR、複用NOR和SRAM

4.最大支持512MB的片外存儲器連續地址空間的訪問

 

二、GPMC的硬件連接方式

1.GPMC 與 16位的地址數據複用的外部存儲設備設備連接:

 

2.GPMC 與16位的非複用外部存儲設備連接

 

3.GPMC 與8位的非複用外部存儲設備連接

 

4.GPMC與8位的NAND FLASH連接:

  

三、OK5718-C GPMC 總線接口

OK5718-C 預留出 GPMC 總線接口,引出 GPMC_AD[15: 0]數據地址複用信号,可作為總線設備
連接測試使用。定義如下


此示例中OK5718把GPMC接口配置為異步模式并設置NOR FLASH、地址數據線複用的模式,實際隻使用到了如下I/O口,信号方向如下圖所示。

GPMC_AD[15:0]:  16位地址/數據線

GPMC_CS0/ GPMC_CS3:      片選信号

GPMC_OEN_REN:      輸出使能信号

GPMC_WEN:         寫使能信号

GPMC_ADVN_ALE:     地址有效信号

 

 

四、配置設備樹

linux内核有關gpmc的講解可參考内核目錄的下列文件:

OK57xx-linux-kernel/Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt 

OK57xx-linux-kernel/Documentation/devicetree/bindings/mtd/gpmc-nor.txt

OK57xx-linux-kernel/Documentation/devicetree/bindings/mtd/gpmc-nand.txt

我們需要Ok5718修改的設備樹文件為OK57xx-linux-kernel/arch/arm/boot/dts/ok5718-idk.dts


下面為已經調試好的設備樹代碼

1.增加Gpmc引腳配置

  

2.增加GPMC結點

配置片選引腳為3、Base address為0x8000000 和 地址空間為0x1000000。

ranges = <3 0 0x08000000 0x1000000>;

配置的各項時序參數。

 

四、實驗結果

将測試程序代碼交叉編譯後,将可執行文件app-fram 拷貝到5718開發闆

執行app-fram read 命令

抓取CS3 ADVN和OEn的波形如下, GPMC一次的讀取周期大概為112ns。


通道1為片選信号CS3,通道2為輸出使能信号OEn


通道1為片選信号advn,通道2為輸出使能信号OEn


通道1為片選信号advn,通道2為輸出使能信号AD2 信号。

 

 點擊此處進入源代碼下載地址>>   提取碼為:j89C


相關産品 >

  • OK5718-C開發闆

    TIAM57x系列 AM5718開發闆基于ARM+DSP多核異構AM571x處理器設計,包含ARM Cortex-A15、ARM Cortex-M4、DSP、PRU、GPU多種不同架構,适用于工業通信、人機界面、HMI、自動化控制、工廠自動化、樓宇自動化、機器視覺、醫療成像、
    測試與測量、汽車多媒體等領域。如您對ARM+DSP、ARM+PRU、ARM+M4感興趣歡迎緻電AM5718廠家咨詢電話400-699-6866
    了解詳情
    OK5718-C開發闆
  • OKMX8MP-C開發闆

    内置NPU、ISP,AI計算能力高達2.3TOPS|飛淩嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發闆 基于高性能低功耗工業級iMX8MP核心闆設計,支持多種多種高速通信接口。iMX8MP開發闆内置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信号處理器(ISP),是一款支持LinuxQT/android操作系統的iMX8MP開發闆。

    了解詳情
    OKMX8MP-C開發闆

推薦閱讀 換一批 換一批