打印
[其他MCU]

Freescale MPC8641D 开发笔记 一

[复制链接]
3517|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
energy1|  楼主 | 2015-1-28 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

二、片上底层

       最为简单的当然是分成两部分来架空这款CPU,第一就是e6000核,其二就是片上外围。

我想不管什么公司的牛X CPU芯片,他总是带有标准的工业接口和一些标准协议接口。外围接口嘛,不就是把数据倒腾进去,然后倒腾出来吗。当然也会加一些控制功能模块,比如看门狗啊、定时器、中断管理器、DMA管理器等等比较通用的模块。各种类型的CPU不同之处就在于CPU,片上总线形式,片上外围大同小异。飞思卡尔公司芯片当然也不会例外,不然他产品卖给谁呢?

1. IIC接口   : 两线接口,SCA/SDA,用于设备之间的数据交换。比如微控制器、实时时钟、A/D转换器、LCD。



2. UART:MPC8641D包含两个异步串行收发器,四线: TXD,RXD,CTS,RTS,包含16比特FIFO。每个UART都由MPX提供时钟。

软件可编程波特率产生器,由Platform 时钟除以1~(2**16-1).起始位、停止位和奇偶校验位。与PC16450兼容。
3. MPX层次模块(MCM)

4. DDR 控制器
支持2个完全可编程DDR SDRAM控制器,支持绝大部分的JEDEC存储器。



5.可编程中断控制器(PIC)


12个外部中断源: IRQ[0:11];
  内部中断源:
PIC自身产生的中断:全局定时器A,B;内部处理器中断(IPI)、消息寄存器、共享消息寄存器
3中可编程中断输出:外部中断int0、int1.任何PIC中断源能够编程产生INT0、int1中断请求;紧急中断cint0、cint1;IRQ_OUT
支持两个处理器:中断能够路由到处理器核0和1
处理器核初始化控制
处理器硬件复位控制
可编程PIC复位
支持外围中断控制器链接,类似于8259中断控制器。
旁路模式(PIC 禁止)


二、LCB功能介绍
LBC允许以不同的时序要求与不同的存储器实现对口连接。
  . SDRAM 机制为与SDRAM接口提供接口,采用Bank插入,背靠背页模式获得高性能数据传输。内部PLL为总线生成时钟。
  . GPCM为简单,低性能存储器以及地址映射设备提供接口。本身不支持突发传输导致了其较低的性能,由于这个原因,CPCM控制器通常
     用于上电引导与低性能存储器外围接口。
.UPM支持刷新定时器,外围总线地址复用,可编程控制信号(行地址,列地址,地址选通等)的产生,这使得可用用最少的逻辑胶合与DRAM,突发SRAM,以及大多数的外围进行接口。控制器定义了如何在读,写,突发读,突发写过程中对外围信号的控制。刷新定时器用于用户自定义刷新行为。



任何存储器片选信号都能够分配到三种类型存储器中的任何一种类型,通过BANK的基地址寄存器选择位的设定BRn[MSEL]. 如果BANK匹配出现,响应的的机制(GPCM,SDRAM,UPM)将会占据外围信号的控制权直到数据传输结束。

12.4.1  基本结构
      以下的章节对LBC的基本架构进行描述。
12.4.1.1  地址以及地址空间校验
当响应的地址屏蔽写到ORn寄存器中的时候, 定义的基地址写到BRn寄存器当中。每当有局部总线访问要求是,内部转换地址就与每个BANK进行比较。通过比较地址的搞19位地址线,地址被译码。如果在相应的BANK的存储器控制器中发现匹配的地址,那么在BRn和ORn
中定义的属性被用于控制存储器访问。如果在多于一个的bank中都得到匹配,那么最低数字编码的bank将会掌控存储器访问。
12.4.1.2 外部地址锁存使能型号LALE
  局部总线是地址和数据总线的复用形式出现的,因此,LBC必须在地址和数据相位进行区分。LALE信号为高电平的时候表征的是在LAD[31:0]上出现的是地址信号。当LALE为低电平的时候表征总线是个双向的数据信号。
