HFC-S mini芯片初始化

HFC-S  mini芯片初始化还是比较复杂,就不写文字的初始化过程,直接贴代码,好在代码和注释都比较清楚。使用的语言为C,CPU为EZ80,使用的宏定义如下:

#define hfcAdr(adr)            MEM_HDLC_ADR_ADR=adr; MEM_HDLC_DATA_ADR
#define readHfcAdr(adr,v)    MEM_HDLC_ADR_ADR=adr; v=MEM_HDLC_DATA_ADR

初始化代码,下面这段代码一共初始化了3个通道,分别是B1、B2、AUX1:

      hfcId=0;
      //读取HFC芯片R_CHIP_ID寄存器内容,也就是芯片ID
      while(hfcId !=V_CHIP_ID)
    {
        readHfcAdr(R_CHIP_ID,hfcId);
    }
      /* 下面这段代码是调试硬件时测试片内RAM使用
    m=0;
    for(k=0;k<256;k++)
    {
        hfcAdr(W_RAM_ADR_L)=m;
        hfcAdr(W_RAM_ADR_H)=0;
        hfcAdr(A_RAM_DATA)=m+1;
        m++;
    }
    m=0;
    for(k=0;k<256;k++)
    {
        hfcAdr(W_RAM_ADR_L)=m;
        hfcAdr(W_RAM_ADR_H)=0;
        readHfcAdr(A_RAM_DATA,buf[k]);
        m++;
    }
    */
      //芯片复位
      hfcAdr(W_CIRM)=V_CIRM_RST;
      for(n=0;n<500;n++);
      //复位完毕后,清除复位寄存器内容
      hfcAdr(W_CIRM)=V_CIRM_DIS_RST;
      for(n=0;n<500;n++);
     
      //W_CLKDEL - Clock control register of the S/T module
      hfcAdr(W_CLKDEL)=V_CLKDEL;
      //W_SCTRL - Control register of the S/T interface, register 0
      //V_SCTRL = 0x43,0100.0011b
      //B0=1,B1 send data enabled
      //B1=1,B2 send data enabled
      //B2=0,S/T Interface mode,TE mode
      //B3=0,D-Chanel priority, high
      //B4=0,S/Q bits transmission disabled
      //B5=0,96KHz test signal disabled
      //B6=1,non capacitive line mode
      //B7=0,Power down, normal operation
      hfcAdr(W_SCTRL)=V_SCTRL;
      //W_ST_WR_STA(0x30) - S/T state machine register
      //设定初始值为0
      hfcAdr(W_ST_WR_STA)=V_ST_WR_STA;
      //W_SCTRL_R(0x33) - Control register of the S/T interface, register 2
      //设定B1和B2频道都为通用操作模式
      hfcAdr(W_SCTRL_R)=V_SCTRL_R;
      //设定D、E通道为通用操作模式
      hfcAdr(W_SCTRL_E) = 0x00;

      //W_B1_SSL(0x20) - Slot assigner for HFC-channel[B1,TX] and PCM time slot configuration
      //V_B1_SSL = 0xDD
      //output buffer for STIO2 enabled
      //使用29时隙
      hfcAdr(W_B1_SSL)=V_B1_SSL;
      //W_B1_RSL(0x24) - Slot assigner for HFC-channel[B1,RX] and PCM time slot configuration
      //receive data from STIO1,使用29时隙
      hfcAdr(W_B1_RSL)=V_B1_RSL;

      hfcAdr(W_B2_SSL)=V_B2_SSL;
      hfcAdr(W_B2_RSL)=V_B2_RSL;
     
      //设定HDLC通道2的接收和发送时隙号
      hfcAdr(W_AUX1_SSL) = V_AUX1_TX_ROUT + V_AUX1_TX_SL;
      hfcAdr(W_AUX1_RSL) = V_AUX1_RX_ROUT + V_AUX1_RX_SL;

      //W_MST_MODE0(0x14) - PCM mode, register 0
      //V_MST_MODE0 = 0xEC
      hfcAdr(W_MST_MODE0)=V_MST_MODE0;
      //W_MST_MODE1(0x15) - PCM mode, register 1
      //V_MST_MODE1 = 0x20,8MBit/s
      hfcAdr(W_MST_MODE1)=V_MST_MODE1;    // | 0x40, loop test
      //W_MST_MODE2(0x16) - PCM mode, register 2
      //V_MST_MODE2 = 0x34,选择时隙在96-127,SYNC_I is connected to SYNC_O
      hfcAdr(W_MST_MODE2)=V_MST_MODE2;

      //W_F_THRES(0x0C) - FIFO fill level control register
      //V_F_THRES = 0xFF
      hfcAdr(W_F_THRES)=V_F_THRES;
      //W_F_MODE(0x0D) - 工作模式
      //V_F_MODE = 0,Simple Mode
      hfcAdr(W_F_MODE)=V_F_MODE;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值