AN3517配置MCF5445x系列的PCI主机操作中文要点.docx

上传人:b****8 文档编号:10526515 上传时间:2023-02-21 格式:DOCX 页数:13 大小:29.17KB
下载 相关 举报
AN3517配置MCF5445x系列的PCI主机操作中文要点.docx_第1页
第1页 / 共13页
AN3517配置MCF5445x系列的PCI主机操作中文要点.docx_第2页
第2页 / 共13页
AN3517配置MCF5445x系列的PCI主机操作中文要点.docx_第3页
第3页 / 共13页
AN3517配置MCF5445x系列的PCI主机操作中文要点.docx_第4页
第4页 / 共13页
AN3517配置MCF5445x系列的PCI主机操作中文要点.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

AN3517配置MCF5445x系列的PCI主机操作中文要点.docx

《AN3517配置MCF5445x系列的PCI主机操作中文要点.docx》由会员分享,可在线阅读,更多相关《AN3517配置MCF5445x系列的PCI主机操作中文要点.docx(13页珍藏版)》请在冰豆网上搜索。

AN3517配置MCF5445x系列的PCI主机操作中文要点.docx

AN3517配置MCF5445x系列的PCI主机操作中文要点

飞思卡尔应用指南文档编号:

AN3517

Rev.0,09/2007

配置MCF5445x系列的PCI主机操作

微控制器DivisionApplications组

目录

1简介.......................................................................................................................................12引导模式影响配置...............................................................................................................12.1缺省配置(BOOTMOD=00).................................................................................22.2并行配置(BOOTMOD=10).................................................................................22.3串行配置(BOOTMOD=11)..................................................................................32.4引脚多路技术............................................................................................................43配置PCI控制器..................................................................................................................4

3.1配置控制器用于发起操作........................................................................................53.2配置控制器用于目标操作........................................................................................53.3使能控制器................................................................................................................64配置PCI仲裁器..................................................................................................................65时钟.......................................................................................................................................66代码举例...............................................................................................................................6

1简介

ColdFireMCF5445x系列的处理器设置包含一个PCI总线控制器和仲裁器。

其中仅MCF5442,MCF54454,MCF54455支持PCI模块。

该应用指南讨论将MCF5445xPCI控制器和仲裁器设置为基本主机配置和操作的方法。

不讨论MCF5445x在代理配置下的使用,虽然大多数上述配置用于这里的设置。

也不讨论用于具体PCI外设应用程序驱动的开发。

关于MCF5445xPCI控制器和仲裁器的更多详细信息请参阅MCF54455参考手册。

PCI主机(HOST)配置典型应用于MCF5445x作为PCI主设备时配置其他的PCI设备。

该主机常常既是事务的发起者也是目标。

当作为主机使用时,MCF5445x通常不需要产生PCI中断且不作为PCI配置事务的目标。

这些因素将影响你如何编程PCI的功能和复位后MCF5445x的引导模式如何配置设备。

如果配置信息需要更改,在引导模式中完成的大多数配置可在运行时重新配置。

该应用笔记将讨论以下主题:

●引导模式影响PCI启动●PCI仲裁器的引脚复用

●配置PCI接口为66MHz或33MHz操作●设置PCI控制器●建立PCI仲裁器

2引导模式对配置的影响

MCF5445x有用于复位配置三个选项,取决于在引导时BOOTMOD[1:

0]引脚的设置。

每个引导模式对PCI配置会有不同的影响。

你可以在运行时通过重写相应的寄存器来改变这些选项。

但不论怎样有两项在运行时是不能重写的。

●PCI_AD总线作为PCI引脚还是FlexBus引脚的选在必须在启动时配置好。

●某些只能在串行启动模式下配置的寄存器不能在运行过程中重新配置。

基本的配置影响如表1所示。

以下章节将提供更加详细的情况。

表1.引导模式影响PCI

设置引导模式(配置模式)缺省并行10(FB_AD3=0)并行10(FB_AD3=1)串行11

PCI使能使能FB_AD[7:

5]=111或011使能

