JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

MiniPro (XGecu) TL866Ⅱ Pluse を購入しました

MiniPro (XGecu) TL866 Ⅱ Pluse という安価な ROM ライタを買ってみました。
もちろん、中華からです。

f:id:JH1LHV:20181227181033j:plain

https://www.aliexpress.com/item/TL866A-Universal-programmer-adapters-kits-TL866A-Programmer-Adapter-Socket-Extractor-Electronic-Components-Kit/32733156901.html?spm=a2g0s.9042311.0.0.31c74c4d96eVSE

- amazon -
WINGONEER TL866II Plus USB高性能 EEPROM フラッシュBIOSプログラマ、ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS

f:id:JH1LHV:20181117165839j:plain

f:id:JH1LHV:20181117165933j:plain

f:id:JH1LHV:20181117170141j:plain

この ROM ライタの一番のウリは 15,000 以上のチップに対応していることかな。

  • AVR、PIC、EPROM、EEPROM など 15,000種 ものチップに対応
  • 48 pin までの Flash メモリに対応
  • ICSP サポート
  • VCC 1.8V〜6.5V、VPP 1.8V〜18V 保護機能付き
  • COMS、TTL などのロジック IC チェック
  • 形状は 10cm × 6cm × 2.5cm

他にも多くの特徴があるみたいですが・・・まだ、その全体がわかってません。。。

f:id:JH1LHV:20220206122501j:plain

現在、15401 種のチップに対応してます。

f:id:JH1LHV:20220206122542j:plain

TL822 は3タイプあります。
購入時は間違わないように注意してください。
 

■ ■

 

この TL866 は AliExpress の多くのショップで取り扱いがあります。
わたしは、オプションの拡張ボードの種類が豊富なショップから購入しました。

今どきは、 TSOP のような表面実装パーツを取り扱うことが多く、例えば手持ちのジャンク基板のメモリチップからデータを吸い出そうとした時に、チップに合う拡張ボードが無かったりするとシラケちゃうので、そうならないように最初からできるだけ多く拡張ボードを揃えておくことにしました。

 

アプリケーションのインストール

アプリケーションは公式ウェブからダウンロードできます。
現時点では V8.11 が最新バージョンのようです。

f:id:JH1LHV:20220206122620j:plain

インストール先のドライブの指定は、setup 実行時のデフォルトじゃないと上手くいかないみたいです。
(”D:\Xgpro” のままということ。)

f:id:JH1LHV:20220206122727j:plain

最初のアプリ起動で Firmware のアップデートを促されたので、アップデートしておきました。
起動時に勝手に最新の Firmware を確認してくれる、こういう仕様はイイですね。

f:id:JH1LHV:20220206122759j:plain

起動画面です。

f:id:JH1LHV:20220206122830j:plain

アプリの言語は英語や中文など数カ国から選択できますが、あいにく日本語はないのでデフォルトの英語のままとしました。

アプリのセットアップでドライバも勝手にインストールされるのかとパソコンの画面を凝視してたのですが、わたしの環境ではアプリケーションをインストールしただけで終わったように見えました。

このあと TL822 をパソコンに繋いだらちゃんとデバイスが認識したので、インストールの知らぬ間に勝手に入ったのかも知れません。(こわ)

f:id:JH1LHV:20220206123033j:plain

TL822 を繋いどきのデバイス一覧

 

とりあえず、動作確認

手元にあった古い ROM (富士通 MBM27C64)のブランクチェックをやってみました。
 

f:id:JH1LHV:20220206123114j:plain

デバイス一覧から MBM27C64 @DIP28 を選択します。

f:id:JH1LHV:20220206123142j:plain

Device → Blank Check を選択します。
ROM の装着方法を図で示してくれるところも、親切です。

f:id:JH1LHV:20181117171524j:plain

f:id:JH1LHV:20220206123246j:plain

データの編集もできるので、適当に数字を入れて Write 、 Read をやってみました。

 

