付録A ビット長可変パルスジェネレータ |
「ハードウェア編」の「4.3 タイマー1(T1)」「モード3:ビット長可変パルスジェネレータ(9〜16ビット)」で示した計算式についての補足説明です。
・大区間Pの周期Tp
Tp=2[BIT]×Ttc ・大区間P内の総‘L’レベルパルス幅ΣTL ΣTL=(2[BIT]×[T1LC]/256+[T1HC])×Ttc |
・T1HC,T1LCは10進数
・[T1HC]は有効ビット値
[BIT]は設定するビット長です。大区間P内の小区間Tの数は、ビット長によって決まり,タイマー1上位リロードレジスタ(T1HR)とタイマー1下位リロードレジスタ(T1LR)で設定します。ただし,T1LRは00Hに設定してください。9ビットパルスジェネレータの設定であれば、[BIT]=9であり、大区間Pの周期はTp=29・Ttc=512Ttcとなります。小区間Tは256Ttc(Ttc:パルス信号のクロック周期)で構成されているので、大区間Pには小区間Tが2回繰り返されます。
ビット長 | 小区間Tの 繰り返し 回数 |
パルスジェジェレータ ビット長の設定(2進) |
'L'レベルパルス幅の設定(2進) | ||
T1HRの値 | T1LRの値 | T1HRの値 (上位ビット) | T1LRの値 (下位ビット) | ||
16 | 256 | 0000 0000 | 0000 0000 | XXXX XXXX | XXXX XXXX |
15 | 238 | 1000 0000 | 0000 0000 | XXXX XXXX | XXXX XXX0 |
14 | 64 | 1100 0000 | 0000 0000 | XXXX XXXX | XXXX XX00 |
13 | 32 | 1110 0000 | 0000 0000 | XXXX XXXX | XXXX X000 |
12 | 16 | 1111 0000 | 0000 0000 | XXXX XXXX | XXXX 0000 |
11 | 8 | 1111 1000 | 0000 0000 | XXXX XXXX | XXX0 0000 |
10 | 4 | 1111 1100 | 0000 0000 | XXXX XXXX | XX00 0000 |
9 | 2 | 1111 1110 | 0000 0000 | XXXX XXXX | X000 0000 |
[T1LR]は、タイマー1下位比較データレジスタ(T1LC)の値を示し、すべての小区間に共通な‘L’レベルパルス幅を設定します。[T1LC]=3であれば、すべての小区間に3Ttcの‘L’レベルパルスが付加され、大区間内の‘L’レベルパルス幅は6Ttcになります([T1HC]=00の場合)。
[T1HC]はタイマー1上位比較データレジスタ(T1HC)の有効値を示し、大区間P内に追加される‘L’レベルパルス幅を設定します。
[T1HC]によって‘L’レベルパルスが付加される小区間の位置は、次の図のとおりです。[T1HC]=1の場合には‘1’と示されている区間に‘L’レベルパルスが1Ttcだけ付加され、[T1HC]=6の場合には“2”と“4”と示されている区間に1Ttc幅の‘L’レベルパルスが付加されます。
先の例では[T2HC]=0でしたが、[T1HC]=1の場合は次のようになり、大区間P内の‘L’レベルパルス幅は7Ttcになります。なお、9ビットパルスジェネレータの場合の有効ビットは1です。
次に、11ビットパルスジェネレータについて説明します。
[BIT]=11であり、大区間Pの周期はTP=211・Ttc=2048Ttcとなります。小区間Tは256Ttc(Ttc:パルスジェネレータのクロック周期)で構成されているので、大区間Pには小区間Tが8回繰り返されます。
図103はT1LCを一定とした場合のT1HCによる出力波形の変化を示しています。
T1LC=10(0AH),[T1HC]=0のとき、すべての小区間において10Ttcの‘L’レベルパルスが出力されます。
[T1HC]=3のときには、(B)のパルスように、ひとつの大区間の中に11Ttcの‘L’レベルパルスを持つ小区間が3つ生成されます。[T1HC]=4のときには、(C)のパルスのように11Ttcの‘L’レベルパルスを持つ小区間が4つ生成されます。また、[T1HC]=5のときには、(D)のように、11Ttcの‘L’レベルパルスを持つ小区間が5つ生成されます。
[←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1999