Tên sự cố: Khắc phục sự cố Camera AI Hikvision DeepinView DS-2CD7A26G0/P-IZHS bị treo Logo, Lỗi Bootloop do Bad Block SPI NAND Flash và quy trình Phục hồi Firmware tầng Vi mạch
Trung Tâm Sửa Chữa Chuyên Sâu & Kho Linh Kiện Máy Tính VietITPro Tác giả: Ban Biên Tập VietITPro Phần Cứng Vi Mạch & Hệ Thống VietITPro Danh mục: Thiết Bị Hội Nghị & Camera AI (thiet-bi-hoi-nghi)
1. TỔNG QUAN HỆ THỐNG VÀ KIẾN TRÚC PHẦN CỨNG HIKVISION DS-2CD7A26G0/P-IZHS
Dòng camera IP AI DeepinView DS-2CD7A26G0/P-IZHS (độ phân giải 2MP, tích hợp NPU nhận diện khuôn mặt và biển số xe ANPR) là một hệ thống nhúng công nghiệp có mật độ linh kiện cao. Khác với các dòng camera quan sát thông thường sử dụng SoC giá rẻ, thiết bị này được xây dựng trên nền tảng vi xử lý DSP/SoC chuyên dụng của Ambarella (dòng CV series/S3L) kết hợp với bộ tăng tốc mạng thần kinh nhân tạo (NPU Hardware Accelerator), bộ nhớ DDR3L/DDR4 dung lượng cao và bộ nhớ lưu trữ SPI NAND Flash dung lượng 1Gb (128MB).
+-------------------------------------------------------+
| CHÂN NGUỒN CẤP VÀO |
| PoE+ (IEEE 802.3at) 48V / AUX DC 12V-24V |
+---------------------------+---------------------------+
|
v
+-------------------------------------------------------+
| KHỐI NGUỒN TRUNG TÂM & MẠCH BẢO VỆ |
| - PD Controller: TI TPS2373 |
| - O-Ring Controller: LTC4357 (Chống ngược cực) |
| - Primary Buck DC-DC Converters |
+---------------------------+---------------------------+
|
+---------------------+-----------------+---------------------+
| 12V / 5.0V / 3.3V | 1.8V DDR | 1.2V / 0.9V Core |
v v v v
+---------------+ +---------------+ +---------------+ +---------------+
| Ngoại vi, IR, | | RAM DDR3L/4 | | Ambarella SoC | | NPU AI Neural |
| Motor Zoom/Focus | Micron/Winbond| | (CV22/S3L) | | Accelerator |
+---------------+ +---------------+ +-------+-------+ +---------------+
|
| (QSPI Bus - 104MHz)
v
+-------------------+
| SPI NAND Flash |
| Winbond W25N01GV |
| (1Gb / 128MB) |
+-------------------+
1.1. Sơ đồ cây nguồn (Power Tree Network - PDN)
Mạch nguồn của DS-2CD7A26G0/P-IZHS sử dụng kiến trúc cấp nguồn kép (Dual-Power Inputs):
- Cấp nguồn qua Ethernet (PoE+ IEEE 802.3at): Quản lý bởi IC Controller TI TPS2373, chuyển đổi điện áp 48V-57V Phantom từ dây cáp mạng UTP thông qua biến áp xung Isolation Transformer, hạ áp về đường 12V chính trên mainboard.
- Cấp nguồn phụ (DC Direct Input): 12V DC (hoặc 24V AC) đi qua mạch chống đảo cực và bảo vệ quá áp transients sử dụng MOSFET kênh P cùng IC Ideal Diode Controller LTC4357.
Từ đường điện áp chính +12V_SYS, hệ thống hạ áp thành các đường nguồn thứ cấp qua chuỗi IC chuyển đổi DC-DC Buck Synchronous: +5.0V_MAIN: Cấp cho mạch điều khiển motor ống kính Zoom/Focus (IC Driver Piezo/Stepper), mạch xẻ tản nhiệt hồng ngoại IR-Cut Filter và khối khuếch đại âm thanh. +3.3V_SYS:* Cấp nguồn I/O cho SoC Ambarella, vi điều khiển phụ (MCU ARM Cortex-M3 quản lý giám sát hệ thống), cảm biến CMOS Image Sensor, IC Ethernet PHY (Realtek/Marvell) và chân VCC của IC SPI NAND Flash. +1.8V_DDR:* Cấp nguồn VDD/VDDQ cho bộ nhớ RAM DDR3L/DDR4. +1.2V_VDD_SOC:* Cấp cho nhân xử lý trung tâm (Core Logic) của SoC Ambarella. +0.9V_VDD_NPU:* Cấp riêng cho nhân tính toán mảng ma trận AI (Neural Processing Unit) để chạy các thuật toán Deep Learning nhận diện khuôn mặt trực tiếp tại biên (Edge Computing).
1.2. Mạch giao tiếp bộ nhớ SPI NAND Flash
Hệ thống bo mạch sử dụng chip nhớ SPI NAND Flash Winbond W25N01GVZEIG (dung lượng 1Gb, cấu trúc WSON8 kích thước 8x6mm) hoặc Gigadevice GD5F1GQ4. Giao tiếp giữa SoC Ambarella và Flash được thực hiện qua chuẩn Quad-SPI (QSPI) chạy ở xung nhịp cao (lên tới 104MHz), bao gồm các đường tín hiệu: SPI_CLK:* Tín hiệu xung đồng hồ giao tiếp. SPI_CS#:* Tín hiệu chọn chip (Chip Select, tích cực mức thấp). SPI_MOSI/IO0, SPI_MISO/IO1, SPI_WP#/IO2, SPI_HOLD#/IO3*: 4 đường truyền dữ liệu song song (Quad I/O).
Bất kỳ sự suy hao tín hiệu nào trên các đường Bus này do tụ lọc nhiễu bị rò, trở kháng đường nắn dòng thay đổi, hoặc sự xuất hiện của các ô nhớ bị hỏng (Bad Block) vượt quá khả năng sửa lỗi ECC nội tại (On-Die ECC) của chip NAND đều sẽ khiến quá trình nạp Bootloader (U-Boot) hoặc Kernel Linux thất bại, dẫn đến pan bệnh treo Logo hoặc lặp lại chu kỳ khởi động (Bootloop).
2. HIỆN TRẠNG SỰ CỐ VÀ PHÂN TÍCH NGUYÊN LÝ LỖI (FAULT ANALYSIS)
2.1. Triệu chứng lâm sàng trên thiết bị
Camera cấp nguồn qua POE+ 802.3at hoặc adapter 12V-3A: Đèn LED nguồn sáng xanh cố định. Đèn hồng ngoại dạng mảng (Matrix IR LED) lóe sáng 1 lần (quá trình POST phần cứng ban đầu), R-Cut Filter kêu "tạch" 1 lần. Đèn báo cổng mạng RJ45 (Link/Act) nháy vàng sáng khoảng 5 giây rồi tắt hẳn, không nháy xanh truyền dữ liệu. Công cụ quét IP mạng nội bộ Hikvision SADP Tool không thể tìm thấy thiết bị trong lớp mạng L2. Thiết bị rơi vào trạng thái treo cứng, không xuất ra stream video, không phản hồi ping ICMP.2.2. Đo đạc tham số điện áp tầng cứng (Voltage & Ripple Diagnostics)
Trước khi can thiệp vào tầng phần mềm hay nạp lại ROM, Kỹ sư tiến hành cấp nguồn từ bộ nguồn đa năng BK Precision 1688B (điều chỉnh 12.00V DC, giới hạn dòng 3.0A) để đo đạc các điểm thử nghiệm (Testpoints - TP) trên bo mạch mainboard DS-2CD7A26G0/P.
Kết luận bước đầu: Toàn bộ hệ thống nguồn Buck Regulators và LDO hoạt động chính xác. Không có hiện tượng ngắn mạch (Short Circuit), sụt áp gợn nhiễu (Ripple) trên các tụ lọc nguồn chính (Murata Ceramic Low-ESR Caps) đều nằm trong tiêu chuẩn cho phép (< 50mV). Sự cố hoàn toàn nằm ở khối điều khiển dữ liệu nhúng (Data Partition Memory Integrity Failure).3. TRUY XUẤT VÀ PHÂN TÍCH LOG KERNEL QUA CỔNG GIAO TIẾP SERIAL CONSOLE (UART)
Để chẩn đoán chính xác nguyên nhân SoC không thể khởi động vào hệ điều hành Linux nhúng (Embedded Linux), kỹ sư tiến hành kết nối trực tiếp vào giao tiếp Serial Debug (UART) trên PCB.
3.1. Hàn dây giao tiếp UART Serial
Trên bo mạch chính Hikvision DS-2CD7A26G0/P, hàng chân UART debug nằm cạnh vi xử lý Ambarella, bao gồm 4 Pad nhỏ kích thước 0.5mm:VCC (3.3V), TXD, RXD, GND.
[Bo mạch chính Camera Hikvision DS-2CD7A26G0/P]
+-----------------------------------------------+
| |
| +------------------+ |
| | Ambarella SoC | J3 Debug Pad |
| | (CV22/S3L) | [o] VCC (3.3V) |
| +------------------+ [o] TXD ----------> Kết nối RXD của CP2102
| [o] RXD <---------- Kết nối TXD của CP2102
| +------------------+ [o] GND ----------> Kết nối GND của CP2102
| | Winbond NAND | |
| | W25N01GV | |
| +------------------+ |
+-----------------------------------------------+
- Sử dụng kính hiển vi soi nổi stereo (Stemi 305) và trạm hàn nhiệt điều khiển micro JBC CD-2SHE với mũi hàn C210-002.
- Dùng dây đồng tráng men cách điện (Enamelled Copper Wire) đường kính 0.1mm hàn trực tiếp vào 3 pad:
TXD,RXD,GND(Không hàn dây VCC để tránh xung điện áp ngược). - Kết nối thông qua mạch chuyển đổi USB-to-TTL sử dụng IC Silicon Labs CP2102.
- Cấu hình phần mềm Terminal (PuTTY / TeraTerm):
3.2. Bóc tách và Phân tích Kernel Log thực tế
Cấp nguồn thiết bị, quá trình nhận dữ liệu ASCII từ Bootloader U-Boot xuất ra màn hình Terminal:
U-Boot 2016.01 (Jul 22 2021 - 04:12:05 +0800) Ambarella
CPU: Ambarella CV22/S3L
DRAM: 1 GiB
NAND: 128 MiB (Winbond W25N01GV, Page 2048, OOB 64, Block 128 KiB)
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
nand_read_bbt: bad block at 0x000001a00000
nand_read_bbt: bad block at 0x000002b40000
SF: Detected W25N01GV with page size 2048 Bytes, erase size 128 KiB, total 128 MiB
Loading from nand00:128m(pri_kernel)...
[ 1.230412] Scanning device for bad blocks
[ 1.234105] ECC uncorrectable error detected at page 0x00003820
[ 1.238991] MTD_READ_ECC failed: -74 (EUCLEAN)
[ 1.242100] SQUASHFS error: squashfs_read_data failed to read block 0x382000
[ 1.246882] SQUASHFS error: Unable to read metadata cache entry [382000]
[ 1.250102] SQUASHFS error: Unable to read inode 0x1a8c
[ 1.254331] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 1.258901] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.73 #1
[ 1.262110] Hardware name: Hikvision DeepinView Board
[ 1.265001] [<c0014d30>] (unwind_backtrace) from [<c0011bb4>] (show_stack+0x10/0x14)
[ 1.269101] [<c0011bb4>] (show_stack) from [<c0683410>] (panic+0xdc/0x248)
[ 1.273000] Reboots in 3 seconds...
3.3. Đánh giá nguyên nhân gốc rễ (Root Cause Determination)
- Quá trình U-Boot đọc các phân vùng hệ thống (
pri_kernelvàrootfs) gặp lỗi ECC vật lý nghiêm trọng:ECC uncorrectable error detected at page 0x00003820. - Chuẩn nạp On-Die ECC của Winbond W25N01GV chỉ cho phép sửa lỗi tối đa 1-bit ECC cho mỗi 512 Bytes. Khi số lượng Bit Flip (lật bit do lão hóa lớp cách điện Floating Gate của cell nhớ Flash) vượt quá 1-bit, IC không thể tự sửa lỗi dữ liệu.
- Cấu trúc tập tin SquashFS (được nén cực kỳ chặt để chứa RootFS) bị hư hỏng siêu dữ liệu (Inode Metadata Corruption). Kernel Linux không thể mount hệ thống tập tin root (
/dev/mtdblock3), kích hoạt cơ chế an toàn Kernel Panic và lặp đi lặp lại quá trình Reboot liên tục. - Giải pháp bắt buộc: Phải gỡ bỏ chip SPI NAND Flash ra khỏi bo mạch, đưa lên máy nạp ROM chuyên dụng để quét toàn bộ bản đồ Bad Block (Bad Block Table - BBT), thực hiện Format cấp thấp, nạp lại bản Dump Firmware gốc sạch (Clean Raw Dump) và xử lý phân vùng chứa thông số Calib (DevInfo / MAC / Device Serial / Private Key).
4. QUY TRÌNH PHẪU THUẬT VI MẠCH: BÓC TÁCH VÀ NẠP LẠI FLASH SPI NAND
Toàn bộ quá trình can thiệp vi mạch được thực hiện trong phòng sạch ESD Safe của VietITPro, tuân thủ nghiêm ngặt tiêu chuẩn IPC-7711/7721 về sửa chữa bo mạch điện tử công nghiệp.
+-----------------------------------------------------------------------------------+
| QUY TRÌNH BÓC TÁCH VÀ XỬ LÝ NAND FLASH |
+-----------------------------------------------------------------------------------+
| |
| [BƯỚC 1: CỔNG NHIỆT KHÒ] [BƯỚC 2: PHÂN TÍCH BAD BLOCK] [BƯỚC 3: HÀN TÁI LẮP] |
| - Trạm Quick 861DW - Đế nạp RT809H / WSON8 - Vệ sinh Pad bằng |
| - Nhiệt độ: 350°C - Air: 50 - Scan 1024 Blocks (128MB) dây hút thiếc. |
| - Nhấc IC W25N01GV - Re-map & Skip Bad Block - Hàn bằng thiếc |
| - Inject MAC & Serial Data SAC305 (217°C). |
+-----------------------------------------------------------------------------------+
4.1. Quy trình gỡ chip SPI NAND (Desoldering Procedure)
Thiết bị sử dụng: Trạm khò nhiệt công suất cao Quick 861DW, mỡ hàn Kester RMA-229-TS, nhíp kẹp vi mạch Titanium AOYUE. Thông số cài đặt nhiệt: Nhiệt đ đầu khò: 350°C (sử dụng đầu khò đường kính 8mm). Lưu lượng gió (Airflow): 50 L/min. Khoảng cách khò: 1.5 cm vuông góc với mặt IC.- Thao tác:
- Phủ một lượng vừa đủ mỡ hàn RMA-229-TS quanh 8 chân bụng của chip W25N01GVZEIG (chân WSON8).
- Gia nhiệt đều xung quanh khu vực chip trong khoảng 30 giây để gia nhiệt sơ bộ bo mạch (Pre-heating), tránh ứng suất nhiệt gây cong vênh PCB 8 lớp.
- Tập trung dòng nhiệt trực tiếp lên thân IC trong 20 giây. Khi lớp thiếc hàn không chì (Lead-free SAC305 có nhiệt độ nóng chảy 217°C) hóa lỏng hoàn toàn, dùng nhíp titanium gỡ nhẹ IC ra khỏi bo mạch theo phương thẳng đứng.
- Dùng dây hút thiếc (Desoldering Braid Goot Wick SWU-2015) kết hợp mỏ hàn JBC C210-002 ở nhiệt độ 360°C làm sạch hoàn toàn thiếc dư trên các pad hàn PCB, lau sạch bằng cồn Isopropyl Alcohol (IPA) nồng độ 99.9%.
Thành phần hình học chân chip WSON8 (Winbond W25N01GV):
+-----------------------------------+
| (1) /CS [=====] [=====] VCC (8)|
| (2) DO [=====] [=====] /HOLD(7)|
| (3) /WP [=====] [=====] CLK (6)|
| (4) GND [=====] [=====] DI (5)|
| | | |
| +---- EPAD (GND) -----+ |
+-----------------------------------+
4.2. Đọc/Ghi dữ liệu và Phân tích Cấu trúc Dump trên Máy Nạp Chuyên Dụng RT809H
Chip NAND WSON8 sau khi gỡ được vệ sinh sạch chân tiếp xúc và gắn vào đế nạp chuyên dụng WSON8-to-DIP8 Socket Adapter kết nối trực tiếp với Máy nạp lập trình đa năng RT809H Programmer.




