USB接続 PSoCプログラマ 搭載 PSoCマイコン 開発用統合評 …1...

22
1 PSD-300EX4ユーザーズガイド 型番:PSD-300EX4 REV.1.00 USB接続PSoCプログラマ搭載 PSoCマイコン開発用統合評価ボード Version,4.0 取扱説明書 お使いになる前にこの説明書をよくお読みの上正しくお使いください。 (C)2009 マイクロテクニカ ボード本体 製品の概要 PSoCマイコン開発用統合評価ボード(型番:PSD-300EX4、以降型番 で記載)は、オンボードにUSB接続対応のPSoCプログラマーを搭載し、 各種周辺回路をワンボードに凝縮して搭載した、PSoCマイコン専用の 開発ボードです。プログラム開発・実験・試作・学習用とあらゆる用途に 使用できます。 ボード上には48ピン・28ピン・20ピン・8ピンのDIPタイプのPSoCマイ コンが装着できるソケットが搭載されている他、今後ピン数の多い多 種多様なPSoCマイコンに対応できるようMCUカードコネクターを搭 載しています。 現在流通しているほぼすべてのPSoCマイコンを標準で装着させ、様々 な実験をこのボードだけで行うことができます。 USBでパソコンと接続することで、USB給電により電源が供給されま す。特に大きな電力を使用するような場合には、ACアダプターを接続 することも可能です。 付属のCD-ROMにはPSoCマイコン用の統合開発環境PSoC Designe rを収録している他、本書には簡単なチュートリアルも掲載していますの で、PSoCが初めての方でもすぐにはじめることができます。 パッケージの内容 ■同梱物 ・PSD-300EX4ボード本体 ・CY8C29466-24PXI (ボードに装着済み) ・16文字×2行液晶ディスプレイモジュール (ボードに装着済み) ・USBケーブル ・CD-ROM ・マニュアル(本書) 対応デバイス (2008年4月現在) CY8C21123 、 CY8C21223 、 CY8C21234 、 CY8C21323 CY8C21334 、 CY8C21434 、 CY8C21534 、 CY8C21634 CY8C22113 、 CY8C22213 、 CY8C24123 、 CY8C24223 CY8C24423 、 CY8C24794 、 CY8C25122 、 CY8C26233 CY8C26443 、 CY8C26643 、 CY8C27143 、 CY8C27243 CY8C29466 、 CY8C27543 、 CY8C27643 、 CY8C29566 CY8C29666 、 CY8C29866 ※対応デバイスは今後ソフトウエアのアップグレードに伴い変更さ れることがあります。 ドライバのインストール及びパソコンとの接続 ■デバイスドライバーのインストール PSD-300EX4をパソコンと接続する前に、デバイスドライバーをパソ コンにインストールします。 下記の手順で、ドライバーをインストールします。 1 付属のCD-ROMをパソコンのCD-ROMドライブに挿入してエクス プローラー等で内容を表示します。 2 "USB Programmer Software"のフォルダを開きます。 3 "Driver"フォルダを開きます。 4 OSごとにフォルダがあります。ご使用のパソコンのOSにあったフォ ルダを開きます。 5 開くと実行ファイル、"USB18PRG~.exe"がありますのでダブルクリ ックして実行します。 6 実行するとダイアログが表示されますので、そのまま"次へ"をクリッ クして続行します。

