报价
HOME
报价
正文内容
nand sys clk 华为手机的开机原理分析 华为与苹果的电路设计差异
发布时间 : 2025-06-19
作者 : 小编
访问数量 : 23
扫码分享至微信

华为手机的开机原理分析 华为与苹果的电路设计差异

华为高端手机系列采用自主研发的海思麒麟CPU以及海思电源管理芯片,最大的特点是其CPU与基带处理器高度集成,而苹果系列手机其应用处理器不参与基带数据处理,必须与高通或因特尔基带处理器搭配完成通信功能,这是两者最大的差异。电源管理芯片的集成度与苹果系列手机的电源尚有一定的差异,电路更加复杂,维修难度更大。LCD屏供电电路与LCD背光供电电路具备独立的过压与过流保护,故障分析时前后相互牵连,只有理解电路原理了,才能对这些故障迎刃而解。开机故障与显示故障占整个手机故障类型60%以上,本文将对上述电路原理与维修方法做深入的论述。

开机电路原理与维修

开机电路原理分析

开机电路原理分析以附图4.1进行说明。P9开机电路主要由主电源管理器U1001,海思麒麟处理器U300,硬盘U1401,充电管理IC-U1602以及DC-DC转换芯片U1201,U1301,U1101共同组成。

扣上电池后,来自电池4V左右的电压VBATT送到充电IC-U1602的13脚14脚,经过内部MOS管切换后从15脚16脚输出,电压与电池电压相等,名称由原来的VBATT变名为VBAT_SYS, VBAT_SYS分别再传送到U1001,U1201, U1301, U1101四颗供电IC, U1001得到供电后M9脚产生待机电压VOUT_PMUD。与此同时U1001内部32.768KHZ实时时钟电路也开始工作。由待机电压VOUT_PMUD,J2904-5脚,R2904,R1203以及U1001-J8脚共同构成开机触发电路。当开机键没有按下时,U1001-J8脚为高电平,按下开机键后U1001-J8脚变为低电平。此时,主电源管理器U1001被触发,于是分别输出:VOUT15_3V0;VOUT2_1V8;VBUCK0_0V8;VBUCK1_1V1;VBUCK3_2V15;VOUT5_1V8;VOUT0_0V8;VOUT8_1V8;VOUT7_1V8;VOUT21_1V8;VOUT30_0V8,为处理器U300以及硬盘U1401提供供电。U1001- R12脚发出BUCK_BOOST_EN开启DC-DC控制芯片U1201,U1201与电感L1201,储能电容C1209等元件共同将4V左右的电池电压转换成3.4V,为U1001与U1301提供供电。U1001的D13脚向U300-W49脚发出 32.768KHZ实时时钟信号CLK32_SYS,U1001的C20脚向主CPU-U300的AG49 脚发出PMU_RST_SOC_N复位信号,主CPU-U300的AJ49脚向U1001的D19 脚发出SYSCLK_EN主时钟开启信号,于是主电源U1001的P11脚向主CPU-U300的U47脚发出19.2M的主时钟信号。19.2M主时钟信号是由温补型晶体振荡器X1201,偏置电阻R1205,滤波电容C1202以及U1001共同组成。此时,主CPU得到了供电,时钟复位,准备开始读取硬盘内部程序。VDD_CPU_B,VDD_CPU_L,VDD_GPU这几组电压根据CPU运行的进程逐步打开,VDD_CPU_B为四相供电,VDD_CPU_L为两相供电,VDD_GPU为三相供电,多相供电为CPU提供充裕的电流,满足处理器在各种复杂程序进程处理中对供电电流的严格要求。

