Pocket SDRハードウェア製作(第2報)
はじめに
Pocket SDRハードウェアは、大きくわけて高周波受信部と、USBインターフェース部からなります。このUSBインターフェース部までの動作確認ができていたと思っていました。実は、ちょっとやらかしまして、EEPROM交換を要するかもしれません。ファームウェア回復などについて役立つと思い、公開します。
基板洗浄
前回は、USBインターフェースFX2LPのファームウェア書き込みまでを行いました。高須先生から、2022-09-05の記事にて、Windows用ドライバとしてzadigの代わりにCyUSBを利用することを教えていただきました。気がついたのが出張中でしたが、Pocket SDRのことで頭がいっぱいでした。PCのドライバを置き換えるだけですので、もうできたものと思っていました。
帰宅後、パソコンに接続した私のPocket SDRハードウェアは、白色LEDの一方が消灯のままでした。さらに、PC上のデバイスマネージャを確認したら、このUSBインターフェース部が認識されていません。「デバイス記述子要求の失敗」なんて、つらすぎます。
「何もしていないのに壊れたんです」
実は、先生方のプリント基板はきれいなのに、私のプリント基板は汚れていることが気がかりでした。その汚れである、リフロー時のクリームはんだに含まれるフラックス(はんだ付け促進剤)や、リワーク時に追加したフラックスが、絶縁や部品密着に悪影響を与えていると考えました。
そこで、ハブラシに無水エタノールをつけて、すべての表面実装部品の端子をやさしくみがき、キムワイプで拭き取って、フラックス完全除去を目指しました(参考:Aquchin工房さんYouTube 基板を洗浄する方法 ~Tips #06~)。ハブラシにもフラックスが付着しますので、時々、無水エタノールとキムワイプで歯ブラシの汚れも拭き取ります。
その過程で、今まで気づかなかった、いくつかの部品の浮きを見つけました。ひとつづつ、その部品を基板から外し、付け直しました。今まで、ハードウェア認識には30秒程度の時間を要するものと思っていました。この誤り修正により、ハードウェアがすぐにパソコンに認識されるようになりました。
しかし、依然としてこのハードウェアがパソコンに認識されませんでした。
FX2LPファームウェア回復
しかし、高須先生の記事 FX2LP書き込みに、その対処法がありました。
EEPROMジャンパを開放すれば、 FX2LP(USBコントローラマイコン)からEEPROMが切り離され、単体で起動できるそうです。FX2LPが起動できたら、そのままEEPROMジャンパを短絡してEEPROMを接続します。そして、USB Control Cenerにて、RAM領域に基本ファームウェアを読み込み、そのファームウェア一部加工して、EEPROMに転送すれば、EEPROMを初期化でき、再び新しいファームウエアを書き込めるのです。USB Control Centerの操作については、パワーオンとファームウェア書き込みをご参照ください。
RAM領域に読み込む基本ファームウェアは、Cypress(現在はInfineon)のEZ-USB Development Kit (DVK) CY3684の添付ソフトウェアの中にあります。ウェブ上のInfineon会員に登録した上で、このTools & Software
のDOWNLOAD - CY3684Setup.exe
をダウンロードしてPCにインストールすると、その中に必要なVend_Ax.hexを見つけられます。
上述の高須先生の記事内容は次のとおりです。
- EEPROMジャンパ端子を開放してPCに接続します。デバイスマネージャ上のユニバーサルシリアルバスコントローラーに
Cypress FX2LP No EEPROM Device
が現れます。 - USB Control Centerの
Program
->FX2
->RAM
を選び、Vend_Ax.hex
を選択します。左下にProgramming succededが表示されます。 - EEPROMジャンパ端子を短絡します。
- USB Control Centerの左側のData Transferペインから
Cypress FX2LP No EEPROM Device
->Configuration 1
->Control endpoint (0x00)
を選択します。 Data Transfer
タブにて、Req typeをStandard
からVendor
へ、Req codeを0x00
から0xA9
に、それぞれ変更します。他の部分はデフォルトのままです。そして、Data to send欄にFF
と入力すると、Text to sendに文字化けした1文字が表示され、Bytes to transferが1に自動変更されます。最後にTransfer Dataボタンを押します。成功すると、transfer completedの文字が表示されます。
そのまま続けて、Pocket SDRのファームウェアファイル(pocketsdr.iic)を書き込むことができます。操作自体はとても簡単です。しかし、0xA9などのマジックパラメータや、この手順を、私には見つけられそうにありません。この手順を公開していただいて、とても助かりました。
EEPROMを壊したかも
私のハードウェアでは、Cypress USB Control Centerにてファームウェアを書き込もうとするとProgramming failedと表示されました。今まではこの操作でEEPROMにファームウェア書き込みできていたのに、できなくなり悲しいです。試しに、この書き込み失敗状態で、ハードウェアを取り外し、再び接続したら、「不明なUSBデバイス」になりました。
Cypress USB Control Center上に、ファームウエア書き込みに失敗を表すProgramming failed表示が出ても、そのまま上述のステップ4.と5.を行うことより、EEPROMクリアすることができます。USB Control CenterにProgramming succeededの文字が表示されるまで、ジャンパ線の操作をすることなく、試行錯誤できます。
ファームウェア書き込みに失敗し、そのファームウェアで起動しようとすると、一部分のみが動作しているように見えることから、EEPROMの一部が破損したと推測しています。EEPROMを多めに購入していますので、付け替えてみようと思います。きっと一回、ハードウェア作成に成功すると、作成成功率が急上昇するのでしょう。
まとめ
Pocket SDR v.0.8からは、WindowsのUSBドライバとしてCyUSBを使用します。部品の端子がきれいに見えるまで、プリント基板上のフラックスを除去します。このフラックス除去のために、無水エタノールと、ハブラシと、キムワイプを使いました。起動できなくなることに備えて、ファームウェア回復手順を知っておくことは大切です。
私は、EEPROMを壊してしまったようですので、交換してみようと思います。
Pocket SDRハードウェア完成まで、三歩進んで二歩下がってしまったような感じがしますが、あきらめません。第3報を待っていてください。
関連記事
- Pocket SDRを用いたGalileo E6B信号の受信 27th January 2023
- リフローでやらかしました 19th January 2023
- Pocket SDRハードウェア製作(第3報) 30th September 2022
- Pocket SDRハードウェア製作(第1報) 4th September 2022
- PocketSDRすごい(パーツ購入編) 9th April 2022
- PocketSDR APにてbladeRFを使いたい(その2) 16th March 2022
- PocketSDR APにてbladeRFを使いたい 5th March 2022
- PocketSDRすごい(スナップショット測位編) 23rd February 2022
- PocketSDRすごい(FFTWによる高速化) 19th February 2022
- PocketSDRすごい(L6信号デコード編) 19th January 2022
- PocketSDRすごい(pocket_trk編) 28th December 2021
- PocketSDRすごい(pocket_acq編) 4th December 2021