もう11月...PSoC5 FirstTouch購入

本格的にDCモータの勉強をするためにいろいろ購入。

PSoC5という、PSoCにARMコア(Cortex-M3)を搭載したマイコンを使って、モータ制御に挑戦開始。

PSoC5は世に出てから2年ほどたつが、個人でのチップ単体の入手はまだ出来ないらしい。まずはPSoC5 First Touch Kitを購入し、使い方を学ぶことからはじめる。

PSoC5での開発は、PSoC Creatorというソフトウェア上で行う。バージョンがまだ1.0βなのがちょっと...開発はXilinxでいうEDKのようなスタイルだった。以前のPSoC Creatorと比べると抽象化されているらしく、具体的な配線を裏側で勝手に考えてくれるようになったとか。

開発の考え方は簡単で、ハードウェアを組み立てて、ピンを物理的なピンにマッピングし、ソフトウェアでハードウェアを操作するコードを書くだけ。アナログだけでなく、デジタルも組めるのだから面白い(Verilogが使えるらしい)。

GPIOが無いことに戸惑ってしまった。GPIOは、コントロールレジスタというコンポーネントを配置し、レジスタの出力をI/Oピンへ接続すれば作れる。CPUからレジスタの値を操作すれば、I/Oに反映されるという仕組み。

ピン配置は、PSoC5 FirstTouch Starter Kit Guideのピン配置を参考に設定した。P2[0..3]がLED[1..4]に対応し、P4[0..3]がLED[5..8]に対応しているので、図のようにマッピングした。

コードは以下のように、LedReg(GPIOに相当)にカウンタレジスタの値をひたすら書き続けるだけの単純なもの。これだけで、8つのLEDが8ビットカウンタとして点滅する。


#include

void main()
{
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
Counter_Enable();
Counter_Init();
Counter_Start();

/* CYGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
for(;;)
{
/* Place your application code here. */
LedReg_Write( Counter_ReadCounter());
}
}