• 検索結果がありません。

3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要

N/A
N/A
Protected

Academic year: 2021

シェア "3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

ミニマイコン評価カード CT-298、3 軸加速度センサーモジュール MM-2860

書込み済み

マイコンプログラム通信コマンド概要

アプリケーションノート

1.概要

ミニマイコン評価カード CT-298 および DIP パッケージマイコン SF9S08C には、製品出荷時に 3 軸加速度センサー

モジュール MM-2860 のデモプログラム(HC9S08QG8-XYZ2_v1.1)が書込まれており、購入後すぐに評価するこ

とができます。

デモプログラムの評価は、PC の評価アプリケーションと通信することで実現します。

本アプリケーションノートではデモプログラムと PC 間でやりとりされる主なコマンドと通信フォーマット、PC よ

りコマンドを送り結果を表示するサンプルアプリケーションについて説明します。

デモプログラム(HC9S08QG8-XYZ2_v1.1:アセンブラプログラムの CodeWorrior プロジェクト)は、フリースケール・

セミコンダクタ社のサイトより入手できます。

http://www.freescale.co.jp/products/8bit/9s08qg.html

フリースケール・セミコンダクタ社の評価アプリケーション(RD3112MMA7260Q_26JUL05.exe)がサイトより入手

できます。入手方法、内容については「サンハヤト アプリケーションノート ミニマイコン評価カード CT-298、3 軸加

速度センサーモジュール MM-2860 デモプログラムの評価方法(MM2860_SG043226.pdf) 」を参照してください。

2. デモプログラムの通信フォーマットとコマンド

デモプログラムは、以下のシリアル通信フォーマットで通信します。

表1 デモプログラムの通信フォーマット

ボーレート 38,400 スタートビット 1 ビット データ長 8 ビット ストップビット 1 ビット パリティ なし

リセット解除時に CT-298 の LED1 が点灯します。またリセット解除時の押ボタンスイッチ SW2 の状態によって、

以下のような動作になります。

表2 SW2とデモプログラムの動作

リセット解除時の SW2 の状態 デモプログラムの動作

押されている FLASH の内容を読み取って前に実行されたアプリケーション(「Shock Detection」、「Anti-Theft」、「Battery Saver」のいずれか)を実行する 押されていない PC からキャラクタ 'R' を受信すると 'N' を送る 'N' キャラクタの送信後に 1 回、50ms 間ブザーを鳴らし LED2 を点滅する 後は受信待ちとなり、送られてくるコマンド(キャラクタ)の内容に従って動作する

デモプログラムが PC からのコマンド待ちとなった場合、PC から送られるコマンド(キャラクタ)に従って処理を

行います。コマンドの内容によっては PC へデータを送信します。

以下に主なコマンドの内容を示します。

表3 PCからの主なコマンドとデモプログラムの処理内容

コマンド デモプログラムの内容 V X、Y、Z 軸の AD 値を送る

(2)

V - 'x' AD 値X 軸 'y' AD 値Y 軸 'z' AD 値Z 軸 - 6 K - 'X' Xoff Xmax 'Y' Yoff Ymax 'Z' Zoff Zmax 9 k Xoff Xmax Yoff Ymax Zoff Zmax - 6

フリースケール・セミコンダクタ社の評価アプリケーション(RD3112MMA7260Q_26JUL05.exe)では Xoff、Yoff、

Zoff はオフセット値(0g の時の値)、Xmax、Ymax、Zmax は最大値(1g の時の値)として扱っています

3. サンプルアプリケーション

PC に接続した CT-298 + MM-2860 と通信し、PC より V、K、k の各コマンドを実行するサンプルアプリケーショ

ンを紹介します。このアプリケーションは以下の開発ツール、環境で開発、動作確認をおこなっています。

表5 サンプルアプリケーション開発環境

OS Windows XP Professional Service Pack2 Windows

アプリケーション開発環境 Microsoft Visual Basic 2005 ExpressEdition Version8.0.50727.762 ※Microsoft .NET Framework Version2.0.50727 ※

