« Proce55ing - CircleCubes | トップページ | STM32 - Primer2 レギュレータ修理 »

PSoC - PSoCマイコン・スタートアップ

PSoCマイコン・スタートアップ」(CQ出版社)という書籍を買ってみました!

これ1冊にMiniProgCY8C21434を積んだTarget20基板も付いているというお得な本です。

Psocbook_2

以前「PSoC FirstTouch StarterKit CY3270」で遊んでいたことはあるのですが、使い方がよくわからずサンプルから先のステップになかなか進むことが出来ないでいました。

PICやAVR等のマイコンみたいに調べればそこそこ使えるようになるものとは違い、何の説明も無しに使うには少々敷居が高く、その昔「はじめてのPSoCマイコン」という書籍があり買おうと思った時には既に絶版。著者さんの話では既に内容が古いそうです。

代わりに今は「PSoCマイコン・トレーニング・キット」がありますが、ホビーとして軽くとっかかるにはちょっとお高め。。。書籍部分だけで販売してくれないかなあ。

そこでようやくリーズナブルですぐに始められる1冊がこれです!一連のPSoC本の著者であるパステルマジックの桑野さんも書いていて安心。機会があれば買おうと思ってました。

Psocbook1

さすがにMiniProgが入っているだけあって、書籍の半分ちょいは付録部分となってます。逆にこれが本を開いておくには丁度良かったり。

 

Psocbook2

第4章で使われるフォト・スタンド用のクラフトも付いてます。

 

Psocbook3

梱包されているMiniProgとTarget20基板。それと開発環境やドキュメントが入ったCD-ROMが付きます。

PSoC Designerのバージョンは 5.0 SP4.5 - Build874 で、PSoC Programmerのバージョンは 3.06.0.131 でした。

Cypressのサイトを見ると更に新しいバージョンがありますが、書籍の内容に従うのでこのままアップデートはしません。

書籍にはインストール手順は記載されておらず、CD-ROM内にある説明を見るようになってます。こういう方法は無駄に紙面を使うことがないので好きです。

複雑だったりパソコン初心者クラスのものなどは別として、インストールの説明だけで何ページも割かれているってどんだけ無駄にしているのって感じで、その分損した気持ちになってしまう。

 

Psocbook_cy8c21434

これがCY8C21434搭載基板の「CY3240 Target20」で、デバイスは1個のLEDが載ってます。Rev.Fです。

CapSense内蔵で、2種類のデジタル・ブロックを2個ずつ、2種類のアナログ・ブロックを2個ずつ持ってます。

CPUはM8Cで、最高24MHzのクロック、Flashは8KB、SRAMは512B、最大28のIOがあります。

 
 

本書を読み進めていくと、第1章はPSoCについての特徴や説明と、付属基板についての説明があり、第2章から実際に付属基板を使った解説に入ります。

その第2章は、コーディング無しでTarget20のLEDを点滅させる、という内容なのでLEDピカピカをやってみましょう。

まず New Project にて System-level Project を作成します。

LEDを250ms間隔で点滅させるので、タイマを追加します。タイマは入力ということなので、Inputから選ぶことになります。

Input Catalog の Timing にある Interval Generator を追加し、IntervalTime を 250、IntervalMode を TOGGLE にします。

LEDは出力なので、Output Catalog の Display - LED - Single Color にある On/Off を追加し、Initial Value を OFF、Current Mode を Sinking にします。

このCurrentModeは電流の向きを決めるための設定で、設計によって決まるみたいです。

Target20のパターンを見ると、Vdd→LED→抵抗器→PSoCと接続されているので、Lowレベルで点灯するということですね。よって Sinking が選ばれることになるわけです。

これで2つのデバイスが登録されました。

Psocdgn1

 

マイコンを使ったことある人ならここまではなんとか感で出来たりします。問題はここから。

LEDにどういう動作をさせるか、という部分なわけですが、通常ならLEDのピンを下げて250ms待ってLEDのピンを上げて250ms待って・・・というようなコーディングをすると思います。しかし、こういったコーディングは一切無しなのです。

LEDデバイスの右クリックから Transfer Function を選択し、どういう動作をさせるか選択する画面が出ます。

いくつかある内の Table Lookup というものを選びます。これは入出力の状態を表のように並べて動作を定義するものです。

次に入力するデバイスとしてタイマを選択します。

Psocdgn2

設定した画面が上ですが、Timer250ms はタイマの名前で、タイマのトリガーが掛かっていない時はLEDをオフ、トリガー時にはオンにする、という内容なわけです。