硬盘得到VOUT15_3V0,VOUT2_1V8两组供电与来自主电源U1001的C20脚PMU_RST_SOC_N复位信号后,进入工作状态,U300通过向硬盘传送时钟EMMC_CLK,控制命令EMMC_CMD,EMMC_STRB用于数据传输的同步控制,然后通过EMMC_DATA0--EMMC_DATA7共8根数据线读取硬盘内部的开机引导程序,当开机引导程序正确运行,此时屏幕上将显示华为的LOGO,手机即将进入安卓系统引导阶段。与此同时,主CPU-U300的AF48脚向主电源的A18脚发出开机维持信号PMU_PWR_HOLD。至此手机进入系统引导阶段,随着手机硬件自检与系统的正常加载,手机就开机了。

内容来源于万通网校,原创首发,转发请标明出处!

未完待续......

99%的人可能还不知道OS环境下如何安装STM32CubeM

好像STM32CubeMX在4.12后还是哪个版本以后就支持了OS X和Linux。想想windows的也用过,不知道其他两个系统下,这个STM32CubeMX到底感觉咋样呢?虽然实际中使用标准外设库多一些,但是这个STM32CubeMX还是需要慢慢熟悉的。

这几天朋友刚好过来,他带着mac pro,正好用他的机子来安装OS版的STM32CubeMX。同时也想看看OS下这个的界面,想一睹为快。所以就经过朋友的同意,在OS的系统下,安装STM32CubeMX,来带大家装装字母A与字母C之间的那个字母。

一、安装

1、安装首先要去ST官网下载STM32CubeMX的压缩包,并放在OS下进行解压。解压完成,文件如下:

2、在安装os版的STM32CubeMX之前,首先还是需要像windows一样安装JAVA的虚拟环境。

JAVA虚拟环境链接

我安装的是如下红色方框中的这个版本:

安装的过程在这里跳过

3、安装STM32CubeMX OS版的文件。将第1步中的文件名为”SetupSTM32CubeMX-4_14_0_macos”的文件直接拖入终端。

然后就会出现如下的界面:

4、一路NEXT,直到安装完成。

5、安装Libraryies,根据不同的系列,安装自己想要的Libraryies。这个的安装跟windows的一致(可以在线下载安装,也可以

导入离线的已经下载好的安装包)

二、使用

计划还是使用OS版本的STM32CubeMX来体验一下。手里有个Nucelo--32(STM32F042K6)的板子,用它来实现一个简单的uart1例程。

1、查看datasheet,看uart1对应哪个GPIO。查看后,发现是PA9(TX),PA10(RX)

2、查看原理图中PA9和PA10 是否有接其他外设,以免影响我这个uart1的例程。发现PA9和PA10直接由插针引出。

3、利用STM32CubeMX新建工程:

因为这个板子没有外部晶振,所以使用HSI。使用UART1(PA9和PA10)

使用HSI经过倍频至48Mhz,从而产生48Mhz的系统时钟。

UART1的配置:

GPIO的设置(不用再去设)

因为不知道OS系统上有什么IDE(至少没有os的iar和keil吧)可以编译这个STM32CubeMX产生的工程。所以先生成MDK5的工程。将工程文件目录拷贝到windows下,利用keil5进行处理。

4、在MDK5中添加相应的用户代码,并编译下载到板子。

a、添加打印相关的代码:

#pragma import(__use_no_semihosting)

struct __FILE

{

int handle;

/* Whatever you require here. If the only file you are using is */

/* standard output using printf() for debugging, no file handling */

/* is required. */

};

/* FILE is typedef’ d in stdio.h. */

FILE __stdout;

void _sys_exit(int x)

{

x = x;

}

int fputc(int ch, FILE *f)

{

while((USART1->ISR&0X40)==0);

USART1->TDR = (uint8_t) ch;

return ch;

}

复制代码

b、在main函数的while循环中,添加用户代码(打印系统时钟,打印一串字符)

while (1)

{

uint32_t SysClk;

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

SysClk = HAL_RCC_GetSysClockFreq();

printf("System Clock is :%d\r\n",SysClk);

HAL_UART_Transmit(&huart1,"This is uart example for stm32cbueMX of IOS\r\n",sizeof("This is uart example for stm32cbueMX of IOS \r\n"),1000);

HAL_Delay(1000);

}

