2017年9月1日金曜日

STM32開発環境の立ち上げとmcHFファームウエア改造(日本の保証認定用)

先日mcHFのLPF改造について書きましたが、今度はいよいよファームウエアに手を入れることにしました。

日本の技適保証認定の認定判断基準として、この類のトランシーバについてはエレクラフト社のKX3の例にあるように,日本では未だ開放されていない60mバンドの送信を禁止する措置を何らかの形で施さない限り認定はおりないのが現状です。

幸いにしてmcHFのファームウエアは、UHSDRUniversal Ham Software Defined Radio)ソフトウエアとしてフリーでソースコードが提供されています。

このコードを改造して対応させれば保証認定が通る可能性が高まります。

取り急ぎ今回の対応点は、60mバンド送信不可にする(バンド切り替えのリストから60mバンドをスキップさせる)ことと、40mバンドのバンド幅修正(300kHzをResion3の200kHz幅にする)です。

DSP部分はまったく手を入れる必要はないので、該当コードさえ見つければ改造はそれほど難しくないでしょう。

というわけで、今後STM32の開発もやりたいのでまず開発環境を構築してみました。

Windows OSを使い続けて久しい私にとって導入しやすいフリーの開発環境はEclipseというIDEにgccコンパイラの組み合わせになります。少々古めの記事ですが、こちらの記事が非常に参考になりました。

Eclipseを導入するに当たっては、Pleiadesが非常に便利です。Eclipse本体に様々な環境をセットで導入できます。現時点での最新版Eclipse 4.7 OxygenのC/C++用のFull Edition(Windows 64bit版)をダウンロード&インストールし、Eclipseプラグインの追加、Tooolchain(gcc arm embedded)、Build Tool(GNU ARM Eclipse Windows Tools)、OpenOCDをインストールすればSTM32の実行ファイルのビルドまでできるようになります。詳しくはリンク先を参考にしてください。

mcHFのSTM32F4 MPUは専用のブートローダも必要ですが、新しいブートローダ3.4.0をインストールすればビルドしたファームウエアをUSBメモリ経由で更新可能になります。

というわけで、必要な環境が整ったところでUHSDRのスナップショットからソースコードをダウンロードしてEclipseにインポートします。

手直しした箇所は2つです。


 ここに各バンドのハンド幅が定義されています。
その中の40mバンド幅定義 BAND_SIZE_40 の300*KHZ_MULT を 200*KHZ_MULT に書き直すだけです。

続いては、60mバンド選択スキップ処置は、


 このUiDriver_ChangeBand()関数の中で、バンドボタンUPとDOWN時それぞれの処理に60mバンドをスキップさせるように書き加えます。

改造したコードをビルドし生成されたfw_mchf.binという実行ファイル(workspaceフォルダ内のDebugMCHFフォルダに生成)をUSBメモリにコピーし、mcHF本体にUSBメモリを挿してBAND-ボタンを押しながらPOWERボタンを押すとブートローダが起動してUSBメモリにコピーされたfw_mchf.binファイルをプログラムメモリに転送してファームウエアを書き替えてくれます。

書き替え後のmcHF動作をご覧ください。


 バンド切り替えも60mバンドは選択されず、メインダイヤルで60mバンドに合わせても送信できなくなります。

これで変更申請の保証認定申し込みをしようと思います。

0 件のコメント:

コメントを投稿