前回からの続きです。
「Simplicity Studio」でのプロジェクト作成
インストールした「Simplicity Studio」の動作確認を兼ねて、簡単なプログラムを作ってターゲットを動かしてみましょう。
ターゲットは「Z-Wave 800 Pro キット」という評価ボードを使用することを前提として書いています。
そのために、まずはプロジェクトの作成が必要です。
何はともあれ「Simplicity Studio」を起動させましょう。
画面左上のメニューから「File」→「New」→「Silicon Labs Project Wizard...」と順にクリックしていきましょう。
すると「New Project Wizard」というダイアログが表示されます。
ここでは、これから作成するプロジェクトのターゲット情報を設定するのですが、各項目、自動入力されていますね。
誤りがなければ、ダイアログ下部の「NEXT」ボタンをクリックしてください。
次の表示では、とりあえず「Empty C Project」を選択しましょう。
そして「NEXT」ボタンをクリック…。
次の表示では、プロジェクト名やその保存先を設定します。
しかし、デフォルトでプロジェクト名は「empty」と入力されていますので、このままでも良いです。
気になる方は、お好きな名前を。
プロジェクトの保存先においても、特別な事情がない限りはそのままで結構です。
ただし、SDKの扱いだけは「Copy contents」にラジオボタンを選択しています。
これを選択した方が、SDKのソースコードが作成するプロジェクト内にコピーされる仕組みとなるので、特に他人にプロジェクトを渡すときにトラブルが無さそうです。
ダイアログ下部の「FINISH」ボタンをクリックして「New Project Wizard」を終了させます。
これで「empty」という新しいプロジェクトが作成されたはず。
画面左上の「Project Explorer」に注目です。
このように、いくつかのディレクトリやファイルが「empty」プロジェクトのディレクトリ以下に生成されていることが分かります。
これらの中で「empty.pintool」というファイルをダブルクリックしてみてください。
すると「Simplicity Studio」のメインタブに、マイコンの絵とピンの機能を説明する表が現れました。
他のマイコンメーカーの統合開発環境と同じく、ここにピンの役割を設定してやって、ドライバーやミドルウェアをプロジェクトに追加していくのでしょう。
さて、今回は「Simplicity Studio」の味見と試運転が目的ですから、そんなに凝ったプログラムは書きません。
それでも、最低限のハードウェアの動きは見てみたいと思います。
(そうじゃなきゃツマンナイ。)
ターゲット上に用意されている、簡単に、且つ気軽に使えるハードウェアはどれかな~?
ターゲットのクイックスタートガイドをダウンロードし、一通り読んでみましょう。
まず、このターゲットには、LEDとプッシュボタンがそれぞれ2つずつ載ってるみたいですね。
実際にはこれらの場所…。
加えて、シリアル通信も使えそうです。
これは、ターゲット上でUSBに変換されて、パソコンに差すとシリアルポートとして認識されるタイプです。
USB Cタイプのジャックはターゲットの左側にあります。
これは、デバッグポートも兼ねていますので、ケーブル一本でデバッグもシリアル通信もできてしまう親切設計ですね。
これらを踏まえた上で「Simplicity Studio」上で、マイコンのピンに機能を割り振っていきましょう。
まずは、1つ目のLEDです。
上記の回路図から、これは「PB02」に接続されています。
ですので、「Simplicity Studio」のメインタブに現れた表の中から「PB02」の行を見つけて、これをダブルクリックします。
以下のような編集画面が表示されましたね。
ここに必要事項を設定していきましょう。
まずは一番上の「Function:」の欄、これはコンボボックスになっていますので、右端の「▼」マークをクリックです。
選択できる項目が表示されます。
LEDは、マイコンのGPIO(General Purpose Input/Output)という機能を使用しますので、ここでは「GPIO_mode」を選択します。
これにより「PB02」のピンはGPIOとして使用するように設定されたことになります。
次の「Custom Pin Name:」のテキストボックスは飛ばして…。
(せっかく入力しても、この後の操作でクリアされてしまうので。)
その下の「Please add a compatible component for the Function:」の欄のコンボボックスの右側の「NEW」というボタン…。
これをクリックします。
すると、以下のような画面に切り替わります。
ここでは、このピンに紐づけるドライバやミドルウェアなどのコンポーネント(これらを「SDK」と呼んでいます。)を選択します。
とはいえ、左側に表示されているように、これらの数は膨大です。
絞り込みのために画面上部の「Search keywords: component's name」の欄にキーワードを入力します。
キーワードは「LED」としましょう。
入力と同時に左側の選択肢も大分絞られたと思います。
絞られた選択肢の中から、今回は「Simple LED」というのを選びましょう。
「Simple」っていう名前に惹かれました!
左側の一覧で「Platform」→「Driver」→「LED」と展開していき、表示された「Simple LED」をクリックし、更に右側に表示された説明文の上の「Intsall」ボタンをクリックします。
以下のような確認画面が表示されます。
この「Simple LED」というコンポーネントを「led0」という名前でインスタンスを作成するけどいい?…って聞いています。
もちろん「Done」ボタンをクリックです。
無事にコンポーネントがインストールされて「led0」インスタンスが生成されると以下のような表示となります。
「Simplicity Studio」のメインタブを「empty.pintool」に切り替えましょう。
まずは「Please add a compatible component for the Function:」の欄のコンボボックスに「Simple LED」コンポーネントの「led0」インスタンスが選択されていることを確認してください。
正しければ「Custom Pin Name:」のテキストボックスに「PB02」の信号名を入力します。
上記の回路図では「UIF_LED0」という名前でしたね。
入力したら「APPLY AND CLOSE」ボタンをクリックします。
マイコンの絵とピンの機能を説明する表に戻ってきました!
「PB02」の行に、今までの設定の結果が表示されているはずですね。
これで1つ目のLEDの設定は完了です。
次に、2つ目のLEDです。
2つ目のLEDは「PD03」ピンを「UIF_LED1」という名前で「Function: GPIO_mode」と設定します。
1つ目のLEDの時の作業と同様ですが「Simple LED」コンポーネントのインスタンスを作成する時の操作が異なります。
この時点でコンポーネントは既にインストールされているため、今回は以下のように「Simple LED」コンポーネントの説明文の下部の「Add New Instances」ボタンをクリックします。
今回は「led1」という名前でインスタンスが作成されるようです。
「Done」ボタンをクリックします。
メインタブを「empty.pintool」に切り替え「Custom Pin Name:」のテキストボックスに「PD03」の信号名を入力します。
上記の回路図では「UIF_LED1」という名前でしたね。
入力したら「APPLY AND CLOSE」ボタンをクリックします。
次に、2つのプッシュボタンの設定です。
作業はLEDのときとぼぼ一緒。
1つ目は「PB01」ピンを「UIF_PB0」という名前で「Function: GPIO_mode」…
2つ目は「PB03」ピンを「UIF_PB1」という名前で「Function: GPIO_mode」…
とそれぞれ設定すれば良いのですが、異なるのはコンポーネントの部分だけです。
LEDのときは「Simple LED」というコンポーネントでしたが、今回は「Simple Button」というコンポーネントを使います。
以下の通り、コンポーネントを検索するキーワードは「button」とでも入力すれば良いでしょう。
最後にシリアル通信の設定です。
上記の回路図では、5つのピンを使用することが分かります。
面倒くさいのですが、まずは「PA08」ピンを「VCOM_TX」という名前で「Function: USART0_TX」として設定していきます。
基本、今までと同様に作業していきますが、今回のコンポーネントは「UARTDRV USART」です。
検索キーワードは「uart」が良いでしょう。
今回は「vcom」という名前でインスタンスが作成されるようです。
「Done」ボタンをクリックします。
メインタブを「empty.pintool」に切り替え「Custom Pin Name:」のテキストボックスに「PA08」の信号名「VCOM_TX」を入力し「APPLY AND CLOSE」ボタンをクリックします。
さて、残りのピンも設定しないと…と思ってピンの設定一覧表を見てみると…。
なんと!残りのピンのインスタンスも設定されているではないですか!?
どうやら、シリアル通信のような複数のピンを使用するコンポーネントを設定する場合、その中の一つでも設定された時点で残りのピンの設定も自動的に行われる仕組みのようです。
便利~。
ただし、ピンの名前「Custom Pin Name:」だけは空欄のままですので「VCOM_RX」、「VCOM_CTS」…などと、手動で入力してあげましょう。
最終的に、各ピンが以下のように設定できていればOKです。
(この表は各項目でソート可能で、以下は「Custom Pin Name」でソートした例。)
同時に左側のマイコンの絵のピンにも、設定内容が反映されていますね!
最後に「Simplicity Studio」の上部に配置されている「保存」ボタンをクリックして「empty.pintool」を保存しましょう。
面倒くさい作業だったので、設定が失われたら大変だ…。
ここまで、意外と手数が必要でしたね…。
他のマイコンメーカーのツールと比べて、ちょっと変わった操作感で戸惑うところはありましたが、慣れの問題でしょうね。
さて、これでいよいよコーディング作業に移ることができます。
長くなっちゃうので、次回…。