第0 章

INTRODUCTION

PSoC はなにができる？

第0 PSoC はなにができる？
章

INTRODUCTION

PSoC（ピーソック）の世界へようこそ．PSoC はアナログ回路もディジタル回路も入ってい．独自の開発環境を使って，ドラッグ＆ドロップで自分の思いる不思議なIC です（図 0-1）
どおりのIC が作れます． PSoC のできること，おもしろいところを例を挙げて紹介します．

あなたがこの本一冊を読むわずかな時間は，あなたのエンジニア人生において，決して無駄ではありません．食わず嫌い を克服することと同じように，本書の内容を一つでも実践したならばあなたが体験したことのない，すばらしい世界が待っています．PSoC ワールドへ，ようこそ！

PSoCが好きになる六つのいいところ
マイコン フラッシュ ROM
SRAM
割り込み

P S o C は回路図を描くイメージで中身を作るこ
PSoCとができるので，初めはプログラムの深い知識がなくてもO K です．独自のデザイン・ソフトウェ
ア「 PSoC Designer 」（図 0-2 ）を使います．

入力したアナログ信号をA - D（アナログ- ディジPSoC

ディジタルカウンタ
PWM
通信PSoC
アナログ

PSoC

OPアンプ
フィルタ
A‑Dコンバータ
D‑Aコンバータ

図 0-1 PSoC はアナログ，ディジタル，マイコンを一つに収めたIC のようなものタル）変換することなく直接扱えるアナログ回路をいくつも内蔵しています［ 図 0-3 a ］．またフできます［図0-3 b ］．設計時に値を決めておけば，ィルタも構成でき，値は設計時（デザイン中）に数プログラムで設定することなくロジック信号（ディ値で設定するだけなので外付け回路を組む必要がジタル波形）を出力できます．出力した波形はLEDありません．マイクやライン信号のような微小なを点灯したり，ブザーを鳴らしたり，タイマとしてアナログ信号も内蔵アンプに直接入力できます．

外部の機器のON/OFF に使うことができます．個別IC の組み合わせがワンチップに格納されているとも言えます［図 0-3 c ］．

P S o C はロジックI C の機能をもったブロックをPSoC Designer の画面上（図 0-2 ）で自由に配置でき，信号の波形をイメージしながら回路を作成

24M H z と32k H z の発振器を内蔵しており［図91ST AREA ・ 新しい PSo Cの 世界

アナログ制御をディジタル化！？ 部品数が少なくなる

第1 章

魅力的なPSoC

1 魅力的なPSoC

第章

C H A P T E R

PSoC はマイコンではなく，プログラマブル・システム・オン・チップです．開発環境 PSoC
Designerは，ビジュアルでブロックに機能をドラッグ＆ドロップしてPSoCの中を構成します．
プログラムもほぼ使いません．そんなPSoC の種類や開発環境の詳細などを解説します．

ができるという特徴が注目されています．つまりアナログの部品が P S o C に入っていると考えることができます．同様にディジタル部分も自由にカ
PSoC とは「 Programmable System on Chip 」

スタムできることも特徴です．アナログとディジ（プログラマブル・システム・オン・チップ）の頭文タルをミックスできるのです．そして，それをマ字をつなげたもので，「ピ ー ソ ッ ク」と呼びます

イコンのファームウェア（プログラム）がちょこっ（写真 1-1 ）．直訳すると「書き換え可能なシステとあれば 駆動してしまうので，不思議な I C だとムが載ったチップ」とでもなりましょうか．ユー

思います．

ザ（使用する人）が自由に変形（組み換え）できるアナログ系・ディジタル系の回路で構成した小さなシステムが，ワンチップ IC にたくさん載っているようなイメージです．この小さなシステムの「マイコン」とは「マイクロコンピュータ」や「マことを「ユーザ・モジュール」と呼び，パソコンイクロコントローラ」の略称で，CPU を使って制画面上で自由に組み合わせて自分の思いどおりの御するIC のことをいいます．PSoC は前述のようI C を作り出すことができます．C P U やメモリもに「マイコン機能付きIC 」です．

