電子ブロック工房:2013年 12月の記事

LPC810でLチカ色々(SCT) [LPC]

2013年12月16日

一つ前の記事では、割込みも何も使わない最もシンプルな方法でGPIOを操作して、LEDをブリンクさせた。これは、単にLPC810へのプログラムの書き込みが出来ることを確認したに過ぎないので、もう少し高度なLEDブリンクを行なって、当面の目標(LPC810で作ってみたい、ある回路)に少しでも近づけたいと思う。

以前紹介したように、LPC810では、PWMの高機能版であるSCT(State Configurable Timer)が面白い。自分としては、是非これを使えるようにしておきたい。

LPC810を使ってみた。 [LPC]

2013年12月8日

NXP セミコンダクターのLPC810は、32ビットのARM Cortex-M0+を搭載しながらも、DIP-8パッケージという、一風変わった石である。小規模の回路を作成するのに面白そうなので、使ってみようと思う。一つ前の記事でも紹介したが、SCT(State Configurable Timer)という、高機能なPWMが面白そうである。

以前から興味を持っていたのだが、各種ディーラーでも、NXPでも在庫が無い状況がずっと続いていたが、近日入荷されたので、早速購入してみた。

2013-12-08-IMG_0390s.jpg

LPCXpresso IDEのRed State Machine file generatorを使ってみた [LPC]

2013年12月3日

LPC8xx(LPC810/LPC811/LPC812)に搭載されているSCT(State Configurable Timer)は、このシリーズの石の目玉となる機能のようで、通常のPWMとして使えるだけでなく、多彩なコントロールの仕方が可能なタイマーらしい。User's Manualに次のような機能が例としてあげられている。
 ・ 複数のPWMを制御
 ・ dead-timeコントロール付きのPWM
 ・ reset-capability付きのPWM
 ・ その他、今までのPWMでは出来なかった設定

一度設定すれば、CPUからの制御無しに、それ自身で動作を続ける。また、割り込みを掛けることも可能である。

一つの石あたり、32ビットのタイマーが一つ用意されている。また、2つの16ビットのタイマーとして使うことも出来るようだ。クロックは、内部及び外部からの両方が使用可能。基本的に、up-counterであるが、up/downを交互に行なうモードもあるらしい。

SCTには、"state"という概念があって、これで色々制御しているようである。次のイベントが用意されている。
 ・ counter match condition
 ・ input/output condition
 ・ 上記2つのコンビネーション(指定のstateにおいて)
 ・ count direction

個々のイベントでは、次のことが制御可能だ。
 ・ outputs
 ・ interrupts
 ・ states

ただし、
 ・ "Match register 0"というイベントは、automatic limitとして利用可能。
 ・ up/downカウンターとして使用している場合、そのdirectionごとにイベント設定が可能。
 ・ Matchイベントは、特定のイベントが起こるまで止めておくことが可能。

それぞれの設定は、次の個数だけ設けることが出来る。
 ・ 4 inputs
 ・ 4 outputs
 ・ 5 match/capture registers
 ・ 6 events
 ・ 2 states

このSCTという機能は、多種多彩な制御が出来る一方で、その複雑さ故に設定の方法は難易度が高くなっている。これを容易に行なう為のツールとして、LPCXpresso IDE内に、"Red State Machine file generator"という、GUIによる設定ツールが設けられているので、試してみた。