任何地址相位都会初始化LALE为高电平,可以通过编程设置他们之间的提前量为1~4个总线时钟周期。
为保证外围地址锁存有足够的保持时间,LALE要比数据线要先变化到低电平。默认情况下,LALE提前2个Platform Clock周期。比如,如果LBC运行在666mhz,那么一个额外的地址保持时间3ns将会用于地址线的保持。但是当LCRR[CLKDIV]=2的时候(时钟比率为4)并且LCLK频率超过100MHZ的时候,缩短的LALE的宽度将不会满足最小的锁存宽度要求。这时候,LBCR[AHD]=1增加一个Platform Clock 周期到LALE,并且将同时以相同的程度减少地址的保持时间。在666Mhz并且LCRR[CLKDDIV]=2(时钟比率为4),LALE的周期将会是4.5ns,1.5ns的保持时间。如果既要求较长的保持时间,同时也要求较长的LALE脉冲周期,那么地址相位能够通过ORn[ED]、LCRR[EADC]、LBCR[AHD]进行扩展。
对于三个不同类型的存储器控制器而言LALE的变化频率是不同的。GPCM,LCSn的每次有效都被认为是一次独立访问,相应的在每次访问前LALE都会有效。比如GPCM驱动一个8比特宽度端口时,GPCM将会驱动LCSn以及LALE信号32次以满足32字节缓存的线性传输。SDRAM控制器却只用驱动LALE一次便可以进行突发传输,所以通过32比特的端口进行32字节的缓存线性传输的时候,SDRAM控制器只需对LALE驱动一次。在UPM模式下,这就给UPM RAM的编程方式有较大的关系了。典型情况下,UPM一次访问将会使用LALE一次,但是也可能有效LALE好几次,同时改变LA[31:27]的状态。一般情况下,当使用GPCM和SDRAM的时候,在LALE相位中有足够的地址线用于覆盖整个地址空间的时候没有必要使用LA[31:27]。UPM有可能要求LA[31:27],如果LBC产生自身突发地址序列。
下图展示了LBC是如何掌控一次较大数据量的传输的。GPCM执行32字节写操作,起始地址位于0X5420. 请注意,LA[27:31]在LALE有效范围内仅仅监视LAD[27:31],但是在数据相位,只有LAD[0:7]HE 榴弹**【0】被有效数据和校验位分别驱动。
数据传输遵循的是大端模式(Big_Endian Mode)。


12.4.1.3 数据传输标志(TA)
    LBC内部的三个类型存储控制器都会产生内部传输标志信号TA,允许LAD[0:31]的数据要么被抽样(读操作)或者被改变(写操作)。数据抽样/改变总是出现在LBC有效TA后的总线周期末尾。在LBC调试模式下,TA同时在MDVAL信号上是对外可见的。GPCM、SDRAM控制器根据时序参数自动产生TA信号;而UPM只有在UPM行为设置了UTA RAM字以后才能产生TA信号。
12.4.1.4 数据缓冲控制(LBCTL)
存储器控制器提供了一个数据缓冲器控制信号。当GPCM,UPM控制的BANK在访问的时候被激活。设置ORn[BCTLD]可以禁止掉该信号。访问SDRAM控制的BANK将不会激活LBCTL信号。在GPCM模式下LBCTL可以进一步通过LBCR[CBTLC]配置为一个额外的LWE#或者LOE#信号。
如果LBCTL配置为一个数据缓冲控制信号(LBCR[BCTLC]=00),那么它在存储控制器操作的第一个周期的上升沿被置高,与LALE一样。如果是写操作,LBCTL将在整个周期中保持高电平。如果是读操作,LBCTL将会随LALE的低电平一起被置低,这样Memory才能驱动总线。如果背靠背的读操作处于悬置状态,LBCTL被置高一个总线时钟周期在下一个传输开始之前以使得总线在下一个地址驱动以前恢复状态。
12.4.1.5 原子操作
通过设置BRn[ATOM],LBC支持一下原子操作:
。 RAWA(写-读)
12.4.1.6 校验产生和检查(LDP)
通过对BRn[DECC]可以对任何BANK设置校验。BRn【DECC】=01:用LDP[0:3]对没字节产生一般校验。BRn[DECC]=10:进行read-modify-write(RMW)校验。LBCR[EPAR]决定校验的方式:奇、偶校验。
12.4.1.7 总线监视器
该监视器用于保证每个总线周期都是以一种合理的方式结束。当一个传输开始的时候,总线监视器开始从LBCR[BMT]倒计数直到数据传输完成标志在总线上出现为止。这时候它重新加载超时值并且恢复倒计时知道数据传输完成,如果没有数据传输那么它将处于闲置状态。设置LTEDR[BMD]禁止总线监视错误校验。但是总线就爱你是仍然处于激活状态并且能产生一个UPM陷阱或者终结GPCM访问过程。不要将LBCR[BCM]设置过低非常重要;要不一般的操作过程中大量的超时将会出现,特别是在SDRAM访问过程中,造成不完整的数据传输。除了复位值0X00(响应的最大超时为2048个总线周期),LBCR[BMT]在任何条件下都不能设置在0X05以下(40个总线周期超时)。
12.4.2 GPCM
GPCM使用最少的最简单的逻辑胶合与SRAM,EPROM,FEPROM,ROM存储器以及外围设备进行连接。GPCM包含两个基本的寄存器组:BRn以及ORn。
下图描述了了一个个8比特宽度SRAM和LBC的连接。位写使能信号LWE#对存储器的每个字节写入有效。同时输出使能信号LOE#的输出使得外围胶合逻辑得到精简。在系统复位的时候,全局片选有效以提供引导ROM的片选信号LCS0#.


