AM335X核心板通过GPMC总线拓展16c554及软件配置

gpmc(General-Purpose Memory Controller)是TI特有的总线, 本人开发gpmc驱动算是摸了很多石头过河的。所以想通过这遍文章可以给也做GPMC驱动开发的后来者有一点参考价值。文章如有瑕疵也请各位批评改正。


EVB-335x GMPC dts配置
    基于EVB-335x Linux-4.14.67,调试GPMC总线的ST16C554扩展串口,对当中dts中配置分析。
1、ranges
    引用dtsi的gpmc 节点,添加ST16C554片选。rangs放映每一个片选设置的内存布局的4个整数只构成,其格式为:
    <cs-number> 0 <physical address of mapping> <size>

 

片选地址区域的划分主要由GPMC_CONFIG7_i[11-8]来确定当前片选地址空间的大小,GPMC_CONFIG7_i [6]控制片选引脚, GPMC_CONFIG7_i [5-0]确定当前片选的起始地址。

 

 Base address 由地址线的高8位决定,这个地址与当前的片选相关联。

例子:

GPMC_CONFIG7_0: 基地址规划为0x08,大小划归为16MB(0x00FF FFFF)

            起始地址:0x0800 0000

            结束地址: 0x08FF FFFF

GPMC_CONFIG7_2: 基地址规划为0x0A,大小规划为128MB(0x07FF FFFF)

          起始地址:0x0A00 0000,

          结束地址为0x0A00 0000 + 0x07FF FFFF=0x11FF FFFF

CPU访问设置好的地址范围,对应的片选引脚就会被拉低,从而选中设备

  2、uart@2,x
gpmc子节点,挂载在cs2上,共四个端口。所以要配置:
uart@2,0
uart@2,1
uart@2,2
uart@2,3
并在uart@2,0中配置GPMC时序,其余子节点配置中断、时钟等。

3、reg
内存地址映射,即映射到ranges的物理地址,格式为:
<chip-select> <offset> <IO size> 

4、bank-width
设备带宽,GPMC支持8位于16位设备,配置1表示8位、2表示16位,根据原理设计配置。

5、reg-shift
    寄存器偏移量

6、reg-io-width
    设备访问IO 接口的字节序列,例如16位小端、32位大端等。在dts中配置reg-io-width 属性的值为1或不配置,表示driver-specific。

7、interrupt-parent与interrupts
    中断配置,ST16C554四路中断信号为GPIO2[11..14],高电平触发。且需要注意,dts iomux时IO方向设为输入。
    

    8、clock-frequency
    时钟频率,UART属于异步通信,没有同步时钟信号,体现在原理设计上即从GPMC到ST16C554无clk信号。根据原理设计,时钟为1.842MHz。

9、current-speed
    当前波特率,若current-speed属性赋值,即为默认波特率。ST16C554手册中接收,最高速率为1.5Mbps,注意不要大于该值。

10、gpmc,mux-add-data
地址线与数据线复用。gpmc,mux-add-data属性的值为1表示地址线与地址/数据线复用,2表示地址与数据复用。在EVB-335x上地址与数据线不复用,值为0。

11、gpmc,device-width
    GPMC设备数据位宽,gpmc,device-width属性值为1表示8位,2表示16位。EVB-335x数据位宽为8,所以值为1。

12、gpmc,wait-pin
    NOR与NAND协议的外部等待信号。ST16C554不属于前述设备,值为0。

13、gpmc,sync-clk-ps
    同步模式下最小的时钟周期,单位为ps。GPMCFCLKDIVIDER由gpmc,sync-clk-ps计算而来,前者是GPMC时钟分频器,不使用,值为0 。

14、gpmc,cycle2cycle-samecsen
    同一片选信号的周期访问延时。不设置延时,值为0。

15、gpmc,cycle2cycle-diffcsen
    不同片选信号的周期访问延时。不设置延时,值为0。

16、gpmc,cs-on-ns
    片选信号有效前的时间间隔。

17、gpmc,cs-rd-off-ns
    读操作时,片选无效前的时间间隔。

18、gpmc,cs-wr-off-ns
写操作时,片选无效前的时间间隔。

19、gpmc,adv-on-ns
GPMC 地址有效或地址锁存,若是Nand或Nor存储设备则需配置该属性,否则值为0即可。

20、gpmc,adv-rd-off-ns
    Read deassertion time

21、gpmc,adv-wr-off-ns
    Write deassertion time

22、gpmc,oe-on-ns
    Assertion time

23、gpmc,oe-off-ns
    Deassertion time

24、gpmc,we-on-ns
    Assertion time

25、gpmc,we-off-ns
    Deassertion time

26、gpmc,rd-cycle-ns
    Total read cycle time

27、gpmc,wr-cycle-ns
    Total write cycle time

28、gpmc,access-ns
    Start-cycle to first data valid delay

29、gpmc,page-burst-access-ns
    Multiple access word delay

30、gpmc,bus-turnaround-ns
    Turn-around time between successive accesses

31、gpmc,cycle2cycle-delay-ns
    Delay between chip-select pulses

32、gpmc,wait-monitoring-ns
    Start of wait monitoring with regard to valid

33、gpmc,clk-activation-ns
    GPMC clock activation time

34、gpmc,wr-data-mux-bus-ns
    In address-data multiplex mode, specifies the time when the first data is driven on the address-data bus.
    
    35、gpmc,wr-access-ns
    In synchronous write mode, for single or burst accesses, defines the number of GPMC_FCLK cycles from start access time to the GPMC_CLK rising edge used by the memory device for the first data capture.
 
 36、内核配置
确认以下选项已经配置:
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_OMAP_GPMC=y

具备GPMC总线的 核心板,经过调查有如下几款(CoM-335X、DIM-335X等),我们使用的是CoM-335X V1.1,如果要可以插拔的核心板,可以使用DIM-335X核心板;之所以选择这个核心板,是因为这个核心板,使用面比较广的,性能也稳定.

CoM-335X图片:

DIM-335X图片:

这两个产品是深圳市盈鹏飞嵌入式的产品

CoM-335x与16C554连接原理图:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值