ユーザモジュールの配置と
グローバルリソースの設定



この図で何となく分かるかもしれないけれども、ここでは

・ユーザモジュールの配置
・PSoCデバイス全体に絡む設定
・ユーザモジュールに関する設定
・入出力ピンや内部配線の設定

の4つを行う。これで予定したモジュールが配置され、パラメータも設定され、
アプリケーションの生成が行われる。パラメータが結構多くて面倒な
気がするかも知れないけれども、「分からないところはとりあえずそのまま利用」
という程度でもかまわない。

デバイスエディタ(インターコネクト)画面でやること
 初めてPSoC Designerを使う時、たぶん、このインターコネクト画面が一番面倒くさいと感じるところじゃないかと思う。でも、ここが分かってくると、複数のユーザモジュールを連携させたり、「ちょっとあれが欲しい」と思ったときにペタペタと貼り付けて配線を変えて一丁あがりという、電子ブロック的なおもしろさが得られる画面でもあるので、なんとか頑張って欲しい。

 とりあえずここでやることは上にも書いたとおり、
・ユーザモジュールの配置
・PSoCデバイス全体に絡む設定
・ユーザモジュールに関する設定
・入出力ピンや内部配線の設定


の四ステップである。では、順次やっていくことにしよう。

ユーザモジュールの配置

 セレクション画面から移動してきたときの画面はたぶんこんな感じ。プロジェクトを開いたりした後など、別の画面になっているときにこの画面に移りたい時は上の方のメニューから
 View=> Device Editor
の後に
 Config=>Interconnect
を選択すると、この画面に移ることができる。

 さて、画面中央部で上に4個×4行に並んでいるのがデジタルPSoCブロック、下に3x4個並んでいるのがアナログPSoCブロックである。今回はPWMなので、上のデジタルPSoCブロックを使う。
 この画面のままではいささか見づらいので、拡大表示しておこう。拡大はCTRLキーを押しながらマウスの左クリック、またはCTRLキーを押しながら左のボタンでドラッグで範囲指定拡大となる。


 ちょっと先に進んでしまっているが、この画面程度の大きさにしたほうが見やすいと思う。さて、ここで上の「Selected User Modules」に置かれたPWM16のうち1個目(PWM16_1)を配置しよう。左クリックすると配置できる候補地がこの図のように色が変わって示される。この場所で良ければ、ここで選んでいるようにConfig=>Place User Modleで配置される。この場所ではなく他の場所に配置したいときは一個上にあるConfig=>Next Allowed Placementをやると一回ごとに移動していく。元に戻るという機能が無いので粋すぎてしまったら同じ場所にくるまでNext・・を続けることになる。
Placeして配置を決めた後でやっぱり配置を換えたいと言うときは今はシャドウされているけど、Unplaceして、再度新しい場所にお引っ越しさせれば良い。
 削除などは、配置されたユーザモジュール(上のSelected User Modulesでも、中央部のモジュールの図でもいい)を右クリックして出てきたメニューからDeleteを選べばいい。

Config=>Place User Moduleをして、配置を確定すると、下の図のようにブロックに色が付く。


とりあえず、ここでは、DBB00とDBB01にPWM16_1を、お隣のDCB02とDCB03にPWM16_2を配置する。同じ要領でPWM16_2を隣のDCB02とDCB03に割り付けてみよう。貼り付け直前は下の図のような具合。

これで一応配置は終わりである。続いてPSoC全体の設定をやってしまおう。
PSoC全体の設定(グローバルリソースの設定)
PSoC全体にからむものを、PSoC Designerではグローバル・リソースと呼んでいる。こいつの設定は画面の左うえのほうにある。メニュー形式で選べば良い。
たかだか数百円のチップのくせにずいぶんといろいろあるものだけど、全部を理解するのは大変なので、とりあえずわからないところはデフォルトのままでかまわない。
項目 設定 備考
CPU_Clock 3_MHz(SysClk/8) CPUの動作クロック。
今回はCPUの速度に依存するようなものでもないので、何でもいい。
32K_Select Internal PSoC内部の発振回路を使うので、Internal
PLL_Mode PLL_Mode 外部クロックに同期させるPLL機能は使わない
Sleep_Timer 512_Hz スリープタイマー用クロックの設定。今回は使わないのでデフォルトのまま
VC1=SysClk/N 16 VC1クロックの分周比設定。SysClk(24MHz)を16分周したものにする
VC2=VC1/N 16 VC2クロックの分周比設定。VC1/16にする(VC1で1/16しているので、SysClkの1/256になる)
VC3 Source  SysClk/1 VC3クロックのクロック源設定。今回は使ってないので、デフォルトのまま
VC3 Divider  VC3のクロック分周比設定。今回は使ってないのでデフォルトのまま 
SysClk Source  Internal_24_MHz クロック源としてPSoC内部の24MHz発振回路を使うか、外部からのクロック入力を使うかの設定。今回は内部を使うのでInternal 
SysClk*2 Disable No PSoC内部にある24MHzから48MHzを作り出すクロックダブラを止めるかどうかの設定。今回は使ってないので、デフォルトのままにした。 
Analog Power SC On/Ref Low アナログPSoCブロックのスイッチドキャパシタを動かすか否かやリファレンス電圧源のパワー設定。今回は使ってないので、デフォルトのまま。 
Ref_Mux (Vdd/2)±BandGap リファレンス電圧。今回は使ってないのでデフォルトのまま
AGndBypass  Disable AGND(アナログGND)をピンと接続する機能。今回は使わないのでDisable  
Op-Amp Bias  Low アナログPSoCのオペアンプの動作速度/消費電流に影響するパラメータ。今回は使っていないのでデフォルトのまま
A_Buf_Power  Low アナログ信号出力バッファのパワー設定。今回はつかってないないのでデフォルトのまま 
SwitchModePump  OFF PSoC内蔵の昇圧用発振器の制御。今回は使わないのでOFF 
Trip Voltage 4.64V[5.00V]  トリップ電圧。4.64Vに設定(デフォルトのまま) 
LVD ThrottleBac Disable 電圧低下に合わせてCPUクロックを下げる機能。使ってないのでDisable(デフォルトのまま) 
Supply Voltage 5.0V 今回は+5V動作なので5.0V 
Watchdog Enable Disable Watchdogタイマーを使うか否か。今回は使わないのでDisable(デフォルトのまま) 

とりあえず分からないうちは毎回こんな設定にしておいてもかまわない。いずれ必要に応じて勉強していけばいいだけのことである。
というところで、一息つこう。次はユーザモジュールのパラメータ設定と配線である。