用户可以配置ORn【ACS】指定地址线和LCS#间的建立时间。

12.4.2.1 时序配置
如果BRn[MSEL]选择了GPCM,该存储周期的属性将在ORn中进行设定,这些属性包括CSNT,ACS,XACS,SCY,TRLX,EHTR,以及SETA域的设定。
12.4.2.2片选有效时间
在GPCM模式下,LCSn#工作模式可以选择:
a)与存储器地址同时出现(这里指的是外部锁存的地址信号,而不是指LAD[0:31]上的时序。也就是说,片选在LALE期间是不会出现的)。
b)1/4时钟周期延时
c)1/2时钟周期延时
d)一个时钟周期延时(LCRR[CLKDIV]=2,ORn[XACS]=1
e) 2个时钟周期延时,ORn[XACS]=1
f )三个时钟周期,ORn[XACS]=1,ORn[TRLX]=1
12.4.2.2.1 可编程等待状态设置
GPCM支持内部产生传输标志。允许有0~30个等待状态加到访问过程当中,通过ORn[SCY] 和ORn【TRLX】来设定。不产生传输标志使能,如果ORn[SETA]=0.如果LGTA#在计数器完成前被拉高2个总线周期或者更长时间。那么目前的存储周期通过LGTA#终结。另外也可以通过等待状态计数器的完成来终结本次存储器周期。无论ORn【SETA】的设置,等待状态在同等方式下延长了LOE#,LWEn#的有效周期。当TRLX=1,存储控制器插入的等待状态数目是ORn[SCY]周期的两倍等于2XORn[SCY],最大为30个等待状态。
12.4.2.2.2 片选和写使能时序

如上图所示,LCSn#是和锁存地址同时出现的。根据数据的传输方向,数据的选通是靠LOEn和LWEn提供的。ORn[CSNT]在写周期控制正确的选通,当该属性有效的时候,选通信号在正常情况的1/4周期有效。比如,当ACS=00且CSNT=1,LWEn#提前1/4周期出现。
12.4.2.2.3 放松时序
ORx【TRLX】用于存储系统放松信号之间的时序,设置TRLX=1有以下的影响:
.在地址和控制信号之间增加一个总线周期(当ACS!=00)
.由SCY指定的等待状态数量将会翻倍,最大到30个等待状态。
.读操作中的保持时间将会被扩展
.LCSn#信号在写操作时将提前一个周期无效(ACS!=00)
.LWE#[0:3]在写操作时提前一个周期无效


当TRLX和CSNT在写操作中被设置,LWE[0:3]选通信号将会提前一个周期无效。


12.4.2.2.4 输出使能时序
LOE#的时序仅受TRLX影响。在总线时钟的上升沿起作用。LOE#在LCSn有效后的总线上升沿有效或者与LCSn一起有效(XACS=1,ACS=1X).相应的,LOE#也可以通过设置TRLX=1与LCSn一起被延时。LOE#和LCSn一起在总线时钟的上升沿失效。
12.4.2.2.5 读操作扩展保持时间
在读操作过程中,慢速设备将会花更长的时间用于禁止其总线驱动器将会选择ORn【TRLX,EHTR】的一些组合选项以满足时序的要求。任何一个在读操作后的操作都可以通过ORn[TRLX,EHTR]来指定延时时间,除了已存在的转换时间周期外。最后的总线转换周期将会被LBC自动插入,无论ORn【EHTR】的设置是如何的。


