飛凌課堂 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開發板

推薦閱讀 換一批 換一批