この翻訳は機械によって生成されたものであり、まだ人間による校正は行われていません。 日本語を話せますか? レビューはこちらから。
コミュニティメンバーによる寄稿ガイド
iFixitコミュニティーの素晴らしいメンバーがこのガイドを作成しました。iFixitスタッフによって作成されたものではありません。
はじめに
手順 1 に進む ↓まず、まだ行っていない場合は、絶対に動作しているMeikeレンズのファームウェアのアップデートを行わないでください。ファームウェアの「マジック文字列」が汎用的なもののようで、誤ったファームウェアを書き込んでレンズを永久に文鎮化させてしまう可能性があるためです。
修理ガイドになるはずだったものが、警告の物語に変わってしまいました…
「不注意な愚かさ」の瞬間、レンズがUSBマスストレージデバイスとして作成したフォルダーに誤ったファームウェアファイルをドロップしてしまいました。レンズはアップデートされ機能しなくなり、USBデバイスとして認識されなくなりました。「元に戻す方法はありません!」 この記事は、他の誰かが同じ作業をやり直した挙句、暗号化されたファームウェアとMeikeからの部品供給がないという行き止まりにぶつかることがないように残します。
「正しいファームウェアのサイトはこちらです」: https://meikeglobal.com/pages/firmware-u...
*私は間違った、古い中国語のファームウェアサイトに行ってしまいました! http://www.mkgrip.com/down.html*
*上記のサイトはその後閉鎖されています!*
限られたリソース、データシート、そしてChatGPTへの質問を駆使して、オンボードの小さなSTM32 ARMプロセッサーを、USB経由で認識され、STM32CubeProgrammerでプログラムや再フラッシュが可能な「DFUモード」に入れようと試みました。
これは成功しました!MCUピンのピッチが非常に狭いため個々のピンを測定するのが非常に困難で、さらに金属製の磁気シリアルクリップをPCBホルダーとして使い、スルーホールのはんだ付けに適したはんだごてでミニ冷蔵庫の上で作業していたため、ピンに銅線を1本はんだ付けすることさえほぼ不可能でした。
奇跡と新しい機材によって、MCUを交換しプログラムすることに成功しました。レンズを組み立て直しましたが、動作せずUSB経由でも認識されません!これは、BOOT0ピンが切断された状態の元のMCUと同じ挙動です(「その挙動の原因をBOOT0ピンのせいにしていました!」)。現在、ファームウェアは強力に暗号化されていると確信しています。STM32 MCUにはIP保護のためのAES暗号化が含まれており(エントロピー値は7.9487)、MCUが読み取りを拒否するように設定されていることは理にかなっているため、「DFUモード」経由でロードするための非暗号化バージョンのファームウェアを入手する方法はありません。
交換用のプリント基板/PCBを購入できないかMeikeに問い合わせました:
*「申し訳ありませんが、その部品は販売しておりません。」*
レンズを文鎮化させてしまった場合、同じタイプの故障したレンズから正常なプリント基板/PCBを入手しない限り、復旧させることはできません!
-
-
-
ここは簡単な作業です。ドライバー(PH000)を使用して、写真1で示された2本のネジを外します。
-
ドライバー(PH00)を使用して、写真2で示された4本のネジを外します。
-
プラスチック成形部品は、示されている4つのクリップで固定されていますが、内側から押し出すだけで取り外せます
-
-
-
まず、矢印で示されたリボンケーブルを慎重に取り外す。小さな滑らかな顎のラジオペンチを使用する。爪が十分に長ければ、爪を使うこともできる。
-
AF/MFスイッチ付きのリアカバーを取り外したら、残りのリボンケーブルを慎重に取り外す。次に、丸で囲まれた2本のプリント基板/PCB固定用ネジを外す。
-
-
-
マイクロUSB出入力ポートを備えたMeiki 85mm f/1.8のロジックボードを、最初の写真にレンズと並べて示しています。これは基本的に2つのモータードライバーを搭載したSTM32マイコンです。
-
2枚目の写真は、STMF072C8T6 マイクロコントローラーの接写です。
-
3枚目の写真はST社のデータシートからの抜粋で、LQFP48 ピン配置を示しています。
-
-
-
工場出荷時のファームウェアから起動する場合、ピン44のBOOT0は10kΩのプルダウン抵抗を介してLow(0V)に保持されます。NRSTピンであるピン7は、10kΩのプルアップ抵抗を介してHigh(3.3V)に保持されており、これには0Vへのデカップリングコンデンサが付いています。
-
DFUモードで起動するには、ピン44のBOOT0をHigh(3.3V付近)に保持する必要があります。その状態で、ピン7のNRSTピンを一時的にLowにしてMCUをリセットします!
-
''BOOT0がどこでプルダウンされているのか分からなかったため、ピン44をハンダ除去して上に曲げ、スルーホールの10kΩプルアップ抵抗を介してHighに引き上げました!うまくいきましたが、元に戻そうとしたときにピン44が折れてしまい、結果としてMCUを破壊してしまいました!
-
NRST : 写真1では、赤丸で囲まれた一時的にショートさせる必要のあるデカップリングコンデンサを確認できます。BOOT0用の3.3Vを得るには、青丸で囲まれた10kΩのNRSTプルアップ抵抗の上部、または隣接するデカップリングコンデンサにプルアップ抵抗をハンダ付けします。基板の下側の配線の銅箔を削って予備ハンダを施すことも可能です。
-
BOOT0 : 写真2では、ピン44のBOOT0の配線がプリント基板の裏面から出て、10kΩのプルダウン抵抗に接続されている場所を確認できます!黒丸() 下にあるピン36はVDDIO2で、3.3Vになっています!オレンジ丸() ここに1kΩのプルアップ抵抗を接続し、扱いやすい3.3Vレールにつなぐことで、MCUをDFUモードに設定できます!!!
-
損傷した状態! : 写真3はMCUを取り外した後のプリント基板です(ひどく損傷して消耗しているように見えます!)。赤い四角は3.3Vを取得した場所で、ピンクの円はBOOT0の配線がMCUの下に消える場所と、そこから出てくる場所を示しています。[リワークのページを参照]
-
-
-
写真1のように、6バンドの1kΩ抵抗器を32swgのワイヤーに接続します。そのワイヤーの片端を3.3vトレースに、もう片端を10kΩのBOOT0プルダウン抵抗器の上部にそれぞれはんだ付けします。
-
ボードをDFUモードに設定したら、STM32CubeProgrammerソフトウェアをインストールしたシステムに接続して起動します。ボードはすでにUSB経由で認識されており、プログラマーが接続されるはずです。写真2は、Windows 10のデバイスマネージャーに表示されるDFUのブートロードを示しています。名前は「STM BOOTLOADER」となります。
-
写真3は、再プログラミング後のスクリーンショットです。次の手順でプログラミングのステップを説明します。
-
-
-
まず、Meikiのサイトから正しいファームウェアを入手します。ファームウェアの.SKYファイルを解凍し、もしファイル名が.BINになっていない場合は、.BINにリネームします。
-
PCBを導電性のない表面に置き、USBを接続します。STM32CubeProgrammerを開き、「Green Connect button」の隣にある「Blue button」をクリックしてUSBを選択します。次に「Connect」をクリックします。プログラマーが基板に接続され、情報が表示されます。
-
左側にある上から2番目の緑色のボタンをクリックし、「Erasing and Programming」を選択します。「Erase Flash Memory」タブの中央右側にあるFull Eraseをクリックします(画像1)。OKをクリックして消去します。操作が完了するとメッセージが表示されます(画像2)。
-
Downloadセクションで、「Browse」を使用してファームウェアの.Binファイルを選択します。「Verify Programming」のチェックボックスにチェックを入れ、「Start Programming」ボタンをクリックします。プログラミングと検証が完了すると、確認ダイアログが表示されます(画像3)。
-
この時点でピン44を折ってしまいました!! 基板の接続を外し、1KΩのBOOT0プルアップ抵抗を慎重に取り外します。その後、再度基板をUSBに接続し、レンズに正しいファームウェアが入っていた時と同様にフォルダーが表示されるか確認します。表示されたら、レンズを元通りに組み立ててテストします。
-
表示されない場合は、レンズ内で基板をテストするか、あるいは1KΩの抵抗を元に戻し、別のファームウェアイメージで繰り返します。
-
-
-
-
「35ドルという非常に安価なホットエアー(熱風式)はんだ付けステーションを購入したので、新しいMCUに交換します!!」
-
「現在、I/Oの割り当てを調べています」
-
プリント基板/PCBを修正しました。ヘルピングハンズ(精密作業用補助器具)、はんだペースト、フラックスペンは必須アイテムでした!858Dを約333℃、風量4¾に設定し、はんだごては312℃で使用しました。パッドを洗浄し、はんだペーストを塗布してMCUを配置し、3つあるノズルのうち一番大きいものを使ってはんだ付けしました。フラックスペースト、はんだごて、はんだ吸い取り線を使って修正し、さらにフラックスを塗り直して一番小さいノズルで加熱し直す必要がありました。数時間におよぶ作業でした。
-
今夜、2回「USBデバイスが認識されません」というエラーが発生して修正を行いましたが、その後ボードが認識され、ファームウェアの消去、書き込み、検証を行うことができました。
-
-
-
新しいMCUを、リネームした.skyファームウェアイメージで再プログラミングした。これら3枚の画像に示す通りである。
-
プルアップ抵抗の両端の電圧降下からプルダウン抵抗が回路内にあると判断し、そのプルアップ抵抗を取り外した。
-
レンズを再組み立てしたが、動作も列挙もされなかった。MCUの交換によって動作しなくなった可能性はある。USB通信は動作しておりMCUも実行されていたため、ファームウェアさえ実行されていれば列挙されるはずである。また、これは元のMCUの挙動と同じである。
-
クリーンなDFUモードの非圧縮/暗号化ファームウェアイメージが必要である。
-
-
-
80年代からの古い技術者として、私が考慮に入れていなかった唯一のことは、「知的財産」に対する現代の執着かもしれません。ファームウェアは圧縮されているか、あるいは難読化されているとすら思っていました。しかし、この保護がST社によって提供され、ソフトウェアとハードウェアの両方で実装されているという事実に気づきませんでした。
-
Linuxの仮想マシンでファームウェアに取り組んでいましたが、これ以上進めなくなったため、AIに尋ねました。binwalkerからエントロピー値を取得するよう提案されました。解析を終えると、シェルプロンプトに戻されましたが、その後、エントロピーを7.9497と算出するPythonスクリプトを提供してくれました。
-
この暗号化は、ほぼ確実に共通鍵暗号方式です。さらに悪いことに、ハードウェアには「読み取り禁止」が実装されています。もしMeikeが、ST社が開発ツールで提供している強力な暗号化を使用するという先見の明を持っていたら……。
-
彼らはほぼ確実に、読み取り禁止を使用して、マイクロコントローラーから抽出される非暗号化ファームウェアを保護するでしょう。
-
もしこれらのレンズを文鎮化させてしまった場合、レンズを機能する状態に復旧させる唯一の方法は、同じタイプの物理的に破損したレンズから正常なプリント基板/PCBを入手することです。Meikeに問い合わせましたが、彼らはプリント基板/PCBの交換用パーツを販売していません。たとえ、レンズのファームウェアを復旧できなくさせている原因が、彼らの知的財産保護措置であるにもかかわらず……。
-
IP(知的財産)保護に関するST社からの情報: https://www.st.com/content/st_com/en/eco...
-
-
動作しているMeikeレンズのファームウェアのアップデートは行わないでください。