PSoC1duinoとは?†
PSoC1duinoとは、Cypress社のマイコンPSoCを、使いやすくまとめたボードです。マイコンブと2012年B4大西陽君が開発しました。具体的には、以下のことができます
- USB経由のプログラムの書き込み
- USB-シリアル通信でのデバッグ
- USBポートからの電源供給(ACアダプタも利用可能)
- ほとんどのI/Oピンをメスソケットに引き出し。簡単なプロトタイプ製作ならばここに直接部品やブレッドボードワイヤを差し込みOK
- Arduinoシールド互換のコネクタ配置
PSoCマイコンとは、やや語弊があるかもしれませんが、「周辺I/Oデバイスを自由に設定できるマイコン」です。PSoCの概要は、この分野の日本での第一人者(?)、桑野さんの解説が参考になるでしょう。
http://www.kumikomi.net/archives/2007/09/27ftouch.php
PSoC1duinoの詳しい情報はこちらにまとめられています。(詳しいことは以下で徐々に見ていきます)
http://ifdl.jp/akita/plan/PSoC1duino/
PSoC1duinoの製作†
表面実装タイプの細かい部品はすでにはんだ付けされている(はず)ので、残りの部品を以下を参考にはんだ付けしていきます。
主なポイント:
- LEDは3色あります。色と向きに注意(各LEDの長い方の足を、上図の下側に)
- 円筒形の電解コンデンサ(2個)は向きがあります。コンデンサの長い方の足を、基板上の+マーク側に。
- 水色の0.1uFセラミックコンデンサ4個、10kΩ抵抗5個は、向きはありません
- PSoCマイコンは基板に直接はんだ付けせず、基板にはICソケットをはんだ付けし、そこにPSoCマイコン(CY8C27443)を向きに注意して差し込みます。
- ボード上に4個あるショートピンは、とりあえず上図のところに差し込んでおきます
- ボードの周囲にあるメスソケット(計4個)は、傾かないように注意してはんだ付けします。各コネクタのまずは端の1箇所のみはんだ付けし、まっすぐになるように調整してから残りをはんだ付けするとよいでしょう。
- できあがったら、特にはんだが多すぎて隣とショートしているところがないか、また半田ごてのあてかたが足りずにはんだが十分に広がっていないところがないか、よく確認をしましょう。
PC側の準備†
PSoC Designerのインストール†
Cypress社のサイトからダウンロードします。ユーザー登録が必要と言われるので、無料なので登録しておきましょう。
http://www.cypress.com/?id=2522
※(2013/10/11追記)最新のPSoC Designer5.4はブートローダを書き換えてしまうので、1つ古いPSoD Designer 5.3をこちらから落とすとよい→http://www.cypress.com/?rid=36833
PSoC1termのインストール†
PSoC1duinoのページの下の方にあるPSoC1termをダウンロード(PSoC1term.msi)してPCにインストールしておきます。.NET Framework 3.5以上が必要と言われたら、Microsoftの配布ページからダウンロード&インストールしておきます。
USBドライバのインストール†
FTDI社のページからUSBドライバ(Windows用)をダウンロード&インストールしておきます。
PSoC1duinoの使い方†
プログラムの作成と書き込みを一通りやってみましょう。
- 準備:プログラム作成用のテンプレートをダウンロードしておく
まず以下のプログラム作成用のテンプレート27443BL_template.zipをダウンロードしておきます。
- PSoC Designerで新規プロジェクトを作成する。「既存のプロジェクトをコピー」を選び、プログラム作成用のテンプレート中の「27443BL_Template」または「27443BL_Template_with_Modules」を指定する。
- 「27443BL_Template」は、空のプロジェクト。
- 「27443BL_Template_with_Modules」はボード上のUARTやLEDのためのユーザモジュールが配置済み。通常はデバッグなどが楽なのでこちらを選べばよい。
- PSoC Designer 5.2以降では、boot.tplを更新する("Replace the boot.tpl")か聞かれますが、更新しない("keep the current boot.tpl")を選ぶこと
- 通常通りプログラムを作成(Device Editor、main.cなど)し、Buildする
- PSoC1termを起動し、PSoC1duinoのCOMポートを選択し、できあがったHEXファイルを指定して「Write」ボタンを押す。
- 転送したプログラムが実行される。(とりあえずオレンジ色LEDが点灯するはず)
- PSoC1termのTerminalOpenボタンを押すと、シリアルターミナルが開き、リセットがかかってプログラムが実行される。
- このプログラムでは、Terminal画面に「A」と表示されるはず。
- このTerminal画面で文字を入力すると、続けて1つ次の文字(「A」→「B」、「0」→「1」など)がされて、そのたびにLEDが点灯/消灯が切り替わるはず。
- プログラムの簡単な解説
- 最初のLED_Start();とUART_Start(UART_PARITY_NONE);は、初期化のおまじない。
- LED_On();で、オレンジ色LEDを点灯
- UART_PutChar('A');で、PCに対して文字「A」を送る(これがPC側のTerminal画面に表示される)
- UART_cGetChar()は、PC(のTermnal画面)に入力された1文字を受信する関数(戻り値はその受信した文字)なので、UART_PutChar(UART_cGetChar() + 1);で、受信した1文字の次の文字をPCへ送信している(これがPC側のTerminal画面に表示される)
- LED_Invert();でLEDの点灯/消灯を切り替える
- プログラムを修正したら4.の手順で書き込みをする