« ITブルーカラー受難の日 | トップページ | 仕事算 »

2009年8月 3日 (月)

PIC vs. PSoC

初めて触ったPICが16C84だったので、もう十年ほど前のことになるが、実際に「完成品」と呼べるようなものを作るようになったのは2004年ごろからだ。

  • 秋月DDS/RS-232Cインターフェイス (16F877/PIC-BASIC)
  • Ni-MH放電・容量測定器 (16F877/PIC-BASIC)
  • 高輝度フルカラーLED x 5クリスマスイルミネーション (16F84/ASM)
  • 110MHz周波数カウンター(16F88/ASM)

こう言った物を作っていて思うのは、意外と部品点数が減らないことである。

何かのきっけでPSoCを知り、アナログまで含めた周辺回路が1チップになることに興味を抱いたものの、適切と思われる用途も思いつかなかったので、しばらく放っていた。

最近、センサーの信号をデジタル化して20mくらいの距離を伝送してみようかと思いついたので、手っ取り早くPSoCを評価するために、できるだけ環境の整った評価キットを買い求めることにした。
選択肢の1つとして、CQ出版から出されているものがある。

日本語で読めるメリットがある反面、製造元純正に比べると、最新の開発環境に対応できるかどうか懸念がある。テキストやプログラマー(書き込み用アダプタ)に合わせるため、泣く泣く古いバージョンを使わざるを得ない、などと言うことはできるだけ避けたい。

多少の苦労はするが、人並みに英語は読めるのでCY3210-PSoCEVAL Kit(MINIPROG1)を選んだのだが・・・。

巨大なビデオテープのパッケージを思わせるような外観である。

Psoceval_close

内容物は秋月のWebで大体分かっていた。

Psoceval_open

印刷物のUser Guideには結構期待していたのだが、ほぼはがき大の冊子に割合と大き目の活字(老眼の身にはありがたい)で印刷された、たったの32ページで、回路図すら載っていない。多少の試行錯誤の結果、基板にシルク印刷されている型番”CY3210-PSoCEval1”をGoogleで検索してCypressのWebにドキュメントを発見。ようやくダウンロードできた。User Guide本文のソフトコピーともども日付の違う2種類がある様なので、新しい方を選んだ。

付属のCDに開発環境が入っているが、かなり古い。

Cd_contents

CypressのWebから最新版PSoC Designer 5.0 SP5PSoC Programmer 3.06 build 135 をダウンロードし、Programmerを先に、続いてDesignerをインストールして、準備完了、のはずだった。

User Guideと話が合わない!

Sample Project FilesがDesignerと共にインストールされることになっているが、どこを探しても見当たらない。そもそも ...\Program Files\下のフォルダ名からして違っている

選択を間違えたかもしれない・・・

Programmer と Designerをアンインストールし、CDからインストールしなおす事も一瞬頭をよぎったが、その前に悪あがきをしてみることにした。

Helpはかなりしっかり書かれている。ただし、スクリーンショットはさほど多くない。

Psoc_designer_help

大きな収穫は、Help MenuからDocumentationフォルダが開けること。

Helpmenu_2

Docwindow

また、Chip Level EditorのUser Modulesペインのアイコン右クリックから、各User Moduleのデータシートが参照でき、これにはサンプルコードも載っていて、コピー&ペースト可能だ。

Usermodulemenu

Usermoduledswindow

ただし、少々注意が必要である。

User Module、例えば8ビットPWMをPlaceすると、PWM8_1の様な名前が自動的につけられる。2つ以上Placeすると、最後の数字が2、3、・・・と変わっていく。データシートのサンプルコードは call  PWM8_Start の様に記述されているが、これは実際には call  PWM8_1_Start と換える必要がある。

かなり色々な事ができそうだ。

ただ、PICと比べると文化の違いのようなものを感じる。例えば;

  • 割合と小さな規模のシステムであるにもかかわらず、データシートにUser Moduleの使用頻度に応じたCPU負荷%のグラフがあったりする:同時に複数の処理をこなすような、複雑なアプリケーションを強く意識していることがうかがえる
  • PlaceされたUser Module用のソースコードが自動的に生成される:複雑な周辺回路の構成に柔軟するための工夫だが、コードのサイズが無駄に大きくなりそうな気がする(同種のUser Moduleが複数あった場合、その個数分、ラベルの数字だけ異なるソースが生成される)
  • 機械語レベルの命令の語長や実行サイクルが、RISCと言うよりIntel 8080に近い印象を受ける

正直未だ手探りだが、User GuideのEXAMPLE PROJECT #1;

  • ポテンショメータの電圧を可変ゲインアンプに通した後、AD変換
  • 変換結果をLCDとUARTに送る

をアレンジして以下の機能を追加したのが、下の写真だ。

  • 変換結果に応じて、LEDのバーグラフ表示を行う
  • LEDのバーグラフ表示にPWMを利用し、2.5個点灯、の様な事をする
  • LCDにもバーグラフ表示する

Psoceval_run

|

« ITブルーカラー受難の日 | トップページ | 仕事算 »

IT」カテゴリの記事

趣味」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/543745/45825324

この記事へのトラックバック一覧です: PIC vs. PSoC:

« ITブルーカラー受難の日 | トップページ | 仕事算 »