FMトランスミッタモジュールNS73M実験基板 |
FMトランスミッタモジュールNS73M実験基板開発指針新潟精密製FMトランスミッタモジュールの実験基板を作りました。 |
記 2009/5/17 |
|
|
||||||||||||||||||||||||||||||
今回は特にNS73Mの半田付けが難しそうだったので基板をエッチングして作成しました。 部品も乗っけた完成イメージは以下のような感じです。 |
NS73M実験基板ファームウェアの開発 |
|||||||||||||||
NS73M実験基板ファームウェアの開発は以下の環境・バージョンで行いました。
|
|||||||||||||||
NS73M実験基板ファームウェア(USB未対応版) |
|||||||||||||||
USB未対応のファームウェアです。後述するUSBジェネリッククラス対応のファームウェアは、このUSB未対応の
ファームウェアのコードを使って開発しています。
MPLAB IDEプロジェクトになっていますので、適当なフォルダに解凍してそのままコンパイル可能です。 NS73Mとの通信方法(IICか3線式か)はコンパイル条件式で選択するようになっています。 NS73M.h内の以下の記述で、2か3を指定してください。
|
|||||||||||||||
NS73M実験基板ファームウェア(USBジェネリッククラス対応版) |
|||||||||||||||
記 2009/6/6 | |||||||||||||||
「マイクロチップUSBフレームワーク(MCHPFSUSB Framework)」PIC18F2550のUSBファームウェアの開発には、マイクロチップ社が提供する「マイクロチップUSBフレームワーク(MCHPFSUSB Framework)」
を使用することができます。 USBジェネリッククラス・サンプルアプリケーションの選択「マイクロチップUSBフレームワーク(MCHPFSUSB Framework)」のインストールが完了すると"Microchip Solutions"という
フォルダがCドライブに作成されます。"Microchip Solutions"フォルダの中には"Microchip"フォルダを含めて数多くのフォルダ
が存在します。"Microchip"フォルダ以外のフォルダはサンプルアプリケーションのフォルダであり、フォルダ名でどのような
機能のサンプルなのかが分かるようになっています。
この二つのサンプルアプリケーションの大きな違いはPC側のデバイスドライバにあります。WinUSBを使ってみたかったので 今回は"USB Device - WinUSB - Generic Driver Demo"を使用します。 USBジェネリッククラス・サンプルアプリケーションの改造指針
USBジェネリッククラス・サンプルアプリケーションの改造手順
NS73M実験基板ファームウェア(USBジェネリッククラス対応版)で処理するコマンドUSBジェネリッククラスの通信でPCアプリケーションから送られてくるコマンドは以下の4つです。
|
|||||||||||||||
WinUSBデバイスドライバのインストール |
|||||||||||||||
PCのUSBデバイスドライバはWinUSBを使用します。コピーしてできた"NS73MWinUSB"フォルダ内の"Driver and INF"
フォルダに有るMCHPWinUSBDevice.infを使用してWinUSBのインストールを行います。
|
|||||||||||||||
NS73M実験基板PCアプリケーションの作成 |
|||||||||||||||
PCアプリケーションの作成は、"USB Device - WinUSB - Generic Driver Demo"
フォルダの中の"WinUSB Simple Demo - PC Application - MS VC++ 2005 Express"を参考にしました。 開発環境および言語は VC++ 2008 Express Edition を使用しました。 完成したプログラムの画面を以下に示します。 画面の下のほうにある"button1,2 checkbox1〜4は、接続テスト用に作ったもので、それををそのまま残しているものです。 画面の上のほうに固まっているCheckBox、RadioButton、NumericUpDownによってデバイスの設定状態が表示され、これらの
状態を変更することによりデバイスを制御することになります。 注意:上記VC++プログラムのコンパイルにはWindows Server 2003 R2 Platform SDKおよび
Windows Driver Kit (WDK) build 6001.18001 (以降のバージョン) が必要になります。ソースコードに記述されているコメントでも
そのことに触れていますが、参考にしたソースコードの直訳でありちゃんと訳し切れていません。 |