PIC のプログラムを複製する

プログラム入り PIC のクローンを作ってみました。 
前に作ったモールス練習機の PIC(12F1822)を使いました。
 

f:id:JH1LHV:20181117191044j:plain

f:id:JH1LHV:20181117185645j:plain

〇 PIC からデータを Read

f:id:JH1LHV:20220206123502j:plain

プログラム入りのコピー元となる PIC を装着して、データを Read します。

f:id:JH1LHV:20220206123533j:plain

Read したデータを確認します。

f:id:JH1LHV:20220206123613j:plain

f:id:JH1LHV:20220206123656j:plain

保存する際のデータ形式として、BIN と HEX が選択できます。

〇 コピー先の PIC のブランクチェック

f:id:JH1LHV:20220206124314j:plain

コピー先の PIC の Blank チェックをします。

〇 コピー先の PIC にプログラムを書き込む

f:id:JH1LHV:20220206123808j:plain

保存したデータを読み込みます。

f:id:JH1LHV:20220206123853j:plain

① の Read ID の後、② の Program ボタンを押下してデータを書き込みます。

f:id:JH1LHV:20220206124215j:plain

正常に書き込めれば、「Programming successful !」と表示されます。

で、新たな PIC ですが、もちろん動作しました。

 

ロジック IC をチェックする

2回路入りのフリップフロップ、74HC74 をチェックしてみました。

f:id:JH1LHV:20220206124439j:plain

f:id:JH1LHV:20220206124519j:plain

各回路でチェックし、その結果を返しています。
2回路とも正常です。

 

USB メモリのフラッシュメモリからデータを抽出する

壊れて動かなくなった USB からデータを取り出す、データリカバリーができるかチャレンジしてみました。

f:id:JH1LHV:20181117192305j:plain

現用中の USB を分解するのは流石にもったいないので、昔使っていて廃棄するだけの 128MB のものを分解することにしました。

f:id:JH1LHV:20181117194111j:plain

左側の大きいやつがフラッシュメモリで、右のちょっと小さいやつがコントローラです。

f:id:JH1LHV:20181228172634j:plain

フラッシュメモリはホットエアガンで簡単に外せます。

f:id:JH1LHV:20220206124711j:plain

この USB メモリに搭載されているフラッシュメモリは
 Samsung K9K1G08U0M(128M × 8bit NAND)
で、残念ながら TL866 のデバイス一覧にはありませんでした。

※NOR型、NAND型メモリは、電源を落としてもデータが消えない不揮発性のメモリです。

f:id:JH1LHV:20220206124742j:plain

 

f:id:JH1LHV:20220206124832j:plain

Samsung の Flash Memory 調べたら、128M × 8Bit のやつがあったので、不完全なまでも Read できることを期待して、作業続行です。 

f:id:JH1LHV:20220206124944j:plain

Samsung K9K1G08U0M(128M × 8bit NAND)

f:id:JH1LHV:20220206125147j:plain

f:id:JH1LHV:20220206125212j:plain

デバイス情報によれば、このチップに適合する拡張ボードは「緑色」とのこと。(TL866 のセットは「赤ボード」が添付)

f:id:JH1LHV:20220206125238j:plain

チップによってはこの「赤ボード」を使う必要があります。

ということで、別口で購入していた緑ボードを使いました。

f:id:JH1LHV:20181228173118j:plain

f:id:JH1LHV:20181228173254j:plain

緑色の拡張ボード2枚を重ねて装着します。
(TSOP48 Base ボード + TSOP32/40/48、緑)

f:id:JH1LHV:20220206125340j:plain

① Options の "Pin Detect" と "Check ID" のチェックを外します。
② データ保存用のファイルを設定します。
③ ID Check します。※これを忘れるとデータは正しく読めません!
④ Read ボタン押下でデータは読み出され、指定したファイルに保存されます。

