主机接口总线(Host-Port Interface)
0赞本文是对TMS320C6713的datasheet里关于HPI部分的翻译笔记。
HPI寄存器:
(TMS320C6713B Floating-Point Digital Signal.pdf page.25)
16进制地址范围 |
缩写 |
寄存器名 |
注释 |
— |
HPID |
HPI数据寄存器 |
仅用于主机读写访问 |
— |
HPIA |
HPI地址寄存器 |
仅用于主机读写访问 |
0188 0000 |
HPIC |
HPI控制寄存器 |
主机和CPU均可读写访问 |
0188 0004 – 018B FFFF |
— |
保留 |
器件配置:
(TMS320C6713B Floating-Point Digital Signal.pdf page.32-47)
C6713B器件的启动模式和配置/外设选择取决于器件复位时,而其它的器件配置/外设选择是通过器件复位以后软件编程器件配置寄存器(DEVCFG,地址为0x019C0200)。
表18描述了器件配置管脚,具体是通过对HPI数据管脚(HD[4:3],HD8,HD12)和CLKMODE0管脚添加内部或者外部的上拉或下拉电阻实现。这些管脚必须被设置在特定状态 知道复位完成。
表18 器件复位时的器件配置管 脚(HD[4:3],HD8,HD12)
配置管脚 |
实际管脚数 |
功能描述 |
HD121 |
168 |
对于C6713BGDP或者C6713BZDP: 0 – EMIF数据将放置在总线的ED[7:0]上,忽略endianess模式 1 – 在little endian模 式(HD8=1),8bit或16bit的EMIF数据将放置在总线 的ED[7:0]上;在big endian模式 (HD8=0),8bit或16bit的EMIF数据将放置在总线 的ED[31:24]上(缺省) |
HD82 |
160 |
器件endian模式: 0 - 系统工作在bit endian模式 1 – 系统工作在little endian模 式 |
HD[4:3] (BOOTMODE) |
156,154 |
启动模式配置脚: 00 - HPI启动/Emulation启动 01 – CE1#宽度8bit,缺省时序异步外 部ROM启动(缺省模式) 10 - CE1#宽度16bit,缺省时序异步 外部ROM启动 11 - CE1#宽度32bit,缺省时序异步 外部ROM启动 |
CLKMODE0 |
205 |
输入时钟源选择: 0 – 保留,不使用 1 – CLKIN方波(缺省) 这个管脚在复位后必须设置为准确的状态 |
1所有其它的HD管脚HD[15,13,11:9,7:5,2:0]已被上拉或者下拉(IPUs or IPDs)。为了器件正常运转,在复位时把HD[13,11:9,7,1,0]脚添加外部上拉或者下拉,然后反对在复位时驱动HD[15,6,5,2]脚。
2IPD=Internal pulldown(内部下拉),IPU=Internal pullup(内部上拉)。使用外部上拉或者下拉 电阻值分别不要大于4.4KΩ和2.0kΩ。
器件复位时的外设管脚选择
一些外设复用相同的管脚并且相互排斥(例如HPI口和部分GPIO以及McASP1)。
HPI,GPIO和McASP1外设:
HPI_EN(HD14脚)在复位时被锁定。这个脚决定了HPI外设管脚、McASP1外设管脚和GP[15:8,3,1,0]管脚的功能是否使能 (见表19)。
表19 HPI_EN(HD14 PIN)外设选择(HPI,GPIO和McASP1)
外设管脚选择 |
外设管脚已被选择 |
描述 |
|
HPI_EN(173) |
HPI |
McASP1和GP[15:8,3,1,0] |
|
0 |
√ |
HPI功能屏蔽,McASP1和GPIO功能可用 |
|
1 |
√ |
HPI功能可用,McASP1和GP[15:8,3,1,0]功能屏蔽 |
通过设置DEVCFG控制寄存器进行外设选择和器件配置
器件配置寄存器(DEVCFG)允许控制McBSP0,McBSP1,McASP0,I2C1和定时器外设的管脚是 否可用。DEVCFG也支持用户控制EMIF输入时钟源和定时器输出脚。(其它略,主要是软件配置)
TMS320C6713的HPI管脚:
(TMS320C6713B Floating-Point Digital Signal.pdf page.39)
TMS320C6713的HPI框图:
(TMS320C6713B Floating-Point Digital Signal.pdf page.)
HPI外围管脚描述:
(TMS320C6713B Floating-Point Digital Signal.pdf page.49-51)
信号名 |
管脚号 |
类型 |
IPU/IPD |
描述 |
HINT# |
135 |
O/Z |
IPU |
主机中断(从DSP到主机)(O)[缺省] |
HCNTL1 |
144 |
I |
IPU |
主机控制——选择访问控制寄存器、地址寄存器或数据寄存器(I)[缺省] |
HCNTL0 |
146 |
I |
IPU |
主机控制——选择访问控制寄存器、地址寄存器或数据寄存器(I)[缺省] |
HHWIL |
139 |
I |
IPU |
主机半字选择——第一个或第二个半字(不需要高低排序)(I)[缺省] |
HR/W# |
143 |
I |
IPU |
主机读或写选择(I)[缺省] |
HD[15] |
174 |
I/O/Z |
IPU |
主机接口数据管脚 |
HD[14] |
173 |
IPU |
||
HD[13] |
172 |
IPU |
||
HD[12] |
168 |
IPU |
||
HD[11] |
167 |
IPU |
||
HD[10] |
166 |
IPU |
||
HD[9] |
165 |
IPU |
||
HD[8] |
160 |
IPU |
||
HD[7] |
164 |
IPU |
||
HD[6] |
161 |
IPU |
||
HD[5] |
159 |
IPU |
||
HD[4] |
156 |
IPD |
||
HD[3] |
154 |
IPU |
||
HD[2] |
155 |
IPU |
||
HD[1] |
152 |
IPU |
||
HD[0] |
147 |
IPU |
||
HAS# |
153 |
I |
IPU |
主机地址锁存(I)[缺省] |
HCS# |
145 |
I |
IPU |
主机片选(I)[缺省] |
HDS1# |
151 |
I |
IPU |
主机数据锁存1(I)[缺省] |
HDS2# |
150 |
I |
IPU |
主机数据锁存2(I)[缺省] |
HRDY# |
140 |
O/Z |
IPD |
主机准备完成(从DSP到主机)(O)[缺省] |
说明:该表只讨论HPI功能,不罗列出管脚的其它复用功能
启动模式:
(TMS320C6713B Floating-Point Digital Signal.pdf page.98)
主机启动(Host boot)
如果选择了主机启动,在内部复位之后,CPU内部“停转”从而释放其它设备。在这个时期,外部主机可以通过主机总线初始 化CPU的内存空间,包括诸如那些控制EMIF或其它外设的内部配置寄存器。一旦主机完成了必要的初始化,就必须设置HPIC寄存器的DSPINT位,以完成启动进程。 这个转换促成启动配置逻辑将CPU跳出“停转”状态。然后CPU将从零地址开始执行(程序)。由于DSPINT位出现在CPU依然处于内部“停转” 状态,所以它不会被CPU锁存。然而,在主机启动 模式下,DSPINT位促使CPU跳出“停转”状态。所有内存将由主机配置,这就意味着主机可以根据需要决定 写入CPU的代码。在CPU跳出“停转”状态后,CPU需要清除DSPINT位,否则,DSPINTs就不会再被接收到。
Emulation启动(略)
EMIF启动(使用缺省ROM模式)(略)
HPI时序图:
(TMS320C6713B Floating-Point Digital Signal.pdf page.130-131)
当HCS#为高电平时,HRDY#总是低电平。当HCS#下降沿到来的同时,HRDY#拉高,这意味着HPI总线处于忙状态(执行一个地址自增的HPID读操作或者写操作)。