内蔵されています．いわば「マイコン機能付きオリジナル・カスタムIC 」を作れるのです．

このようなややこしい呼び方をする理由は，この I C が C P U やプログラムを中心に使うのではな

一見普通のマイコンに見えるのですが，実はア

く，ユーザ・モジュールという電子回路どうしをナログ回路が入っていて，それも自在に扱うこと組み合わせて使うからです．C P U の役割はユーザ・モジュールを「スタートする」，「止める」といった補助的な役割から始まるため，「同じ線上にある一つの機能」という見方ができます．P S o C
は「マイコン」ではなく「システム・オン・チップ」なのです（図 1-1 ）．
これは使い始めるとよくわかります．まず内部の回路配線をデザイン（開発環境でユーザ・モジュールを組み合わせることを言う）して構成や機能を決

写 真 1-1
電 子 工 作をするときに 使いやすい D I P 型のPSoC のラインナップめてから，プログラムを書くからです（図 1-2 ）．

17

1ST AREA ・ 新しい PSo Cの 世界

マイコンではないシステム・オン・チップの特徴

1ST AREA

PSoCの中身を特大サイズで紹介します．中身はディジタルとアナログの領域があります．各ブロックにユーザ・モジュールを割り当てることによって，機能が使えるようになります．CPUは使わないこともできます．

図1-8

20

PSoC の中身をイラストで表現するとこうなるCPU

空きディジタル・ブロック・アレイ 空きアナログ・ブロック・アレイ

ユーザ・モジュールの補助的 まだ機能をもっていないな役割をはたす一つの機能組み換え可能な回路の集合体

まだ機能をもっていない組み換え可能な回路の集合体

第1 章

魅力的なPSoC① 機能を選んで配置② 完成！

自分の使いたい機能（ユーザ・モジュール）を選んで，空いているブロックにドラッグ＆ドロップをする

ユーザ・モジュールができる．
これらを組み合わせて自分の思いどおりのICを作る

21

1ST AREA ・ 新しい PSo Cの 世界

ユーザ・モジュールアナログ系・ディジタル系の回路で構成した小さなシステム

第2 章

PSoC の中身を攻略する

2 PSoC の中身を攻略する

第章

C H A P T E R

ユーザ・モジュールと呼ばれる，あらかじめ用意されているさまざまな機能を，ブロック・アレイという電子回路に配置して自分の必要な機能だけを設定します．このユーザ・モ
ジュールの使い方と，本書の中でひんぱんに登場する一例を簡単に紹介します．

（ SPI や UART などの通信系は，右側の DC ブロック・アレイのみ），アナログ系ユーザ・モジュー
ルは位置の制約があり，どの場所にも希望のユー
pp.20 〜 21 の図 1-8 では「 ユーザ・モジュール」

ザ・モジュールを配置できるというわけではありを，着せ替える服として説明しました．着せられるません．第 4 章以降で詳しく解説するので，少し側を「ブロック・アレイ」と呼んでいます．

ずつ実例とともに慣れていきましょう．練習用のブロック・アレイの中身は，さまざまな種類のプロジェクトを作り，「置いてみてだめならほかの電子回路に組み換え可能な回路の集合体です．こ場所」方式でやり方を習得する方法も一つの手段

れをパズルのように組み合わせて目的の動作をさです．

せます．
その動作が書いてある「設計図」がユーザ・モジュールの正体です（図 2-1 ）．

ユーザ・モジュールを配置した後は，配線を行います，図 2-2 のように，ユーザ・モジュールの周

PSoC Designer にはディジタル / アナログ合わ

りを 縦と 横に 引かれている 線が 囲んでいます ．せて 80 種類ものユーザ・モジュールが用意されてこの 線にユーザ・モジュールを接続して I / O ポ

おり，必要な種数を配置して回路を作り上げる

ートに信号を出力したり，ほかのモジュールに入のです．ユーザはこれを PSoC Designer で配置力して回路を接続したりします．して，いくつかの設定値を決めていく作業を行えば自分だけの IC を作れます．

