TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x ,如何配置gpmc_timings for SC16C554

hi,all:

我现在遇到一个问题,自制的板子,从sd卡启动,不需要配GPMC的时序,am335x就可以和sc16c554正常通信。

从nand flash启动,am335x和sc16c554不能正常通信。

sc16c554的片选接gpmc cs3,会不会是gpmc 时序的问题,怎么去配置时序参数呢?

Jian Zhou:

NAND也是用GPMC的,很明显是,GPMC总线上有干扰。

你是Linux OS吗?最好先检查硬件然后再检查driver

Jian Zhou:

回复 Jian Zhou:

16C554的timming我已经配好了,可以读写,不知道你那边的进展如何?

xiaoning andy:

回复 Jian Zhou:

还没配好,你的timming能看一下么?

Jian Zhou:

回复 xiaoning andy:

如果用GPMC CS3做为16C554的片选寻址空间,那么驱动里需要单独配一下CS3的那7个寄存器,timming请参考:

.sync_clk = 0,

 .cs_on = 0, .cs_rd_off = 90, .cs_wr_off = 70,

 .adv_on = 0, .adv_rd_off = 15, .adv_wr_off = 15, .we_off = 65, .oe_off = 70,

 .access = 90, .rd_cycle = 140, .wr_cycle = 90,

 .wr_access = 90, .wr_data_mux_bus = 0,

xiaoning andy:

回复 Jian Zhou:

谢谢,我去试一下

xuegang zhou:

回复 Jian Zhou:

利用AM335X芯片的GPMC扩展8路串口,2400~57600bps条件下通讯收发均正常,在115200bps条件下出现误码,收到的数据通过485监测,数据是正确的,但在应用层读进来的数据,当接收的数据超过18个字节时,多了随机的00字节,请问一下这和读写时序有无关系!谢谢

监测到的数据帧:7E 32 30 30 31 34 30 30 30 30 30 30 30 46 44 42 39 0D

通过read读取的数据帧:7e 32 0 30 30 31 34 30 30 30 30 30 30 30 46 44 42 39

当向AM335X的扩展串口发送18个字节时,最后一个字节0D被截断,收到的数据第三个字节被00填充了,当接收的数据超过18个字节都会出现这种情况

Jian Zhou:

回复 xuegang zhou:

首先,您之前通过NAND加载程序后不能和16C554正常通信的问题已经解决了?是不是NAND驱动对GPMC重新做了初始化导致的?

我觉得波特率提高,应用层首发不正常,有可能是应用层的读写速度和16C554的收发速度匹配不上?

xuegang zhou:

回复 Jian Zhou:

我这里AM3352和TL16C554在2400~57600bps条件下通讯是完全没有问题的,只是在115200bps条件下出现丢包的情况,NAND和TL16C554对GMPC的初始化只进行了一次,没有重复初始化GPMC.

"有可能是应用层的读写速度和16C554的收发速度匹配不上"不知道你这里说的速度匹配不上作如何处理,read()只读一次,发送902个字节,只读到672个字节,这是出现丢包了,那该如何去控制应用层的read()呢?

赞(0)
未经允许不得转载:TI中文支持网 » am335x ,如何配置gpmc_timings for SC16C554
分享到: 更多 (0)