MTKGmodem配置.docx
《MTKGmodem配置.docx》由会员分享,可在线阅读,更多相关《MTKGmodem配置.docx(10页珍藏版)》请在冰豆网上搜索。
MTKGmodem配置
MTK平台modem配置
先从modem配置表里了解一下每一个文件夹对应哪个频段的配置
其他没有标记的,目前我们是用不到的,也不要去修改里面的参数。
打开每一个需要修改的文件夹,可以看到三个子文件夹,类似下图:
我们只需要修改上面框选里面的文件夹里面的选项即可。
进入到文件夹里面,发现有好几个文件,我们只需要修改下面标红的两个就可以了,一般都是**_mipi.h和**_rf.h文件
各个文件夹里面文件详细说明如下图:
了解了上面文件说明后,下面开始讲具体参数配置。
一、mmll_rfUSID配置以及修改
由于我们目前使用到的SKY的PA和开关,所以他们两个的USID是一样的,出厂默认都是OxF,按照常理来讲,由于PA和开关挂在不同的MIPI通路上,是不会有地址冲突的问题,但是目前MT6735平台存在弱4G信号下,切不回2G通话,也就是有时候打不进来电话,所以需要将这两个设备的USID改成不一样,修改PA和开关都可以,下面示例修改PA的USID。
首先打开SKY77643的规格书,找到这个位置
稍后将会用到里面的ProductID和ManufacturerID
然后在mmll_rf文件夹里面打开这两个文件夹
在mml1_custom_mipi.c文件里面找到这个位置,按照上面的描述修改相应的值
后面的newUSID可以修改为0x1~0xE之间的一个,在mml1_custom_mipi.h文件里面对应修改就可以了,由于我们修改的是PA,所以在portsel下面需要选取MIPI_PORT0,如果是开关的话,就需要对应修改为MIPI_PORT1。
至于在这里选取修改的USID是PA0还是PA1,ASM0还是ASM1,可以从后面的文件里面看出来。
比如在4G里面的lte_custom_mipi.c文件里面,可以看到在TPC这里会有一个USID的调用。
这里可以看到,在同一个文件里面对同一个PA可能会有两个USID的调用,主要因为这个modem沿用了phase-1设计的模板,很多东西没有和phase-2设计选用的PA对应上来,我们目前的设计中,FDD和TDD已经做到一个PA里面去了,所以USID应该是要一致的,所以我们后来把所有用到PA1的地方全部改为了PA0。
如上为修改USID内容。
二、l1_rf2G配置
在配置寄存器之前,需要在l1d_custom_mipi.h里面确认mipi是否是打开的,在这个文件里面找到如下位置,这个值是1,就代表mipi是打开的,后面我们在配置的时候,只需要配置mipienable选项就可以了。
由于2G部分的发射走的是开关的通路,所以配置2G的时候,都需要在开关端配置完成。
在l1d_custom_mipi.c文件里面打开,先从大致的组织架构来讲,一般来说,在配寄存器之前,会有一个event事件让我们去定义,大致的意思是从第几行到第几行是什么功能,
比如上图定义的是,从第0行到第1行是开关的预打开,这里的第0行就是我们实际的第1行,所以0~1,是需要占用两行去配置的。
从上面的event配置可以看出来,实际开关的打开时间在QB_MIPI_RX_ON1这一步。
上图是GSM接收的寄存器配置,在前面event事件定义的时候已经说过,第1,2行是开关的预打开,发射的时候也是一样的,所以,当我们看到0x1C这个寄存器的时候,我们都不用去修改,在上面的图中,一共有2次用到0x1C寄存器,第一次是初始化,最后一个是关闭作用,我们实际上用的到去配置的就是第三行,开关的00寄存器,这里拿SKY77916举例说明
首先,可以从原理图上看出来,这里和3G的使用用的SKY77590类似,只不过是SKY77916外围可以提供14个TRX口让我们去做更多的频段
上图是SKY77916的寄存器0的每一位说明,目前我们的modem里面都是用16进制的,所以转换成2进制,就一共有8位,特别注意的是第5位那里,0是正常增益,1是低增益,只针对高频,这里后面在B39的发射配置的时候会用到。
在控制开关打开关闭的时候,我们可以近似的把下面4:
0这一行里面的值作为开关打开时候的值,例如,在GSM850RX配置的时候,TRX口用的是TRX4,所以此时GSM850接收寄存器0这里就需要配置为0x02,以上为GSMRX配置。
GSMTX配置和RX的event事件定义差不多
在第1,2行还是开关的预打开,后面在开关PA打开的时候引入了寄存器1,寄存器用于设置PA的偏置电压
GSM按照默认的去设置就好了,一般来说影响不大,在这里配置寄存器0的时候,和前面不一样,可以看到黄色箭头指向的位置,这里之前应该是一个数值,现在是GGE_MIPI_PA_G8这个宏,在紧跟着下面会有一个定义
这里截取的是GSM850的配置,所以在GMSK调制发射的时候,值是0x0A,可以对比上面开关寄存器0的真值表,是LB_GMSK_TX,下面8PSK调制发射的时候,也就是我们平常说的EDGE,对应真值表是EDGE和线性发射,后面配置B34,B39的时候,它们的发射也需要选择此类发射。
照此类推可以配完GSM其他频段。
另外在配置的时候,可能会看到有如下字符NOTCH_SWITCH,set0,set1,这些看到直接跳过,不需要配置。
接下来是配置l1d_custom_rf.h文件
前面也有提到,我们在这里需要配置mipienable的情况,这里的配置是BPI的配置,和我们之前的3G平台一样,我们只需要配置PR2和PT2后面的值就可以的,其他的可以不用管
从35平台的原理图可以看出,BPI控制从0~27总共28个,所以转成16进制,一共就有7位,BPI0~3第最低位,4~7是倒数第2位,以此类推。
比如在B2,B3的接收位置,有一个开关去切换接收,它用的BPI口是10,又从开关特性知道,当BPI10=1的时候,主接收与B3的接收相通,所以在B3也就是DCS的PR2的地方,我们就需要配置成0x00000400,如果发射里面有开关,类似。
最后,就需要配置GSM的发射接收口了,在l1d_custom_rf.h文件下面可以找到这样两个位置
上面是RX,下面是TX,还是和之前一样,这里只需要配置mipienable的选项,由于目前我们的项目接收都是和3G,4G(主集)双工器共用通路了,所以,这里接收我们只需要看Band,不用去分2,3,4G了,比如B2,在2,3,4G里面的接收口都会是IORX_MB1。
发射端口配置,根据原理图去匹配,一般来说,发射端口不会更改。
如上为整个2G配置方法。
三、3G配置
(1)、WCDMA控制逻辑配置
在ul1d_custom_mipi.h文件里面确认mipienable是否打开,默认都是打开的,可以确定下,不做修改。
打开ul1d_custom_mipi.c文件,先可以看到RX的event事件,这里比较简单,只有2行,第一行初始化,第二行打开开关
对应下面的data控制
和2G不一样,3G和4G是分段处理的,所以,所有的寄存器0都需要配成一样。
在WCDMA的TX配置的时候,首先看到event事件定义
定义打开的其实也只有第一行
也就是说,只有0x1C这里起了作用,后面的都是在关闭PA,在这里如果配置了PA的寄存器0和寄存器2也是没有关系的,通过实际测试发现,电流没有影响,但是为了安全起见,还是在TX里面把寄存器0,1,2,3的值都配置为0x00,发射的寄存器0,1,2,3的值,可以在后面TPC里面配置,同时,可以看到第6,7行是打开开关的,这里和前面一样,TRX口用的哪个开关就配置为其对应的值。
接下来是TPC里面的参数配置
可以看到,最右边是有注释的,L7~L0,这是功率等级,L7是最大功率,从上往下依次减小。
这里PA是用的SKY77643,用B1举例说明一下每一个寄存器的配置。
先来了解一下SKY77643的内部架构图以及MT6169transceiver每个端口支持的频段,
这里可以同理共用到SKY77643HB,MB,LB每组可以做到的频段。
从上面原理图对应的来看,B1使用的是MB1口,然后对应到SKY77643的真值表来配B1的TX,首先寄存器0直观给我们显示到的是用二进制的,所以,这个值是01001100,由于寄存器0的作用是打开PA,所以在选好端口发射后,需要让PAenable打开,对应到十六进制就是0x4C,接下来的寄存器1和寄存器3都是配置PA的偏置电压的,按照SKY提供的文档配置即可,这个可以参考文档:
SkyworksMIPISettingforMTK。
如果存在ACLR比较差的情况,可以按照真值表将值改大,对应的电流也会变大,这个在4G上面可能需要改动,WCDMA的时候一般按照默认的去写就好了。
对于寄存器2,它的作用是打开PA内部的开关,所以从上面的真值表对应下来就是10100000,即是0xA0。
对于寄存器0和2,7个等级都是一样的值。
接下来是ul1d_custom_rf.h文件
我们进来也是可以看到BPI控制的,和之前一样还是配置PR2和PT2,这里多了一个RXD的选项,一般来说WCDMA的灵敏度比较高,可以不配置分集,如果遇到WCDMA灵敏度差的时候,可以尝试把这边的分集打开,如果有开关,就需要配置一下这里的BPI。
这里也是选取相应的端口即可。
在这个文件的最下面,可以看到如下的图
这也就是定义我们打开哪几个WCDMA的频段,需要特别注意的是,前面3个是定义高频的,后面2个是定义低频的,要对应上频段去打开,以免出现一些不可预知的问题。
以上为WCDMA的整个配置。
(2)、TD-SCDMA控制逻辑配置
在使用SKY77643+SKY77916的组合的时候,PA和开关都可以做B34,B39,目前为止我们只在L1上面做了TD-SCDMA,PA开关搭配是SKY77824+SKY77910,这个组合TD只能做在SKY77910上面,下面大致介绍一下配置方法,TD和其他几个制式配置方法有点不太一样,但是配置的地方不会太多。
打开tl1d_custom_mipi.h文件
由于我们使用的是SKY77910的TD通路,所以在下面寄存器数目那里设置为3。
首先是RX的配置,先是On再Off,按照注释去配置,通过注释我们也可以看到,一个完整的TDband分成了高低各16位,在高16位里面,0x0F5C的意思是,0x0F是开关的USID,5C代表寄存器0x1C,也就是和前面一样,初始化寄存器,对应前面低16位就是0x38,后面两个0是对齐格式用的,没有实际意义,所以下面的0x0F40即是,开关寄存器0的值为0x0D,B39也是类似,在RXOff的时候也是一样,先是让寄存器0standby,然后再关闭。
在SKY给到的配置文档上面RXOff有一个特别说明,在配置的时候按照它的要求去改就行了。
在TX配置的时候,可以看到module是PA,在这里还是SKY77910,本身它既是开关也是PA。
在后面的band配置那里,我们看到了和2G发射类似的方式,紧跟TX配置下面就有一个配置表
从后面的注释内容可以看出来,在这里一共分成了高中低三个模式,寄存器顺序是0x1C,0x01,0x00,寄存器1是配置bias的,所以可以从SKY提供的这个文档上找到配置的电流值(SkyworksMIPISettingforMTK)。
打开tl1d_custom_rf.h文件,接下来是配置TRX端口,在该文件的中间靠下的位置找到T_RF_PORT_SEL
我们项目是做了B34,B39,且这两个频段复用MT6169的发射和接收端口,只是在SKY77910那边的开关是分开的。
上面2G01代表B34,1G90代表B39,这里是和它们各自的频点对应上的。
以上为整个TD-SCDMA配置方法。
四、el1_rfLTE配置
4G的FDD部分和前面WCDMA的配置方法比较接近,而TDD由于其工作特性,所以会和FDD有一些不同,主要是在SKY77643内部有一个3P4T开关需要配置,所以会在流程上稍微多几步。
(1)、FDD配置
首先打开lte_custom_mipi.c文件,先从FDD的event事件定义来看
RX:
和之前WCDMA类似,第一行是初始化,第二行是配置开关,这两步是打开接收通路的,后面两行是关闭RX。
TX:
发射也与WCDMA类似,只是在这里需要注意,WCDMA的event定义不太一样,WCDMA的PA发射,内部开关,bias要求在TPC里面配置,在TX里面不配置,但是在FDD这里,由于TPC里面只有三个寄存器位置,而SKY77643是需要4个寄存器的,所以在TX这边需要我们先配置寄存器0和寄存器2,配置方法和WCDMA里面配置一样。
设置bias的寄存器1和寄存器3在这里不要配,以免造成电流大的问题。
前面4行是打开PA发射,第5~6行是关闭PA,第7~8行是控制开关打开。
在TPC的配置,和之前WCDMA格式上稍有不同,也是把一个完整的频段,按照100KHz的间隔分成了5段,这里每一段都有8个等级,在这里的排列顺序是从小到大,和WCDMA里面的排列顺序刚好是反着的,寄存器0的值和前面TX时候配置的是一样,寄存器1和3的值也是从SKY提供的SkyworksMIPISettingforMTK文档中得到,但是在4G里面会有一些ACLR(E-utra)fail的问题,这时候就可以把寄存器1和3里面的值改大,这样可以提升几个db,但是电流会稍微大一点,改最大等级可以测试一下是否OK。
(2)、TDD配置
前面我有提到TDD配置需要使用到PA内部的一个3P4T开关,先从SKY77643内部里面找到这个地方
可以从这个地方看到,端口B38,B7,B41的RX口通过开关都打向了T/R2,而B40端口是打向了T/R1,这就决定了B40这个端口最好只用作bypass通路,做其他通路的时候做法比较麻烦,端口上来看,似乎是给我们确定了频段接法,实际上B38,B7,B41的端口是可以在高频间切换的,不需要按照它标记的去做,我们一般是按照MTK参考设计来接,这样可以用SKYPA的loadpull图进行调试,换了接口loadpull可能会改变。
再一次看到SKY77643的寄存器真值表
再对应我们做的原理图
最后是PA的脚位图
可以看到,我们在PA的33脚的位置做了B40的通路,所以,我们在配置寄存器0的时候,发射就需要选择B38_TX,寄存器2的时候,由于TDD是时分双工,所以会分TX和RX,这里也是相应去选择B38_TX与B38_RX的真值。
下来来具体看一下配置的地方,还是在lte_custom_mipi.c文件里面,首先来看一下event事件的定义
从evt_type里面的描述可以看出每一段的作用是什么
接下来是RXdata,配置方法和前面的一致
TX的配置方法也类似,按照MTK给到文档的固定框架去配置就行了。
上面说的TDD频段配置是针对做在SKY77643上的B38,B40,B41这几个频段,对于B39,我们目前的做法是复用3G的B39通路,所以是做在开关端的,当然SKY77643这边也能做,如果是做在SKY77643上的话,就和上面B40的配置方法一样了,但是需要注意的是,event事件定义的时候也要一起改过来,下面来看下在开关端的做法。
RXevent定义,比起之前会少几步,在这里只是定义了开关的TRX口的值,和前面类似。
接下来是TX端
由于SKY77916只有寄存器0和寄存器1两个寄存器,所以在TX这边不用配置,在后面的TPC里面配置就可以了。
在前面有提到过开关的寄存器0的第5位,所以在上面的配置里面,lowpowermode和其他几个模式下的值不一样,就是这里的原因。
紧跟着TPC下面有bypass的TX和TPC配置,配置方法和之前是一样的,由于bypass通路只有发射,所以没有RX的配置。
不过需要特别注意的是,由于bypass通路走了两个频段,B40,B41,所以,在配置的时候,这两个bypass频段的寄存器0和寄存器1的值是完全一样的,由于TDD电流本身比较小,而且通路上的LPF插损也比较小,所以配置bias寄存器1和3的时候,按照MTK给的默认参数即可,但是一定不能是0。
对于bypass通路的来历,从SKY代理南基的FAE林嘉那里得知,是由于MTK的phase-1设计的时候,用到的SKY77621PA对于高频做的没那么好,插损大,ACLR差,为了过认证想出来bypass这一路,在phase-2设计选用的PA就没有这个问题了,所以MTK是建议我们把bypass这路关闭的,说是软件配置起来很麻烦,WIFI关闭的时候走bypass通路,WiFi打开的时候走Saw那一路,下面就顺带再说一下怎样关闭bypass通路。
1、打开lte_custom_rf.h文件,将BAND_SPLIT_INDICATOR1改为LTE_BandNone,跟着的所有的选项都配置为0:
BAND1~BAND5都这样设置
2、在lte_custom_mipi.h文件里面,找到如下位置:
#defineIS_MIPI_BYPASS_FEATURE_ENABLE1//改为0
3、在lte_custom_mipi.h文件里面找到如下位置进行修改,
LTE_MIPI_BYPASS_BAND_INDICATOR1~5全部设置为BAND_NONE
以上为TDD的寄存器配置内容。
接下来打开lte_custom_rf.h文件,在这个文档里我们可以配置4G的主分集BPI开关,以及MT6169的TRX端口配置。
最先看到的是主分集TRXBPI控制逻辑,在这里需要特别注意的是,在配PR2的时候,如果我们在同一个频段主集和分集的接收通路,都使用了开关,需要用BPI去控制,这里需要同时配在接收里面
下面举一个实例,B28由于其上下行频率很接近,只有10M带宽,所以在这里将B28分成了A,B两个频段,在接收这里我们可以看到主集和分集都使用了开关,我们要让B28A工作的话,对于其BPI控制的值应该是010000010000,转换成十六进制也就是0x00000410。
下面是主集接收和分集接收的配置,配置方法和前面说过的一致,对应上MT6169的端口就行了。
发射端口也类似
再紧跟着是频段配置,用哪几个频段就配哪几个选项,没用的不要配
以上是整个4G配置,可能我们会比较常用的地方。
5、问题案例
在做了近半年的MT6735平台后,总结一下我们在做项目的过程中在modem配置遇到过的问题以及解决方案。
案例1:
问题点:
信令下不联机
问题描述:
项目L2-B,在测试过程中发现,用meta强发,非信令下测试功率和接收pathloss正常,但是在信令下出现不联机现象,注册不上仪器,或者注册下马上就断掉了,此项目一共有4个4Gband,最开始B7是可以联机的,后面格式化下载几次,B4和B2也相继可以联机,但是B5一直有不联机问题,最后通过MTK射频工程师的协助,修改timing后可以正常联机。
解决方案:
影响此问题的timing在如下文件里面
在lte_custom_mipi.c文件里面找到如下位置:
上面的在TX_EVENT里面LTE_FDD_MIPI_PA_TX_ON0是一个宏定义,对应的timing值可以在lte_custom_mipi.h文件里面找到,位置如下图
在这个里我们只能看到后面US2OFFCNT里面的数字,这里数字值越大代表越早打开,
由于TPC是一定要晚于PATX打开的,所以从上面的数值来看,TPC的打开时间早于PATX的打开时间,所以导致了这次不联机的问题。
所以后面我将TPC里面的timing改为4,LTE_FDD_MIPI_PA_TX_ON0的timing改为10,就解决了此问题,下面介绍一下怎样在meta里面修改timing。
在这里我们只需要修改PA_TX_ON0和PA_TPC_ON0的时序就可以了,我们图片上面显示的是十进制数值,与我们在timing里面改的数值有26倍的关系,所以在图片上显示的PA_TX_ON0的值对应到modem里面的值应该是8。
TPC里面修改的位置和这里一样,修改方法也一样。
案例2
问题点:
Band4接收不通
问题描述:
在4G项目调试过程中,发现4G频段的Band4接收不通,而3G的band4接收是OK的,通过对控制逻辑的检查以及重新配置,确定控制逻辑没有问题。
解决方案:
最后通过排查控制接收,发现在这个地方有异常
由于我们这一个配置文件从最开始就有很多框架上的问题,所以在这里我们又发现了新的问题,上面红色框选的地方是选取port_sel的,在这里接收主要是走开关通路,开关上面挂的mipi端口是port1,所以这里和原理图上没有对应造成了此次接收不通的问题。
通过修改这里后,测试4G的接收通路OK。
案例3:
问题点:
PA发射无电流
问题描述:
我们在做FDD频段的时候,发现配置完控制逻辑后,在meta里面强发没有功率出来,而且电流也没有起来,通过检查寄存器值,未有发现问题。
解决方案:
通过与前面做过的TDD平台的modem文件进行比对发现,在TPC的地方,我们的modem和之前OK的modem在框架上有不一样的地方。
下面TPCdata里面给到的寄存器为1,2,3
之前TDD文件里面TPC的data里面的寄存器为0,1,3
在前面TPCdata定义中,一共定义了3行,其实后面是说说明的,别人有定义第一个寄存器是用作PAband选择的,所以在这里用寄存器1,肯定是不对的,PA没打开就先走到了设置电流的位置,所以才会有不起电流的问题。
后面通过修改寄存器为0,1,3,烧录测试OK。
在这里需要特别说明一点,这里的三个寄存器是对应了TPCEVENT设置里面的
如果我们想增加一个寄存器,想改成4个,光把这里改成0~3是不行的,在连meta的时候就会出现memorydump的问题,根本没法正常工作,所以这里不要轻易去改动。