FB_AD[7:

5]≠111或011禁止SBF_RCON[125]

PCIREQ/GNTs用于PCIFB_AD[7:

5]=111或011用于PCI

FB_AD[7:

5]≠111或011用于GPIO

SBF_RCON[125]

PCI引脚跳变速率66MHzFB_AD[2]=166MHz

FB_AD[2]=33MHzSBF_RCON[104]

PCI中断禁止使能禁止PCI配置重

试禁止使能

禁止PCIBAR[5:

0]使

能使能所有(0X3F)

禁止所有(0X00)

使能所有(0X3F)

SBF_RCON[101:

96]

PCI设备IDPCI厂商IDPCI类代码PCI版本IDPCI子系统

IDPCI子系统厂商ID

2.1缺省配置(BOOTMOD=00)

该引导模式使用芯片配置模块(CCM)的复位配置寄存器(RCON)的内部设置。

MCF5445x自动配置为缺省的PCI主机配置。

配置结果如表2所示。

表2缺省配置(BOOTMOD=00)

功能

受影响的寄存器

设置

描述

PCI使能PCI_AD总线用于PCI而不是FlexBus。

所有PCI请求/允许配置用于PCI使用。

PCI引脚跳变速率1PCI被配置为高转换速率(66MHz)

PCI中断IRQ1不被配置作为PCI中断输出PCI配置重试允许回访问(inboundaccess)PCIBAR使能所有BARs使能PCI主机/代理模

式指示

主机模式

2.2并行配置(BOOTMOD=10)

在并行引导模式下,FlexBus地址/数据信号在系统复位时的电平决定了系统的设置。

下面三种设置将影响PCI控制器。

