MTK 4G modem 配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MTK平台modem 配置先从modem配置表里了解一下每一个文件夹对应哪个频段的配置
其他没有标记的,目前我们是用不到的,也不要去修改里面的参数。

打开每一个需要修改的文件夹,可以看到三个子文件夹,类似下图:
我们只需要修改上面框选里面的文件夹里面的选项即可。

进入到文件夹里面,发现有好几个文件,我们只需要修改下面标红的两个就可以了,一般都是**_mipi.h和**_rf.h文件
各个文件夹里面文件详细说明如下图:
了解了上面文件说明后,下面开始讲具体参数配置。

一、mmll_rf USID配置以及修改
由于我们目前使用到的SKY的PA和开关,所以他们两个的USID是一样的,出厂默认
都是OxF,按照常理来讲,由于PA和开关挂在不同的MIPI通路上,是不会有地址冲突的问题,但是目前MT6735平台存在弱4G信号下,切不回2G通话,也就是有时候打不进来电话,所以需要将这两个设备的USID改成不一样,修改PA和开关都可以,下面示例修改PA 的USID。

首先打开SKY77643的规格书,找到这个位置
稍后将会用到里面的Product ID和Manufacturer ID
然后在mmll_rf文件夹里面打开这两个文件夹
在mml1_custom_mipi.c文件里面找到这个位置,按照上面的描述修改相应的值
后面的new USID可以修改为0x1~0xE之间的一个,在mml1_custom_mipi.h文件里面对应修改就可以了,由于我们修改的是PA,所以在port sel 下面需要选取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_rf 2G 配置
在配置寄存器之前,需要在l1d_custom_mipi.h里面确认mipi是否是打开的,在这个文件里面找到如下位置,这个值是1,就代表mipi是打开的,后面我们在配置的时候,只需要配置mipi enable选项就可以了。

由于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这一行里面的值作为开关打开时候的值,例如,在GSM850 RX配置的时候,TRX口用的是TRX4,所以此时GSM850接收寄存器0这里就需要配置为0x02,以上为GSM RX配置。

GSM TX配置和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文件
前面也有提到,我们在这里需要配置mipi enable的情况,这里的配置是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,还是和之前一样,这里只需要配置mipi enable的选项,由于目前我们的项目接收都是和3G,4G(主集)双工器共用通路了,所以,这里接收我们只需要看Band,不用去分2,3,4G了,比如B2,在2,3,4G里面的接收口都会是IORX_MB1。

发射端口配置,根据原理图去匹配,一般来说,发射端口不会更改。

如上为整个2G配置方法。

三、3G配置
(1)、WCDMA控制逻辑配置
在ul1d_custom_mipi.h文件里面确认mipi enable是否打开,默认都是打开的,可以确定下,不做修改。

打开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的内部架构图以及MT6169 transceiver每个端口支持的频段,
这里可以同理共用到SKY77643 HB,MB,LB每组可以做到的频段。

从上面原理图对应的来看,B1使用的是MB1口,然后对应到SKY77643的真值表来配B1的TX,首先寄存器0直观给我们显示到的是用二进制的,所以,这个值是0 1001 1 00,由于寄存器0的作用是打开PA,所以在选好端口发射后,需要让PA enable打开,对应到十六进制就是0x4C,接下来的寄存器1和寄存器3都是配置PA的偏置电压的,按照SKY提供的文档配置即可,这个可以参考文档:Skyworks MIPI Setting for MTK。

如果存在ACLR 比较差的情况,可以按照真值表将值改大,对应的电流也会变大,这个在4G上面可能需要改动,WCDMA的时候一般按照默认的去写就好了。

对于寄存器2,它的作用是打开PA内部的开关,所以从上面的真值表对应下来就是1010 0000,即是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,按照注释去配置,通过注释我们也可以看到,一个完整的TD band分成了高低各16位,在高16位里面,0x0F5C的意思是,0x0F是开关的USID,5C代表寄存器0x1C,也就是和前面一样,初始化寄存器,对应前面低16位就是0x38,后面两个0是对齐格式用的,没有实际意义,所以下面的0x0F40即是,开关寄存器0的值为0x0D,B39也是类似,在RX Off的时候也是一样,先是让寄存器0 standby,然后再关闭。

在SKY给到的配置文档上面RX Off有一个特别说明,在配置的时候按照它的要求去改就行了。

在TX配置的时候,可以看到module是PA,在这里还是SKY77910,本身它既是开关也是PA。

