JTAG là gì? - Công nghệ unlock viết v iết EEPROM bằng JTAG Ngày: Thursday, 10, February Chủ đề: 1. JTAG là gì?
JTAG là một giao diện kết nối mà bạn có thể làm hoặc mua ở chợ.Nó cho phép bạn thao tác xóa và ghi flash.Tại sao chúng ta lại phải sử dụng Jtag? Dùng JTAG trong trường hợp bạn cầnnâng cấp đầu thu STB hoặc xử lý lổi phần mềm(nạp lại) của đầu thu STB.Nếu bạn làm sai khi nâng cấp thì công cụ đơn giản để khắc phục đđiều iều đó là công nghệ JTAG với cần câu chính là phần mềm JKEYS. Phần mềm JKEYS cho phép conectinon giữa PC với STB thông qua cáp JTAG phần mềm JKEY chỉ chỉ kết nối với STB khi đả có DEVICES DEVICES CPU and FLASH của STB và chỉ làm việc với 2 họ vi xử lý (CPU) STIxxxx (nhân là ST20)and LSI SC2000 2. Công nghệ JTAG không có gì xa lạ Nó là công cụ để diagnostic diagnostic và debug, test test hệ thống. Nó có có chức năng can thiệp thiệp tới Boundary Scan IC - nhúng trên các chip có JTAG và điều hành CPU thông qua DCU (cái này chắc mọi người nhìn thấy thuờng xuyên khi nâng cấp đầu thu) DCU là Diagnostic Control Unit, nó chiếm quyền điều khiển 1 phần hay toàn bộ CPU và các thiết bị nội vi CPU. JTAG hoạt động trên cơ sở kích hoạt DCU và chiếm quyền kiểm soát. Thông qua việc chiếm quyền kiểm soát bằng DCU, nó cho phép cướp quyền khởi động bằng Software khi khởi tạo (RESET) CPU. Khi đó nó bắt CPU dừng, rồi điều hành CPU theo ý của host Device (ở đây đ ây là phần mềm JKEY trêǹ PC). khi đó, thông qua DCU, JKEY nạp 1 đoạn đ oạn code vào internal SDRAM của chip và chạy code đó như 1 hệ điều hành. Sau khi đó nó sẽ làm các công việc mà hệ điều hành này đưa ra. 3. FLASH CHip qua JTAG cũng hoạt động tương tự. Nó nạp một phần mềm vào CPU khi khởi động thông qua DCU, rồi sau đó ghi dữ d ữ liệu vào bộ đệm SDRAM của CPU và yêu cầu CPU ghi vào chip FLASH.
Công nghệ sử dụng JTAG nạp lại FLASH cho đầu thu 1. Công nghê ̣ JTAG không có gì xa lạ nhất là đối với những ai làm viê ̣c với MCU và FPGA nhiều. Nó là công cụ để diagnostic và debug, test hệ thống. Nó có chức năng can thiê p̣ tới Boundary Scan IC - nhúng trên các chip có JTAG và điều hành CPU thông qua DCU (cái này chắc bà con nhìn thấy thuờng xuyên khi nâng cấ p đầu thu) DCU là Diagnostic Control Unit, nó chiếm quyền điều khiển 1 phần hay toàn bô ̣ CPU và các thiết bị nô ̣i vi CPU. JTAG hoạt đô ̣ng trên cơ sở kích hoạt DCU và chiếm quyền kiểm soát. 2. Thông qua viê ̣c chiếm quyền kiểm soát bằng DCU, nó cho phé p cướ p quyền khởi đô ̣ng bằng Software khi khởi tạo (RESET) CPU. Khi đó nó bắt CPU dừng, rồi điều hành CPU theo ý của host Device (ở đây là phần mềm JKEY trêǹ PC). khi đó, thông qua DCU, JKEY nạ p 1 đoạn code vào internal SDRAM của chip và chạy code đó như 1 hê ̣ điều hành. Sau khi đó nó sẽ làm các công viê ̣c mà hê ̣ điều hành này đưa ra. 3. FLASH CHip qua JTAG cũng hoạt đô ̣ng tương tự. Nó nạ p một phần mềm vào CPU khi khởi đô ̣ng thông qua DCU, rồi sau đó ghi dữ liê ̣u vào bô ̣ đê ̣m SDRAM của CPU và yêu cầu CPU ghi vào chip FLASH. 4. Vâ ̣y lỗi DCU thường hay xảy ra khi bạn khởi đô ̣ng JKEY là lý do chương trình nạ p vào CPU thông qua DCU bị lỗi. Lỗi này do mấy điểm sau: - CPU bị bắt é p boot from ROM - tức là chân 115 của chip STi5518 luôn bị bằng HIGH (do nhà sản xuất hoă ̣c lý do gì đó). Khi chân 115 =High thì CPU chỉ boot từ ROM. Muốn boot được bằng DCU cần nối đất (GND) chân này trước khi reset CPU (Tắt điê ̣n và bâ ̣t lại). - Chân 115 này đã được thiết kế có đô ̣ trễ (đa số là nhà sản xuất sử dụng công nghê ̣ này) nối GND rồi mới reset lại CPU để boot từ ROM. Mạch reset của đầu thu (T11+12) thiết kế theo kiểu: khởi đô ̣ng máy thì chân 115=LOW, chân RESET=HIGH, sau N time, nếu không có boot từ DCU thì WATCHDOG của CPU sẽ khởi đô ̣ng lại reset với 115 =HIGH lúc này CPU sẽ boot từ ROM - hay FLASH như bình thường. Đây là 1 cách chống phần mèm JKEY hoạt đô ̣ng. bạn thường thấy nếu thao tác khong nhanh hoăc̣ nạ p không ổn định, lúc được, lúc không vi lý do ̀ JKEY không kiểm soát WATCHDOG của CPU. Khắc phục bằng cách pull up chân RESET của Chip lên 3.3V và nối GND chân 115 (BOOT SOURCE SELECT). Đảm bảo 100% khởi đô ̣ng thành công DCU.
Ngoài ra còn nhiều điều liên quan đến JTAG, tuy nhiên nên cẩ n thâ ̣n vì chân CHIP rất nhỏ, dễ gây chạm, châ p̣ làm hỏng CPU, ngoài ra còn có tác đô ̣ng bên ngoài như xung điê ̣n, từ trường của cơ thể cũng gây tác hại. Dùng WALL20 trước, nhấn CPU RESET sau đó JTAG RESET (HOẶC NGƯỢC LẠI) , vẫn để nguyên Wall, chạy JKEY, đóng WALL rồi nhấn nút FLASH tool của JKEY, không khởi động lại đâu fthu như JKEY yêu cầu, nhấn OK đầu thu sẽ INIT DCU OK! với T10x 99% vựot qua! Với rất nhiều đầu thu dùng STI 5518 khác nữa, nếu bạn thực hiện đúng bạn có thể xóa flash đi và nạp lại là việc khá dễ dàng. Vậy thì cách sử dụng JTAG phải tiến hành như sau : Bước 1 : Bạn phải có mạch JTAG, chương trình JKEY, máy tính có cổng LPT ( song song ) cài đặt ở chế độ SPP trong BIOS .Tới đây việc tiến hành kết nối vật lý diễn ra như hình vẽ Nếu đầu thu có sẵn chân nối JTAG thì bạn vẫn phải kiểm tra sao cho các chân TRST, TMS, TCK, TDI, TDO và GND đều phải được kết nối chính xác ( theo đúng datasheet của CPU 5518 ) Trong ví dụ này đưa ra hình của giao tiếp loại 20 pin. Các pin 2-20 ( số chẵn đều là GND ). Các chân còn lại nối theo thứ tự sau: JTAG pinout for 5518: TRST: 109 TMS : 110 TDO : 111 TDI : 112 TCK : 113 Chân jăck JTAG 20 pin : pin 19 TRST pin 15 TDO pin 13 TDI pin 11 TCK pin 9 TMS Trường hợp không có giắc hoặc phải câu chân tín hiệu tại linh kiện gần CPU thì bạn phải nối như sau : STI5518 pin 109 -> pin TRST mạch JTAG STI5518 pin 110 -> pin TMS mạch JTAG STI5518 pin 111 -> pin TDO mạch JTAG STI5518 pin 112 -> pin TDI mạch JTAG
STI5518 pin 113 -> pin TCK mạch JTAG Nguyên tắc này áp dụng cho tất cả các đầu thu dùng CPU STI 5518 ( nếu khác CPU bạn phải tham khảo datasheet để biết được các chân cần nối, kể cả CPU AVIA9700 cũng như vậy ). Bước 2 : Bạn phải chắc chắn rằng việc kết nối vật lý thông suốt, hãy đo thông mạch trước khi thực hiện bước chạy phần mềm JKEY ( nếu không sẽ có lỗi trong quá trình chạy ). Công tác khảo sát và kiểm tra sự tương thích giữa IC Flash của đầu thu với sự mô tả IC đó trong file jkey.def việc này rất quan trọng vì nếu trong file này không có hay mô tả sai -> đồng nghĩa là bạn không thể kết nối phần mềm với đầu thu ( chương trình JKEY không hiểu IC Flash của bạn đâu ) Ví dụ : Đầu thu VTC T10C bị hỏng chương trình trong IC Flash, đầu thu này có 2 phiên bản sử dụng 02 laọi IC flash là : AM29F800BB ( hãng AMD ) và 29LV800BA ( hãng Fujitsu ) , thực ra file flashT10C_full.bin đều có thể nạp trên 02 loại IC này, với điều kiện bạn phải có mô tả của cả 2 IC này trong file JKEY.def . Nếu không có mô tả thì chương trình JKEY không thể kết nối với Flash-> bạn không nạp được chương trình vào Flash. Sẽ có hướng dẫn cách xác lập các thông số trong Jkey.def trong một bài viết riêng, hoặc bạn phải có thư viện mẫu các file mô tả này. Giả thiết đầu T10C này dùng IC hãng Fujitsu 29LV800BA thì mô tả trong jkey.def như sau: a/ Dòng lệnh mô tả đầu thu: IRD, 21, "T10C-PA1", 8, 1, 1, 1, 2, 2, 0x7FE00000, 0x7FEFFFC4, 0x7FEFFFFE, 0x7FEFFFA8, 0x7FE74FF4, 0x7FEEFFC7, "Ult", 0, 0 IRDFlash, 21, "Flash 1(29LW800BTC)", 0x225B, 0x7FE00000, 0x100000, 2, 2, 0 b/ Dòng lệnh mô tả Flash lọai gì, cấu trúc như thế nào: Flash, 21, "29LW800BTC", 0x225B, 0x100000, 0, 1, 0, 1, 19, 1 Sector, 21, 15,0, 0x10000 // 64 KByte 15 Sectors Sector, 21, 1, 0xF0000, 0x8000 // 8 KByte 1 Sector Sector, 21, 1, 0xF8000, 0x2000 // 8 KByte 1 Sector Sector, 21, 1, 0xFA000, 0x2000 // 8 KByte 1 Sector
Sector, 21, 1, 0xFC000, 0x4000 // 16 KByte 1 Sector TULA tổng hợp từ Billydragon & Flasheeprom