网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C6000 >> 文章正文
  TMS320C672x开发笔记之HPI           ★★★ 【字体:
TMS320C672x开发笔记之HPI
作者:FreeNet    文章来源:FreeNet    点击数:    更新时间:2008-2-29    

主机接口HPI(Host Pott Interface)DSP系列定点芯片内部具有的一种并行接口部件,主要用于与其他总线或CPU之间进行通信。主机是HPI口的主控者,HPI口作为一个外设与主机连接,使主机的访问操作很方便。主机通过以下单元与HPI口通信:专用地址和数据寄存器、HPI控制寄存器以及外部数据和接口控制信号。HPI有两种工作方式:共用寻址方式(SAM)和仅主机寻址方式(HOM)。在SAM方式下,主机机和DSP都能寻址HPI存储器;在HOM方式下,仅能让主机寻址HPI存储器,DSP则处于复位状态,或者处在所有内部和外部时钟都停止工作的IDLE2空闲状态(最低功耗状态)

现在把主机接口的代码主要部分贴出来,供大家参考,希望对HPI接口开发的朋友有个借鉴。

这里的主机是一片W77E58单片机,对于DSPHPI接口不在赘述,仅贴出主机代码,代码可以很方便的移植到其他CPU上。因为W77e58数据总线为8位,所以对HPI操作是分两次操作才能完成一个WORD的传送,因为单片机要实时和DSP进行数据交互,所以占用中断0,设置优先级最高。

 /************************HPI口控制的主要标志位*******************************/
/**                   */
/*      HPI
寄存器地址编译码方法
        */
/*                   */
/* A15A14A13 A12 A11   A10 A9  A8          */
/*  |  | |    |    |   |            */
/*     110 HCNTL0 HCNTL1 HBIL HR/W  X HCS HDS2 HAS  HDS1     */
/*             |  |   |  |     */
/*          GND  WR   VCC RD     */
/*                    */
/****************************************************************************/

#define HPICW_H XBYTE[0xC100]  /*110 00 0 0 1  */
#define HPICW_L XBYTE[0xC500]  /*110 00 1 0 1  */
#define HPICR_H XBYTE[0xC300]  /*110 00 0 1 1 */
#define HPICR_L XBYTE[0xC700]  /*110 00 1 1 1 *//*
读写HPI控制寄存器*/

#define HPIDW_H XBYTE[0xD100]  /*110 10 0 0 1 */
#define HPIDW_L XBYTE[0xD500]  /*110 10 1 0 1  */
#define HPIDR_H XBYTE[0xD300]  /*110 10 0 1 1  */
#define HPIDR_L XBYTE[0xD700]  /*110 10 1 1 1  *//*
读写HPI数据寄存器*/

#define HPIAW_H XBYTE[0xC900]  /*110 01 0 0 1  */
#define HPIAW_L XBYTE[0xCD00]  /*110 01 1 0 1  */
#define HPIAR_H XBYTE[0xCB00]  /*110 01 0 1 1  */
#define HPIAR_L XBYTE[0xCF00]  /*110 01 1 1 1  *//*
读写HPI地址寄存器*/

#define HPI_WRITE_FLAG  1  /*HT/R=1DSP发送数据标志*/
#define HPI_READ_FLAG  0  /*HT/R=0
DSP读取数据标志*/

 

***********************初始始化HPI16位地址0X10000*************************/

void InitHpiRegister()
{
 HPICW_H=0x10;  /*
映射高16位地址0X1 0000*/
 HPICW_L=0x10;
 HPIAW_H=0x01;
 HPIAW_L=0x01;
  HPICW_H=0x00;  /*
规定先写入的字节为高8HPIC-BOB置位
1*/
  HPICW_L=0x00;
}

/***************************
以下进行中断处理
*********************************/
/*                   */
/*     
中断4为串口0中断,  接收来自DPLC数据
    */
/*     
中断7为串口1中断,  接收来自PC机数据
    */
/*                   */
/*****************************
中断0,CPU&HPI通信******************************/

void Int_HPI()   interrupt 0
{
 _nop_();_nop_();_nop_();
 HPI_W_R=P4&0x01;
 if(HPI_INT==HPIADDRESS)
 {
  InitHpiRegister();
  if(HPI_W_R==HPI_READ_FLAG)
   ReadDataFromDsp();
  else
   WriteDataToDsp();
 }
 

  }
}
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    TMS320C672x开发笔记之EMIF
    DSP281x无需仿真器,串口烧写…
    TMS320C672x开发笔记之外部中…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号