在后面的band配置那里,我们看到了和2G发射类似的方式,紧跟TX配置下面就有一个配置表
从后面的注释内容可以看出来,在这里一共分成了高中低三个模式,寄存器顺序是
0x1C,0x01,0x00,寄存器1是配置bias的,所以可以从SKY提供的这个文档上找到配置的电
流值(Skyworks MIPI Setting for MTK)。

打开tl1d_custom_rf.h文件,接下来是配置TRX端口,在该文件的中间靠下的位置找到T_RF_PORT_SEL
我们项目是做了B34,B39,且这两个频段复用MT6169的发射和接收端口,只是在SKY77910那边的开关是分开的。

上面2G01代表B34,1G90代表B39,这里是和它们各自的频点对应上的。

以上为整个TD-SCDMA配置方法。

四、el1_rf LTE配置
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提供的Skyworks MIPI Setting for MTK文档中得到,但是在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参考设计来接,这样可以用SKY PA 的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里面的描述可以看出每一段的作用是什么
接下来是RX data,配置方法和前面的一致
TX的配置方法也类似,按照MTK给到文档的固定框架去配置就行了。

上面说的TDD频段配置是针对做在SKY77643上的B38,B40,B41这几个频段,对于B39,我们目前的做法是复用3G的B39通路,所以是做在开关端的,当然SKY77643这边也能做,如果是做在SKY77643上的话,就和上面B40的配置方法一样了,但是需要注意的是,event事件定义的时候也要一起改过来,下面来看下在开关端的做法。

RX event 定义,比起之前会少几步,在这里只是定义了开关的TRX口的值,和前面类似。

接下来是TX端
由于SKY77916只有寄存器0和寄存器1两个寄存器,所以在TX这边不用配置,在后面的TPC里面配置就可以了。

在前面有提到过开关的寄存器0的第5位,所以在上面的配置里面,low power mode 和其他几个模式下的值不一样,就是这里的原因。

紧跟着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设计的时候,用到的SKY77621 PA对于高频做的没那么好,插损大,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文件里面,找到如下位置:
#define IS_MIPI_BYPASS_FEATURE_ENABLE 1 //改为0
3、在lte_custom_mipi.h文件里面找到如下位置进行修改,
LTE_MIPI_BYPASS_BAND_INDICATOR1 ~5全部设置为BAND_NONE
以上为TDD的寄存器配置内容。

接下来打开lte_custom_rf.h文件,在这个文档里我们可以配置4G的主分集BPI开关,以及MT6169的TRX端口配置。

最先看到的是主分集TRX BPI控制逻辑,在这里需要特别注意的是,在配PR2的时候,如果我们在同一个频段主集和分集的接收通路,都使用了开关,需要用BPI去控制,这里需要同时配在接收里面
下面举一个实例,B28由于其上下行频率很接近,只有10M带宽,所以在这里将B28分成了A,B两个频段,在接收这里我们可以看到主集和分集都使用了开关,我们要让B28A 工作的话,对于其BPI控制的值应该是0100 0001 0000,转换成十六进制也就是0x00000410。

下面是主集接收和分集接收的配置,配置方法和前面说过的一致,对应上MT6169的端口就行了。

发射端口也类似
再紧跟着是频段配置,用哪几个频段就配哪几个选项,没用的不要配
以上是整个4G配置,可能我们会比较常用的地方。

五、问题案例
在做了近半年的MT6735平台后,总结一下我们在做项目的过程中在modem配置遇到过的问题以及解决方案。

案例1:
问题点:信令下不联机
问题描述:项目L2-B,在测试过程中发现,用meta强发,非信令下测试功率和接收pathloss正常,但是在信令下出现不联机现象,注册不上仪器,或者注册下马上就断掉了,此项目一共有4个4G band,最开始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是一定要晚于PA TX打开的,所以从上面的数值来看,TPC的打开时间早于PA TX 的打开时间,所以导致了这次不联机的问题。

所以后面我将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在框架上有不一样的地方。

下面TPC data里面给到的寄存器为1,2,3
之前TDD文件里面TPC的data里面的寄存器为0,1,3
在前面TPC data定义中,一共定义了3行,其实后面是说说明的,别人有定义第一个寄存器是用作PA band选择的,所以在这里用寄存器1,肯定是不对的,PA没打开就先走到了设置电流的位置,所以才会有不起电流的问题。

后面通过修改寄存器为0,1,3,烧录测试OK。

在这里需要特别说明一点,这里的三个寄存器是对应了TPC EVENT设置里面的
如果我们想增加一个寄存器,想改成4个,光把这里改成0~3是不行的,在连meta的
时候就会出现memory dump的问题,根本没法正常工作,所以这里不要轻易去改动。

相关文档
最新文档