●三位FBCONEIG(FB_AD[7:

5]字段必须被设置为011或111来使用外部地址/数据总线用于PCI而不是FlexBus。

●对于在主机模式下的控制器,PCI主机/代理模式(FB_AD[3])字段必须被设置为1。

●PCI引脚跳变速率(FB_AD[2]设置取决于总线工作的频率

(1为66MHz,0为33MHz)。

你可以在运行时通过写PCI模式选择控制寄存器(MSCR_PCI)更改此设置。

有关PCI模式

选择控制寄存器(MSCR_PCI)的详情参见MCF54455参考手册的“引脚多路技术和控制”章节。

表3并行配置(BOOTMOD=10)

FlexBus

功能

受影响的寄存器

设置

描述

FB_AD[7:

5]=111或

011

PCI使能0XD5D5

PCI_AD总线用于

PCI而不是FlexBus

FB_AD[7:

5]≠111

或011

0X0000

所有PCI请求/允许

被配置供PCI使用FB_AD[2]=1PCI引脚跳变速率MSCR_PCI[0]

1

PCI被配置为高转

换速率(66MHz)

FB_AD[2]PCI被配置为低转

换速率(33MHz)FB_AD[3]=1

PCI中断IRQ1不被配置作为

PCI中断输出

PCI配置重试0允许回访问

PCIBAR使能0X3F所有BARs使能PCI主机/代理模式

指示

主机模式

FB_AD[3]=0

PCI中断IRQ1被配置作为

PCI中断输出

PCI配置重试1重试回访问

PCIBAR使能0X00所有BARs禁止PCI主机/代理模式

指示

代理模式

2.3串行配置(BOOTMOD=11)

在串行模式下,来自一个串行存储器的值决定该系统设置。

在该引导模式下,单独配置某些参数,不像在并行模式下一样。

同时你也可以配置更多PCI参数的复位值。

下列参数可被单独地写入而不是基于主机/代理模式下的赋值设置(assignedsetting):

●PCI中断(SBF_RCON[103])—一般在主机模式下禁止●PCI配置重试(SBF_RCON[102])—一般在主机模式下禁止●PCIBAR使能(SBF_RCON[101:

96])—一般在主机模式下全部使能

另外,若在串行配置模式下没有具体的主机/代理模式配置,那么CCR中的主机/代理模式指示器由SBF_RCON[103]决定。

在PCI寄存器后的复位值在串行引导模式下也能被配置:

●PCI设备ID●PCI厂商ID●PCI类代码●PCI版本ID●PCI子系统ID●PCI子系统厂商ID

PCI引脚跳变速率(SBF_RCON[104])和PCI使能(SBF_RCON[125])也能在此模式下被设置。

表4串行配置(BOOTMOD=11)

SBF_RCON

功能

受影响的寄存器

设置

描述

[125]=1PCI使能0XD5D5PCI_AD总线用于PCI代替

FlexBus。

所有PCI请求/允许

被配置供PCI使用

[125]PCI_AD总线用于FlexBus。

有PCI请求/允许不被配置供

PCI使用

[104]=1PCI接口转换速率MSCR_PCI[0]

1

PCI接口被配置为高转换速

率(66MHz)

[104]PCI接口被配置为低转换速

率(33MHz)

[103]=1PCI中断1

IRQ1被配置作为PCI中断输

[103]IRQ1不被配置作为PCI中断

输出

[102]=1PCI

配置重试

1重试回访问

[102]允许回访问BAR使能设置每一位使能相应BAR[103]=1PCI主机/代理模式

指示CCR[3]

0代理模式[103]主机模式

设备被影响的PCI寄存器被相应

的SBF_RCON值赋值。

PCI可

能使用这些寄存器作为信息

厂商类代码版本子系统子系统厂商ID2.4引脚复用技术

两路PCI信号与MCF5445x的其它信号复用:

●PCI地址/数据总线(PCI_AD)

●PCI仲裁器请求/允许对(REQPCI_[3:

0],[3:

0])

若PCI在引导时被使能,PCI_AD信号仅能被PCI控制器使用。

若引导时没有使能PCI那么部分PCI_AD信号被FlexBus使用,这取决于在引导时所选择的配置。

PCI_AD信号的使用在运行时不能被更改。

同样,当引导时PCI使能时,PCIrequest/grant引脚自动被配置为PCI信号。

然而在运行时通过重写PCI_PAR寄存器可改变这些信号的使用。

该PCIrequest/grant对可被使能或禁止以满足系统的需求。

表5显示基于PCI在开机时是否使能来配置这些信号。

表5PCI引脚复用启动配置

3配置PCI控制器

你必须配置PCI控制器中的一些寄存器以便控制器能够产生(PCI发起者)和接收(PCI目标机)事务。

通常,这包括建立各种流入和流出PCI窗口和访问窗口的行为。

大部分寄存器控制这种行为是在PCI控制器内存映像的通用控制/状态寄存器部分。

而且你也必须配置PCI类型0配置头文件中的某些寄存器。

以下各节描述如何配置PCI控制器用于发起和目标操作。

某些寄存器可以在两种模式下设置且在程序代码中可被一步写入。

3.1配置控制器用于发起操作

关于控制器产生何种类型的PCI事务(配置,内存,I/O),你必须配置表6-1中的寄存器。

一般来说,你可按任意顺序写入这些寄存器。

不论怎样,最好在最后禁止PCI复位。

表6寄存器写入用于发起操作

寄存器全称

寄存器简称描述

PCI发起窗口n基地址/传输寄存器(PCIinitiatorwindownbase/translationregister)

PCIIWxBTAR

配置创建PCI通信内部地址:

1.窗口基地址(WBA)

2.窗口大小通过窗口地址屏蔽(WAM)

3.外部地址访问通过窗口发送地址(WTA)被发送

PCI发起窗口配置寄存器

(PCIinitiatorwindowconfigurationregister)PCIIWCR

配置每个发起窗口中由事务产生的访问的的类型。

对于每个窗口你必须编程:

1.它是一个I/O或是内存窗口(IO/M#)

2.如果是一个内存窗口(PRC)那么由读产生的内存读命令是什么类型

3.使能(ENABLE)

PCI状态命令寄存器(PCIstatus/commandRegister)PCISCR设置总线主机使能位(B)来允许PCI总线控制器发起事务。

PCI配置寄存器1(PCIconfiguration1register)PCICR1设置等待时间(LTMR)为一个非零值

PCI发起控制寄存器(PCIinitiatorcontrolregister)PCIICR(可选择的)设置最大重试值为0以实现无限重试PCI全局状态控制寄存器(PCIglobalstatuscontrol

Register)

PCIGSCR

通过清零PR位禁止PCI复位

3.2配置控制器用于目标操作

若控制器接收PCI事务(控制器仅对内存和配置事务响应),你必须设立表7中的寄存器。

表7寄存器写入用于目标操作

寄存器全称

寄存器简称描述

PCI基地址寄存器n(PCIbaseaddress

registern)PCIBARn

配置每个基地址,该地址在MCF5445x响应的PCI空间使用。

每个窗口的大小是固定不变的。

典型地,这些寄存器的一个子集可用表示合适PCI可使用的内存区域。

PCI目标基地址事务寄存器n(PCItargetbaseaddresstranslationregister

n)

PCITBATRn设置当发送或转换和使能他们(EN)时访问相应的PCIBARs的内部地址(BAT)。

PCI目标控制寄存器2(PCItarget

control2register)

PCITCR2设置用于PCIBARs的额外的使能。

PCI状态命令寄存器(PCIstatus

commandregister)

PCISCR设置内存访问控制位(M)以允许控制器接收内存事务。

PCI配置寄存器1(PCIconfiguration1

register)

PCICR1设立缓存大小(CLS)

PCI目标控制寄存器(PCItarget

controlregister)

PCITCR(可选择的)调整执行特征如读预取。

PCI全局状态控制寄存器(PCIglobalstatuscontrolregister

PCIGSCR

通过清零PR位禁止PCI复位

配置MCF5445x家族的PCI主机操作3.3使能控制器在PCI控制器按照要求配置完后,你必须通过清零PCIGSCR[PR]位禁止PCI复位。

注意:

设置PCIGSCR[PR]位将复位某些控制器寄存器返回到他们的缺省值。

因此如果发生此情况,你必须重新配置PCI控制器。

详情见设备参考手册。

4配置PCI仲裁器MCF5445x包含一个内部PCI仲裁器实现一个两级LRU仲裁机制。

MCF5445x允许使用一个外部仲裁,因此如果需要使用内部仲裁,要先配置一些寄存器。

●使能仲裁器请求和允许信号(PCI_REQ[3:

0],PCI_GNT[3:

0])。

缺省情况下,如果PCI在开机时使能,那么这些信号使能。

但如果不需用于PCI或其它功能他们也可作GPIO使用。

所需求的每对必须在PCI引脚分配寄存器中被选择,该寄存器在设备内存映像的引脚多路计数和控制章节描述。

●通过清零PCI仲裁控制寄存器中禁止位(DS)使能内部仲裁器。

●每个请求/允许对可被设置为两个不同优先权组中的一个。

5时钟当使用MCF5445x上的PCI时,PCI总线时钟应该作为芯片的时钟输入(EXTAL/PCI_CLK)MCF5445x不会给其它设备提供一个PCI时钟;。

它必须由一个外部时钟源产生。

当系统启动时使能了PCI模块,MCF5445x自动旁路片上振荡器且使用芯片输入时钟作为系统PLL的参考时钟。

MCF5445x的PCI总线控制器和仲裁器使用来自系统锁相环的一个输出,通过输出分频器后作为PCI系统时钟。

在引导时,该输出分频器(PCR[OUTDIV4])的值缺省为一个值,该值设置内部PCI时钟与芯片输入时钟频率相同。

PCI控制器仅支持数量有限的内部总线时钟和PCI时钟之间的比率。

缺省和并行的配置模式通过限制VCO的倍率来自动保证这个比率。

然而串行引导模式允许更宽范围的VCO倍率。

如果使用该模式,你不必选择一个倍增因数,它会干扰所支持的比率或锁相环的VCO范围。

在任何引导模式下,如果你在MCU运行时重写锁相环控制寄存器(PCR)你也要考虑上述事件。

不论何种PCI设计,你必须尽可能的最小化时钟和信号偏差。

6代码举例下例代码设置MCF5445xMCU使用内部PCI仲裁器和所有PCI请求/允许引脚。

该例也配置了PCI总线控制器以允许发起PCI事务和接收PCI事务。

这里用寄存器的名称来作为宏定义,它的实际值在后面的注释中给出。

其它配置也是可能的。

/*设置PCI仲裁器*/MCF_PCIARB_PACR=0/*0x001f001f*/|MCF_PCIARB_PACR_INTMPRI|MCF_PCIARB_PACR_INTMINTEN配置MCF5445x家族的PCI主机操作,Rev.06

配置MCF5445x家族的PCI主机操作|MCF_PCIARB_PACR_EXTMPRI(0x1F|MCF_PCIARB_PACR_EXTMINTEN(0x1F;/*设置所有PCI使用的PCI请求和允许引脚*/MCF_GPIO_PAR_PCI=0/*0xd5d5*/|MCF_GPIO_PAR_PCI_GNT3_GNT3|MCF_GPIO_PAR_PCI_GNT2_GNT2|MCF_GPIO_PAR_PCI_GNT1_GNT1|MCF_GPIO_PAR_PCI_GNT0_GNT0|MCF_GPIO_PAR_PCI_REQ3_REQ3|MCF_GPIO_PAR_PCI_REQ2_REQ2|MCF_GPIO_PAR_PCI_REQ1_REQ1|MCF_GPIO_PAR_PCI_REQ0_REQ0;/*设置PCI接口转换速率(从66MHz到33MHz),这是引导时的初始化配置,但如果需要,在运行时也可以配置*/MCF_GPIO_MSCR_PCI=MCF_GPIO_MSCR_PCI_PCI_HI_66MHZ;/*设置发起窗口:

基地址,大小和事务地址*//*窗口0将解码从0xa0000000开始的64MB并且转到PCI存储器地址空间的相同区域。

这将作为PCI存储器窗口*/|MCF_PCI_PCIIWBTAR_WBA(PCI_MEM_ADDRESS|MCF_PCI_PCIIWBTAR_WAM(PCI_MEM_SIZE|MCF_PCI_PCIIWBTAR_WTA(PCI_MEM_T_ADDRESS;/*窗口1将解码从0xa4000000开始的16MB并且转到PCIIO地址空间的0xa4000000。

这将作为PCIIO窗口*/MCF_PCI_PCIIW1BTAR=0/*0xa400a400*/|MCF_PCI_PCIIWBTAR_WBA(PCI_IO_ADDRESS|MCF_PCI_PCIIWBTAR_WAM(PCI_IO_SIZE|MCF_PCI_PCIIWBTAR_WTA(PCI_IO_T_ADDRESS;/*窗口2将解码从0xa5000000开始的16MB并且可以用作配置数据窗口。

如果PCICAR的使能位置位,任何IO窗口也必须用作配置窗口。

当作为配置窗口时,使用PCICAR内的地址而不是转换值。

*/MCF_PCI_PCIIW2BTAR=0/*0xa500a500*/|MCF_PCI_PCIIWBTAR_WBA(PCI_CFG_ADDRESS|MCF_PCI_PCIIWBTAR_WAM(PCI_CFG_SIZE|MCF_PCI_PCIIWBTAR_WTA(PCI_CFG_T_ADDRESS;MCF_PCI_PCIIWCR=0/*0x01090900*/|MCF_PCI_PCIIWCR_WINCTRL0_MEMREAD|MCF_PCI_PCIIWCR_WINCTRL1_IO|MCF_PCI_PCIIWCR_WINCTRL2_IO;/*允许发起者访问和目标存储器访问*/MCF_PCI_PCISCR|=0/*0x00000006*/|MCF_PCI_PCISCR_B|MCF_PCI_PCISCR_M;/*设置最大重试写为0,以无限重试并且禁止块中的中断*/MCF_PCI_PCIICR=MCF_PCI_PCIICR_MAXRETRY(0;/*0x0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1