热度 5
2024-8-29 23:32
906 次阅读|
1 个评论
前言 之前学习模电的时候,想着应该买台示波器这样才好观察实验现象,但是又苦于没有资金,所以就在网上买了一台mini的示波器 看数据 采样率2.5MHZ,500KHZ带宽 ,这个数据也就只能看看大概的波形,别说什么细节了 大家是怎么看的呢,我觉得这个mini示波器只能看一下波形的变化,但是做项目的话,基本上是很难的。 今天拆解给大家分享一下,看一下做工和用到的芯片,看看值不值百元的价格 外观展示 波形测试(50hz方波) 对于这种最基本的波形,mini示波器开始可以显示的,而且和正常示波器测出来的也大差不差 拆解过程 (一)先拧开后壳四个螺丝,拿下后盖板和亚克力板 (二)然后可以看到屏幕模块和按钮,注意按钮上的按钮帽不要搞丢了 (三)屏幕模块可以单独拆解下来,通过3组排针连接 (四)电池通过排线接在主板上,可以拆卸。应该是方便后期更换 (五)主板看起来还是比较简洁明了的,布局也不错 PCB板&主要芯片 屏幕模块 屏幕主控采用一颗CH32F203RCT6,屏幕则是一块2.4寸的TFT屏幕,24针脚,屏幕驱动应该是ST7789 数据手册https://item.szlcsc.com/5744905.html CortexTM -M3 内核设计的工业级通用微控制器。 系列产品主频高达 144MHz,独立了 GPIO 电压(与系统供电分离)。资源同比增加了随机数单元、4 组 运放比较器、触摸检测,提高串口 USART/UART 数量到 8 组,电机定时器到 4 组。专用接口里:USB2.0 高速接口(480Mbps)内置了 PHY 收发器,以太网 MAC 达到千兆,并集成了 10M-PHY 模块等。搭配时 钟安全、电源管理、双组 DMA、ADC、DAC、SPI、I2C、DVP、SDIO、CAN、FSMC 等资源,可适用于多采 集、多通讯方向的综合类应用场景。 网上的2.4TFT屏幕大多是10引脚的,暂时没有找到24引脚的数据,找到一款20引脚的,应该引脚可以通用 对于CH32F203RCT6这款芯片来说,带这块屏幕还是绰绰有余的,但是网上的资料比较少,所以给大家分享一下类似的lcd代码 不得不说,这款产品的LCD设计真的好看,看来也是花费大量精力去研究ui的 # include "lcd.h" # include "stdlib.h" # include "font.h" # include "stdarg.h" # define LCD_CMD ((u32)0x6001FFFF) # define LCD_DATA ((u32)0x60020000) # define LCD_CLEAR_SEND_NUMBER 5760 u16 BACK_COLOR = BLACK, FORE_COLOR = WHITE; void lcd_write_cmd ( const u8 cmd) { *(__IO u8*)LCD_CMD=cmd; } void lcd_write_data ( const u8 data) { *(__IO u8*)LCD_DATA=data; } void lcd_write_half_word ( const u16 da) 8 ); *(__IO u8*)LCD_DATA=(u8)da; } u8 lcd_read_data ( void ) { vu8 ram; ram = *(__IO u8*)LCD_DATA; return ram; } u8 lcd_read_reg ( const u8 reg) { lcd_write_cmd (reg); delay_us ( 5 ); return lcd_read_data (); } void lcd_fsmc_init ( void ) { GPIO_InitTypeDef GPIO_InitStructure={ 0 }; FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure={ 0 }; FSMC_NORSRAMTimingInitTypeDef readWriteTiming={ 0 }; FSMC_NORSRAMTimingInitTypeDef writeTiming={ 0 }; RCC_AHBPeriphClockCmd (RCC_AHBPeriph_FSMC,ENABLE); RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOG,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOE, &GPIO_InitStructure); /* RS--D12 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOD, &GPIO_InitStructure); /* CS: PD11*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOD, &GPIO_InitStructure); GPIO_ResetBits (GPIOD,GPIO_Pin_11); readWriteTiming.FSMC_AddressSetupTime = 0x01 ; readWriteTiming.FSMC_AddressHoldTime = 0x00 ; readWriteTiming.FSMC_DataSetupTime = 0x0f ; readWriteTiming.FSMC_BusTurnAroundDuration = 0x00 ; readWriteTiming.FSMC_CLKDivision = 0x00 ; readWriteTiming.FSMC_DataLatency = 0x00 ; readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A; writeTiming.FSMC_AddressSetupTime = 0x00 ; writeTiming.FSMC_AddressHoldTime = 0x00 ; writeTiming.FSMC_DataSetupTime = 0x03 ; writeTiming.FSMC_BusTurnAroundDuration = 0x00 ; writeTiming.FSMC_CLKDivision = 0x00 ; writeTiming.FSMC_DataLatency = 0x00 ; writeTiming.FSMC_AccessMode = FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = FSMC_NORSRAMInit (&FSMC_NORSRAMInitStructure); FSMC_NORSRAMCmd (FSMC_Bank1_NORSRAM1, ENABLE); } /******************************************************************************* * Function Name : TIM1_PWMOut_Init * Description : Initializes TIM1 PWM output. * Input : arr: the period value. * psc: the prescaler value. * ccp: the pulse value. * Return : None *******************************************************************************/ void TIM1_PWMOut_Init ( u16 arr, u16 psc, u16 ccp ) { GPIO_InitTypeDef GPIO_InitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOB | RCC_APB2Periph_TIM1, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init ( GPIOB, &GPIO_InitStructure ); TIM_TimeBaseInitStructure.TIM_Period = arr; TIM_TimeBaseInitStructure.TIM_Prescaler = psc; TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit ( TIM1, &TIM_TimeBaseInitStructure); # if (PWM_MODE == PWM_MODE1) TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; # elif (PWM_MODE == PWM_MODE2) TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; # endif TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = ccp; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init ( TIM1, &TIM_OCInitStructure ); TIM_CtrlPWMOutputs (TIM1, ENABLE ); TIM_OC1PreloadConfig ( TIM1, TIM_OCPreload_Disable ); TIM_ARRPreloadConfig ( TIM1, ENABLE ); TIM_Cmd ( TIM1, ENABLE ); } void lcd_gpio_init ( void ) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init (GPIOD, &GPIO_InitStructure); GPIO_SetBits (GPIOD,GPIO_Pin_13); GPIO_ResetBits (GPIOD,GPIO_Pin_13); //wait at least 100ms for reset delay_ms ( 100 ); GPIO_SetBits (GPIOD,GPIO_Pin_13); // TIM1_PWMOut_Init( 1000, 48000-1, 50 ); } void lcd_init ( void ) { u16 id= 0 ; lcd_gpio_init (); lcd_fsmc_init (); lcd_write_cmd ( 0X04 ); id = lcd_read_data (); //dummy read id = lcd_read_data (); //读到0X85 id = lcd_read_data (); //读取0X85 id <<= 8 ; id |= lcd_read_data (); //读取0X52 printf ( "id = %x\r\n" ,id); delay_ms ( 50 ); /* Memory Data Access Control */ lcd_write_cmd ( 0x36 ); lcd_write_data ( 0x00 ); /* RGB 5-6-5-bit */ lcd_write_cmd ( 0x3A ); lcd_write_data ( 0x05 ); /* Porch Setting */ lcd_write_cmd ( 0xB2 ); lcd_write_data ( 0x0C ); lcd_write_data ( 0x0C ); lcd_write_data ( 0x00 ); lcd_write_data ( 0x33 ); lcd_write_data ( 0x33 ); /* Gate Control */ lcd_write_cmd ( 0xB7 ); lcd_write_data ( 0x00 ); /* VCOM Setting */ lcd_write_cmd ( 0xBB ); lcd_write_data ( 0x3F ); /* LCM Control */ lcd_write_cmd ( 0xC0 ); lcd_write_data ( 0x2C ); /* VDV and VRH Command Enable */ lcd_write_cmd ( 0xC2 ); lcd_write_data ( 0x01 ); /* VRH Set */ lcd_write_cmd ( 0xC3 ); lcd_write_data ( 0x0D ); /* VDV Set */ lcd_write_cmd ( 0xC4 ); lcd_write_data ( 0x20 ); /* Frame Rate Control in Normal Mode */ lcd_write_cmd ( 0xC6 ); lcd_write_data ( 0x03 ); //60Hz-0x0F 82Hz-0x07 99Hz-0x03 /* Power Control 1 */ lcd_write_cmd ( 0xD0 ); lcd_write_data ( 0xA4 ); lcd_write_data ( 0xA1 ); /* Positive Voltage Gamma Control */ lcd_write_cmd ( 0xE0 ); lcd_write_data ( 0xF0 ); lcd_write_data ( 0x03 ); lcd_write_data ( 0x09 ); lcd_write_data ( 0x03 ); lcd_write_data ( 0x03 ); lcd_write_data ( 0x10 ); lcd_write_data ( 0x2D ); lcd_write_data ( 0x43 ); lcd_write_data ( 0x3F ); lcd_write_data ( 0x33 ); lcd_write_data ( 0x0D ); lcd_write_data ( 0x0E ); lcd_write_data ( 0x29 ); lcd_write_data ( 0x32 ); /* Negative Voltage Gamma Control */ lcd_write_cmd ( 0xE1 ); lcd_write_data ( 0xF0 ); lcd_write_data ( 0x0C ); lcd_write_data ( 0x10 ); lcd_write_data ( 0x0E ); lcd_write_data ( 0x0E ); lcd_write_data ( 0x0A ); lcd_write_data ( 0x2D ); lcd_write_data ( 0x33 ); lcd_write_data ( 0x45 ); lcd_write_data ( 0x3A ); lcd_write_data ( 0x14 ); lcd_write_data ( 0x19 ); lcd_write_data ( 0x31 ); lcd_write_data ( 0x37 ); /* Display Inversion On */ lcd_write_cmd ( 0x21 ); /* Sleep Out */ lcd_write_cmd ( 0x11 ); /* wait for power stability */ delay_ms ( 100 ); lcd_clear (BLACK); /* display on */ GPIO_SetBits (GPIOB,GPIO_Pin_14); lcd_write_cmd ( 0x29 ); } /** * Set background color and foreground color * * @param back background color * @param fore fore color * * @return void */ void lcd_set_color (u16 back, u16 fore) { BACK_COLOR = back; FORE_COLOR = fore; } void lcd_display_on ( void ) { GPIO_SetBits (GPIOB,GPIO_Pin_14); } void lcd_display_off ( void ) { GPIO_ResetBits (GPIOB,GPIO_Pin_14); } /* lcd enter the minimum power consumption mode and backlight off. */ void lcd_enter_sleep ( void ) { GPIO_ResetBits (GPIOB,GPIO_Pin_14); delay_ms ( 5 ); lcd_write_cmd ( 0x10 ); } /* lcd turn off sleep mode and backlight on. */ void lcd_exit_sleep ( void ) { GPIO_SetBits (GPIOB,GPIO_Pin_14); delay_ms ( 5 ); lcd_write_cmd ( 0x11 ); delay_ms ( 120 ); } /** * Set drawing area * * @param x1 start of x position * @param y1 start of y position * @param x2 end of x position * @param y2 end of y position * * @return void */ void lcd_address_set (u16 x1, u16 y1, u16 x2, u16 y2) { lcd_write_cmd ( 0x2a ); lcd_write_data 8 ); lcd_write_data (x1); lcd_write_data 8 ); lcd_write_data (x2); lcd_write_cmd ( 0x2b ); lcd_write_data 8 ); lcd_write_data (y1); lcd_write_data 8 ); lcd_write_data (y2); lcd_write_cmd ( 0x2C ); } /** * clear the lcd. * * @param color Fill color * * @return void */ void lcd_clear (u16 color) { u16 i, j; u8 data = { 0 }; data = color >> 8 ; data = color; lcd_address_set ( 0 , 0 , LCD_W - 1 , LCD_H - 1 ); /* 5760 = 240*240/20 */ for (i = 0 ; i < LCD_W; i++) { for (j = 0 ; j < LCD_H; j++) { *(__IO u8*)LCD_DATA=data ; *(__IO u8*)LCD_DATA=data ; } } } /** * display a point on the lcd. * * @param x x position * @param y y position * * @return void */ 主控模块 示波器的原理,可以简单给大家说一下,但是这款产品用的什么方法,我也不清楚,给大家提供一个思路 一、信号输入与预处理 信号输入 :被测电压信号首先进入数字示波器的采集前端。 预处理 :在采集前端,信号会经过前置放大器和滤波器等元件进行处理。前置放大器用于调整信号的幅度,以满足后续处理的需要;滤波器则用于滤除不需要的频率成分,以改善信号的信噪比。 二、模拟到数字的转换(A/D转换) 模数转换器(ADC) :经过预处理的模拟信号被送入模数转换器(ADC)。ADC的作用是将模拟信号转换为数字信号。这一转换过程包括采样和量化两个步骤,即将连续的模拟信号在时间上离散化,并在幅度上量化成一系列的数字值。 数字信号存储 :转换后的数字信号被存储在数字示波器的内部存储器中,如FLASH或DDRAM等。这些存储器具有高速、大容量的特点,能够实时地保存大量的采样数据。 三、数据处理与显示 数据处理 :存储在内部存储器中的数字信号可以通过软件编程进行各种分析和处理,如波形重构、频谱分析、噪声抑制等。这些处理功能使得数字示波器能够提供更丰富、更准确的测试信息。 波形显示 :处理后的数字信号最终以波形、图表等形式显示在数字示波器的屏幕上。用户可以通过调整示波器的设置(如时基、垂直档位、偏移等)来观察和分析波形。 主控芯片 CH32F203CBT6 CortexTM -M3 内核设计的工业级通用微控制器。 系列产品主频高达 144MHz,独立了 GPIO 电压(与系统供电分离)。资源同比增加了随机数单元、4 组 运放比较器、触摸检测,提高串口 USART/UART 数量到 8 组,电机定时器到 4 组。专用接口里:USB2.0 高速接口(480Mbps)内置了 PHY 收发器,以太网 MAC 达到千兆,并集成了 10M-PHY 模块等。搭配时 钟安全、电源管理、双组 DMA、ADC、DAC、SPI、I2C、DVP、SDIO、CAN、FSMC 等资源,可适用于多采 集、多通讯方向的综合类应用场景。 充放电管理芯片 TP5400 TP5400 为一款移动电源专用的单节锂离子电池充电器和恒定 5V 升压控制器,充电 部分集高精度电压和充电电流调节器、预充、充电状态指示和充电截止等功能于一体, 可以输出最大 1A 充电电流。 电路设计也是和IP5306和TP4054一样简单 电荷泵电压反转器 ME7760C ME7660 是一 DC/DC 电荷泵电压反转器专用集成电路 芯片采用成熟的 AL 栅 CMOS工艺及优化的设计 芯片能将输入范围为+1.5V至+10V的电压转换成相应的-1.5V 至-10V 的输出 并且只需外接两只低损耗电容 无需电感 降低了损耗 面积及电磁干 扰 芯片的振荡器额定频率为 10KHZ 应用于低输入电流情况时 可于振荡器与地之间 外接一电容 从而以低于 10KHZ 的振荡频率正常工作 特点 1 转换逻辑电源+5V 为 5V 双相电压 2 输入工作电压范围广 1.5V 10V 3 电压转换精度高 99.9% 4 电源转换效率高 98% 5 低功耗 静态电流为 90 A(输入 5V 时) 6 外围元器件少 便于使用 只需两只外接电容 7 8-Pin DIP 和 8-Pin SOIC 小封装 8 符合 RS232 负电压标准 9 静电击穿电压高 可达 3KV 10 高电压工作时 无 Dx 二极管需求 用途我猜测是 (一)当电压发生反转时,示波器能够清晰地显示出这种反转现象,包括反转的起始点、持续时间以及反转后的电压幅值等关键参数。 (二)当电压信号发生反转时,示波器电压反转器(或类似功能)能够捕捉并显示这种变化 运算放大器 GS8094 在我的理解里 (一)运放可以增强微弱信号的幅度,使其更容易在示波器屏幕上显示和观测。 (二)对输入信号进行初步放大,以确保信号在后续处理过程中保持足够的幅度和信噪比。 (三)高质量的运算放大器通常具有极低的噪声水平,这有助于减少测量过程中的噪声干扰,提高测量精度。 输入失调电压(Vos) : 8mV 电源抑制比(PSRR) : 80dB 存储温度 : -55~+150℃ 封装/外壳 : SOP14_150MIL -3db带宽 : 350MHz 通道数 : 4 输入偏置电流 : 1pA 压摆率 : 232V/μs 增益带宽积(GBP) : 195MHz 共模抑制比 - CMRR : 80dB 输出类型 : Rail-to-Rail 工作温度 : -40℃~+125℃ 长x宽/尺寸 : 8.63 x 3.90mm 高度 : 1.75mm 引脚数 : 14Pin 脚间距 : 1.27mm 8通道模拟多路复用器 74hc4051D 宽工作温度范围:Topr =-40至125 ℃ 低功耗:Icc = 4.0 uA(最大值)(Vcc = 6.0 V,VEe = GND,Ta = 25 ℃) 低导通电阻:RoN = 50(典型值。) 在Vcc-VEE = 9 V时高线性度:THD = 0.02%(典型值。)Vcc -VBg=9 V时 复用器的作用应该是将信号汇总处理,提高精度 隔离电压 TLP785GB 用于隔离高电压的元器件,避免输入220V的电压导致击穿主控芯片 示例代码 由于网上CH32相关芯片的代码比较少,而且大家学习还是以stm32为主,所以我找了stm32的示例程序分享给大家看一下,大家一起学习 # define NPT 1024 //一次完整采集的采样点数 /****************************************************************** 函数名称:GetPowerMag() 函数功能:计算各次谐波幅值 参数说明: 备 注:先将lBufOutArray分解成实部(X)和虚部(Y),然后计算幅值(sqrt(X*X+Y*Y) *******************************************************************/ void GetPowerMag ( void ) { float X,Y,Mag,magmax; //实部,虚部,各频率幅值,最大幅值 u16 i; //调用自cr4_fft_1024_stm32 cr4_fft_1024_stm32 (fftout, fftin, NPT); //fftin为傅里叶输入序列数组,ffout为傅里叶输出序列数组 for (i= 1 ; i
热度 2
2024-8-23 16:20
211 次阅读|
0 个评论
故障现象:显示器不开机 维修过程:25伏1000微法电容炸开,更换 25伏220微法电容鼓包,更换 故障现象:显示器时而显示时而黑屏 排线接触不良 先固定好排线和显示板的自锁 故障现象:显示器色彩花屏: 排线和屏幕的连接处受力不均匀 维修:粘上粘贴,或电工胶布 这些问题我是逐一遇到,逐个排查,用时3天修好。 鸣谢: ICEasy 奇容电子 免费包邮的样品 为修好屏,我购买了拼多多13.05元的电源板, 经过最后调整也是好的。 以下是电脑维修指南: 电脑维修指南包括基础诊断、常见故障处理和必备工具等。电脑作为日常生活中不可或缺的电子设备,随时可能出现各种问题。了解电脑维修的基础技能不仅可以在关键时刻解决燃眉之急,也能避免因小问题而不得不寻求昂贵的专业服务。以下是关于电脑维修的具体分析: 1. 基础诊断步骤 初步检查:先确认电源连接是否正确,检查电源指示灯或开机按钮的反应。 观察现象:注意电脑开机过程中的任何异常声音、画面提示或报警声。 系统诊断:如果可以进入系统,使用内置的故障排查工具进行检测。 部件测试:依次断开非核心硬件,尝试最小化启动以定位问题所在。 外观检查:检查主板、内存、显卡等是否有明显损坏或烧焦迹象。 2. 常见故障处理方法 开机无反应:检查并更换电源适配器或电池。 显示问题:重新连接显示器和显卡,检查视频线是否完好。 系统过热:清理风扇上的灰尘,确保散热通道畅通。 硬盘故障:使用数据恢复软件或更换新硬盘并重新安装系统。 系统缓慢:运行磁盘整理程序,升级内存或更换固态硬盘。 3. 必备工具和设备 螺丝刀套装:用于拆卸和组装电脑外壳及内部硬件。 防静电手环:防止在维修过程中静电损害敏感元件。 压缩空气罐:用于清除电脑内部的灰尘。 多用电表:检测电路和电源问题。 热风枪:用于处理表面贴装元件(SMD)的焊接工作。 4. 安全操作指南 环境要求:确保在干燥的环境中工作,避免潮湿导致的短路。 断电操作:切勿在带电状态下接触电脑内部。 使用合适工具:避免对硬件造成物理损伤。 型号规格确认:更换部件前务必确认型号与规格,以免不兼容造成损害。 电子设备处理规范:正确处置废弃的电子零件。 总的来说,电脑维修并非遥不可及的专业技术,通过掌握上述基础诊断步骤、处理方法、必备工具以及安全指南,任何人都有可能成为电脑维修能手。然而,需要注意的是,在进行任何维修操作之前,请确保已备份所有重要数据,并在必要时寻求专业技术人员的帮助。
热度 6
2024-6-2 11:21
379 次阅读|
0 个评论
那天,我下定决心要对我的无线网络扩展器进行一番彻底的检修,这个设备的核心是RTL8187L无线网卡模块。我的目的不仅是想让它更好地工作,也是想通过这次机会更深入地了解它的内部构造。 在开始之前,我确保断开了所有电源,避免了任何可能的电气风险。然后,我仔细检查了网卡上的每个螺丝,并且小心翼翼地将它们一一拧出。这些螺丝就像是守护着网卡内部秘密的卫士,一旦被移除,就能够让我们一窥究竟。 当我缓缓地打开网卡的外壳,一股轻微的塑料和电路板特有的气味扑鼻而来。我小心地将外壳放在一旁,目光随即聚焦在内部的电路板上。它上面密密麻麻地分布着各种元件,每一个都各司其职,共同构成了这个复杂的网络通信设备。 接下来,我将注意力转向了天线连接部分。天线作为无线信号的收发装置,是整个无线通信过程中至关重要的一环。我轻轻地将连接线拔出,注意不要对连接点造成任何损伤,因为这些微妙的连接往往非常敏感而且重要。 在拆解每个部件的过程中,我都特别小心,以免损坏任何元件。我一边拆解,一边在心中默记每个部件的位置和功能,这不仅是为了将来能够正确地将其复位,也是为了让自己对这些精密的电子设备有更深的认识和了解。 通过这次拆解RTL8187L无线网卡模块的过程,我不仅对自己的动手能力有了更多的信心,也对无线网络设备的工作原理有了更加深刻的理解。当所有这些部件都被我逐一拆解开来,我发现自己已经不再是被复杂电路和密集元件所困扰的新手,而是变成了一个对这些精妙无比、交织在一起的科技产物有了更加深刻了解和欣赏的探索者。
热度 6
2024-5-30 20:38
1101 次阅读|
2 个评论
前言 一年多之前买了一个蓝牙鼠标,当时觉得鼠标其实够用就行,所以就买了一个非常便宜的蓝牙鼠标,据说是三模的,但是现在才发现,他这个三模并不是2.4G+蓝牙+有线,而是2.4G+两个蓝牙模式,其实就是双模。用了这么久,其实感觉挺好用,特别是适合大手的,而且还静音,这点对于经常外出学习来说,非常好,不影响他人。今天就拆解出来,给大家看看内部的做工,以及看看值不值30块钱,还是说可以更加便宜。 (售价35.91,商家送5元优惠券,实付30元) 外观&铭牌展示 fr (脚垫我换过,所以图片显示的胶垫不是原厂脚垫) (一)外观是那种公模,符合人体工程学的,比较适合大手的人用,因为是公模,所以手感上中规中矩,属于能用级别 (二)按钮设计也是公模常用的设计,两个侧键,两个功能键,地下有usb发射器收纳,还有模式切换的拨片 (三)鼠标后面有LED设计,但是看上去不高级,有种塑料感 (四)整体设计的中规中矩,手感还可以,用久不累,但是塑料外壳还是有一些瑕疵,外壳的品控还是有些问题 拆解过程 (一)一般鼠标都是很好拆的,为了可以给用户自行diy,或者自行更换配件,所以这款鼠标只需要把脚贴撕下来,然后把左边、右边、下边的螺丝拧开,即可将上下壳分离开,然后可以直接拿出主板 (二)小心鼠标前面有两个卡扣,小心分离外壳,不要扯断 (三)可以看到,外壳的质量是比较差的,毛刺非常多,虽然用起来没什么影响,但是体现出这些低价产品的做工还可以进一步提高的,电池底下有个槽固定,这点还是好评的,以往的电池基本上采用软包电池,随便用胶水粘一下就算固定了 (四)上盖的硬塑料中规中矩,应该是采用一体成型冲压的,还是挺好的,卡扣部分严丝合缝,这样不怕晃动,这点还是要给好评的 PCB板&主要芯片 (一) 主控芯片 ---- YC1059 【1】YC1059是一款专为2400MHz ~ 2483.5Mhz ISM频段运行而设计的低功耗、高性能、集成蓝牙3.0BR+5.0BLE+2.4G私有协议三模产品。 【2】采用先进的55nm CMOS工艺,在简化整个系统设计的同时,提供了最高的集成度、最低的功耗、最小的漏电电流、最低的物料成本。 【3】周边设备包括了8通道通用ADC,电源复位(POR),算术加速器,三轴Q解码器,ISO7816,UART/SPI/I2C和多达23个GPIO,进一步降低整体系统的成本和尺寸。 【4】工作电源范围1.8V~5.5V,在TX和RX模式下功耗非常低,保持出色的RF性能的同时,电池供电系统的使用寿命更长。 【5】设备可以进入超低功率休眠模式,在低功耗振荡器和睡眠计时器开启时,保留寄存器和存储器的记忆。 (二) 锂电池充放电管理 ---- TP 4054 TP4054 是一款高精度线性单节锂离子或锂聚合物电池充电控制电路,非常适合那些低成本、便携式充电器使用.它集高精度预充电、恒定电流充电、恒定电压充电、电池状态检测、温度监控、充电结束低泄漏、充电状态指示等性能于一身 【1】45 0mA 的可编程充电电流; 【2】无需 MOSFET 、检测电阻器或隔离二极管; 【3】用于单节锂离子电池、采用 SOT23-5 封装的完整线性充电器; 【4】恒定电流 / 恒定电压操作,并具有可在无过热危险的情况下实现充电速率最大化的热调节功能; 【5】直接从 USB 端口给单节锂离子电池充电; 【6】精度达到± 1% 的 4.2V 预设充电电压; 【7】用于电池电量检测的充电电流监控器输出; (三) 降压芯片,LDO线性稳压芯片 ---- PW6566 可将锂电池电压降到高精度、稳定的3.3V电压给芯片供电,采用极少的外部元器件以及占位极少,非常好用 【1】PW6566 系列是使用CMOS 技术开发的低压差,高精度输出电电压,低消耗电流正电压型电压稳压器。 【2】内置有低通态电阻晶体管,因而压差低,能够获得较大大的输出电流。 【3】为了使负载电流不超过输出晶体管的电流容量,内置了过载电流保护电路、短路保护电路。 【4】PW6566 系列采用SOT-23-3L小型封装。. (四) 光电无线鼠标芯片 ---- PAN3205 PAN3205是一款具有USB接口的高集成度光鼠标芯片,采用更先进的制造工艺和更好的光敏能力 【1】单电源供电,电压范围1.7~3.3V 【2】最高1600CPI 【3】通过串口与芯片MCU通信 【4】自动休眠功能,长时间不用即可进入休眠模式 PCB电路 【电路可能有些许误差,可能有误,欢迎指正】 (一) YC1059 , 主控芯片,集成蓝牙,2.4G功能,并且控制全部按键,进行处理。是一颗性能非常强悍的鼠标芯片 (2) TP 4054 , 锂电池充放电管理芯片,市面上非常常用的芯片,主打一个便宜耐用,而且所需元器件非常少 (三) PW6566 , 降压、稳压芯片,将锂电池电压降到稳定的3.3V,提供给MCU。后面有一颗肖特基二极管,压降0.3V,反向截至电流 (四) PAN3205 , 光电无线鼠标芯片,将数据通过串口发送给MCU。最快1600CPI (五) 按键 大全 (六) type-c接口 全家福 成本分析 (一) 基础元器件 ,电容,电阻,晶振,3个rgb灯,一个红外这些基础的元器件一共算3元 (二) 微动开关、鼠标按键、功能键 ,这些普通的按键价格平均在0.5/个,产品用了7个这样的按键,所以3.5元 (三) 滚轮编码器 ,价格大概1/个,虽然有点贵,但是质量挺靠谱 (四) YC1069 ,这款芯片目前市面上没有销售,甚至在批发也没有销售,可能是特供给厂商的,参考别的蓝牙鼠标芯片,大概是3.5/个 (五) PAN3205, 0.8/个,这个价格也算可以了 (六) PW6566 ,降压、稳压芯片,0.2/个 (七) TP 4054, 很便宜,很常用的一款芯片,0.05/个 (八) 电池,采用了一节不知道型号多少的锂电池,容量500,市面上大概1/个 (九) 鼠标2.4G接收器 ,大概3/个 (十) 其他配件, 滚轮,透明塑料垫,螺丝...这些杂七杂八的算3元 (十一) PCB&外壳, 外壳用的公模,做工也比较粗糙,PCB设计也不是很复杂,所以外壳和PCB加起来5元 硬件成本总计: 24.05 软件、人工、物流、电商成本总计: 5 (一)在外壳和PCB的设计上采用公模,所以研发费用比较少,而且做工也比较一般,所以在外壳PCB方面还是比较便宜 (二)传感器和主控芯片采用都是比较便宜,属于能用就行级别的,也没有特别的功能,在这个价位上属于比较合适 (三)3颗LED其实效果还是比较好的,虽然1颗能做的事情,但是3颗更完美 (四)这颗主控芯片的集成度很高,所以在软件层面应该不会太难,所以人工成本也低 总计: 29.05 【如果算上商家给的优惠券,商家几乎不赚钱,没有优惠券的情况下可以赚5块钱左右,这个性价比大家觉得怎么样】 改进、建议方案 其实在这个价位上,能够改进的地方不多,稍微改进,成本就会增加。 不过我认为在电池的固定方面还可以加强,虽然有槽给电池放,但是还可以打上胶水进一步固定,然后四周图上防水胶,这样成本也不会增加太多 总结 (一)个人人为,这款蓝牙鼠标的性价比是做到了极致,而且不看内部的情况下,外面的颜值也还可以,特别是适合大手的手感 (二)这款鼠标对于办公,网游来说,绰绰有余,连接性能也还相对稳定,但是对于游戏玩家,可能就不适合了,毕竟传感器用的还是比较便宜的 (三)不得不说现在的电商时代也是很厉害,这种鼠标放在线下店,起码也能卖50-60,网购居然和成本价差不多了,电商还是厉害的