マイクロソフト社が無償提供するプログラミングツールです

サンプルアプリケーションの実行画面を以下に示します。

図1 サンプルアプリケーション実行画面

(3)

アプリケーションノート

MM-2860 デモプログラムの評価方法

サンプルアプリケーションの各機能と対応するソースコードを以下に示します。

Form1(このアプリケーションのウィンドウ)が表示されると、コンボボックスに利用可能な COM ポートが表示

されます(リスト中の①のコード)。また、「reflesh」ボタンが押されても同様の処理がおこなわれます(リスト中

の③のコード)。コンボボックスで使用する COM ポートが選択されると COM ポート番号、通信フォーマットが表

示されます(リスト中の②のコード)。

Public Class Form1

Dim portname As String = "com1" Dim baudRate As Integer = 38400

Dim parity As IO.Ports.Parity = IO.Ports.Parity.None Dim dataBits As Integer = 8

Dim stopBits As IO.Ports.StopBits = IO.Ports.StopBits.One

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBoxCom.Items.Clear()

GetPortName() End Sub

Private Sub reflesh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles reflesh.Click ComboBoxCom.Items.Clear()

GetPortName() End Sub

Private Sub GetPortName()

For Each sp As String In My.Computer.Ports.SerialPortNames ComboBoxCom.Items.Add(sp)

Next End Sub

Private Sub ComboBoxCom_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles ComboBoxCom.SelectedIndexChanged portname = ComboBoxCom.Text

port_info.Text = "COM : " & portname & vbNewLine _ & "Boudrate : " & baudRate & vbNewLine _ & "Parity : " & parity & vbNewLine _ & "Bit Length : " & dataBits & vbNewLine _ & "Stopbits : " & stopBits & vbNewLine End Sub

コンボボックスをクリアし、GetPortName() サブルーチンプロシージャを実行します 利用可能な COM ポートを取得し、コンボボックスに表示します コンボボックスで選択された COM ポート番号を変数 portname に代入します 選択した COM ポートと、通信フォーマットを表示します 使用する COM ポートと通信フォーマット

リスト1 Form1.vb (1)

コンボボックス

図2 COMポートの選択

(4)

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Command As String = "R"

Dim N As Integer Try

Using com As IO.Ports.SerialPort = _

My.Computer.Ports.OpenSerialPort(portname, baudRate, parity, dataBits, stopBits) com.ReadTimeout = 500 com.Write(Command) N = com.ReadChar If (Convert.ToChar(N) = "N") Then Rcommand.Text = "N を受信しました " Else Rcommand.Text = "N を受信しませんでした " End If End Using Catch ex As Exception