12.4.2.3 外部访问终结(LGTA#)
在GPCM模式下支持用外部异步终结信号LGTA#实现终结操作,在LCSn#有效期间LGTA#有效,它将转换成内部传输标志信号TA,TA将终止当前的GPCM过程(无论ORn【SETA】是么样的设置)。LGTA#至少要持续一个总线周期才能有效。请注意因为LGTA#要被同步的(被LCLK采样),总线终结将会才2个周期后才能生效,因此在读周期,在LOE#失效以前外围设备必须被一直驱动。用户可以通过设置ORn【SETA】选择传输标志是内部还是外部(LGTA)生成。即使ORn[SETA]=0(设置为内部生成终结信号),LGTA#有效也将会终结一个访问,但是这是唯一的方法如果ORn[SETA]=1.


12.4.2.4 启动片选操作
启动片选操作使得在系统初始化完成以前为引导ROM存储器进行地址译码,LCS0#是引导片选信号输出;他和在系统复位后其他的外围片选信号是不同的。当核开始在系统复位后访问存储器时,LCS0#在每个局部总线访问时都是有效的直到BR0或者OR0配置完成。
该片选信号提供一个可编程的端口宽度,这个参数在复位时进行配置。注意该片选信号不支持写保护。在首次写入OR0以后,引导片选信号可以被硬件复位所重新启动。图12-25描述了BOOT BANK的存储控制器的初始值。

12.4.3  SDRAM 机制
LBC为局部总线提供一个SDRAM接口。该机制为PC133和JEDEC兼容的SDRAM提供控制功能和信号。
12.4.3.1 支持的SDRAM配置
总线端口的SDRAM应该具有同样的端口容量和时序要求。下图表示了LBC和32位SDRAM设备的连接。

12.4.3.6 SDRAM地址复用
低位地址总线连接到存储设备的地址端口,存储控制器复用了行列以及内部bank选择线。bank选择线根据LSDMR[BSMA]的设置来设定。

注意在一般的操作中(读和写),全部的32比特地址包括行地址和列地址都产生在了LAD[0:31],但是地址/数据信号是复用的,这表明地址必须被外部信号LALE锁存。所有的SDRAM设备地址信号需要连接到锁存的地址位和突发地址为LA[27:31].这其中除了A10,这是专门用于连接LSDA10。
12.4.4 用户可编程机制(UPMs)
UPM是用于连接宽范围Memory设备的接口。UPM的核心是一个内部RAM阵列,他用于指定驱动在外部存储器控制信号(LCSn,LBS[0:3],LGPL[0:5])上的逻辑值。在RAM阵列中的每个字以1/4外部总线时钟的节拍控制着存储器访问进程。如果LGPL4,LGTA,LUPWAIT,LPBSE信号被用着输入和输出信号,一个弱上拉是必须的。

以下事件初始化一个UPM周期:
1 . 任何一个内部着被要求访问一个映射到UPM的片选空间的进程
2. UPM刷新定时器完成并要求一次新的传输,比如DRAM刷新
3. 在UPM周期内总线监视超时错误
RAM阵列包含64个32比特数据,信号时序生成器加载RAM字以驱动通用信号线,字节选择信号,片选信号灯。如果UPM从RAM中读到WAEN字,外部LUPWAIT信号被抽样并且被存储器控制器同步同时目前的要求被冻结。
12.4.4.1 UPM 请求
一个存放到RAM中的专门方式与每个可能的UPM请求相关。一个内部设备对于存储器访问的要求初始化下列方式中的一个:
. 单读方式(RSS)
. 突发周期读(RBS)
. 单写方式(WSS)
. 突发周期写(WBS)
.UPM刷新定时器请求方式初始化一个刷新定时器方式(RTS)
.当另一个UPM范例正在运行而要初始化一个例外的条件范例的时候例外就会出现(EXS)
12.4.4 用户可编程机
UPM 是简易接口,用于连接宽范围内的存储器类型。UPM的中心是一个内部的RAM阵列,它驱动外部存储器控制器信号(LCSn,LBSn[0:3],LGPL[0:5])在时钟周期下的逻辑值。
  下列事件初始化UPM周期:

· 任一内部设备请求外部访问映射到由UPM服务的片选的地址空间

· UPM刷新定时器过期并且请求一个事务,如DRAM刷新

· 正常UPM周期中发生的总线监控器超时错误使UPM转向执行一个异常序列

每一个RAM阵列都包含64个32位字。信号时序发生器从RAM阵列中装入RAM字,驱动通用信号线:字节选和片选。如果UPM在WAEN置位时读取RAM字,那么外部LUPWAIT信号将被存贮器控制器采样并同步,当前请求被冻结。

-----------------------------------------------------------------------

一个UPM包含有64 word的RAM,每个WORD为32bit,,每个LCLK为一个WORD指定的行为输出。而每个word可以指定控制信号(LCSn,LBSn,LGPL)四个状态的变化。这样的话,RAM可以最多使用64个LCLK的时序来完成一次数据的传输。










相关帖子

沙发
ICDesigner_hzy| | 2016-9-15 16:45 | 只看该作者
非常棒哈哈哈哈哈哈!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

422

帖子

10

粉丝