Transcript of USB接続 PSoCプログラマ 搭載 PSoCマイコン 開発用統合評 …1...

  • 1

    PSD-300EX4ユーザーズガイド

    型番:PSD-300EX4 REV.1.00

    USB接続PSoCプログラマ搭載

    PSoCマイコン開発用統合評価ボード

    Version,4.0

    取扱説明書

    お使いになる前にこの説明書をよくお読みの上正しくお使いください。

    (C)2009 マイクロテクニカ

    ボード本体

    製品の概要

    PSoCマイコン開発用統合評価ボード(型番:PSD-300EX4、以降型番

    で記載)は、オンボードにUSB接続対応のPSoCプログラマーを搭載し、

    各種周辺回路をワンボードに凝縮して搭載した、PSoCマイコン専用の

    開発ボードです。プログラム開発・実験・試作・学習用とあらゆる用途に

    使用できます。

    ボード上には48ピン・28ピン・20ピン・8ピンのDIPタイプのPSoCマイ

    コンが装着できるソケットが搭載されている他、今後ピン数の多い多

    種多様なPSoCマイコンに対応できるようMCUカードコネクターを搭

    載しています。

    現在流通しているほぼすべてのPSoCマイコンを標準で装着させ、様々

    な実験をこのボードだけで行うことができます。

    USBでパソコンと接続することで、USB給電により電源が供給されま

    す。特に大きな電力を使用するような場合には、ACアダプターを接続

    することも可能です。

    付属のCD-ROMにはPSoCマイコン用の統合開発環境PSoC Designe

    rを収録している他、本書には簡単なチュートリアルも掲載していますの

    で、PSoCが初めての方でもすぐにはじめることができます。

    パッケージの内容

    ■同梱物

    ・PSD-300EX4ボード本体

    ・CY8C29466-24PXI (ボードに装着済み)

    ・16文字×2行液晶ディスプレイモジュール (ボードに装着済み)

    ・USBケーブル

    ・CD-ROM

    ・マニュアル(本書)

    対応デバイス (2008年4月現在)

    CY8C21123 、 CY8C21223 、 CY8C21234 、 CY8C21323

    CY8C21334 、 CY8C21434 、 CY8C21534 、 CY8C21634

    CY8C22113 、 CY8C22213 、 CY8C24123 、 CY8C24223

    CY8C24423 、 CY8C24794 、 CY8C25122 、 CY8C26233

    CY8C26443 、 CY8C26643 、 CY8C27143 、 CY8C27243

    CY8C29466 、 CY8C27543 、 CY8C27643 、 CY8C29566

    CY8C29666 、 CY8C29866

    ※対応デバイスは今後ソフトウエアのアップグレードに伴い変更さ

    れることがあります。

    ドライバのインストール及びパソコンとの接続

    ■デバイスドライバーのインストール

    PSD-300EX4をパソコンと接続する前に、デバイスドライバーをパソ

    コンにインストールします。

    下記の手順で、ドライバーをインストールします。

    1 付属のCD-ROMをパソコンのCD-ROMドライブに挿入してエクス

    プローラー等で内容を表示します。

    2 "USB Programmer Software"のフォルダを開きます。

    3 "Driver"フォルダを開きます。

    4 OSごとにフォルダがあります。ご使用のパソコンのOSにあったフォ

    ルダを開きます。

    5 開くと実行ファイル、"USB18PRG~.exe"がありますのでダブルクリ

    ックして実行します。

    6 実行するとダイアログが表示されますので、そのまま"次へ"をクリッ

    クして続行します。

  • 2

    7 ドライバーのインストールが開始されます。

    WindowsVista環境で下記のような警告ダイアログが表示された場

    合には、"このドライバソフトウエアをインストールします"をクリック

    して続行してください。

    ※ウイルス対策ソフトウエアなどがインストールされている場合、イ

    ンストール時にウイルス対策ソフトウエアが警告を表示する場合が

    あります。その場合には、インストールを許可するように設定してく

    ださい。

    8 インストール作業が完了すると、下図のような画面になりますので、

    "完了"ボタンを押してインストールを完了します。

    この時、"状態"のボックスに「使用できます」と表示されていること

    をご確認下さい。エラーが表示された場合には、ご使用OSの種類

    と、実行したデバイスドライバーの種類が一致しているかご確認下

    さい。

    ■パソコンと接続する

    パソコンのUSBポートにPSD-300EX4を接続します。

    接続に際しては必ずパソコン本体のUSBポートに接続してください。

    USBハブを介しての接続の場合には電力容量などの問題により正しく

    動作しないことがあります。

    1 PSD-300EX4の電源スイッチをONにします。

    また、PSD-300EX4の電源をUSBのバスパワーより給電しますの

    で、J1の"USB"側にソケットを装着してください。

    2 USBケーブルで、パソコンのUSBポートと、PSD-300EX4を接続

    します。

    ※パソコンのUSBポートがUSB2.0対応の場合には高速書き込み

    が行えます。USB1.1ポートの場合には通常速度での書き込みとな

    ります。

    →接続するとPOWERの緑LEDが点灯します。

    →新しいハードウエアの検出ウィザードが自動的に起動します。

    以下OSによって操作方法が異なります。

    ■Windows2000, XPをご利用の場合------------------

    3 下図のようなダイアログが表示されたら"いいえ、今回は接続しませ

    ん"にチェックを入れて"次へ"ボタンをクリックします。

  • 3

    4 下記のようなダイアログが表示されますので、"ソフトウエアを自動

    的にインストールする(推奨)"にチェックをいれて、"次へ"ボタンを

    クリックします。

    5 「ソフトウエアをインストールしています。お待ち下さい」というメッ

    セージが表示されます。しばらくするとインストールが完了して下図

    のような表示となりますので"OK"ボタンをクリックして終了します。

    ■WindowsVistaをご利用の場合---------------------

    3 WindowsVistaの場合には、PSD-300EX4を接続すると自動的に

    デバイスドライバーのセットアップが開始されます。

    あらかじめデバイスドライバーは先の手順にてインストールされて

    いますので、WindowsVistaは自動的にデバイスドライバーを検出し

    てインストールを完了します。

    接続後しばらく待ちますと、下図のようなポップアップがタスクバ

    ーに表示されます。

    上図のホップアップが表示されればインストールは完了です。

    ※デバイスドライバーのインストールが完了して正しくパソコンに認識

    されると、PSD-300EX4の"USB LINK"の黄色LEDが点灯します。

    点灯しない場合には、ドライバーのインストールに失敗していることが

    考えられますので、再度インストールを行ってください。

    ソフトウエアのインストール

    ■PSoCプログラマ用のソフトウエア

    PSoCへプログラムを書き込む際に使用するプログラマソフトウエアの

    インストールを行います。

    1 CD-ROM内の"USB Programmer Softeare"フォルダを開きます。

    "setup.exe"をダブルクリックして実行します。画面の指示に従って

    インストールしてください。

    2 "インストールは完了しました"ダイアログが表示されたら、「完了」を

    クリックして終了します。

    ■PSoC Designerのインストール

    PSoC用の開発環境、PSoC Designerをインストールします。このソフト

    ウエアはPSoCの開発元、サイプレス社から提供されています。

    CD-ROMには工場出荷時点での最新のバージョンが収録されていま

    すが、新しいバージョンがリリースされている場合がありますので、サイ

    プレス社のホームページにてご確認下さい。

    1 CD-ROM内の"PSoC_Designer"フォルダを開きます。

    "PSoC Designer5.00.SP2.exe"をダブルクリックして実行します。

    "Next"をクリックして続行します。

    2 インストールディレクトリを指定するダイアログが表示されます。

    特に変更する必要がない場合には、そのまま"Next"ボタンを押しま

    す。変更する場合には"Browse..."ボタンを押して変更します。

    3 "Start Copying Files"のダイアログが表示されたら、そのまま"Nex

    t"ボタンを押して続行します。

    →インストールが始まります。(しばらく時間がかかります。)

    4 インストールが完了すると、下図のようなデバイスドライバーのイン

    ストールウィザードが表示されますが、ここではインストールしませ

    んので、"キャンセル"ボタンを押してスキップします。

    ※インストールできなかった旨の表示が出ますが、そのまま続行し

    てください。

    5 "InstallShield Wizard Complete"というダイアログが表示されたら

    PSoC Designerのインストールは完了です。"Finish"ボタンを押して

    完了します。

    続いて、HI-TECH社からリリースされているPSoC用のCコンパイ

    ラーをインストールします。このCコンパイラーは、Lite版であれば無

    償で使用することができます。

  • 4

    6 下図のようなダイアログが表示されたら、"Next"をクリックして続

    行します。

    7 ここでは無償のLiteモードでインストールしますので、一番下の"Ope

    rate in Lite mode"にチェックを入れて、"Next"ボタンを押します。

    8 ソフトウエアの使用許諾画面が表示されます。

    内容に同意される場合には、"I accept the term of the license

    agreement"にチェックを入れて、"Next"をクリックします。

    9 次のダイアログでは、インストールするファイルの設定と、インストー

    ルディレクトリの設定ができます。特に変更しなくてよい場合には、

    そのまま"Next"ボタンを押して続行します。

    10 続いて言語の選択ダイアログが表示されますが日本語はありませ

    んので、"English"を選択して状態で"Next"ボタンをクリックします。

    →インストールが開始されます。

    11 インストールが完了したら、"Finish"ボタンを押して完了します。

    これですべてのソフトウエアのインストールは完了です。

    電源の投入方法

    PSD-300EX4は、USB接続にてUSBバスから電源の供給を受けるこ

    とができます。この場合にはPSD-300EX4に別途電源を供給する必

    要はありません。

    しかし、PSD-300EX4側で多くの電流を消費するような回路やプログ

    ラムをした場合にはUSBバスパワー給電では電力が不足する場合が

    あります。この場合には別途外部から電源を供給する必要があります。

    外部電源には出力電圧がDC9V~12V程度の2.1φ径のACアダプタを

    ご使用ください。(別途当方でも対応ACアダプタを販売しております。)

    給電方法の設定は、PSD-300EX4ボード上、ACアダプタコネクタの

    下側にあるジャンパーソケットで行います。

    ■USBバスパワーから給電する場合

    PSD-300EX4ボード上の"Power Select"ジャンパーピン(J1)の

    「USB-Vcc」間をショートします。

    ■ACアダプタから給電する場合

    PSD-300EX4ボード上の"Power Select"ジャンパーピン(J1)の

    「Vcc-EXT」間をショートします。

    ソフトウエアの起動方法

    先ほどインストールしたソフトウエアの起動方法は下記の通りです。

    ■PSoCプログラマーの起動

    "スタート"ボタン→"プログラム"→"Microtechnica"

    →"PSD-300EX4 ライティングソフトウエア"

    ■PSoC Designerの起動

    "スタート"ボタン→"プログラム"→"Cypress"

    →"PSoC Designer5"

  • 5

    PSD-300EX4の各部の説明

    ※PSD-300EX4の回路図は、CD-ROMにPDF形式で収録されています。

    ①電源回路部、電源スイッチ、電源方式選択ジャンパー

    電源回路部です。電源の給電方法は、J1のジャンパーソケットで設

    定します。USBからのバスパワー給電か、ACアダプターからの給電

    のどらちかに設定します。

    ACアダプタをご使用の場合には、DC9V出力、径2.1φで500mA以上

    が取り出せるものをご使用下さい。(センター極性は問いません)

    ※ボード全体の消費電流が300mA以上になる場合にはACアダプタ

    の使用をお奨めします。

    ②USB2.0対応、PSoCマイコンライター部

    USB2.0の高速接続に対応したPSoCマイコンライターの回路部で

    す。PSD-300EX4のソケットに装着したデバイスに対してプログラ

    ムの書き込みを行います。

    ③RS232C部

    RS232Cのレベル変換ICを搭載したRS232Cポートです。

    SW1のディップスイッチの設定でTXピン、RXピンの物理的な接続状

    態を設定できます。

    RXはP0[0]又はP0[6]に、TXはP0[1]又はP0[7]に接続できます。

    RS232Cを使用する場合には、必ず事前にSW1にてRXとTXの接続

    を行ってください。スイッチはONと記載された側にセットすると接続

    されます。

  • 6

    ④RS485部

    RS485の信号変換ICを搭載したRS485回路部です。RS485の差動

    信号線は、CN14の端子台からアクセスできます。

    RS485のRX線、TX線、Rt線はそれぞれディップスイッチSW1の設定

    で物理的にPSoCマイコンと接続するかどうかを設定できます。

    ⑤リアルタイムクロック部

    I2Cインターフェイスを採用したリアルタイムクロックIC(RTC)、PCF

    8583Pが搭載されたRTC回路部です。RTC動作に必要な32.768K

    Hzの水晶発振子が実装されています。また、本体電源切断時でも時

    計計測のバックアップが可能なCR2032を装着できるバッテリーホ

    ルダー付きです。

    PCF8583Pは内部に240×8ビットのRAMを搭載しており、日時を

    取得することができます。

    PCF8583PのI2C信号線はそれぞれ10KΩの抵抗でプルアップされ

    ています。また割込信号用のRTC-INT線も同様にプルアップされて

    います。

    SDA,SCL,RTC-INTの各ピンをPSoCデバイスに接続するかどうか

    の設定は、ディップスイッチSW3にて設定できます。

    ⑥CAN-SPI部

    CAN通信(Controller Area Network)が行えるポートを搭載したCAN

    通信部です。PSoCデバイスとはSPIにて通信を行います。

    CANコントローラーのMCP2510と、CANトランシーバーのMCP255

    1が実装されています。

    CANの信号線CAN-HとCAN-Lは端子台からアクセスすることがで

    きます。各信号線の物理的な配線の接続/切断は、ディップスイッチ

    SW2によって行うことができます。

    ※MCP2510及びMCS2551の詳細な仕様についてはデータシート

    をご覧下さい。

    ⑦DS18S20温度センサーIC用コネクタ

    ワンワイヤーインターフェイスを採用したワンチップ温度センサICを

    装着できるソケットです。-55℃~+125℃までの計測ができます。

    シンプルな1線式シリアル通信を採用しており、ワンワイヤーインター

    フェイスと呼ばれています。

    データ線のDQピンの物理的な接続状態はディップスイッチSW3で設

    定します。P0[2]又はP2[7]と接続できます。

  • 7

    ⑧16文字2行キャラクタLCD

    16文字×2行のキャラクタLCDが取り付けられています。

    駆動は4ビットモードを採用しています。(LCDのD4~D7がPSoCデ

    バイスと接続されています。)

    LCDのコントラスト調整は⑨のボリュームで行うことができます。

    LCDのバックライトの電源はSW3にあります。

    内部の結線は下図をご覧下さい。

    ⑩ADコンバーター評価用ボリューム

    ADコンバーターの評価ができるように3系統の可変抵抗器を搭載し

    ています。0V~5Vの間で電圧を可変してPSoCデバイスのピンに印

    加できます。どのピンにアナログ電圧を印加するかについては、各ボ

    リュームの上側にあるJ3~J5のジャンパーにて設定します。

    ジャンパー設定したピンに対して0V~5Vの電圧を印加できます。

    ※アナログ電圧を印加する場合には、VccとGNDが短絡したりするこ

    とがないよう、配線状態を十分確認の上、作業を行って下さい。短絡

    してしまうと、PSD-300EX4本体の故障だけでなくパソコンも破損

    させてしまうことがあります。

    ⑪⑫⑬PSoCデバイス装着ソケット部

    PSoCデバイスを装着できるICソケット部です。48ピンのICソケット

    には当方でオプション品として販売しているCY8C27643搭載のMC

    Uカードが装着できます。

    MCU CARDコネクターには、将来ピン数の多いPSoCマイコンがリリ

    ースされた場合、MCUカードとして提供されるマイコン搭載のボード

    を差し込むことで色々なデバイスに対応することができます。

    これらのICソケットに装着できるデバイスは必ず1つだけです。複数

    のPSoCマイコンを装着すると書き込みができず故障の原因となり

    ますので、必ず1つだけ装着するようにします。

    マイコンの脱着時は必ずPSD-300EX4本体の電源スイッチをOFF

    にし、電源が切断された状態で行って下さい。

    ICソケットからの脱着はマイコンの足を痛めることがありますので、

    IC抜きの工具を利用するなどして慎重に作業してください。

    ⑮外部アクセス端子群

    PSoCマイコンの各ピンに直接アクセスできる端子群です。

    各短詩は10ピンのヘッダーピン形状となっており、VccとGNDも取り

    出すことができるようになっています。

    PORT0~PORT7までの各ピンに対してアクセスすることができま

    す。外部の回路と接続したり、テスターやオシロスコープなどの計測

    器を接続してピンの状態を確認したりするのに便利です。

    ※PSoCマイコンは各ピンのプルアップ/プルダウンを内部のレジス

    タ設定で行うことができます。

    ⑯64個のピン監視用LED群

    PORT0~PORT7までの各ピンに接続された計64個のLED群です。

    該当するピンがHレベルになると点灯します。ピンの論理状態をLED

    によって視認できます。

    LEDを物理的に有効にするか、無効にするかの設定がディップスイッ

    チSW4にてポート単位で行えます。SW4の該当するスイッチをOFFに

    設定するとLEDのカソード側がGNDと切断されますので電流が流れ

    なくなります。

    SW4がONの時、PSoCマイコンの各ピンに電圧が現れると(Hレベル

    になると)電流がLEDに対して流れます。LEDは1KΩの電流制限抵

    抗によって流れる電流が制限されていますが、LEDに電流が流れる

    と電圧降下によって電圧が下がります。

    H-Lのデジタルロジックで0V-5Vの振れ幅が欲しい時は、LEDへ電

    流を流さないようにSW4にて該当のポートのスイッチをOFFに設定

    してください。

    ⑰ハードウエアリセットスイッチ

    PSoCデバイスのXresピンと接続されており、スイッチを押すとハー

    ドウエアリセットがかかります。

    (8ピンデバイスにはXresピンかありません)

    ハードウエアリセットをしたいときに押します。

  • 8

    ⑱64個のタクトスイッチ群

    PORT0~PORT7の各ピンに接続されたタクトスイッチです。スイッ

    チを押した時に該当のピンをHレベルにするか、Lレベルにするかを

    すぐ左隣にあるJ2のジャンパーソケットで設定します。

    Vcc側にソケットをセットすると、ボタンを押したとき該当ピンがHレ

    ベルになります(Vcc電圧が印加されます)。GND側にセットすると、

    ボタンを押したときLレベルとなります。

    PSoCマイコンはレジスタの設定で各ポートのI/Oピンに対し、内部

    プルアップ/プルダウンを設定できます。この設定と組み合わせるこ

    とでスイッチの入力を判定できます。

    ※内部プルアップを有効にすると、ボタンを押さないとき該当のピ

    ンはHとなります。J2ジャンパーをGND側に設定しておくことでスイ

    ッチを押したときにLとなります。

    ⑲○21 128×64ドットGLCD取り付け用コネクタとコントラスト調整VR

    当方でオプション品として販売している128×64ドットのGLCDを装

    着できるコネクタです。GLCDのコントラストは、○21のボリュームで調

    整できます。

    GNDのバックライトLEDのON/OFFの設定がディップスイッチSW3

    で行うことができます。端子配列は下記の通りです。

    ⑳○22タッチパネル用コネクタと制御回路

    PSD-300EX4には4線式抵抗膜方式のタッチパネルスクリーンを

    取り付けてアナログ電圧値を読み取ることでタッチパネルに触れて

    いる位置を検出するアプリケーションが作れるよう、専用端子と制御

    回路が搭載されています。

    ⑳の端子は、X+,X-,Y+,Y-のタッチパネルスクリーンからの端子を

    接続できます。制御回路は下記のような回路構成となっています。

    ※詳細な回路図についてはCD-ROMに収録の回路図をご覧下さ

    い。

    ディップスイッチSW3でタッチパネル制御回路の各ピンとPSoCマイ

    コンのピンを物理的に接続するかどうかの設定が可能です。

    ○23 MMC/SDカードコネクタ

    MMC又はSDカードを装着できるカードコネクタです。電圧を3.3Vに

    降圧するレギュレター回路を搭載していますので、そのままカードを

    装着してSPIモードで使用することができます。

    カードの各信号線のうち、MMC-CSピンはディップスイッチSW2に、

    その他のSPI信号線3線はディップスイッチSW2でPSoCマイコンと

    接続するかどうかの設定が可能です。

  • 9

    PSoCプログラマーの使い方

    PSoCプログラマーは、PSoCマイコンにHEXファイルを書き込むための

    ソフトウエアです。

    ここでは基本的なHEXファイルを書き込む際の手順を紹介します。

    ほぼすべての操作は、ソフトウエアのボタンによって行えます。

    1 最初に"Device"プルダウンより、書き込むデバイスの種類を選択し

    ます。

    2 続いて、"Load HEX"ボタンを押して、書き込むHEXファイルを読み

    込みます。

    【注意!】

    HEXファイルの置いてあるディレクトリ名が非常に長い場合や日本

    語が使用されたディレクトリにある場合には、HEXファイルを正しく

    読み込めない場合があります。

    HEXファイルの保存ディレクトリはなるべく、短い名前にし、ディレク

    トリ名及びファイル名には日本語などの2バイト文字を使用しない

    ようにしてください。

    ※同じ名前のHEXファイルを再度読み込む時には、"Reload HEX"

    ボタンを押します。デバッグ等でビルドをし直して再度書き込みを

    行いたい時は、このボタンを使用すると便利です。

    3 PSD-300EX4とパソコンが接続されていることを確認し、USB LI

    NKの黄色LEDが点灯していることを確認します。

    "Write"ボタンを押すと、書き込みが開始されます。

    進捗状況はプログレスバーに表示されます。

    ※書き込み実行後は自動的にベリファイチェックが行われます。ベ

    リファイチェックでエラーが発見されるとその内容がメッセージボ

    ックスで表示されます。

    ベリファイチェックを書き込み後自動的に実行したくない場合には

    "Options"ボタンをクリックして、"Verify Chip Writes"のチェックを

    外します。

    その他のボタンの機能は下記の通りです。

    ・Readボタン

    PSoCデバイスからプログラムを読み込みます。コードプロテクション

    がかかっていない場合には、HEXファイルとして読み込みます。

    読み込んだHEXファイルの内容は、"CODE View"ボタンで見られま

    す。またそのファイルを保存したい場合には、"Save HEX"ボタンを押

    すと保存できます。

    ・Verifyボタン

    書き込まれたHEXファイルの内容が、正しいかをチェックするベリファ

    イ機能を実行するボタンです。

    通常は、"Write"ボタンでプログラムを書き込むと自動的にベリファイ

    が実行されファイルの正当性が確認されます。

    ・Eraseボタン

    PSoCマイコンに書き込まれているプログラム内容を消去します。

    ・Reload HEXボタン

    一度"Load HEX"で読み込んだHEXファイルを再度読み込む場合にク

    リックします。プログラムをデバッグをした後、再度HEXファイルを読

    み込む際に便利です。

    主な仕様

    電源電圧: USBバスパワー給電時 DC5V

    ACアダプタ給電時 DC9V~12V

    給電方法: USBバスパワー又はACアダプタ

    USB規格: Ver、2.0対応

    対応OS: Windows2000/XP/2008/Vista

    ※64ビット版にも対応

    対応デバイス: サイプレス製PSoCデバイス

    生産国: セルビア

    サポート情報

    当方では、PSD-300EX4のサポートを行っております。以下のいずれ

    かの方法でご質問をお寄せください。

    ■FAX番号 03-3700-3548

    ■電子メール [email protected]

    なお、他社製品に関することや自作回路に関するご質問にはお答え致

    しかねますのであらかじめご了承ください。

    ソフトウエアはアップグレードされることがあります。アップグレードさ

    れると、対応デバイスが増えたり、バグが修正されたりします。

    PSoCデバイスへのプログラム書き込み用のソフトウエアは、当方より

    アップグレードの告知を致します。当方のダウンロードページよりダウ

    ンロードできるようになりますので、下記サイトを確認ください。

    http://www.microtechnica.net/manual/

    PSoC用の統合開発環境、PSoC Designerはサイプレス社製のソフトウ

    エアです。バージョンアップ及びサービスパックのリリースについては、

    サイプレス社のホームページより告知されますので、下記ページを定期

    的にご確認ください。

    http://www.cypress.com/portal/server.pt

    次のページよりチュートリアルです。

  • 10

    PSoCマイコンの概要

    PSoC(Programable System on a Chip:読みはピーソック)は、サイプ

    レスセミコンダクター社が開発した、M8Cコアを搭載した新しい概念の

    ワンチップマイコンです。

    PICマイコンなどと同様、プログラムを格納するプログラムメモリ(RO

    M)や、作業用メモリのRAM、そして周辺回路とを結ぶI/Oポートなどを

    搭載しています。

    :CY8C27xxxのブロックダイアグラム

    上図は、PSoCマイコンの中でも一般的なCY8C27xxxシリーズの内部

    ブロック図です。PICマイコンとは大きく異なっていることが分かりま

    す。

    中心部には「デジタルシステム」と「アナログシステム」と書かれた枠が

    あり、さらにその中には「デジタルPSoCブロックアレイ」「アナログPSo

    Cブロックアレイ」という表示があることが分かります。

    実はPSoCマイコンのブロックアレイと呼ばれるブロックは、ユーザー

    がプログラミング時に自由にその機能を指定して、任意に組み合わせ

    て利用できる「機能ブロック」なのです。DBはDigital Basic、 DCはDigi

    tal Communication、一方アナログシステム内のCTはContinuosu Tim

    e、SCはSwitched Capacitorの略です。これらのブロックが時にはPWM

    機能を持ったモジュールとして、また時にはA/Dコンバーターの機能を

    持ったモジュールとして動作することになります。更には、ブロック図に

    もある通り、アナログ処理も可能ですので、HPFやLPFなどの各種フィ

    ルター、アナログ演算機能なども可能なのです。

    ■PSoCのブロックアレイ(デジタルPSoCブロック)

    これらのブロックアレイとは一体どんなものなのでしょうか。

    先の図を見て頂くと分かるとおりデジタル側には8個、アナログ側には

    12個のブロックアレイが用意されています。

    まずはデジタルPSoCブロックアレイから見てみましょう。

    デジタルブロックアレイ内にある8つのブロックは、"DB"と書かれたデ

    ジタルベーシックブロックと、"DC"と書かれたデジタルコミュニケーシ

    ョンブロックとに分けられます。

    DBは、PWMやカウンタ・タイマーといった計5種類の機能をもつブロッ

    クに、DCはシリアル通信(UART)やI2C通信など主に通信系を機能を計

    7種類もつブロックになります。これらブロックの機能は、開発者が開

    発環境の中で、GUI(Graphical User Interface)にて簡単に設定できる

    ようになっています。

    PICマイコンなどでは、例えば「PWMの機能が2つ欲しいけど搭載してい

    ない・・・」という場合や「UART通信はしない代わりにもう1つPWMの機

    能が欲しい・・・」などということがありました。開発者は、開発するシス

    テムの規模や機能に応じて使用するデバイスを選んでいましたが、それ

    でも機能の過不足はさけられませんでした。

    しかしPSoCマイコンでは、制約はあるにしても開発者がブロックに対

    して自由に機能を設定できますし、入出力のI/Oポートへの接続もGUI

    上で色々と設定できることができ、プログラミングの自由度がかなり向

    上します。また信号を出力するバスには論理演算ができるユニットが装

    備されているため、信号の論理を反転したり各種論理演算をしたりす

    ることも可能です。

    ■PSoCのブロックアレイ(アナログPSoCブロック)

    アナログPSoCブロックアレイ内には、CTとSCのブロックが合わせて

    12個あります。

    CTはOPアンプやコンパレーターなどの機能を持つブロックです。

    SCは微積分回路やアナログ演算などの機能を持つブロックです。

    各ブロックの内部は複雑で色々な処理をこなせるように作られていま

    す。PSoCマイコンのデータシートを見るとブロックの内部を見ることが

    できます。

    しかし実際のプログラミングでは開発者はGUI上で、機能の設定などが

    できますので内部構造を知らなくても利用できます。簡単に言えば、ソ

    フトウエアが開発時にひな形を用意してくれますので、それを利用する

    ことになります。

    その他、一般的によく利用される回路についてはユーザーモジュールと

    呼ばれるひな形がすでに用意されていますので、開発者はこういったユ

    ーザーモジュールを使ってプログラムを作ることもできます。

    ■I/Oピンの呼び方

    I/OピンはPORT毎に分かれており、PORT0やPORT1などと数字で区

    切られています。各ポートにはビット0~7までがあり8ビット構成になっ

    ています。

    サイプレスからリリースされているデータシートには、ポートとビットの

    組み合わせで"P2[3]"などと記載されています。これはPORT2のビット

    3というとになります。しかしながらこれから使用するPSoC用の開発

    環境PSoC DesignerではP2[3]は、 Port_2_3 などというように記

    載されています。

    表記の方法が違うことがありますので、相互で読み替えてください。

    では実際にPSD-300EX4を用いてプログラムを作ってみましょう。

  • 11

    PSD-300EX4のチュートリアル

    簡単なプログラムを作成し、PSoCの開発方法及びPSD-300EX4の

    使い方を学習しましょう。

    本チュートリアルでは、PSD-300EX4に標準で付属しているCY8C29

    466を使用します。PSoCマイコンのデータシートはすべてPSoC Desig

    nerから閲覧できます。データシートを併せて読むと一層理解が早まり

    ます。

    開発言語にはアセンブラ言語と高級言語であるC言語があります。

    最近ではPSoCマイコン用のC言語はLite版であれば無償で使用が可

    能となりました。PSoC Designerをインストールするときに一緒ににイ

    ンストールしていますので、C言語も使用できます。

    下記のチュートリアルで開発全体の流れを学習しましょう。

    ■チュートリアル1 ~LEDを点滅させるプログラム~

    P1[5]を0.5秒間隔でON-OFFさせて、LEDを点滅させるプログラムを

    作ります。

    チュートリアルを始める前に、PSD-300EX4がUSB経由でパソコンと

    接続され、必要なソフトウエア類がすべてインストールされている状態

    であることを確認してください。

    今回はCY8C29466をデバイスとして使用し開発言語はCを使います。

    1 PSoC Designerを起動します。

    Windowsのスタートボタン→プログラム→Cypress→PSoC Design

    erの順でクリックします。

    PSoC Designerはプログラムを作成するだけでなくパラメーター

    の設定やライブラリ関数の自動生成なども行います。PSoCの開発

    はこのソフトを使って行うことになります。

    2 新規にプロジェクトを作ります。

    メニューバーの"File"→"New Project"をクリックします。

    ダイアログが表示されます。

    3 New Projectダイアログでは、"Chip-level Project"か"System-le

    vel Project"かを選択するように尋ねられます。"Chip-level Proje

    ct"とは、開発言語を用いた従来の開発手法でPSoCブロックを配

    置した後に、それらのブロックに対する動作を言語で記述する方法

    です。

    "System-level Project"は、言語を用いずすべての動作をGUIで設

    定してプログラムを作る新しい開発ツールです。

    ここでは、"Chip-level Project"を選択しますので、"Chip-level Pr

    oject"のアイコンをクリックして選択し、プロジェクト名と保存する

    ディレクトリを指定します。

    ここでは例として"Name;"には、 LEDBLINK と入力します。

    ディレクトリは日本語や全角文字などの2バイト文字含まない場所

    を指定してください。

    入力したらOKボタンを押します。

    4 続いてSelect Project Typeダイアログが表示されます。

    ここでデバイスの種類と開発言語を選択します。デバイスはCY8C2

    9466-24PXIです。Deviceの表示欄にCY8C29466-24PXIと表

    示されていない場合には右隣の"View Catalog..."ボタンをクリック

    します。デバイスの一覧が表示されますので、その中からCY8C294

    66-24PXIを選択してハイライトし、"Select"ボタンを押して選択し

    ます。

    言語の種類は、"C"を選択してOKボタンを押します。

    5 じはらく待つとCY8C29466のデバイスに合わせた内部ブロック画

    面が表示されます。この画面には内部のPSoCブロックや、I/Oポー

    ト、またそれらを物理的に結びつけるバスなどが表示されています。

    PSoCマイコンの大きな特徴はこれらのPSoCブロックに対して開

    発者がグラフィカルな画面で機能を割り当て、I/Oポートと結びつ

    けることでその機能を実現できることにあります。

    グローバルバス

    PSoCブロック

    I/Oポート

    これら内部の配線のことをインターコネクト(Interconnect)と呼び

    ます。

    開発者が使用できる機能モジュールは、画面右下にある"User Mod

    ules"にまとめられています。

    今回はLEDを点滅させるプログラムを作りますので、時間的なパル

    スの発生が必要となります。パルスの発生にはPWMモジュールを使

    用すると簡単です。

    User Modulesのツリー一覧の中にある"PWMs"ダブルクリックしま

    す。ツリーが展開して4つのブロックが表示されます。

  • 12

    6 今回は16ビットのPWMを使用しますので、"PWM16"を使用します。

    "PWM16"を右クリックします。メニューが表示されますので、そこか

    ら"Place"をクリックします。

    "Place"をクリックすると、その機能がPSoCブロックに配置されま

    す。配置されると配置されたPSoCブロックが青くグラデーションに

    ハイライトされます。

    PSoCブロックの表示されている画面は全体に大きすぎますので、

    適宜ズーム、ズームアウト、移動を行い見やすい状態にしましょう。

    キーボードの"Alt"キーを押しながらマウスを移動させると移動がで

    きます。"Ctrl"キーを押しながらマウスを左クリックするとズームし

    ます。"Shift"キーと"Ctrl"キーを押しながら左クリックするとズーム

    アウトします。

    マウスカーソルが押したキーによって変わりますので、それを確認

    ながら作業するとよいでしょう。

    7 次にデバイス全体の設定を行います。デバイス全体の設定とは、各

    モジュール毎の設定ではなくデバイスの動作そのものに関わる設

    定です。PSoCではグローバルリソースと呼んでいます。

    画面左上にある"Global Resouces"を設定します。今回は、次のよう

    に設定してみましょう。

    PowerSetting 5.0V/24MHz

    CPU_Clock SysClk/8

    32K_Select Internal

    PLL_Mode Disabled

    VC1=SysClk/N 15

    VC3 Source VC1

    VC3 Divider 160

    SysClk Source Internal

    Watchdog Enabled Disabled

    ※上記に記載のない設定項目は、デフォルトのままでかまいません。

    この設定にはどういう意味があるのでしょうか。

    これは動作クロックを調整することで、PWM16モジュールの動作

    基準となるクロックを作っているのです。仕組みを見てみましょう。

    このデバイスのシステムクロックは24MHzです。これを最初に15

    分周することでVC1を1.6MHzとしています。しかしこれではまだ速

    すぎますので、VC3のクロックソースをVC1(1.6MHz)にして、さら

    にここで160カウントして分周し周波数を低くします。これで10KHz

    の基準周波数を作っています。

    VC1とVC3をそれぞれ使うことで分周を行い周波数の調整をして

    いるということです。この設定をGrobal Resourcesの設定で行いま

    した。今回はVC2は使用しませんでしたが、VC2を使用してさらに分

    周を行うことができます。

    8 次にPWM16モジュールのパラメーターを設定しましょう。

    PSoCブロックに配置されたUser Moduleはには名前が割り当てら

    れます。PSoCブロックを見て名前を確認しましょう。

    名前はPWM16_1と分かります。

    このPWM16_1ブロックをクリックして選択すると、緑色の枠囲み

    が表示され選択されたことを示します。

    画面左側の"Properties"にPWM16_1と表示されたことを確認しま

    す。ここでPWM16_1の設定を行います。次のように設定してくださ

    い。

    Clock VC3

    Enable High

    CompareOut Row_0_Output_1

    TerminalCountOut None

    Period 9999

    Pulse Width 4999

    CompareType Less Than or Equal

    InterruptType Terminal Count

    ClockSync Sync to SysClk

    InvertEnable Normal

    設定内容を確認してみましょう。

    まず、PWM16_1のクロック源はVC3です。VC3はグローバルリソ

    ースの設定によって10KHzのクロックを提供しています。

    このVC3をPeriod=周期10000カウントします。設定する際、1少な

    い値を入れていることに注意してください。10KHzを10000カウン

    トするため、PWM16_1は1Hzのパルスを出力することになります。

    Pulse Widthはデューティー比の設定です。今回はHighとLowの時

    間を同一にします。つまりデューティー比を50%に設定します。100

    00が最大値ですので半分の値を設定します。

    次に大切な項目がCompareOutです。CompareOutはPWMの出力を

    どのバスに接続するかを設定するものです。ここでは、RO0[1](Ro

    wOutputバス)に接続しました。なぜここに接続したのかは次の設

    定で分かります。

    System Clock24MHz

    15分周

    VC1(1.6MHz)

    160カウント

    VC3(10KHz)

    24MHz÷15÷160 = 10KHz

    10000カウント

    PWM16_11Hz

    VC3(10KHz)

  • 13

    9 次にRO0[1]をグローバルアウトプットバスに接続します。

    画面右側に合計16ビットのバスが見えます。バスは8ビットずつ

    GOEとGOOに分かれています。GOEはGlobal Output Evenです。

    GOEはGlobal Output Oddの略称です。Evenは偶数、Oddは奇数で

    す。この偶数・奇数とは最終的なI/Oポートのポート番号が奇数か

    偶数かということをさしています。

    GOOは奇数I/Oポートに、GOEは偶数I/Oポートに接続できます。

    ※左側にあるGIOとGIEも同様で、こちら側はInput、すなわち入力

    を接続する時に使用するバスです。

    右側には最終的なI/Oピンがあります。このI/OピンはPSoCデバイ

    スのI/Oピンに対応しています。最終的なI/Oとなります。

    今回は、P1[5]に接続されたLEDを点滅させるプログラムを作りま

    すので、奇数です。よって、RO0[1]をGOO.5に接続しましょう。

    RO0[1]バスの右側の四角い部分をクリックします。

    すると"Digital Interconnect Row_0_Output_1"ダイアログが表

    示されます。

    10 このダイアログでは、どこのグローバルアウトプットバスに接続する

    かを指定できます。ここでは一番下の△印をクリックして"GlobalOu

    tOdd5"をクリックして選択します。

    選択すると色△印が青色で塗りつぶされ設定済みであることが示

    されます。"Close"ボタンを押して閉じます。

    GOO.5と配線が接続されていることを図から分かります。

    11 続いてI/Oピンと接続します。今回はP1[5]に出力することにします

    ので、右側のI/Oピンから、"PORT_1_5"をクリックします。

    メニューが表示されますので"Select"の項目から"GlobalOutOdd5"

    を選択します。

    選択したらOKボタンを押します。

    12 配線が物理的に接続されたことがグラフィカルに確認できます。

    これで設定と配線が完了しました。

    次は、インターコネクトで行った各種設定や配線を元にしてプログ

    ラムを作ります。

    13 画面右側の"Workspace Explorer"のツリー一覧にある"LEDBLINK

    "のフォルダを展開します。

    展開すると、プログラムのソースファイルがあります。今回はC言語

    で開発しますので、ツリーの中にある"main.c"をダブルクリックして

    開きます。

    14 プログラムウインドウが開きます。

    ここにプログラムを記述します。プログラムを記述するといってもP

    WMの詳細はすでにPSoCブロックの部分で設定済みですので、ここ

    ではPWMのユーザーモジュールが有効になる条件を記述するだけ

    です。main関数の部分に次のように入力します。

    PWM16_1_Start();

    ※( )のすぐ後ろはセミコロンです。

    記述はたったこれだけです。

  • 14

    15 ではプログラムをビルドしてみましょう。

    ビルドとは、ソースファイルからPSoCマイコンに書き込めるHEXフ

    ァイルを作る作業のことをいいます。

    メニューバーの"Build"→"Generate/Build 'LEDBLINK' Project"

    をクリックします。キーボードのF6キーを押しても実行できます。

    ビルドには少し時間がかかります。画面下に"Output"というウイン

    ドウが表示されるとビルドは完了です。プロジェクトを作成したフォ

    ルダと同じフォルダ内にHEXファイルが作られています。このファイ

    ルをPSoCプログラマーで書き込み動作を確認してみましょう。

    17 書き込み前にPSD-300EX4本体のディップスイッチの設定を行い

    ましょう。今回はLEDしか使いませんので、各周辺回路とは接続しま

    せん。ディップスイッチSW1~3まではすべてOFF側に設定してくだ

    さい。SW4はPORT1のスイッチををONに設定します。

    18 PSoCプログラマーを起動します。ソフトウエアは、Winodwsのスタ

    ートボタン→プログラム→Microtechnica→"PSD-300EX4 ライ

    ティングソフトウエア"の順でクリックして起動させます。

    最初にデバイスの種類を設定します。Deviceのプルダウンから、

    "CY8C29466"を選択します。

    続いてHEXファイルを読み込みますので、"Load HEX"ボタンをクリ

    ックします。ファイルを開くダイアログが表示されますので、プロジェ

    クトを作成したディレクトリを開きます。その中に"LEDBLINK.HEX"

    というファイルがありますので、これを選択して"開く"ボタンを押し

    ます。ファイルが読み込まれました。

    19 書き込みは"Write"ボタンをクリックします。

    "Progress:"と書かれたプログレスバーが進捗状況を示します。

    書き込みが完了するとプログラムはすぐに実機の上で動作を開始

    します。書き込みが終わったらPSD-300EX4のボードをご覧下さ

    い。P1[5]のLEDが点滅していることが確認できるはずです。

    以上でチュートリアルは終了です。

    PSoCの基本的な開発の仕方を紹介しました。

    デューティー比の設定を変更したり点滅する間隔を変えたり、出力する

    ピンを変更するなどして実験してみてください。

    ■チュートリアル2 ~ボタン入力を使用して制御する~

    チュートリアル1では、ほとんどの部分をPSoCブロックに割り当てたP

    WMモジュールが実行しており、コードの記述はPWMの動作をスタート

    させるだけのものでした。

    チュートリアル2では、少しC言語プログラムを記述してボタン入力を判

    定して処理を分岐する方法を紹介します。

    PSoCマイコンは内部に各I/Oピンをプルアップしたりプルダウンした

    りできる便利な機能があり、その設定もメニューで選択するだけという

    手軽さです。PSD-300EX4は全I/Oピンに対してタクトスイッチが接

    続されていますので、入力実験が簡単に行えます。

    チュートリアル2では、プログラム中に変数を2つ用意して、P0[0]とP0

    [1]のスイッチを押した時に、その変数に代入された値を、押したスイッ

    チに応じてPORT1接続されたLEDに表示するプログラムを作ってみま

    しょう。

    1 PSoC Designerを起動します。新規にプロジェクトを作成しましょ

    う。使用するプロジェクトのタイプは、"Chip-level Project"にしま

    す。 使用するデバイスはCY8C29466を、言語はC言語を使用しま

    す。それぞれ設定してください。

    2 準備が完了すると、インターコネクトのウインドウが表示されます。

    今回はPORT0はすべて内部プルダウンに設定します。これによりボ

    タンを押していない時は、Lレベルとなり、プログラムからの入力判

    定では該当ピンは0となります。

    プルダウンの設定は、画面左下のPinoutウインドウで行います。ここ

    には使用するPSoCマイコンのすべてのピンが表示されており、ダブ

    ルクリックして展開することで詳細なピンの状態を設定できます。

    最初に、P0[0]を展開します。その中に"Driver"という項目がありま

    す。右側をクリックするとメニューが表示されますので、その中から

    "Pull Down"を選択します。

    3 同様にして、P0[0]~P0[7]まですべて"Drive"の設定を"Pull Down"

    に設定してください。

    すべて"Pull Down"になっていることを確認します。

  • 15

    4 さらに、LEDの駆動を行うPORT1については全ピンの"Drive"設定

    を"Strong"に設定します。Strongは出力の設定で、該当するピンの

    ドライバーが出力に設定されます。

    ※Strong slowという設定もありますがこちらは矩形はの立ち上が

    り、立ち下がりがなだらかになり、立ち上がり時間、立ち下がり時間

    が延長されます。

    P1[0]~P1[7]まで全ピンの"Drive"設定をStrongに設定してくださ

    い。

    すべてStrongになっていることを確認します。

    5 今回はPSoCブロックは使用しませんので、画面右上のWorkspace

    Explorerのツリー一覧の中から一番したのフォルダを展開してソー

    スファイル、main.cをダブルクリックして開きます。

    6 コードウインドウが表示されます。コードはmain関数の中に記述し

    ていきます。プログラムは次のように記述します。

    大文字・小文字は間違えないように注意して入力します。

    7 記述できたら、ビルドしてHEXファイルを作りましょう。

    メニューバーの"Build"→"Generate/Build xxxx Project"をクリッ

    クします。(xxxxにはプロジェクト名が入ります)

    エラーが表示されなければプロジェクトを作成したディレクトリと

    同じディレクトリにHEXファイルが作られています。

    void main ( ){

    unsigned short a = 0xAA, b = 0xF0;

    while (1) {switch (PRT0DR ){

    case 0x00: PRT1DR = 0; break;case 0x01: PRT1DR = a; break;case 0x02: PRT1DR = b; break;

    }

    }

    }

    8 プログラムを書き込む前にボードの設定をしましょう。

    今回は、LEDはPORT1だけしか使用しませんので、ディップスイッチ

    SW4はPORT1だけをONにしてあとはすべてOFF側にセットします。

    タクトスイッチは押した時にHレベルになる必要がありますので、ジ

    ャンパーJ2はVcc側の方にソケットをセットします。

    これで準備ができました。

    9 生成されたHEXファイルをPSoCプログラマーで書き込んでみまし

    ょう。書き込み後、P0[0]のタクトスイッチを押すとPORT1のLEDが

    交互に10101010と点灯します。

    同様にしてP0[1]のスイッチを押すとP1[4]~P1[7]の上位4ビット

    が点灯することが確認できます。

    プログラムの仕組みを見てみましょう。

    変数は符号無しshort型としてaとbを宣言して初期値として変数aには

    0xAAを、bにき0xF0を代入しています。0xAAは2進数では10101010

    です。0xF0は11110000です。

    while(1)は永久ループです。本来( )内は条件式を記述しますが1になっ

    ているので永久にループします。

    switch文はANSI規格のCで使用されているものと全く同じ構文です。

    PSoCではポートについては PRTxDR と記述します。xの部分にはポー

    トの番号が入ります。ポートには値を直接代入したり、逆にポートの状

    態を直接代入演算子で変数に代入できます。

    ここではPRT0DRを条件式としてPORT0の状態を判断し、何も押され

    ていない時、すなわち0x00の時はPORT1の値は0に、P0[1]が押され

    てHになった時は、変数aの値をPORT1に対して出力しています。P0[2]

    についても同様です。

    このようにPSoCマイコンではグラフィカルな設定画面と、プログラミン

    グ言語を組み合わせて多彩なプログラムを作ることができます。

  • 16

    ■チュートリアル3 ~ADコンバーターで取得した値をLCDに表示する~

    PSoCマイコンにはADコンバーターが搭載されています。今回は12ビ

    ットのADコンバーターを使って、ピンに印加された電圧を計測して、そ

    の電圧値をmV単位で16進数の値でLCDに表示させるプログラムを作

    ってみましょう。

    ADコンバーターの使い方やLCDに文字を表示する例などが学べます。

    なおADコンバーターのアナログ電圧入力はP0[1]ピンとします。

    1 PSoC Designerを起動します。新規にプロジェクトを作成しましょ

    う。使用するプロジェクトのタイプは、"Chip-level Project"にしま

    す。 使用するデバイスはCY8C29466を、言語はC言語を使用しま

    す。それぞれ設定してください。

    2 準備が完了すると、インターコネクトのウインドウが表示されます。

    最初に必要なUser Modulesを配置していきましょう。今回使用する

    モジュールは次の3つです。

    ・ADCINC12 ・・・12ビットのADコンバーターです

    ・PGA ・・・非反転内部増幅器(アンプ)です

    ・LCD ・・・LCD制御用です

    最初にADCINC12を配置します。User Modulesのツリーから"ADC

    s"を展開します。その中から"ADCINC12"を右クリックして"Place"

    をクリックして配置します。

    続いて、PGAも配置しましょう。"Amplifires"ツリーを展開して、その

    下にある"PGA"を右クリックして"Place"を選択して配置します。

    さらに、LCDも配置します。ツリーの"Misc Digital"を展開して、その

    中にある"LCD"を右クリックして、"Place"を選択して配置します。

    これで必要な3つのモジュールの配置が終わりました。

    3 続いて、MPU本体のGlobal Resourcesを設定しましょう。

    次のように設定してください。(記述のない項目はそのままです)

    VC1=SysClk/N 16

    VC2=VC1/N 8

    Analog Power SC On/Ref Low

    Ref Mux (Vdd/2)+/-(Vdd/2)

    特にRef Muxの設定を間違えるとアナログ電圧の測定範囲が0V~

    +5Vでなくなってしまい計測値がおかしくなってしまいますので設

    定は確実に行って下さい。

    VC2のクロックはADCINC12モジュールのクロック源とします。

    VC2=24MHz÷16÷8=187.5KHzとなります。

    4 ADコンバーターのモジュールADCINC12は、アナログ電圧の入力

    として選択できる項目が限られています。特にI/Oピンから直接入

    力指定できるのはP2[1]だけです。今回PORT2はLEDが占有しま

    すので使用できません。そこでP0[1]をアナログ電圧の入力ピンと

    したいのですが、それには少し工夫が必要です。

    今回は、PGAというアンプモジュールを使用して入力ピンを自在に

    変更していきます。PGAモジュールは単に入力ピンを変更するため

    だけに使用するモジュールなのでゲイン(増幅率)は全く必要ないた

    めゲインは1とします。

    それでは最初にADCINC12モジュールの詳細から設定しましょう。

    Workspace Explorerに表示されている"ADCINC12_1"をクリック

    します。

    5 プロパティが変更できるようになりますので、画面左側のPropertie

    s画面で次のように入力します。

    TMR Clock VC2

    CNT Clock VC2

    Input ACB00

    ClockPhase Norm

    この設定をしたところで、PSoCブロックの画面を見てみましょう。

    下側を見るとアナログPSoCブロックがあり、PGA_1とADCINC12

    _1が配置されています。

    上記の設定で、ADCINC12_1のアナログ入力は、PGA_1モジュー

    ルのACB00と接続されたことがわかります。

    接続を示す配線

    6 続いてPGA_1モジュールの設定をしましょう。Workspace Explorer

    からPGA_1をクリックします。プロパティを次のように設定します。

    Gain 1.000

    Input AnalogColumn_InputMUX_0

    Reference VSS

    AnalogBus Disabled

    この設定で増幅率が1倍(増幅しない)で基準がVssの設定ができ

    ました。このPGA_1モジュールに入力されるInputがアナログ電圧

    の入力となるのですが、ここではマルチプレクサを選択しました。マ

    ルチプレクサにてさらにどのI/Oピンと接続するかを決めることに

    なります。

  • 17

    7 PGA_1モジュールのすぐ上にあるマルチプレクサをクリックしま

    す。

    メニューが表示されますので、ここで Port_0_1 を選択します。

    これでP0[1]が入力に設定されました。

    この設定を行うとピンの属性も自動的にアナログ入力ピンとして

    設定されます。試しにPinoutの一覧からP0[1]を見てみて下さい。

    SelectはAnalogInputに設定されており、Driveはハイインピーダン

    スのアナログとなっていることが分かります。

    8 最後にLCDの設定を行います。Workspace ExplorerからLCD_1を

    選択します。プロパティの一覧で、"LCDPort"の設定を"Port_2"に

    設定してください。

    ※PSD-300EX4のLCDはPORT2に接続されているためです。

    9 プログラムを記述していきましょう。

    Workspace Explorerからmain.cをダブルクリックして開きます。

    コードウインドウが開きますので、次のようにプログラムを記述して

    ください。

    10 プログラムが記述できたらビルドしてください。

    エラーがなければ、プロジェクトを作成したディレクトリと同じディ

    レクトリにHEXファイルが生成されています。

    11 書き込む前にPSD-300EX4本体の設定を行いましょう。

    今回はLEDは使用しませんのでSW1~SW4はすべてOFF側に設定

    します。

    ADコンバーター用のボリュームを使用します。使用するのは3つあ

    るボリュームのうち左側のP1ボリュームです。P1ボリュームのすぐ

    上にあるJ3ジャンパーをP0[1]と書かれたソケットに装着します。

    P0[1]のソケットに

    装着します。

    12 ボードの設定が完了したらPSoCプログラマーでプログラムを書き

    込んで下さい。LCDに文字が表示されることを確認しましょう。

    1行目は AD From P0[1] という文字列が表示されており、2行目

    に4桁の数値が表示されています。

    表示は16進数で電圧値をミリV単位で表示しています。

    P1のボリュームを回転させると値が変わることが確認できます。

    16進数ですので、関数電卓等で10進数に変換すると分かりやすい

    値となります。

    void main ( ){

    int adc_data;

    M8C_EnableGInt;ADCINC12_1_Start (3 );PGA_1_Start (3 );LCD_1_Start ( );LCD_1_Position (0,0 );LCD_1_PrCString ("AD From P0 [1 ]" );

    ADCINC12_1_GetSamples (0 );

    while (1 ) {while (ADCINC12_1_fIsDataAvailable ( ) == 0 );ADCINC12_1_ClearFlag ( );adc_data = ADCINC12_1_iGetData( );

    adc_data += 2048;adc_data *= 1.22;

    LCD_1_Position (1,0 );LCD_1_PrHexInt (adc_data );

    }

    }

  • 18

    プログラムの仕組みを考えてみましょう。

    このプログラムではADコンバーターで取得した値をLCDに表示すると

    いうものですが、ADコンバーター用のUser Moduleが開発者が望む入

    力ピンの設定にできないことから、PGAモジュールというアンプを使い

    ました。PGAの入力ピンはマルチプレクサに接続されているため、ある

    程度自由に入力ピンを選択できるという利点があります。

    ADコンバーターは変換処理から変換完了を示すために割り込み処理

    を使用しています。そのためプログラム中では割込を有効にするため

    M8C_EnableGInt を記述して割込を有効に設定しました。

    各種モジュールをスタートさせるわけですが、ADCINC12_1_Start(3)

    の引数3は、フルパワーモードということを示しています。詳しくはデー

    タシートに記載があります。

    LCDの使い方は簡単です。プロパティでポートを指定することで使用す

    ることができます。PSD-300EX4は、標準的な推奨されている結線と

    なっているため特に変更が必要ありませんでしたが、特殊な配線をして

    しまうと、配線の定義が面倒です。

    LCDで文字列を表示する場合には、先に LCD_1_Position(0,0) の

    ように表示する座標位置を指定しておきます。

    文字列としてそのまま出力する場合には

    LCD_1_PrCString("STRING") のようにして文字列をダブルクォーテー

    ションで囲みます。

    ADCINC12_1_GetSamples(0) は、恒久的にADコンバーターの取

    得を行いますという意味の記述です。

    ADCINC12_1_fIsDataAvailable() は、データの取得が完了して読み

    取りが可能となった時に0以外の値を返します。よって0の間は待機し

    ますので、while文を使って値が取得できるのを待機しています。

    受信したデータはint型変数のadc_dataにそのまま代入演算子を使っ

    て ADCINC12_1_iGetData() で代入しています。戻り値は16ビット

    の値となっていることに注意が必要です。よってそのままの場合戻り値

    は、0xF800~0x7FFFという値の範囲となってしまい、そのまま理解す

    るのが難しいので、ここでは0x0000~0xFFFFという範囲で値が出力

    されるように adc_data += 2048 で2048を足しています。

    変数の値をLCDに文字列として出力する場合にはPSoC用Cコンパイラ

    ーには2つの関数があります。1つは8ビットとして2桁で16進数で出力

    する LCD_PrHexbyte( ) と16ビットで4桁で出力する

    LCD_PrHexInt( )です。今回は16ビットで出力する関数を使用しまし

    た。残念ながら10進数で表示する関数は標準では用意されていないた

    め、16進数表記となります。

    ■チュートリアル4 ~RS232C通信をしてみよう~

    PSD-300EX4にはRS232C通信実験が簡単にできるようにMAX232

    のレベル変換ICを搭載したRS232Cポートが用意されています。パソ

    コンのRS232Cポートと全結線ストケートケーブルで接続することで、

    パソコンとRS232C通信ができます。

    本チュートリアルでは簡単なRS232Cプログラムを作ってその動作を

    確認してみましょう。動作内容は、パソコン側から'A'という文字列(0x4

    1)を送信すると、P1[0]のLEDが点灯すると共に、"ON"という文字列を

    パソコン側に返します。

    パソコン側から'B'(0x42)という文字を送信するとP1[0]のLEDは消灯

    し、"OFF"という文字列を返すプログラムを作ってみましょう。

    1 PSoC Designerを起動します。新規にプロジェクトを作成しましょ

    う。使用するプロジェクトのタイプは、"Chip-level Project"にしま

    す。 使用するデバイスはCY8C29466を、言語はC言語を使用しま

    す。それぞれ設定してください。

    2 準備が完了すると、インターコネクトのウインドウが表示されます。

    最初に必要なUser Modulesを配置していきましょう。今回使用する

    モジュールはDigital Commの下にあるUARTモジュールです。

    選択したらPlaceで配置してください。

    3 続いてGlobal Resorcesの設定をします。ここで重要なのはUARTの

    通信速度に合わせてUARTモジュールに与えるクロックの値を適切

    に計算して設定しなければならないということです。

    今回は送信速度を9600bpsとして計算してみましょう。PSoCデバ

    イスの周波数は24MHzでCPU Clockは8で割れるので、次のような

    計算式となります。

    9600 = 24M÷8÷X とするとX=312.5となります。端数は切り

    捨てて312として、これを適当にVC1とVC3で分周して9600を作

    ればよいので、適当にVC1の分周する値を割り切れる値として12

    分周とし、のこり26分周をVC3で行うことにしましょう。

    24M÷8÷12÷26≒9615.38... となり約9600に近似できま

    す。次のように設定しましょう。

    CPU Clock SysClk/8

    VC1=SysClk/N 12

    VC3 Source VC1

    VC3 Divider 26

    ※その他の値はデフォルトのままでかまいません。

    4 続いてUARTモジュールのプロパティを設定しましょう。

    次のように設定します。

    Clock VC3

    RX Input Row_0_Input_0

    TX Output Row_0_Output_1

    TX Interrupt Mode TX Complete

    ClockSync Sync to SysClk

  • 19

    この設定では、UARTモジュールのクロックは先ほど計算で算出し

    たVC3を選択しています。

    RXすなわち受信したデータの入力はPSD-300EX4ボードの使用

    からP0[0]としたいので、Row_0_Input_0と設定しました。

    同様にしてTXすなわち送信データはP0[1]としたいのでRow_0_O

    utput_1と設定しました。

    5 PSoCブロックをバスと接続して、最終的なI/Oピンと接続しましょ

    う。最初にTX側から設定します。TXは送信データ、すなわちPSoC側

    から見ると出力です。よって、出力用のGOO又はGOEのグローバル

    アウトプットバスに接続することになります。今回はTXピンをP0[1]

    とします。奇数ですのでGOEと接続します。

    RO0[1]の右端の四角い部分をクリックします。

    .

    6 クリックするとDigital Interconnectのダイアログが表示されますの

    で、一番上の△をクリックして、GrobalOutputEven_1を選択して接

    続します。

    選択したらCloseボタンを押して閉じます。GOE_1のラインと接続

    されていることが確認出来ます。

    7 最終的なピンとなるI/Oピンを指定します。"Port_0_1"をクリック

    します。

    メニューが表示されますので、その中から"GrobalOutEven_1"をク

    リックして選択します。選択したらOKボタンを押すと接続されてい

    ることが確認できます。

    8 同様にしてRX側も接続します。RXは受信データ、すなわちPSoC側

    から見れば入力です。よって、グローバルインプットバスと接続する

    ことになります。すでに、UARTモジュールのRX側の入力ピンは、

    RI0[0]と接続されており、その線はGIE0と接続されていると思いま

    す。

    すでに接続されています。

    9 I/Oピンの"Port_0_0"をクリックします。

    Selectメニューから"GlobalInEven_0"を選択します。

    選択したらOKボタンを押します。配線が接続されたことが確認出

    来ます。

    10 ピンの属性を設定します。UARTで使用するP0[0]とP0[1]は自動

    的に設定が完了しています。

    ただし、LEDの点灯をさせるP1[0]については手動で設定しなけれ

    ばなりません。P1[0]のDriverをStrongに設定してください。

  • 20

    11 続いてプログラムを記述します。main.cを開いて下さい。

    下記のように記述します。

    記述を終えたらビルドしてください。

    11 書き込む前にPSD-300EX4の設定をしておきましょう。

    今回はLEDはP1[0]を使用しますので、ディップスイッチSW4はPO

    RT1だけON側に設定しておきます。後はOFF側とします。

    RS232C通信を使用しますので、ディップスイッチSW1の設定を行

    います。RXはP0[0]、TXはP0[1]をそれぞれONにセットします。

    間違えると正しく動作しませんのでよく確認してください。

    12 プログラムを書き込んで下さい。

    実際の動作を確認してみましょう。シリアルターミナルからデータを

    送信したり受信したりします。シリアルターミナルは、愛用のものが

    あればそれをご利用下さい。もしなと場合には、当方でフリーソフト

    として"MT Term"というソフトウエアをWEB上で配布しています。下

    記サイトからダウンロードできますので、お試し下さい。

    http://www.microtechnica.net/manual/

    通信速度は9600bps、データ長は8ビット長、1ストップビット、ノン

    パリティの設定で通信してください。パソコンとの接続は全結線の

    ストレートケーブルを使用します。

    文字'A'を送信すると、P1[0]のLEDが点灯して ON という文字列

    がパソコン側に返ってます。

    void main ( ){

    char rec_data;UART_1_CmdReset ( );UART_1_Start (UART_1_PARITY_NONE );

    while (1 ) {rec_data = UART_1_cGetChar ( );

    if (rec_data == 0x41 ){PRT1DR = 0x01;UART_1_CPutString ("ON¥r¥n" );

    }

    if (rec_data == 0x42 ){PRT1DR = 0x00;UART_1_CPutString ("OFF¥r¥n" );

    }

    rec_data = 0;}

    }

    戻った文字列です。

    同様にして文字'B'を送信すると、LEDは消灯し、 OFF という文字

    列が返ります。

    プログラムの仕組みを見てみましょう。

    PSoCマイコンではボーレートの設定はそのままUARTモジュールに供

    給されるクロックの速さとなっていることに注目してください。システ

    ムクロックをVC1~3までを使って分周して希望のボーレートになるよ

    う分周比を設定することで通信速度を設定できます。

    その他には、Counter8モジュールというユーザーモジュールを使ってタ

    イミングを作り出し、それでボーレートのタイミングを作ることもできま

    す。こちらのほうがより正確な値となります。

    受信するデータはchar型の変数rec_dataに格納しています。

    UART_1_cGetChar() 関数で値をUARTから取得します。戻り値は8

    ビット長です。その値をif文で判定して分岐しています。もちろんswitch

    文でも可能ですが先のチュートリアルで使いましたので今回はあえてif

    文を使用してプログラムを作りました。

    0x41はASCIIコードの文字A、0x42はBです。値の代わりにシングルク

    ォーテーションで文字を囲って 'A' と記述してもかまいません。

    UART_CPutString関数は、文字列をUART経由で出力する関数です。

    この他にRAMの内容を出力する関数など多彩な組込関数が用意され

    ていますので、興味のある方はUARTモジュールのデータシートをご覧

    下さい。

  • 21

    System-level Projectを使ってみよう

    ■System-level Projectとは?

    PSoC Designerには、System-level Projectと呼ばれるプログラミン

    グ言語を全く使用せずGUIだけで配線や配置を行い、自動的にプログ

    ラムを生成するソフトウエアです。

    以前はPSoC Expressと呼ばれPSoC Designerとは別のソフトウエア

    でしたが、バージョン5.0からはPSoC Designerと統合され、新しいプ

    ロジェクトを作成する段階で選択できるようになりました。

    GUIだけでプログラムを作るというのはおもしろい発想ですが、本格的

    なプログラムを作ろうとした場合には、逆に作りにくいこともあります。

    かえって文章で記述していける従来のプログラミングの方が直感的で

    分かりやすいという場合もあり、使い分けが肝心です。

    ■プログラムを作ってみよう

    本マニュアルでは、サンプルとしてP0[1]のスイッチが押されたら、

    P1[0]のLEDが点灯するプログラムを作ってみましょう。

    まず最初にPSD-300EX4ボード本体の設定を行いましょう。

    SW4のディップスイッチは、PORT1だけONに設定し、その他はOFF側

    に設定します。スイッチ入力はアクティブハイ(スイッチが押されたとき

    Hレベル)としますので、タクトスイッチ左横のジャンパーJ2は、Vcc側に

    セットしておきます。

    1 PSoC Designerを起動し、メニューバーの"File"から"New Project

    "を選択します。

    2 ダイアログが表示されますので、"System-level Project"のアイコ

    ンをクリックして選択し、Name欄にプロジェクト名を、"Browse"ボ

    タンを押してプロジェクトの保存先を指定してOKボタンを押しま

    す。ここでは例として"LEDTEST"という名前でプロジェクトを作り

    ます。

    3 まず機能ブロックから配置していきます。今回は入力はデジタル入

    力で内部プルダウンのものを使用します。

    左上のツリー一覧の下側にあるタブから"Input"を選択します。

    4 Inputカテゴリーから"Digital Input"を選択し、続いて"Generic Pin"

    を選択します。するとツリー構造でその下に3つの項目が表示され

    ます。"InternalPullDown"の項目を、右側の灰色の画面(デザインウ

    インドウ)にドラッグアンドドロップします。

    5 Add Input Driverというダイアログが表示されますので、そのまま

    OKボタンを押します。すると、灰色のデザインウインドウに"Input1"

    というブロックが追加されます。

    ※画面が小さい場合には、デザインウインドウ内の余白部分を右ク

    リックして"Zoom In"を選択すると拡大できます。

    6 同様の要領で出力も追加します。左側のカテゴリー一覧の"Output

    s"タブをクリックして、ツリーから"Digital Output"を開き、"Logic

    Output"をデザインウインドウにドラッグアンドドロップします。

    "Output1"が追加されました。

    7 この2つの入力と出力のブロックに関係性を持たせ、動作するよう

    にしていきます。関係性を設定する場合には必ず出力側のブロック

    から設定します。

    "Output1"のブロックを右クリックします。メニューが表示されます

    ので、"Transfer Function"をクリックします。

    8 "Select Transfer Function"ダイアログが表示されますので、左側

    から"TableLookup"をクリックしてOKボタンを押します。

    9 "Select Input"ダイアログが表示されますので、"Input1"を選択して

    "Next"ボタンを押します。

    10 "Table Lookup Output1"ウインドウが開きます。

    ここで、Input1がどのような状態の時に、Output1がどのような状

    態にしたいのかをブロックをドラッグアンドドロップすることで指定

    します。

    黄色ブロックをそれぞれ右側の"Low"と"High"と書かれた灰色の部

    分にドラッグアンドドロップします。

    Input、すなわちボタンの入力がHレベルの時、LEDを点灯させ、Lレ

    ベルの時LEDを消灯させたいので、次の図のように配置します。

  • 22

    ↓配置後

    配置が完了したらOKボタンを押します。

    11 デザインウインドウに戻ると、"Input1"と"Output1"のブロックが橙

    色の線で結ばれています。これで、入力と出力の関係性を指定でき

    ました。最後にビルドをします。

    なお、デザインウインドウ上の"Simulation"ボタンをクリックすると

    入力と出力の関係をシミュレーションして動作させることができま

    す。

    メニューバーの"Build"から"Generate/Build xxxx Project"をクリ

    ックします。すると、"PSoC Device Configuration Selection"ダイ

    アログが表示されます。

    ここでデバイスを選択します。CY8C29466を選択しましょう。

    "CY8C29000"ツリーを展開し、"CY8C29466, 28-Pin"を選択し

    て、Nextボタンを押します。

    12 次にピンの関係性を指定します。"User Pin Assignment"ダイアロ

    グが開きます。今回は「P0[1]のスイッチが押されたら、P1[0]のLE

    Dが点灯するプログラム」ですので、InputをP0[1]に、OutputをP1

    [0]に設定します。青く表示されている"Input"のピンをドラッグして、

    4ピンのP0[1]の所でドロップします。

    同様にして、"Output1"を15ピンのP1[0]の所にドラッグアンドドロ

    ップします。下図のように4ピンと15ピンにそれぞれInput1とOutpu

    t1がアサインされます。

    12 Nextボタンを押すとビルドが開始されます。

    ダイアログが表示され進捗状況が表示されます。

    ビルドが完了すると、HEXファイルは、プロジェクトを作成したフォル

    ダ内に生成されています。そのHEXファイルをPSoCライターで書き

    込みます。

    13 書き込み後、動作を確認しましょう。

    P0[1]のスイッチが押されたら、P1[0]のLEDが点灯することを確

    認します。

    このようにPSoC DesignerのSystem-level Projectを使うと、プログ

    ラムの記述を一切しないでもプログラムを作れます。

    今回は簡単なプログラムでしたのでそれほど複雑ではありませんでし

    たが、色々な機能ブロックを複数組み合わせてある程度複雑なプログ

    ラムをプログラミングなしで作ることができます。

    但し、かえって動作内容の把握が難しくなってしまったり、図が複雑にな

    ってわかりにくくなったりしてしまうこともあります。場合によって使い

    分けることでPSoCマイコンの応用が広がると思います。

    マイクロテクニカ

    〒158-0094 東京都世田谷区玉川1-3-10

    TEL: 03-3700-3535 FAX: 03-3700-3548

    (C)2009 Microtechnica All rights reserved