MessageBox.Show(ex.Message, " エラー ", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub

R’を送信します COM ポートからの読み出しのタイムアウトを 500ms に設定します 例外が起きた場合(COM ポートから通信できなかった場合)はエラーメッセージを出します COM ポート接続を開き、フォーマットを設定します 1 キャラクタ受信して変数 N に格納します 制御しているリソース(この場合は COM ポート接続)を破棄します ‘N’を受信した場合のメッセージ

リスト2 Form1.vb (2)

図3 Rコマンド実行画面

(5)

アプリケーションノート

MM-2860 デモプログラムの評価方法

「V コマンド」ボタンがクリックされると、コンボボックスで選択された COM ポートが接続され、データを受信

します。確実にデータを受信するため、受信データがそれぞれ x、y、z であることを判断してから 1 バイトデータ

を変数に格納しています。

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim Command As String = "V"

Dim buf As Byte() = {&H0} Dim bufx As Byte() = {&H0} Dim bufy As Byte() = {&H0} Dim bufz As Byte() = {&H0} Dim offset As Integer = 0 Dim count As Integer = 1 Try

Using com As IO.Ports.SerialPort = _

My.Computer.Ports.OpenSerialPort(portname, baudRate, parity, dataBits, stopBits)

com.ReadTimeout = 500 com.Write(Command) Do

com.Read(buf, offset, count) Loop While Convert.ToChar(buf(0)) <> "x" com.Read(bufx, offset, count)

Do

com.Read(buf, offset, count) Loop While Convert.ToChar(buf(0)) <> "y" com.Read(bufy, offset, count)

Do

com.Read(buf, offset, count) Loop While Convert.ToChar(buf(0)) <> "z" com.Read(bufz, offset, count)

x.Text = bufx(0) y.Text = bufy(0) z.Text = bufz(0) End Using

Catch ex As Exception

MessageBox.Show(ex.Message, " エラー ", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub

‘V’を送信します COM ポートからの読み出しのタイムアウトを 500ms に設定します 例外が起きた場合(COM ポートから通信できなかった場合)はエラーメッセージを出します COM ポート接続を開き、フォーマットを設定します ‘x’を受信するまで受信し続けます ‘x’を受信したら次のデータを格納します ‘y’を受信するまで受信し続けます ‘y’を受信したら次のデータを格納します ‘z’を受信するまで受信し続けます ‘z’を受信したら次のデータを格納します 受信した XYZ 軸のデータを表示します

リスト3 Form1.vb (3)

図4 Vコマンド実行画面

(6)

Dim Command As String = "k"

Dim sendbyte As Byte() = {&H0, &H0, &H0, &H0, &H0, &H0} Try sendbyte(0) = Convert.ToByte(xoff_box.Text) sendbyte(1) = Convert.ToByte(xmax_box.Text) sendbyte(2) = Convert.ToByte(yoff_box.Text) sendbyte(3) = Convert.ToByte(ymax_box.Text) sendbyte(4) = Convert.ToByte(zoff_box.Text) sendbyte(5) = Convert.ToByte(zmax_box.Text)

Using com As IO.Ports.SerialPort = _

My.Computer.Ports.OpenSerialPort(portname, baudRate, parity, dataBits, stopBits) com.Write(Command)

com.Write(sendbyte, 0, 6) End Using

Catch ex As Exception

MessageBox.Show(ex.Message, " エラー ", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub

‘k’を送信します COM ポート接続を開き、フォーマットを設定します テキストボックスの値を格納した変数の内容をすべて送信します テキストボックスの値を変数に格納します 例外が起きた場合(テキストボックスに正しくない形式の数値が入力された、 COM ポートから通信できない等の場合)はエラーメッセージを出します

リスト4 Form1.vb (4)

図5 kコマンド実行画面

(7)

アプリケーションノート

MM-2860 デモプログラムの評価方法

「K コマンド」は「V コマンド」とほぼ同じ内容です。格納するデータが 2 バイトになります。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Command As String = "K"

Dim buf As Byte() = {&H0} Dim bufxo As Byte() = {&H0} Dim bufyo As Byte() = {&H0} Dim bufzo As Byte() = {&H0} Dim bufxm As Byte() = {&H0} Dim bufym As Byte() = {&H0} Dim bufzm As Byte() = {&H0} Dim offset As Integer = 0 Dim count As Integer = 1 Try

Using com As IO.Ports.SerialPort = _

My.Computer.Ports.OpenSerialPort(portname, baudRate, parity, dataBits, stopBits) com.ReadTimeout = 500

com.Write(Command) Do

com.Read(buf, offset, count)

Loop While Convert.ToChar(buf(0)) <> "X" com.Read(bufxo, offset, count)

com.Read(bufxm, offset, count) Do

com.Read(buf, offset, count)

Loop While Convert.ToChar(buf(0)) <> "Y" com.Read(bufyo, offset, count)

com.Read(bufym, offset, count) Do

com.Read(buf, offset, count)

Loop While Convert.ToChar(buf(0)) <> "Z" com.Read(bufzo, offset, count)

com.Read(bufzm, offset, count) xoff_label.Text = bufxo(0) xmax_label.Text = bufxm(0) yoff_label.Text = bufyo(0) ymax_label.Text = bufym(0) zoff_label.Text = bufzo(0) zmax_label.Text = bufzm(0) End Using Catch ex As Exception

MessageBox.Show(ex.Message, " エラー ", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub End Class

‘K’を送信します COM ポートからの読み出しのタイムアウトを 500ms に設定します 例外が起きた場合(COM ポートから通信できなかった場合)はエラーメッセージを出します COM ポート接続を開き、フォーマットを設定します ‘X’を受信するまで受信し続けます ‘X’を受信したら次の 2 バイトのデータを格納します ‘Y’を受信するまで受信し続けます ‘Y’を受信したら次の 2 バイトのデータを格納します ‘Z’を受信するまで受信し続けます ‘Z’を受信したら次の 2 バイトのデータを格納します 受信した XYZ 軸のデータを表示します

リスト5 Form1.vb (5)

(8)

本資料について 本資料は、電子工作や電子回路、パーソナルコンピュータ の操作について一般的な知識をお持ちの方を対象にしてい ます。 本資料を元に操作するには、フリースケール・セミコンダ クタ社製 HC08 シリーズマイコンについての知識や開発環 境などが必要です。 Microsoft®、Windows® は米国 Microsoft 社の米国および その他の国における登録商標です。 その他、記載されている製品名は各社の商標または登録商 標です。 本資料のご利用にあたって 本資料に掲載している内容は、お客様が用途に応じた適切な 製品をご購入頂くことを目的としています。その使用によ り当社及び第三者の知的財産権その他の権利に対する保証、 又は実施権の許諾を意味するものではありません。また、 権利の侵害に関して当社は責任を負いません。 本資料に記載した情報を流用する場合は、お客様のシステ ム全体で充分評価し適用可能かご判断願います。当社では 適用可能判断についての責任は負いません。

本資料に記載してある内容は、一般的な電子機器(学習教 材、事務機器、計測機器、パーソナル機器、コンピュータ 機器など)に使用されることを目的としています。高い品 質や信頼性が要求され、故障や誤作動が直接人命を脅かし たり人体に危害を及ぼす恐れのある、医療、軍事、航空宇宙、 原子力制御、運輸、移動体、各種安全装置などの機器への 使用は意図も保証もしておりません。 本資料の一部、又は全部を当社の承諾なしで、いかなる形 でも転載又は複製されることは堅くお断りします。 全ての情報は本資料発行時点のものであり、当社は予告な しに本資料に記載した内容を変更することがあります。 本資料の内容は慎重に制作しておりますが、万一記述誤り によってお客様に損害が生じても当社はその責任を負いま せん。 本資料に関してのお問合せ、その他お気付きの点がござい ましたら、当社ホームページのお問い合わせページ(https:// www.sunhayato.co.jp/inquiry/)よりお問合せください。 本資料に関する最新の情報はサンハヤト株式会社ホーム ページ(http://www.sunhayato.co.jp/)に掲載しております。

参照

関連したドキュメント

In addition, under the above assumptions, we show, as in the uniform norm, that a function in L 1 (K, ν) has a strongly unique best approximant if and only if the best

The explicit treatment of the metaplectic representa- tion requires various methods from analysis and geometry, in addition to the algebraic methods; and it is our aim in a series

We have avoided most of the references to the theory of semisimple Lie groups and representation theory, and instead given direct constructions of the key objects, such as for

Bipartite maps (also called hypermaps, or dessins d’enfants ) : vertices are either black or white, and monochromatic edges

In this operation, the master device sends a command byte and a byte count followed by the stated number of data bytes to the slave device as follows:.. The master device asserts

The higher byte contents of this register can be stored to nonvolatile memory using the STORE_USER_ALL command.

Thank you, Sabers Nation, for your participation in the coronavirus SA- BERStrong Pushup Challenge. Sabers students, teachers, graduates, and parents showed their mental and

Should Buyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and its officers, employees,