実際の数値の設定などは，第 5 章以降で実例とともに設定のリストを掲載します．ここではよく使
詳しい配置のやり方は第5 章以降で紹介します．
図 2-2 は PSoC Designer のメイン画面とユーザ・モジュールを配置した例です．

うユーザ・モジュールの一例を少しだけ紹介します．
● ディジタル系『 Counter8 』（カウンタ 8 ）ブロック・アレイにはディジタル系とアナログ

8 ビ ット幅のダウン・ カウンタで，系が存在し，ディジタルは 2 種類，アナログは 3

最 大 255 から0 まで −1 ずつカウント種類があります（図 2-3 ），カウンタや P W M などしていく内部カウンタをもっています．幅の違うのディジタル・ユーザ・モジュールは，ディジタル・連続パルス（ PWM 波とも呼ぶ）の作成や，内蔵クロブロック・アレイのどの位置にも配置できますがックを分周して任意のクロックを作るのに用います．

25

1ST AREA ・ 新しい PSo Cの 世界

アナログとディジタルの顔をもつユーザ・モジュールの正体を知る

第3 章

準備する道具とインストール方法

3 準備する道具と第章

インストール方法C H A P T E R

PSoC 開発において必要になる道具や，部品を使いやすくする加工方法，開発環境をインストールする手順と詳細な設定を紹介します．はんだ付けなどで加工する部品や，製作する実験ベンチは今後の章で何度も繰り返し使用するので，ぜひ作ってみてください．

夫も合わせて記載するので参考にしてください．
ここで紹介する道具や部品などはホーム・センタ
や電子部品ショップで購入できます．
パソコン

あるとべんりな道具や必要な部品など（表 3-1 ）W i n d o w s パソコンが必要です．筆者が動作をを紹介します．筆者が工作をしていて気づいた工表 3-1

本書で使う部品と道具

ニッパ

ピンセット

ワイヤ・ストリッパ

PSoC本体ドライバ

ラジオ・ペンチ
はんだ吸い取り線

基板・ブレッドボード

トリマ抵抗（半固定抵抗）

チップLEDとチップ抵抗

書き込み器「MiniProg」

アンプIC NJM2073

φ5 砲弾型LED
長いほうがアノード（A)アンプIC NJM386BD（LM386N）

はんだ吸い取り器

積層セラミック・コンデンサ 0.1μF

はんだ付け用品
熱収縮チューブ

あるとべんりな線材

ジャンプ・ワイヤ

抵抗．右から 330Ω，1kΩ，10kΩ

セラミック・コンデンサ47pF

電解コンデンサ
右から 220μF，10μF，1μF

工作に使用したおもな電子部品

31

1ST AREA ・ 新しい PSo Cの 世界

部品を使いやすくする加工から開発環境の設定までの下ごしらえ第4 章

PSoC Designer を動かす手順

スタート命令やフィルタの設定方法が身につくレッスン

4 PSoC Designerを動かす手順

第章

C H A P T E R

PSoC Designer を動かすときの初期設定「グローバル・リソース」や，ユーザ・モジュー
ルを画面上に置いて配線する基礎的な使い方を解説します．またフィルタを使ったビープ音を鳴らすレッスンを手順を追って示しますので，まねをして実験してみてください．

⑥ ディジタル・ブロックからアナログ・ブロックへの信号の受け渡しはポート経由（ P0[0] 〜P S o C D e s i g n e r を使ううえで欠かすことので⑦ アナログ・ブロックからディジタル・ブロック

きない PSoC の信号経路を押さえていきましょう．への信号受け渡しは，コンパレータ（ C O M P ）① 発振はシステム・ クロ ッ クから V C1 ，V C2 ，などを一つ使い，4 本あるコンパレータ・バスを使う

V C3 を 通して 使う． さらに 低いクロ ッ クは

⑧ 一つのポートにアナログ出力とディジタル出力

Counter8 や 16 で分周するの混在はできない② ディジタル・ブロックの信号はほとんどのポートに入力できる③ ディジタル・ブロックの信号はほとんどのポートから出力できる④ アナログ・ブロックの信号入力はポートP0[0]グローバル・リソースとは，システム内の共通〜 P0[7] に限定される項目です（図 4-1 ）．デフォルトのままで使える場⑤ アナログ・ブロックの信号出力はポートP0[2]合もありますが，新規にデザイン（プロジェクト）〜 P0[5] の四つであるを作成したときはひととおり目を通しましょう．
○○ = AGND の値
2.6V
2.5V

