首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

HPI在MCU和DSP接口中的应用(2)

HPI在MCU和DSP接口中的应用(2)

b) 设置地址寄存器HP IA。先设置HCNTL1 =1&HCNTL0 = 0,选择将要对HP IA进行操作。然后将要访问的C54x片内RAM的地址写入HP I,高8位先写,低8位后写。
c) 读写C54x的片内RAM。先设置HCNTL1 /0,选择将要对数据锁存器HP ID 进行操作。如果设置HCNTL1 = 0&HCNTL0 = 1,表示使用地址自动增加模式;如果设置HCNTL0 = HCNTL1 = 1 时,表示不使用地址自动增加模式,这时完成读写操作后,地址寄存器HP IA将不会变。
以下是C8051F060的HP I接口程序:
(1) 读HPID寄存器程序
unsigned int HP ID_Read ( )
{
unsigned char H_Byte,L_Byte;
HDS2 = 1;
HCS = 0;         使能HP I
HCNTL0 = 1;
HCNTL1 = 0; 主机可读写HPID
HB IL = 0; 当前是第一字节
HRW = 1; 主机要求读选通HPI
HDS1 = 0; 开始数据操作
H_Byte = P1; 读出高8位数据
Delay(2) ; 等待数据读出完成
HDS1 = 1; 结束数据操作
HB IL = 1; 当前是第二字节
HRW = 1; 主机要求读选通HPI
HDS1 = 0; 开始数据操作
L_Byte = P1; 读出低8位数据
Delay(2) ; 等待数据读出完成
HDS1 = 1; 结束数据操作
}
(2) 写HPID寄存器程序
void HPID_Write ( unsigned intW_data)
{
HDS2 = 1;
HCS = 0; 使能HP I
HCNTL0 = 1;
HCNTL1 = 0; 主机可读写HPID
HB IL = 0; 当前是第一字节
HRW = 0; 主机要求写选通HPI
HDS1 = 0; 开始数据操作
P1 = ( unsigned char) ( (W_data > > 8) &0xFF) ;  写入高8位数据
Delay(2) ; 等待数据写入完成
HDS1 = 1; 结束数据操作
HB IL = 1; 当前是第二字节
HRW = 0; 主机要求写选通HPI
HDS1 = 0; 开始数据操作
P1 = ( unsigned char) (W_data&0xFF) ;  写入低8位数据
Delay(2) ; 等待数据写入完成
HDS1 = 1; 结束数据操作
}
3 结束语
本设计方案具有硬件结构简单、使用方便等优点,有很好的使用价值。经在某导航系统中实际使用的效果来看,证明该设计方案简单、性能稳定、高效可靠,达到了预期的设计目的。
返回列表