LS1046 IFC接口地址线复用配置

----------原创不易,欢迎点赞收藏。广交嵌入式开发的朋友,讨论技术和产品-------------

NXP LS1043/1046预留了一个IFC接口,用于访问带地址线和数据线的并行总线芯片。从个人经验来看,它们都是继承了freescale PowerPC系列的local bus(LBC)。原文介绍如下:
The integrated flash controller (IFC) is used to interface with external asynchronous/
synchronous NAND flash, asynchronous NOR flash, SRAM, generic ASIC memory and
EPROM.

IFC汇集了四种时序发生器, NAND/NOR/GPCM/ASIC。用于控制NAND芯片,当仁不让的选择NAND模式。并行的NOR flash,选择NOR模式也毫无疑问。但是我们一些带地址线和数据线的特殊芯片,通常想到用GPCM模式。
在这里插入图片描述
由于CPU管脚资源有限,地址线没有这么多,那么让AD0~AD15总计16根线用于地址和数据复用。AD复用信号会被外部锁存器锁存,ADDR地址线是不要锁存的。这里又涉及到大小端的问题,有些芯片是intel字节序(小端),有些芯片又采用Motorola字节序(大端)。如下图
在这里插入图片描述
LS1046地址/数据线复用信号IFC_AD[0:15], 地址线 IFC_A[16:27]。所以总计出了28根地址线,寻址范围可达 2^28 = 256MB。当然,大部分非NOR flash存储芯片,内部没有这么大地址空间,就用不到这么多地址线。有些甚至只需要8根地址线即可对整个芯片的寻址。

如果满配28根地址线都用于寻址,AD0为地址值最低位,A27为地址值最高位,这就是小端模式。

好在LS1046可以配置,在NOR时序机下面,ADM_SHFT_MODE决定了当前片选的大小端。
ADM_SHFT_MODE = 0时,IFC_AD0=地址的最高位,当前为大端模式
ADM_SHFT_MODE = 1时,IFC_AD0=地址的最低位,当前为小端模式
在这里插入图片描述

如下图,CS3片选访问一个CAN总线控制器。
LS1046的IFC_AD0对接 《------------------》CAN的AD0
LS1046的IFC_AD1对接 《------------------》CAN的AD1
以此类推
LS1046的IFC_AD7对接 《-------------------》CAN的AD7
LS1046的IFC_AD8 ~ FC_AD15未使用
LS1046的IFC_A16 ~ IFC_A27未使用
在这里插入图片描述
我们当初使用GPCM模式配置,用md.b 0x7fb05555 10命令去访问,这是读10个字节。
地址线IFC_AD0上始终没有信号的改变,按理来说应该是高低电平间隔出现。然而逻辑分析仪始终为低电平0。
在这里插入图片描述
调整了ADM_SHFT到最大值20,
在这里插入图片描述

逻辑分析仪上IFC_AD0出现了电平变化
在这里插入图片描述
然后访问的数据还是不对,仔细阅读手册,发现NOR机制或许可行,改MSEL= 00
在这里插入图片描述
因为IFC_AD0对接CAN的AD0,地址线是不需要左移的,ADM_SHFT=0,No shift
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e229c72fe5b3473694e48ceafda952cd.png

同时AD0对应的是最低位,那么需要配置ADM_SHFT_MODE = 1, AD总线携带地址最低位
在这里插入图片描述

其他基地址等寄存器配置,本文略过,至此CAN芯片可以正常访问。 有个疑问就是GPCM有个ADM MODE说明,但是没有看到寄存器描述,不然配置成GPCM应该也是可行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bull-man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值