MTK驱动之modem编译及配置

    

      本文作者驱动熊,转载请注明出处及本博客链接。

            主要介绍modem的编译和3G  、4G手机modem的配置方法。


           首先编译modem版本,大家了解到modem的编译指令,主要是把做好的配置文件导入到源代码中,之后两个命令就可以完成modem的编译。

第一:

./make.sh"MAGC6580_WE_L_HSPA.mak" new  //运行bianyimodem版本的mak文件,比如LTTG和LWG  DSDS和TSTS等等区别版本。

第二:

cd /home/android026/xiongshaohua/80_base/alps
device/mediatek/build/build/tools/modemRenameCopy.pl "/home/android026/xiongshaohua/modem/ALPS.L1.MP6.V2_MAGC6580_WE_L/MAGC6580_WE_L_GPRS_HSPA_MOLY.WR8.W1449.MD.WG.MP.V6" "MAGC6580_WE_L_HSPA"

拿80平台的作比较,第二步就是通过运行80_base源代码里的modemRenameCopy.pl文件,把编译好的文件压缩打包复制到一个叫temp_modem文件夹里。可以通过查看modemRenameCopy.pl文件查看运行过程。

基本上执行完这两步之后,modem的编译就算完成了,可以放入80_base.git中的源代码也在temp_modem文件夹中。为了完善简化编译步骤,大家可以自己去写一个编译脚本,方便自己编译modem版本(主要是节省modem配置文件的复制)。

        

          其次我们了解下3G手机modem的配置问题,其实配置对于一个驱动工程师来说,不是一个很重要的点,因为这一步基本上都是射频工程师做。但遇到一些简单的修改,我们也需要会更改。

        

2G RX

以V107为例:

V107配置PA和TXM为 洛达AP6689+AP7115+AW9102

以一组LOW BAND   850TRX为例

/*MT6580RF*/ #define  PDATA_GSM850_PR1       0x000000          

/*MT6580RF*/ #define  PDATA_GSM850_PR2       0x000006          

/*MT6580RF*/ #define  PDATA_GSM850_PR3       0x000000  

 

其中PR1和PR3为起始和结束阶段取值为0x00

MTK驱动之modem编译及配置_第1张图片

所以LB对应的900和850 PR2取值都是:  0x06       LB对应的PR2取值都是: 0x04 

 

 

 MTK驱动之modem编译及配置_第2张图片

 

2G TX

#define PDATA_GSM850_PT1      (0x000000          |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2      (0x000001          |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2B     (0x000009          |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT3      (0x000000                            )

#define PDATA_GSM850_PT2M1_G8  (0x000009|PDATA_8PSK|PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2M2_G8 (0x000009|PDATA_8PSK|PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2M1_8G (0x000001          |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2M2_8G (0x000009          |PDATA_GSM_ERR_DET)             

 

同理 PT1和PT3取值为0x00,分别代表意义为起始阶段和结束阶段。

MTK驱动之modem编译及配置_第3张图片

其中PT2和PT2B的区别在于PT2的TX_EN引脚为至0;而PT2B TX_EN引脚要至1

所以LB  取值

#define PDATA_GSM850_PT2       (0x000001           |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2B      (0x000009           |PDATA_GSM_ERR_DET)

 

HB  取值

#define PDATA_GSM850_PT2       (0x000003           |PDATA_GSM_ERR_DET)

#define PDATA_GSM850_PT2B      (0x00000B           |PDATA_GSM_ERR_DET)

 

3G  BAND1_OUTPUT_SEL和BAND1_CHANNEL_SEL配置

/*MT6166*/ #define    BAND1_CHANNEL_SEL    LNA3_HIGH_BAND

/*MT6166*/ #define    BAND2_CHANNEL_SEL    LNA1_HIGH_BAND

/*MT6166*/ #define    BAND3_CHANNEL_SEL    NON_USED_BAND

/*MT6166*/ #define    BAND4_CHANNEL_SEL    NON_USED_BAND

/*MT6166*/ #define    BAND5_CHANNEL_SEL    LNA2_LOW_BAND

