飛凌課堂 I 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 了解詳情 -
OKMX8MP-C開發板
內置NPU、ISP,AI計算能力高達2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發板 基于高性能低功耗工業級iMX8MP核心板設計,支持多種多種高速通信接口。iMX8MP開發板內置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統的iMX8MP開發板。
了解詳情