ここで気になったのは、HighかLowということではなく、ONかOFFかという点です。
これはつまりピンの上げ下げを気にすること無く、点くか点かないかという明示的な表現で勝手に合わせてくれるという解釈で良いのでしょうかね。

正直ここら辺は説明ないとわかりませんでした。というよりこの画面に達してしまえばなんだけど、適当やってたどり着いても合っているかわからんし・・・

取り敢えず、こういうことが簡単に理解出来ただけでも凄く助かります。

そして、もう目的のほとんどが終わってしまいました!

これだけでLEDピカピカとなるわけなんですね~

 

今度はこれをビルドしてTarget20へ転送します。

Buildメニューから Generate/Build ~ Project を実行します。~にはプロジェクト名が入ります。

Psocdgn3

デバイスを選択する画面が出るので、CY8C21434 を選択します。下側のオプションはそのまま。

 

次はピン配置。ここでどのデバイスをどのピンにアサインするかを決めます。

初期状態では 13P1[0] にLEDが設定されています。

Psocdgn4

Target20基板のLEDは10番ピンに接続されているので、青色のタグを 10P1[3] にドラッグし移動させます。

これが終わるとビルド作業に入ります。最初ハングしたかと思いましたが、少々時間がかかるようです。

 

Psocdgn5

無事にビルドが終了すると出力エリアが開いてログが出ます。

エラーが無ければ転送となるわけですが、その前にメイン画面を見ると BOM/Schematic という画面になっていて、ここで部品表や回路図を確認することが出来ます。

 

Psocdgn6

Psocdgn7

上の画像は部品表で、この回路で使用される部品の一覧がリストアップされています。ちゃんとLEDや制限抵抗、パスコン用のコンデンサまで出ているのには驚きですよ、旦那。

下の画像は回路図で、部品表に従ってラベル名も記入されています。

こういうのは本当にPSoCみたいなデバイスの利点というのでしょうか、至れり尽くせりです。

 

最後に転送(書き込み)です。

MiniProgをパソコンとUSBで接続させ、Programメニューから PSoC Programmer を実行します。

Psocdgn8

Port Selection には MiniProg があるので一度選択します。

Programming Mode は、MiniProgから電源を供給するので Power Cycle を選択しておきます。

設定が済んだらMiniProgにTarget20を接続して、Fileメニューの Program を実行するか、ツールバー?の左から2番目(下矢印)のアイコンをクリックし転送を開始します。

 

Psocdgn9

書き込み中。。。

 

Psocdgn10

転送が完了したらTarget20に電源を送るため、ツールバーの左から3番目の Power アイコンをクリックします。

このPowerを押すごとに電源のオン/オフを切り替えられます。

 

Psocbook4

無事にLEDが点滅しました!

ほんとにコーディングしなくていいんだなあ・・・つまり接続されたLEDを250ms間隔で点滅する1つのデバイスということなのですよね。

長々と説明してしまいましたが、やってみればあっという間で簡単でした。こんな感じで丁寧に書かれているのですが、本書ではもっと詳しく書いてあります。

やっぱりこういう本が有ると無いとでは、始めてみようというモチベーションが異なりますよ。特にビギナーレベルの自分には。

やるならトラ技のPSoCマイコン活用講座読んでおけば良かったorz

それにしてもPSoCは使い方をある程度考えてイメージしておかないとデザイン出来ないような気がしています。適当が効かないというか・・・使いこなしている人はどうやってデザインしていくのでしょう??

時折Designerの挙動がおかしくなるときがありました。再起動すれば大丈夫なんですが、なんというか全体的に動作が重くて時折気が削がれます。

それからPSoCにはCPUが入ってますが、これは8bitのM8Cが入っているPSoC1。
最近ではPSoC3という8051コアなものと、PSoC5というARM Cortex-M3(!)を内蔵しているものがありパワフルになっているようですね~
更にCPLDまで取り込んでいるとか・・・もうさっぱりわかりません。

あ、あとCコンパイラって今はどうなっているのでしょ??HI-TECHだったりLite版?だったり、今はもう気にしなくて良いのかな。

というわけで今回は終わり。今度は第3章、本命かつ特徴とも言えるCapSenseにいつか挑戦してみようと思います。ざっと見た感じ理解出来る自信がないですよ。。。

|

« Proce55ing - CircleCubes | トップページ | STM32 - Primer2 レギュレータ修理 »

電子工作」カテゴリの記事

コメント

コメントを書く



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


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



トラックバック

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

この記事へのトラックバック一覧です: PSoC - PSoCマイコン・スタートアップ:

« Proce55ing - CircleCubes | トップページ | STM32 - Primer2 レギュレータ修理 »