ラベル mbed の投稿を表示しています。 すべての投稿を表示
ラベル mbed の投稿を表示しています。 すべての投稿を表示

2014年9月17日水曜日

mbedでWSPRコード生成

mbedは対応ハードウエア(NucleoはCortex-M4搭載でも1,500円くらいで購入できる)さえあれば、PCに開発環境を苦労して構築することなく、プログラミングが容易に出来るクラウドな環境です。

先日はDDSのコントロールを試してみましたが、今回はWSPRコード生成プログラムをmbed環境で構築してみました。

PCに繋がるのはUSBケーブル1本のみ 持ち運びに便利でどこでも開発可 hi

WSPRエンコード手順は前の投稿で検証しましたが、流れとしては

    1.文字列の数値化(コールサイン、グリッドローケータ+電力)
    2.数値の畳み込み符号化(k = 32, r = 1/2)
    3.インターリーブ処理
    4.同期シンボルとの併合

となります。

mbedにはCortex-M4のSTM32マイコンを搭載したNucleoボードを使いましたが、STlink/V2ドライバをインストールすると仮想comポート経由でPCとの通信が可能になるため、それぞれの処理結果をprintf()でターミナルソフトに表示させることが出来ます。

処理結果をPC上で確認しながらコーディングが出来るのでとても便利です。

Windowsで動作するWSPRエンコードソフトはいくつかありますが、中でもGENWSPR.EXEは処理過程が表示されるので、これを平行して立ち上げて比較しながらコーディングの修正ができて大きくどつぼに嵌らず一応完成にたどり着きました。

中央はGENWSPR.EXEの処理結果 右が作成したプログラムの結果をターミナルで表示
インターリーブ処理の訳と理解が不十分で少し悩みましたが、他で公開されているソースコードを参考にしながら修正できました。

8ビットPICやTX-136/500で使われているdsPICの16ビットPICにも使えるようにしていきたいと思います。

2014年9月5日金曜日

mbedお試し

マイコンといえばPICばかり扱ってきましたが、他のも弄ってみようと少し前からARM系のマイコンボードを購入していました。そのなかでもmbed対応のマイコンボードで、STMicroelectronics社のSTM32マイコンボードNucleoは秋月やそのほかでも1500円前後で手軽に入手できます。今回はマルツで購入しました。

モノはST Nucleo F401REで、ARM Cortex-M4 84MHz Flash 512KB SRAM 96KBと上位モデルになります。

mbedはPC自体に開発環境を置かずに、ブラウザ上でコードを記述したりコンパイルして実行ファイルをダウンロードし、Drag&Dropでマイコンボードに転送して即実行できるという非常に便利な環境になっています。

しばらくボードはそのままになっていましたが、G+つながりでにわかに流行りだした(笑)ので自分も乗っかってみたという次第です。

スタートは比較的容易です。

mbedのサイトでユーザー登録してログインし、右上のCompilerをクリックすると開発画面が別タブで出てきます。mbedマイコンボードのUSB端子からPCにつなぐとドライバーがインストールされ(モノによっては(Nucleoの一部など)ファームウエア更新が必要。ですがサイトに手順が載っています)USB大容量記憶装置(ドライブ)として認識されます。PCで認識されたドライブを開いて中にあるmbed.htmをダブルクリックするとmbed開発環境がマイコンボードを認識してくれます。後々別のmbed対応ボードの追加も可能です。

開発に当たってライブラリやサンプルプログラム、公開されたほかの人のプログラムもインポート可能でチュートリアルも充実しており、開発効率は良いと考えます。

そこで早速、基本のLチカとDDS版Lチカ(笑)やってみました。


mbed.hという基本のインクルードファイルを導入し、PICで記述したDDSへのシリアル送信部分と周波数設定関数はほぼそのまま、出力ポートの設定のみであっさりとコンパイル通りました。(変数の型についてWarningでましたが)

コンパイルが通ると自動的に実行ファイル(*.binファイル)がダウンロードされるのでマイコンボードのドライブにファイルをDrag&Dropすれば、転送されて即実行されます。


 NucleoからBB上のAD9834のモジュールに通信ラインを接続して電源を入れ、設定周波数どおりのDDS信号が出ました。

言語がC++なので多少修正は必要かもしれませんが、今までのPICのプログラムソースが使えそうです。また逆にmbedで開発した資産もPICでも使えてソースが相互に利用できそうでなかなか良さそうに思えました。

Cortex-M4搭載なのでDSPも簡単に使えたらいいなぁ...←欲張りhi