2バンド・ギャップ
Vdd /2（電源 5Vの場合）

2.08V 1.6バンド・ギャップrr= AGNDを中心とした
A-D/D-Aコンバータの変換範囲
2.5V
2.08V
1.65V
1.3V

Vdd /2
1.65V（電源 3.3Vの場合）
1.3V バンド・ギャップ

図 4-1 CY8C29466 のグローバル・リソースの一
覧兼セッティング画面

図 4-2

1.6バンド・ギャップ

Vdd /2（電源 3.3Vの場合）
バンド・ギャップ

AGND

−1.3V
−1.65V
0V（GND）

Vdd /2（電源 5Vの場合）−2.08V−2.5V

AGNDより上の 値をREFHI．下の値をREFLOと呼び，コンパレータや 基 準電圧としても使う

RefMux の関係．RefMux が（○○）＋/ −（△△）の場合

392ND AREA ・ PSo Cの 動かし 方

P0[7] ）

第5 章

ディジタル・ブロックの活用

ディジタル・ブロック配線の規則や機能をLEDで見るレッスン

5 ディジタル・ブロックの活用

第章

C H A P T E R

ディジタル・ブロックの入力 / 出力を内部配線するときのルールや，アナログ・ブロックからディジタル・ブロックに入力するときに使うコンパレータなどを紹介します．レッスンでは LED を光らせて各機能の確認を行います．デザインは各レッスン共通です．

線「グローバル・インプット・バス：GIO，GIE 」
を通し，そこから横の入力配線「 ROW̲X̲Input

ディジタル・ブロックの配線は縦でも横でも自由自在とはいかず，規則があります．
ディジタル・ブロックはポートから縦の入力配ロックへ入力します（図 5-1 ）．また，出力は横の出力配線「 ROW̲X̲Output̲N（ X，N は番号）」に出した後，縦の出力配線「グローバル・アウト横の入力線「Row̲X̲Input（行入力）」
GIE，GIOからつながる縦の入力線「GlobalInOdd（奇数入力，GIO）」．P1［0］〜P1［7］から入力縦の入力線「GlobalInEven（偶数入力，GIE）」．P0，P2［0］〜P2［7］から入力縦の出力線「GlobalOutEven（偶数出力）」
P0，P2［0］〜P2［7］へつながる縦の出力線「GlobalOutOdd（奇数出力）」
P1［0］〜P1［7］へ出力
ディジタル・ブロック・アレイ

入力側

出力側横の出力線「 Row̲X̲Output（行出力）」
GOO，GOEへつながる

それぞれの線を左クリックすると出てくる選択画面
図 5-1

ディジタル・ブロック周辺の配線

53

2ND AREA ・ PSo Cの 動かし 方̲ N（ X，N は番号）」を経由してディジタル・ブ

第6 章

プログラム言語の役割

マクロ命令でLCD 表示や割り込み処理のレッスン

6 プログラム言語の役割

第章

C H A P T E R

PSoC1独自の8 ビットコアCPU「 M8C 」を駆使して，PSoC のシステムに用意されている
マクロ命令を使うレッスンを行います．レッスンではI/O ポートとプログラムだけの「じゃんけんマシン」や第8 章でも登場するキャラクタLCDの表示をする「LCD ベンチ」を製作します．

その前にスタートアップと呼ばれる「 b oot.as m 」というプログラムが存在します．表に出てこないのプログラム言語の役割は，最初は m a i n . c のへ飛んでいます．一般的な main() 関数は，処理中の main() 関数内にスタート命令を書くだけなを継続するため制御ループに入り終了しないことので，ユーザ・モジュールの管理人といったとこが多いですが，P S o C のスタート命令だけでは終ろです．スタート命令と呼んでいた関数は，A P I了してしまいます．その終了したあとは boot.asm（ Application Programming Interface の略称）に戻り，「何もしない」でぐるぐる回っています．

