もう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ビットカウンタとして点滅する。
#includevoid 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());
}
}