Knowledge | ||||||
PSoCを使ってみよう
PSoCとは、普通のマイコンとはちょっと違って、CPU+デジタル回路+アナログ回路で構成されたマイコンです。 センサ処理など、メインマイコンの周辺処理をやらせるのにちょうどいいかな?と思って、触り始めてみました。 開発環境ですが、「はじめてのPSoCマイコン」という書籍を購入すると、$10で評価キットを購入することができます。
2005/05/31 |
「はじめてのPSoCマイコン」購入
このチップ、マイコンと言えばマイコンなんですが、いわゆるマイコンのコア以外に、デジタルPSoCブロックとアナログPSoCブロックと呼ばれるモジュールらしきものがあります。 周辺モジュールを組み上げていくイメージでプログラムできるのが特徴のようです。 また、内臓されている周辺モジュールが非常にセンサ処理向きのようで、例えば、アナログ入力信号を増幅するとか、 その増幅も、GNDから見ての増幅とか、1/2VCCを中心した増幅とかできるようです。 またデジタルの方も、カウンタ、PWM、UART、IIC等、いろいろ機能が盛りだくさんです。 しかも、24MHzのクロックまで内臓しています。 ということは、ひょっとしたらこれ1つで(外部回路無しで)、オペアンプとかの前処理無しでアナログセンサを取り込み、 それをPWM化してマイコンへ入力とか、IICでマイコンへ入力なんてのも簡単にできるんじゃないかな〜なんて。 だとすると、オペアンプ+8Pサイズのマイコンをつけるより省スペースにもなるんではないかとワクワクしてます。 実は、電子回路にすごく弱かったりするので、そそります〜。 この本を書かれているのは桑野雅彦さんという方で、Pastel Magicというホームページを立ち上げらられており、そこでもPSoCの解説や販売をされています。 その中に、PSoCチュートリアルもありますので、それを読まれるとわかりやすいと思います。 さてさて、開発キットの入手ですが、「はじめてのPSoCマイコン」には、「特別販売・PSoCミニ・ディヴェロップメント・キット」の紹介があります。 これは、なんと、特別価格$10で開発キットが購入できるというもの。う、これってここで書いていいのかな? 基本販売期間は2005年4月30日までとのことなので、やばいと思ってさっそくホームページにアクセスしてみると、 おお、なんか新しくなってる!本に載っていたのは、チップとUSBコントローラが実装された基板+開発ソフトって感じで、 すごく「評価セット」という感じだったのですが、今度のは、ソケットでチップが載せ替えれるものになっています。 $35で販売されているものと同じものです。う〜ん、すごい。これが$10か〜。というわけで迷わずオーダー。 クレジットカードしか使えないのが難点ですが…後は到着まで1〜2週間待つことにします。 でも、発送料も込みで$10なのかな?ホームページを眺めている限り、$10な感じですが… また、同じ物が前述のPastel Magicで\4,500で購入できるみたいです。特別販売じゃない場合、$35なので、こちらでさくっと購入も良さそうですね〜。 うぅ〜、PICの勉強をしようと、密かにJDMプログラマなんて作ってたんですが、やりたいことは結局センサのマイコン入力前処理なので、 このままPSoCに行ってしまいそう…。G-Tuneに搭載するのはまだまだ先になりそうですが、ああ、魅惑のPSoC。早く来い来い開発キット。
| |
2005/06/01 |
いや〜、PSoC、おもしろそうで、もうダメ! さて、ちょっと一息入れて…最初、この先もっとセンサーが増えてきたら、8PのPICとオペアンプでどうかな〜と思ったんです。 でも、回路組むと意外と大きくなりますし、なによりSISOは電子回路に弱いので、 電子回路面でコンパクト&シンプルにできるのであれば、それに越したことは無いな〜と。 また、PSoCのチップって、\500〜\700ぐらいで安いです。能力的に考えてコストパフォーマンスもすごくいいような気がします。 もし28PINが大きすぎれば、8PINのCY8C27143が共立エレショップで購入できるようです (写真は28Pですが…本当はどっちなんでしょう?)。開発キットは対応しているのかな? 実のところ、今のH8/3694だけでも、サーボ20ch、加速度センサ、距離センサx2、ジャイロx2、ProBo対応まではいけると思っているのですが、 今後、もっといろいろ対応していかないとダメかなって思ってまして、次期のさらに次のG-Tuneあたりで搭載できたらいいな〜なんて思ってます。 やってみたいことは、各種センサを取りまとめてIIC通信化です。 H8TINY(H8/3687を除く)、I/O数が少ないので、いろいろ繋ぎたくても脚が足りなくなっちゃうというのと、 アナログを扱う以上は、オペアンプなどのアナログ回路は避けられない(特に安く使おうと思うと)のかな〜って思ってまして、 だったら、オペアンプなどを内臓して、しかも内部で組換え可能なマイコンであるPSoCならうってつけじゃないかな〜なんて予感がします。 IICは、芋ずるのように接続できますので拡張性も維持できますし、シリアルEEPROMを読み出すような感覚で扱えるスレーブのIICデバイスにできたら、 なんとか番地のメモリを読み出すと距離センサーの値が、別の番地を読み出すと加速度センサの値(しかも増幅された)が…なんてできそうです。 いや、プログラムも組めるわけですから、転倒判定もPSoCの方でやらせるのもいいかも…。ああ〜、また夢が広がっていってしまいます。 IICで体内ネットワークレベルまでやるとノイズの問題で難しいらしいですが(本当はどれくらいまでいいんだろう?)、隣のボードに繋ぐのは問題ないですし、 G-Tune程度のサイズなら簡単なノイズ対策程度で体内ネットワークもできるかもしれません。 というわけで、まだ開発キットは来ていませんが、なんだか我慢できなくなってきたので、PSoCデザイナーをダウンロードしてインストールしてみました。 本にもついているのですが、なんとなく開封するのがもったいなくて…。 まずはCYPRESSのトップページから、「Software and Drivers」に入り、「Select Product Group:」を「PSoC Mixed-Signal Controllers」にして「Apply Filter」します。 そうするとツール群がずらずらっと出てきます。 「PSOC DESIGNER V. 4.2」と「PSOC DESIGNER V.4.2 SERVICE PACK 2」があるのですが、説明を読むとこっちは拡張機能っぽいので、まずは「PSOC DESIGNER V. 4.2」をダウンロードしました。 うへ、66MByteもあります。じっと待ちます。インストールそのものは、解凍して出てきた実行ファイルを起動するだけですので、特に難しいところはありません。 あとは、Pastel Magicさんのところのチュートリアルを読みながら、PWMでLEDのやつを入力してみました。 おお、おもしろいですよ、これ。というわけで、なんか絵ができたところで、現物が無いので終了〜。あ〜、久しぶりにデバイスで興奮しているような気がします。 採用は次々期G-Tuneにしようと思っているんですが…ま、新型制御ボードの製作スケジュールを後ろにして、進捗の様子を見ながらやろうと思います。 なんだか止まらない予感…。
| |
2005/06/04 |
PSoC下調べの続き
| |
2005/07/31 |
PSoCチュートリアル PastelMagicさんのホームページのTIPSにて、 「PSoCチュートリアル」が紹介されています。これは、「Invention Board」とPSoC Designer V4.0を使用して、 LEDをPWMでチカチカさせるプログラムです。これを、$10で入手したCY3210-MINIPROG1にてやってみました。 チップは、CY8C27443を使い、PSoC Designerは、V4.2 SP2です。また、Cコンパイラのライセンスキーも入力済み♪です。 まずは、このようなサンプルをアップしてくださっている桑野さんに感謝しながら、チュートリアルどおりに入力。 さて、LEDの回路でも作ろうかな、と思ったんですが、考えてみたらこのMINIEVAL1(CY3210-MINIPROG1に同梱されているPSoCを載せるボードの方)って、 LEDが実装されているからそれを点滅させればいいということに気づきました。 チュートリアルでは、PWM出力が「Port0_0」と「Port0_1」に接続されています。 MINIEVAL1では、「Port2_0」〜「Port2_3」にLEDが接続されていますので、これに変更してみました。 まずは、「Port0_0」、「Port0_1」に接続されているGlobal Outputバスを外します。 これには、Gloval Outputバスを選択してクリックし、「Pin」を「None」にします。
はい、これで接続が外れました。 それから、「Port2_0」と「Port2_1」に配線し直します。 なんか、配線を外さずにやったら両方接続されてしまったので、こうやってます。 後は、GenerateしてBulidすればOKです。
既にmain.cにソースコードが書いてあったんですが、それが消えることは無かったです。 ん?なんか「warning」が出てます…。また時間ができたら細かい話もアップします。 とりあえず気にせずに「PSoC Programmer」を起動して(PSoC Designerから呼び出せます)書き込んでみました。 「PSoC Programmer」には、「Mini Prog」から「CY3210-MiniEval1」へ電源供給する機能がありますから、それをチェックオン(なんか表示がバグっている気がしますが、ボードのLEDが点灯するのでわかります)すると、無事、実行できました。 今日のNOTE
|
SISO-LAB Knowledge