と呼ばれる関数の一つで，C コンパイラに備わっユーザ・モジュールを配置し「生成（構築）」するているものではなく，ユーザ・モジュールを生成と，API 関数を記述したアセンブラ・プログラム・するときに作り出される関数です．

ファイルがいくつも作成され，最終的に「リンク」

C 言語は main() という関数で始まります．実はboot.asm

作業で一つのプログラムになります（図6-1 ）．

プロジェクトとは多数のプログラムの 集 合 体．
「boot.asm」，「main.c」のほかにも合成されるプログラムは多数ある

普段は表には出てこな い．
「boot.asm」
はビルドするたびに書き換わる

Counter8̲1Int.asm
Counter8̲1.asm
Counter8̲1.hCounter8̲1.inc「ユー ザ・モ ジュール」を配 置し「構 築」すると作成されるコ ード．この 例 は「Counter8̲1」を生成すると自動的に作成され，API関数などが記述される「割り込み」
処理や宣言は各自記入する

PSoC の本当のスタート「main.c」
はプロジェクトを作成したときに作られ，「main()」関数からプログラムが実行される．
「main()」
関数は初めは「空」である
割り込みベクタやグローバル・リソース内容を展開する

多くの「マクロ命令」が記述されているので参照しよう「main.c」に飛ぶ
main ( ) に移る

main ( ) が終了すると無限ループ

図 6-1

プログラムの構成

59

2ND AREA ・ PSo Cの 動かし 方

で意識することはありませんが，ここから m a i n()第7 章

アナログ信号の処理方法ディジタル信号もアナログ信号として使うことができる！？

7 アナログ信号の処理方法

第章

C H A P T E R

外部や内部からのアナログ信号をPSoC に入力する三つの方法や，アナログ・ブロックの種類・中の構造（回路）などを紹介します．また，アナログ処理の配線の順番，ディジタル信号をアナログ信号として扱える考え方，AGND の使い方も解説します．

入力方法 3

プログラムを使い D-A 変換して内部に入力させる[ 図 7-1 c]

P S o C のアナログ信号の入力方法は大きく分けて三通りあります．
入力方法1ですが，P S o C では内部で再利用することができます．

センサやマイクなどの外部から入力して加工する

入力できるポートはP0[0] 〜P0[7] の8 本です．
このうち P0[2] 〜 P0[5] の 4 本はアナログ出力も兼ねています[ 図 7-1a]．

ユーザ・モジュールを配置するにはアナログ・ブロックの種類が重要なポイントになります．図ディジタル部で作った7-2 を見ながら説明します．

パルス波形をアナログ部に入力する① 図 7-2 a のブロックは C T（連続時間）ブロッ

ディジタル信号も振幅が 5V のパルス型の信号クと呼ばれ，普通のOP アンプとアナログ・スイとして扱います．P0[0] 〜 P0[7] に出力したものッチの集合体です．デザイン上はクロック入力を，アナログ信号として入力方法 1 と同様に利用がありますが，概念上の内部はクロックに依存します[ 図 7-1b]．

しない純粋なアナログ回路で， 図 7-2 b，c

入力方法 2

マイクやセンサのアナログ信号一度ポートに出力する

マイク発振回路

PSoC
センサ

図 7-1

a 入力方法1
ピン（ポート）に直接入力する

D-Aコンバータから出力する

D-A
コンバータ

PSoC

PSoC

b 入力方法2
ディジタル回路で作り内部で利用する

c 入力方法3
D-Aコンバータで作る

アナログ信号の入力方法

69

2ND AREA ・ PSo Cの 動かし 方

内蔵 D - A 変換器の多くは外部に出力するだけこのPDFは，CQ出版社発売の「アナログ・マイコン!? PSoCに 覚める本(28ピンDIP型PSoC&書き込み器&CD ROM付き)」の 部 本です．
内容・購内容
購法法などにつきましては以下のホームページをご覧下さい．
http://shop.cqpub.co.jp/hanbai/books/17/17541.htm
http://www.cqpub.co.jp/order.htm