复制代码

5、使用OS的终端,运行简单的命令(这个命令是参考网上的),使终端打印出信息。(当然也可以用windows的串口调试助手,用终端就是想装装X)

a、安装OS版的驱动(因为使用的是PL2303的usb转TTL的串口线)

b、查看驱动是否安装成功:

c、实物连接:

d、运行终端命令:

cd /dev

ls tty.*

screen /dev/tty.usbserial 115200

复制代码

(如果这个命令报错,重新插拔USB转TTL的串口线即可)

终端打印的信息如下:

总体来说,OS版的STM32CubeMX除了安装跟Windows有点区别之外,好像其他暂时没有发现与windows有啥区别。

以上图文内容均是EEWORLD论坛网友: huaiqiao原创,在此感谢。

欢迎微博@EEWORLD

如果你也写过此类原创干货请关注微信公众号:EEWORLD(电子工程世界)回复“投稿”, 也可将你的原创发至: bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!

与更多行业内网友进行交流请登陆EEWORLD论坛。

相关问答

请问大虾, SYSCLK 、HCLK、PCLK1、PCLK2,这个在stm32里分别表示什么,看的有点混淆,不太明白?

SYSCLK系统时钟,最大72MHzHCLK:AHB总线时钟,由系统时钟SYSCLK分频得到,一般不分频,等于系统时钟经过总线桥AHB--APB,通过设置分频,可由HCLK得到PCLK.....

为什么我的CPU断针了,还能用?

你断的可能是预留的没有功能的,所以能正常用。一般我们把CPU的针脚分为ABCD四个区。下面是AB区的针脚定义表。这里面,SYSCLK、SYSCLK#负责clock频...一...

dsp中影响执行的状态位有?

时钟输入问题时钟输入:对于280x系列的dsp的时钟选择有多种,包括:晶体经过X1、X2输入:需要将CLKIN连接到参考地,否则在用FLASH运行程序的时候,将无法运行...

stm32系统时钟的配置?

如果板子上确实有外部晶振,请使用外部晶振!使用外部晶振配置实例如下:使用HSE时钟,程序设置时钟参数流程:1、将RCC寄存器重新设置为默认值RCC_DeInit;2...

REF0CN=0x07;ADC0CN=0xc0;//ADC0CF=( SYSCLK /S_作业帮

[最佳回答]你还缺少一句,没有启动ADC中断.EIE2|=0x02;//启用ADC中断查询方式用后加EIE2&=~0x02//禁止ADC0eoc中断EIE1&=~0x04...

adc模块的时钟是如何确定的?

ADC模块的时钟的确定:(1),由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。CLK控制器为ADC时钟提供一个专用的可编程预分频器。(2)一般情况下在程序...

个人电脑如何控制单片机?

fnUA_IOInit();}voidUSART1_IRQHandler(void){unsignedchartemp=0;staticU8crc=0;//Receive...

switch怎么调出浮动菜单?

在switch中调出浮动菜单,可以参考以下步骤:打开要超频的游戏。同时按下“L”键、“↓”键和“R”摇杆,呼出浮动菜单。选择“sys-clk”,确认超频工具处于开...

stc15单片机输出pwm频率?

不同的单片机是不同的,拿STC15系列单片机来说:PWM的频率=PCA时钟输入频率/256PCA的时钟源有以下几种:sysclk,sysclk/2,sysclk/4,sysclk/6,sysclk/8...

555时钟电路的设计原理是什么样的?_土巴兔装修问答

逆计时数显定时控制器(CD40110、CD4040、CD4069)电路图利用交流电源50Hz的输出频率通过分频,可以取得各种不同频率的时基脉冲。该电路选用lmin的时...

 天上人间老板 覃辉  孝淑睿皇后 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部