飛凌課堂 I AM5718 GPMC驅(qū)動示例講解
一、GPMC簡介
GPMC的全稱是 General-Purpose Memory Controller,即通用存儲控制器,是TI的arm芯片AM5718用來與外部存儲設(shè)備例如NOR FLASH、NAND FLASH、SRAM等等通信的一個接口。這個接口并不是AM5718特有的,在BeagleBone Black、AM35XX等芯片上也有類似接口。
特點:
1.靈活的 8 位和 16 位異步存儲器接口
2.具有多達(dá)8個片選
3.支持NAND、NOR、復(fù)用NOR和SRAM
4.最大支持512MB的片外存儲器連續(xù)地址空間的訪問
二、GPMC的硬件連接方式
1.GPMC 與 16位的地址數(shù)據(jù)復(fù)用的外部存儲設(shè)備設(shè)備連接:
2.GPMC 與16位的非復(fù)用外部存儲設(shè)備連接
3.GPMC 與8位的非復(fù)用外部存儲設(shè)備連接
4.GPMC與8位的NAND FLASH連接:
三、OK5718-C GPMC 總線接口
OK5718-C 預(yù)留出 GPMC 總線接口,引出 GPMC_AD[15: 0]數(shù)據(jù)地址復(fù)用信號,可作為總線設(shè)備
連接測試使用。定義如下
此示例中OK5718把GPMC接口配置為異步模式并設(shè)置NOR FLASH、地址數(shù)據(jù)線復(fù)用的模式,實際只使用到了如下I/O口,信號方向如下圖所示。
GPMC_AD[15:0]: 16位地址/數(shù)據(jù)線
GPMC_CS0/ GPMC_CS3: 片選信號
GPMC_OEN_REN: 輸出使能信號
GPMC_WEN: 寫使能信號
GPMC_ADVN_ALE: 地址有效信號
四、配置設(shè)備樹
linux內(nèi)核有關(guān)gpmc的講解可參考內(nèi)核目錄的下列文件:
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修改的設(shè)備樹文件為OK57xx-linux-kernel/arch/arm/boot/dts/ok5718-idk.dts
下面為已經(jīng)調(diào)試好的設(shè)備樹代碼
1.增加Gpmc引腳配置
2.增加GPMC結(jié)點
配置片選引腳為3、Base address為0x8000000 和 地址空間為0x1000000。
ranges = <3 0 0x08000000 0x1000000>;
配置的各項時序參數(shù)。
四、實驗結(jié)果
將測試程序代碼交叉編譯后,將可執(zhí)行文件app-fram 拷貝到5718開發(fā)板
執(zhí)行app-fram read 命令
抓取CS3 ADVN和OEn的波形如下, GPMC一次的讀取周期大概為112ns。
通道1為片選信號CS3,通道2為輸出使能信號OEn
通道1為片選信號advn,通道2為輸出使能信號OEn
通道1為片選信號advn,通道2為輸出使能信號AD2 信號。
點擊此處進(jìn)入源代碼下載地址>> 提取碼為:j89C
相關(guān)產(chǎn)品 >
-
OK5718-C開發(fā)板
TIAM57x系列 AM5718開發(fā)板基于ARM+DSP多核異構(gòu)AM571x處理器設(shè)計,包含ARM Cortex-A15、ARM Cortex-M4、DSP、PRU、GPU多種不同架構(gòu),適用于工業(yè)通信、人機界面、HMI、自動化控制、工廠自動化、樓宇自動化、機器視覺、醫(yī)療成像、
測試與測量、汽車多媒體等領(lǐng)域。如您對ARM+DSP、ARM+PRU、ARM+M4感興趣歡迎致電AM5718廠家咨詢電話400-699-6866 了解詳情 -
OKMX8MP-C開發(fā)板
內(nèi)置NPU、ISP,AI計算能力高達(dá)2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發(fā)板 基于高性能低功耗工業(yè)級iMX8MP核心板設(shè)計,支持多種多種高速通信接口。iMX8MP開發(fā)板內(nèi)置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統(tǒng)的iMX8MP開發(fā)板。
了解詳情