/*MT6166*/ #define    BAND6_CHANNEL_SEL    NON_USED_BAND

/*MT6166*/ #define    BAND8_CHANNEL_SEL    LNA2_LOW_BAND

/*MT6166*/ #define    BAND9_CHANNEL_SEL    NON_USED_BAND

/*MT6166*/ #define    BAND10_CHANNEL_SEL   NON_USED_BAND

/*MT6166*/ #define    BAND11_CHANNEL_SEL   NON_USED_BAND

/*MT6166*/ #define    BAND19_CHANNEL_SEL   NON_USED_BAND

MTK驱动之modem编译及配置_第4张图片

如图所示对应填写即可,其中 B8和B5可以用同一个通道  LNA_2来进行传输。

 

/*MT6166*/ #define    BAND1_OUTPUT_SEL     TX_HIGH_BAND2

/*MT6166*/ #define    BAND2_OUTPUT_SEL     TX_HIGH_BAND2

/*MT6166*/ #define    BAND3_OUTPUT_SEL     TX_NULL_BAND

/*MT6166*/ #define    BAND4_OUTPUT_SEL     TX_NULL_BAND

/*MT6166*/ #define    BAND5_OUTPUT_SEL     TX_LOW_BAND1

/*MT6166*/ #define    BAND6_OUTPUT_SEL     TX_NULL_BAND

/*MT6166*/ #define    BAND8_OUTPUT_SEL     TX_LOW_BAND1

/*MT6166*/ #define    BAND9_OUTPUT_SEL     TX_NULL_BAND

/*MT6166*/ #define    BAND10_OUTPUT_SEL    TX_NULL_BAND

/*MT6166*/ #define    BAND11_OUTPUT_SEL    TX_NULL_BAND

/*MT6166*/ #define    BAND19_OUTPUT_SEL    TX_NULL_BAND

MTK驱动之modem编译及配置_第5张图片

如图所示,B1和B2既可以共用一个HB2也可以分别引出。而B5和B8只能共用一个B1

3G RX

/*MT6166*/ #define  PDATA_BAND1_PR1      0x0005

/*MT6166*/ #define  PDATA_BAND1_PR2      0x0005

/*MT6166*/ #define  PDATA_BAND1_PR2B     0x0005

/*MT6166*/ #define  PDATA_BAND1_PR3      0x0000

 MTK驱动之modem编译及配置_第6张图片MTK驱动之modem编译及配置_第7张图片

/*MT6166*/ #define  PDATA_BAND1_PR1      0x0005

/*MT6166*/ #define  PDATA_BAND1_PR2      0x0005

/*MT6166*/ #define  PDATA_BAND1_PR2B     0x0005

/*MT6166*/ #define  PDATA_BAND1_PR3      0x0000

 

这里PR1=PR2=PR2B,但PR3=0

 

3G TX

/*MT6166*/ #define  PDATA_BAND1_PT1      0x0005

/*MT6166*/ #define  PDATA_BAND1_PT2      0x0415

/*MT6166*/ #define  PDATA_BAND1_PT2B     0x0415

/*MT6166*/ #define  PDATA_BAND1_PT3      0x0000

 MTK驱动之modem编译及配置_第8张图片

0x0005只是选择BAND1这个通道,我们要确定选择的是发射,这就需要PA TX B1_EN至1,所以这里应该是0x0015

MTK驱动之modem编译及配置_第9张图片

但是起始阶段 PT1=PR1=0X0005选择BAND1的阶段;

PT2=0x0015,但是由于BAND1和BAND2是通过双分器9102过来,通过BPI10和BPI11来控制是BAND1或者是BAND2;所以PT2=0x0415  ;BAND2=0x0c11。如果没有9102,那么只能选择B1或者B2其中一个。

         这就是3G手机modem配置,需要根据PA、TXM等芯片规格来确定寄存器的值,然后根据原理图来配置modem文件。4G手机modem配置较为复杂,过一段时间在来上传。




你可能感兴趣的:(MTK驱动之modem编译及配置)