- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 展锐平台的uboot流程
以展锐SL8521E为例,分析下其uboot的流程。汇编入口:u-boot15/arch/arm/lib/crt0.Sldr pc, =board_init_r后面重点在do_cboot函数中。其流程见下图:
2022-02-12 11:10:09
1506
1
原创 高通关于RTC备电的说明
Hi Customer,The setting of 0x5A5B is suggested to base on the capacitor in your design. For details as below.Small Cap (10-47uF) Coin cap intended for SMPL, not RTC0x5A5B =0x80 (Set in SBL)Super Cap (33mF) or Coincell Vcoin is intended to sustain RTC
2021-11-05 09:03:12
929
1
原创 玩转96boards之(一)---高通410c板硬件
csdn上花了点积分,下载的原理图 lm25-p0436-1_a_db410c_schematic.pdf:参考https://download.youkuaiyun.com/download/lvshuxun/10120602https://developer.qualcomm.com/hardware/dragonboard-410c官方默认使用APQ8016 管脚兼容MSM8916(对比了一下两者的手册管脚,虽然是pin-to-pin兼容,但是有一些电源部分还是不同的,有一些管脚8916是接电源,而80
2021-10-13 21:12:38
2874
1
原创 关于include的arch目录问题
调试uboot遇到一个问题某c代码中include头文件如下:#include <asm/io.h>#include <asm/arch/pinmap.h>但是在u-boot15\arch\arm\include\asm目录下并没有arch这个目录,只有具体的项目arch,比如arch-sharkle。对应该目录下有pinmap.h这个文件。即路径应该是:asm\ arch-sharkle \pinmap.h这里是怎样被替换的呢?...
2021-06-10 15:03:36
574
原创 使用__setup从cmd命令行获取参数
内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下:__setup(string, function_handler)其 中:string是关键字,function_handler是关联处理函数。__setup只是告诉内核在启动时输入串中含有string时,内核要去执行function_handler。String必须以“=”符结束以使parse_args更方便解析。紧随“=”后的任何文本都会作为输入传给 functio
2021-04-01 14:41:35
842
原创 otg和充电共用问题
问题客户提了一个需求:要求在连接otg的同时,另外可以从vbus给模块充电。分析我们的模块使用MSM8953+PM8953+PMI632的高通套片。充电和otg的供电是通过PMI632来控制的。其VBUS脚是一个输入输出双向脚:如果想otg和充电同时使用,需要另外设计一个5V的升压电路给otg使用,而USB_IN脚只负责充电输入。并且在usb otg的启动函数中要去掉原来默认对usb_vbus的输出操作。对应的流程框图设计如下:验证可以实现USB 鼠标和充电同时使用:...
2021-03-09 17:48:47
4568
原创 MDM9205平台射频卡分析
MDM9205物联网平台的整体设计框图如下:为了满足class3的要求,还需要外加PA和ASM的,其射频原理图如下:其中SDR105是内部包括transceiver, power amplifier和antenna switch的。其逻辑框图如下:射频卡配置:rfc_phy_device_info_type rfc_sdr105_riot_cls3_9x05_phy_devices_list[] = { { /*Device: SDR105 transceiver */ SDR
2021-02-26 10:40:17
1928
原创 射频卡中屏蔽掉PA的方式
射频调试中常常需要去掉PA和ASM来验证线缆的功率状况,为此需要在射频卡中屏蔽掉PA和ASM:(注意修改的射频卡不要弄错了,如下就是rfc_wtr4905_us_xxxx这张射频卡)#define RFC_SKIP_RFFE_DETECT_BIT_IND 0x80000000modem_proc\rfc_jolokia\rf_card\rfc_wtr4905_us_xxxx\common\src\rfc_wtr4905_us_xxxx_cmn_ag.cpp中rfc_wtr4905_us_xxxx_ph
2021-02-23 17:35:17
509
原创 射频卡中增加GRFC控制导致重启
问题:某项目需要增加一个GRFC脚来控制某个对应band的逻辑,在对应的band中增加GRFC控制后,测试发现注册到该band就会重启。rfc_sig_info_type rf_card_sdr105_riot_cls3_9x05_rx0_gsm_g900_sig_cfg = { RFC_ENCODED_REVISION, {//begin: stone added for ana switch#ifdef RF_TUNER { (int)RFC_SDR105_RIOT_CLS3_9
2021-02-23 17:18:28
797
原创 某8909项目在滑屏解锁后再待机,电流就大15mA的问题解决
问题描述:某8909项目第一次进入待机电流是正常的。但是在滑屏解锁后再待机,电流就大15mA分析:(1)去掉TP和LCD,没有改善。(2)在PC侧用total control解锁,打开二级菜单,没有改善。(3)查看持有wakelock锁,发现并没有,AP是休眠的。(4)打印串口log,确认AP是已经进入了休眠的。(5)从log中看到有sensor mpu6881的打印,排除其影响, 没有改善。(6)电池ID温度相关的没有影响。(7)根据《Android功耗调试汇总》检查,发现核电VREG_
2021-02-20 13:56:20
520
1
原创 优必选ALPHA 1Pro机器人拆解
还记得2016年春晚上那个跳舞的机器人吗?今天让我们来一起拆解下,看看它的构造,废话不说,先上两张全图:官方说明的1Pro较之前1S的升级之处:开始拆解:先拆前面,前胸盖子和脑袋一起拆:脑袋前面是LED灯PCB板,很简单,上面只有两个蓝光LED灯,通过导光材质把蓝色光传到两只眼睛和耳朵。还有一个接头连接到speaker,上面标的是4Ω 3w。这两个接线头子是从“脖子”中穿过来的。左、右手臂和左、右腿级联的舵机控制线共4组,通过中间的孔穿到了背面。手臂上能看到的舵机有两个,还有一个舵机在“
2021-02-09 18:21:36
4354
1
原创 某项目GSM的tuner配置
某项目的天线tuner需要配置如下:GSM1800/1900 GPIO-58需要设置为0,RFC连接到RF1,天线匹配RF1上的电容值;GSM850/900 GPIO-58需要设置为1,RFC连接到RF2,天线匹配RF2上的电容值。原理图如下:按照如下方式修改:rfc_sig_info_type rf_card_sdr105_riot_cls3_9x05_init_gsm_rx_sig_cfg ={ RFC_ENCODED_REVISION, {//begin: stone ad
2021-02-08 19:11:03
1099
原创 高通8909平台的电池NTC温度说明
高通8909平台对应使用PM8909电源管理芯片,其电池的控制结构图如下:如上图所示,电池内部NTC电阻在外部串联了一个电池R_s2,送到内部ADC和比较器,并且上拉了一个电阻R_s1到VREF_BAT(1.8V)。95%这个门限是用来判断电池是否在位;电池温度这里只有4个门限值可以改的:25% 35% 70% 80%硬件默认设计控制电池温度的门限在35%到70%时充电,超过这个范围自动停止充电。客户如果需要控制充电温度在0-45°C,需要将NTC的0°和45°的电阻值替代进去,计算出合适的R
2021-02-07 10:34:08
2867
原创 高通平台读取USB ID
参考文件:kernel/drivers/usb/phy/phy-msm-usb.ckernel/msm-3.18/drivers/usb/phy/phy-msm-usb.c+//begin:stone modify for usb id+static bool usb_id_flag = 1;+bool get_usb_id(void)+{+ return usb_id_flag;+}+EXPORT_SYMBOL(get_usb_id);+//end:stone modify for u
2021-02-06 11:27:00
1113
2
原创 高通平台在modem侧读取和设置GPIO状态
高通MSM8953平台有一个需求:需要在modem侧读取和设置GPIO状态,这样就可以识别不同的硬件版本,从而加载不同的射频NV文件。使用GPIO134和GPIO62来检测不同硬件的上下拉来识别,如下图:代码修改modem代码侧GPIO相关的头文件在modem_proc/core/api/systemdrivers/目录下。首先包括这些使用的头文件://begin: stone added for gpio-in/* DAL APIs */#include "DDITlmm.h"#inclu
2021-02-05 09:49:42
1874
原创 简要理解usb驱动
●Linux的device和driver注册模型USB的框架遵循“平台总线、设备、驱动”的结构,也分为总线、设备、驱动三大块。其中总线驱动是已经由内核完成的,一旦接入usb设备,总线驱动程序就会找到能处理该设备的驱动进行处理。● USB的4个层次: 设备 配置 接口 端点以树/树干/树枝/树叶为例:一棵树(设备),一般只有一个树干(配置)(当然可以有多个树干,比如榕树),一个树干上有多个树枝(接口 ),每个树枝有多个树叶(端点)。USB设备是由一些配置(configuration)、接口
2021-02-03 13:05:14
3653
原创 基于展锐春藤8910DM的cat.1模块介绍
前言 19年11月份,紫光展锐重磅发布了新一代物联网芯片平台“春藤8910DM”,是全球首颗LTE Cat.1 BIS物联网芯片平台,应用广泛,可带动物联网设备加速从2G/3G过渡到4G。Cat.1相比NB-IoT、2G模组在网络覆盖、速度和延时上具有优势,相比传统LTE Cat.4模组则拥有更低的成本和功耗,同时适配当前国内的4G网络,非常适用于对性价比、时延性、覆盖范围、通信速度有要求的应用场景。紫光展锐春藤8910DM采用28nm成熟工艺,支持LTE Cat.1 BIS、GSM双模,上行速率
2021-02-01 16:27:19
34558
5
原创 高通平台android 8.1基线某款usb camera打开dev/video1出错
故障现象:某客户需要调试一款usb camera,包括黑白和彩色两个sensor:在调试中发现调用open函数去打开注册的 dev/video1节点时报错:USBCamera: Cannot open ‘/dev/video1’: 16, Device or resource busy分析:1.首先检查下camera的驱动注册是正常的:[ 6.406765] usb 1-1: New USB device found, idVendor=15aa, idProduct=1555[
2021-02-01 13:38:06
1979
1
原创 高通平台某项目uart串口不能正常工作的故障解决
某个MSM8953的项目,在调试的过程中遇到uart6只能发不能收的情况。android 9.0版本,GPIO的配置如下:客户要求使用4组uart:uart2、uart4、uart6为低速串口,uart5为高速串口。设备树配置如下://uart2: GPIO4,5 ttyMSM0&blsp1_uart0 { status = "ok"; pinctrl-names = "default"; pinctrl-0 = <&uart_console_active>
2021-01-30 16:48:52
4557
1
原创 这些年参与做过的项目
智能后视镜:语音识别、音频切换、OBD、bt、wifi、射频驱动等。3D全息广告机:硬件设计、单片机调试、wifi模块等。对讲机:负责键盘、充电、音效、耳机&MIC、开机优化等。pos机:负责camera、uart、sensor、功耗优化等。监控系统:功耗、usb&otg、camera等。...
2021-01-28 11:19:25
4043
6
原创 高通平台启动流程
高通平台的启动流程如下:现对各个阶段说明如下:PMIC检测到系统上电,将会把AP(Kryo应用处理器)退出reset状态注:Kryo是Qualcomm Technologies推出的首款定制设计的64位CPU。在AP处理器侧,应用主引导加载程序(应用PBL)执行。 (该部分是在内部ROM中执行 )a. 对extensible boot loader (XBL) region #1 进行身份认证,并将其从引导设备(as TCM)加载到L2。b. 验证XBL region #2 (DDR/SDI
2021-01-27 17:25:59
6194
3
原创 玩转移远SC60 Android开发板------(6)去掉PMI芯片
SC60模块使用的是高通MSM8953套片,对应使用的电源芯片是PM8953和PMI632。其中PM8953包括如下功能: ◆ Input power management ◆ Output power management ◆ General HK ◆ Audio ◆ IC interfaces ◆ Configurable pins:either multipurpose pins (MPPs) or general-purpose input/output (GPIOs)而PMI63
2021-01-27 16:25:43
2540
5
原创 玩转移远SC60 Android开发板------(5)充电和电池管理
SC60 模块可编程开关模式锂电池充电功能,可以给单节锂电池和聚合物电池充电。其充电过程包括涓流充电、预充电、恒流充电、恒压充电等状态。◆ 涓流充电:电池电压低于2.1V 时,系统处于涓流充电模式,充电电流为45mA;◆ 预充电:当电池电压在2.1V3.0V(截止电压可编程:2.4V3.0V,默认3.0V)之间时,模块进入预充电模式,充电电流默认为250mA(可编程:100mA~250mA,默认250mA);◆ 恒流充电:当电池电压在预充电截止电压和4.2V(恒流充电截止电压可编程:3.6V-4.5V
2021-01-27 15:22:03
4702
6
原创 高通GPS芯片WGR7640的驱动
某个项目用到了高通的外挂GPS芯片:WGR7640,参考如下:使用1.8V和1.3V供电(1.3V需要用GPIO控制外部LDO产生),BB_I_P和BB_Q_P是给基带芯片传送的IQ解调信号,SSBI是控制信号,TCXO是外供时钟,RF_M和RF_P是输入的GPS信号。高通确认原有的射频卡rfc_wtr2965_non_ca_4360_na_b14是支持WGR7640的。其对应的ID是74:RF_HW_WTR2965_NON_CA_4360_NA_B14 = (uint8)74
2021-01-27 11:49:04
1697
原创 Android功耗调试汇总
(1)runtime PM机制系统在非睡眠状态时,设备在空闲时可以进入runtime suspend状态同时不依赖系统wake_lock机制;非空闲时执行runtime resume使得设备进入正常工作状态。主要代码放在Runtime.c (drivers\base\power)中,同时附带的Runtime_pm.txt (documentation\power)有详细说明。要使得设备可以进入runtime_idle与runtime_suspend必须满足device的2个参数usage_count与c
2021-01-26 16:32:26
3581
原创 玩转移远SC60 Android开发板------(4)USB和otg切换
某客户要求实现usb device和otg的软切换,即通过软件设置实现usb device和otg的切换。原理图上可以设计一个GPIO来控制USB ID和数据线的切换。VBUS的供电方面,客户的otg是外供电,可以不用考虑;作device时vbus用来检测插入即可。参考原理图如下:图中使用GPIO_96作为控制切换的管脚,它输出0时,USB_ID脚为高,s脚为高,usb切换开关选择的是HSD1:USB_DP_EXT和USB_DM_EXT,此时模块作为device;GPIO_96输出1时,USB_I
2021-01-25 20:29:33
1188
1
原创 玩转移远SC60 Android开发板------(3)SPI转CAN总线
SC60开发板默认是不支持CAN接口的,需要外接转换芯片,选取MICROCHIP的MCP25625这一款。芯片特点如下:• Stand-Alone CAN 2.0B Controller with Integrated CAN Transceiver and Serial PeripheralInterface (SPI)• Up to 1 Mb/s Operation• Very Low Standby Current (10 μA, typical)• Up to 10 MHz SPI Cl
2021-01-25 15:36:46
1602
原创 玩转移远SC60 Android开发板------(2)LCD背光控制
SC60 Android开发板SC60的背光使用PM_MPP4输出PWM信号来控制背光芯片:但是PMU的MPP4脚默认并不是PWM功能,需要修改配置。PWM的设备树节点为: pm8953_pwm: qcom,pwms@bc00 { status = "Okay"; compatible = "qcom,qpnp-pwm"; reg = <0xbc00 0x100>; reg-names = "qpnp-lpg-channel-base"; qcom,ch
2021-01-20 13:50:31
1079
原创 玩转移远SC60 Android开发板------(1)LCD
最近拿到了一块移远的SC60开发板,先上图:SC60 是一款基于高通MSM8953平台、工业级高性能、可运行安卓操作系统的4G 智能模块,其综合特征如下:⚫ 支持LTE-FDD、LTE-TDD、DC-HSDPA、DC-HSUPA、HSPA+、HSDPA、HSUPA、WCDMA、TD-SCDMA、EVDO/CDMA、EDGE、GSM 和GPRS 等多种制式;⚫ 支持Wi-Fi 802.11a/b/g/n/ac 和BT4.2 LE 近距离无线通信;⚫ 支持GPS/GLONASS/BeiDou 等多
2021-01-20 12:40:39
3913
5
原创 高通历年旗舰机处理器
骁龙8882020年12月1日,在夏威夷举办的骁龙技术峰会上,高通宣布推出最新一代的旗舰级SoC——骁龙888 5G移动平台及骁龙X60 5G基带,这是该公司首次在8系处理器中集成5G调制解调器。小米 11全球首发。骁龙865和骁龙888对比:骁龙865和7652019年12月3日正式召开的骁龙技术峰会上,高通正式发布了骁龙865以及集成5G芯片的7系SoC-骁龙765&骁龙765G。765基于7nm制程,内置Snapdragon X52 Modem,实现对5G的支持。据悉骁龙765将
2021-01-19 16:50:33
15002
原创 某项目小部分机器开机1分钟重启的问题分析
问题:某项目客户反馈有5%左右的机器在开机1分钟左右重启的现象。分析:抓取kernel log,发现是射频的PA器件没有找到,导致modem子系统errror重启。log如下:<6>[ 35.234560] zram0: detected capacity change from 0 to 536870912<6>[ 35.436347] Adding 524284k swap on /dev/block/zram0. Priority:32758 extents:
2021-01-19 11:20:16
1436
1
原创 android 9.0上usb otg休眠问题
问题:手机作为otg host时,怎样进入待机休眠?移远EC20模块的功能说明:这里说的是如果主机不支持remote wakeup就需要RI信号来唤醒主机;如果主机支持的话就可以通过usb唤醒。高通文档:《80-NF283-1_C_Linux_USB_Implementation_Guide》介绍:section: 7.1.2 Host mode state transitionAs shown in Figure 7-1, the USB enters LPM when:n The USB
2021-01-14 20:06:33
2795
2
原创 PM8909 MPP4脚作为外部ADC采用使用
pm8909的adc内部架构如图所示(参考《80-nn174-58_b_pmic_adc_software_user_guide.pdf》):MPP configuration就是在设备树里配置:pm8909_mpps: mpps {compatible = “qcom,qpnp-pin”;spmi-dev-container;gpio-controller;#gpio-cells = <2>;#address-cells = <1>;#size-cells =
2021-01-14 17:36:40
1271
MIPI-LVDS.rar
2021-11-05
bmp_to_bin.rar
2021-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人