パステル実験室

アクセスカウンタ

zoom RSS PSoC3/PSoC5ユニットを作ってみた

<<   作成日時 : 2012/11/11 14:16   >>

面白い ブログ気持玉 1 / トラックバック 3 / コメント 1

とにかく使い手があるという面では抜群なのが、Cypress社のアナログ・デジタル混載のProgrammable System-on-Chipマイコン、PSoC3/PSoC5。マイコンというと、やれPICだのAVRだの、H8だのという話になるのだけど、PSoCは「System on Chip」とうたうだけに一味違う。
評価ボードも出ていて、それなりに安いけど、やっぱり自分で色々使うには不便な面もあるし、「こうした方がいいのにな」と思える点もあったので、こんな感じのものを自分で作ってみた。ボードは共通で単に実装したデバイスが違うだけ。
現状で一番規模の大きい物を選んだので、
  • PSoC3版
      8051(66MHz)+ROM64K+SRAM8K
  • PSoC5版
      ARM Cortex-M3(66MHz)+ROM256K+SRAM16K
というところ。
画像
画像

左がPSoC3(CY8C3866)+キャラクタ液晶、右がPSoC5(CY8C5568)+グラフィック液晶という構成で動かしてみたところ。もちろん、液晶パネルはどちらにも付くので、PSoC3+グラフィック液晶という組み合わせにしてもかまわない。
一応特徴的なのは次のような感じ。

  1. ケース収納できて拡張ボードにも対応
     ケースはタカチ製で500円くらいで買えるもので、この中にすっぽりと収まるサイズにした。拡張用のボードを上に載せられるような向きにしたので、自分で回路を足して、装置として持ち運ぶのにも便利。

  2. グラフィック液晶(128×64ドット)にも対応
     キャラクタ液晶だけではなく、グラフィック液晶もつけられるようにしてみた。秋葉原などでも簡単に買えるSG12864が付くようにしてみた。

  3. 拡張コネクタピン配置、スイッチ、LEDなどは一応Cypressさんのキットと下位互換
     一応拡張コネクタ(PORT_D/PORT_E)のピン配置、スイッチやLED、キャラクタ液晶の配線はCypressさんのCY8CKIT-030/050などにあわせているので、キット用のサンプルもそのまま動かせる。向きが違うけど、030/050用のボードも物理的に干渉するなどの問題が無ければ一応使えるはず。

  4. ちょっと細工したブートローダ書き込み済み
     PSoC3/5の書き込みは普通は専用プログラマ(MiniProg3)を使うのだけど、持ち運ぶのも毎回抜き差しも面倒なものだ。MiniProg3はデバッガとしての機能もあるから持っていても損はないけど、単なる書換えに毎度MiniProg3というのも面倒くさい。ということで、USBケーブルを繋いでスイッチを押すとブートローダが起動するようにしてみた。 リセット解除後一定時間以内にスイッチを押せばブートローダが起動し、押さなければそのままROMに書き込まれたアプリケーションが起動するようにしたのだ。これで、通常なら電源を入れて放置しておけば、そのまま組込みシステムとして動き、書き込みたいときはスイッチを押せば良いという仕掛け。
     Cypress純正ブートローダモジュールと互換なので、開発ツール(PSoC Creator)と一緒にインストールされている、ダウンロードツールがそのまま使える。これで、MiniProg3が無くても大丈夫なのだ。

  5. MiniProg3と、CQ版デバッグアダプタに対応
     MiniProg3で書き込み/デバッグができるのはもちろん、CQ出版さんの「シリーズ最強!PSoC 3ボード+デバッグ・ボード」に付属のデバッグボードコネクタにも対応させてみた。

  6. 3.3V/5V切替対応
     一応I/O電圧は3.3Vと5Vに切り替えられる。注意が必要だったのが液晶パネル。PSoCのGPIOは5Vトレラントではないけど、液晶側5V専用。このため、直結してしまうとI/O電圧が3.3Vの時に液晶パネルからリード動作すると宜しくない。これに対処するため、レベル変換ICを入れてある。




というところでPSoCについて少し・・
PSoCファミリは初代のPSoC1、そしてここで紹介するPSoC3/5系に大きく分かれている。違いはPSoC1/3/5の比較(Cypressさんのページ)で確認してもらうとして、おおまかな感じとしては、PSoC1がPIC的なコンパクトなワンチップマイコン、PSoC3/5は周辺を大幅に拡充したもので、周辺の構成はほぼ同じでCPUコアが違う(PSoC3が8ビットの8051、PSoC5は32ビットのARM Crotex-M3)というくらいの感じでいい。
一応PSoC5の内部ブロックはこんな感じだ。(元になったマニュアルはこちら
画像

中央付近にあるのがCPUブロックで下がアナログブロック、上がデジタルブロック。
CPUブロックにおいてあるDMAコントローラは
デジタルの方は4チャンネルのタイマ/カウンタやUSB,I2Cあたりはあるけども、他が見当たらない。実はその他は全部横にあるUDB(Universal Digital Block)と呼ばれる、CPLDなブロックに作りこむという仕掛けになっている。この図ではいくつかの島に分かれているけど、これは単なる一例。UDBを使ったカウンタだのUARTだのといったマクロライブラリは既に用意されているので、ユーザは回路図レベルでこれらを組み合わせたり、必要に応じてVerilogで自分用ライブラリを作ると、これが論理合成されてUDBの中に作りこまれるという仕掛けになっている。
アナログブロックの方は、アンプや、デジタルフィルタ、ADC、DAC、汎用オペアンプなどが内蔵されている。もちろん、アナログ信号を2値化してUDBで信号処理するなんていう使い方もありだから、CPUに一切負担をかけずにいろいろな信号処理もできてしまう。
8ビットの8051(PSoC3)や32ビットのARM Cortex-M3(PSoC5)をコアにして、DMAコントローラやオペアンプやCPLDなどを内蔵していて、回路図やVerilogで内部構成をデザインしてCPUと連動させて動かそうというものだ。アナログ回路、CPLD(FPGA)、CPUのいいとこ取りをして、今まで周辺回路+CPUという構成にせざるを得なかったものを丸ごと中にとりこんでしまおうという考え方なのだ。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
面白い

トラックバック(3件)

タイトル (本文) ブログ名/日時
プラダ アウトレット
PSoC3/PSoC5ユニットを作ってみた パステル実験室/ウェブリブログ ...続きを見る
プラダ アウトレット
2013/07/07 21:37
プラダ バッグ
PSoC3/PSoC5ユニットを作ってみた パステル実験室/ウェブリブログ ...続きを見る
プラダ バッグ
2013/07/08 01:13
http://www.valras-plage.net/ageless-male-review/
PSoC3/PSoC5_jbg _B__ pXe__/EFu_u_O ...続きを見る
http://www.valras-pl...
2016/12/08 22:15

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(1件)

内 容 ニックネーム/日時
授業で使ったことがあるので懐かしく感じました。
名無し
2014/04/25 04:45

コメントする help

ニックネーム
本 文
PSoC3/PSoC5ユニットを作ってみた パステル実験室/BIGLOBEウェブリブログ
文字サイズ:       閉じる