f:id:JH1LHV:20181228175652j:plain

データ Read 中は黄色の LED が点灯します。

f:id:JH1LHV:20220206125528j:plain

f:id:JH1LHV:20220206125553j:plain

Read が終了し、「Read successful !」と表示されましたが、Bad Block の嵐。。。
(Config の設定が正しくないかも・・・。)

f:id:JH1LHV:20220206125615j:plain

保存した test.bin のプロパティでは、132MB のファイルサイズなのですが、Bad Block がこれだけあるとデータの救出は難しいでしょう。

f:id:JH1LHV:20220206125639j:plain

書き出したデータをバイナリエディタで見たところ、なにやらデータは Read されてますが不完全です。(jpg のヘッダが見つからない)

f:id:JH1LHV:20220206125711j:plain

一応、拡張子を img に変更してディスクイメージのマウントを試みましたが、エラーになりました。

ということで、Bad Block にならないデバイスはないかと・・・他のチップを手当たり次第にデバイス一覧から選択して Read してみたところ、K9F1208U0A という 64M のメモリで Bad Block は一か所だけだったので、この先の作業はこのバイナリで行うことに。

f:id:JH1LHV:20220206125731j:plain

f:id:JH1LHV:20220206125755j:plain

Bad Block になるのが少ないので、jpg を探すとそれなりのヘッダは見つかります。ただ、img としてマウントできないとあとは力業となり、FAT を解析してセクタ単位でつなぐ必要があります。

今日のところはここまでで、そもそもの「K9K1G08U0M」がデバイス一覧に追加されるのを待つか、FAT 解析ツールを探して自力で解析するか・・・まぁ、何れにしろ時間が必要です。

f:id:JH1LHV:20220206125831j:plain

jpg は、”FF D8 FF” から ”FF D9” なので、ヘッダを探して切り出したところ、断片的ではありますが、写真の一部を取り出すことができました。

■ ■

 

ちょっと調査しただけですが、抽出したデータそのものの構造はそう単純じゃなさそうです。

NAND フラシュはそのハードの性質上(寿命の関係)、同じセクタばかり使わないようにコントローラが書き込みを制御しているので、まず最初に NAND フラッシュと対になっているコントローラの制御方法を解析する必要があります。

コントローラのファームを逆アセンブルして制御方法を解読するとか、NAND フラッシュのシステムエリアを解読してデータエリアの構造を推測しながら FAT 構造に組み替えるとか・・・そんな途方もない作業が必要です。


■ ■

 

さらには、紛失時のセキュリティ対策を施しているような高級な USB だと、データは強固な暗号で守られているため、たとえデータが抜き出せて FAT 構造に変換できたとしても、今度はその暗号を解くのは難しいので、最後までたどり着くことは極めて困難だと思います。

ただ、その USB に施したパスワードがわかっているなら、なんとかなりそうです。
コントローラ用のチップを解析して暗号型式さえ判明できれば、復号も可能だと思います。

データ解析のカギは、コントローラの制御方法の解読・・・ただ一点のような・・・気がします。

それと、チップは石みたいなものなので、結構強度があります。
たとえ手で折って壊そうとしても、固いチップ部分は避けて柔らかいところで折れるためチップが破壊されることは滅多にありません。

ということで、時間は無限に掛かりそうですが、データ救済は不可能なことではないと思います。
 

チップを自動で判定する

品番がわからないチップを判別する機能です。
チップの刻印を削ってるような場合に威力を発揮しそうです。

ただし、4ピンや8ピンのチップだけのようです。
手持ちのチップで試そうとしたのですが・・・わたしが持ってるチップはすべて対象外でした。

f:id:JH1LHV:20220206125857j:plain

今のところ、対応するチップが少なく、今後に期待です。

 

結局、一番やりたかった USB メモリのチップからデータを救済することができなかった。。。
この件は、引き続き懸案事項とし、頭の隅っこに置いとくことにします。