Deadtime register (TIM1_DTR) の設定値とデッドタイム一覧表

デッドタイムには大切な意味があるのですが、ここでは解説しません.
と書いたものの、やっぱりデッドタイムの意味を説明しないことには話がピーマンだと思い、デッドタイム機能の意味をまず解説することにします.

ことはSTM8Sをモーター制御に使おうとしたときに起こります.

モーター制御回路は下図のような回路です.中央にあるモーターを、正転/逆転/停止させる制御をしたいという回路です.
中央がモーターではなくて、トランスになっている回路もありえます.そういう回路の場合は、1秒間に数万回も正転/逆転を繰り返します.
こういう回路をHブリッジと呼びます.Hの形をしているからです.

トランジスタQ1とQ3をオンにすると、モーターに右向きに電流がながれてモーターが回転します.(Q4Q2はオフ)

トランジスタQ4とQ2をオンにすると、モーターに左向きに電流がながれてモーターが逆回転します.(Q1Q3はオフ)

問題が生じるのは、モーターを逆転させた瞬間です.
下図はQ1Q3をオンにした瞬間です.ゆえにQ4Q2がオフされて間もない時刻です.
トランジスタには厄介な性質があります.オンするのは速いんだけど、オフするのが遅いんです.
ベース電圧がカットされたとしても、トランジスタが自分自身でダラダラとオンし続けてなかなかオフになってくれません.
そのダラダラ時間はトランジスタの品種によりますが、50Wぐらいのトランジスタですと500nSecぐらいあります.
すると、たった500nSecですが、下図の赤矢印のように大電流がバシッと流れてしまいます.
なぜなら、上のトランジスタも下のトランジスタも両方ともオンになってしまっているからです.
トランジスタは加熱するし、消費電力は増えるしで良いことではありません.
この電流のことを「貫通電流」と呼びます.

貫通電流をなくすにはどうするか?
上下のトランジスタを同時刻に切り替えるのではなく、上(Q1)オフ→しばらく待って→下(Q2)オン のように完全オフの待ち時間を設ければいいわけです.
この待ち時間をデッドタイムと呼びます.
このデッドタイムは、電源制御回路では必須の操作です.

下図は、上段が上トランジスタQ1の制御タイミング、下段が下トランジスタQ2の制御タイミングの例です.
下の網掛けの部分がデッドタイムです.一時的に完全オフの時間を作っています.



ようやく、デッドタイム設定方法の解説です.

STMicro社のライブラリでは、TIM1_BDTRConfig()関数の第3引数でデッドタイムの時間長を設定します.

TIM1_BDTRConfig( TIM1_OSSISTATE_DISABLE, TIM1_LOCKLEVEL_OFF, (u8)0xff, TIM1_BREAK_DISABLE, TIM1_BREAKPOLARITY_HIGH, TIM1_AUTOMATICOUTPUT_DISABLE);

デッドタイムの時間長は、第3引数で決まるクロック倍数 x クロック周期 で決まります.
すなわち、デッドタイム = 100 * (1/16MHz) = 6.25uSec のような具合です.

下表は、第3引数の設定値と、クロック倍数の一覧表です.
また、具体的に得られるデッドタイムをクロック周波数別にuSecで計算した一覧表です.
第3引数の値が大きい領域では、得られるデッドタイムの分解能がまばらになってゆくことに留意してください.

ところで、ここでいうクロックとは、どのクロックのことでしょうか?   事情は複雑です.

・水晶発振器の16MHz?
・分周したfMASTER?       →クロックについてはこちら
・さらに分周したfCPU?
・TIMER回路の中でfMASTERを分周したクロック?

どれも不正解ですが、いちばん正解に近いのは、fMASTERです.TIMER回路に入った直後のクロックです.

これって、ええっそうなの? と思う話ですよね.
なぜかというと、カウンタはTIMER回路内部で分周されたクロックで動いているわけなので、デッドタイムも同じクロックで生成していると思うのが同期回 路を知っている人の普通の判断です.けれども一方で、デッドタイムを設けるのは貫通電流を避けるためですから、できれば高精度に時間調整したいという事情 があり、分周しないなるべく速いクロックで時間を決めたいという事情に従ったのだと推察されます.

したがって、STM8S-DISCOVERYでいうと、なるべく速いに越したことはないポリシーでクロック設定した場合では、fMASTER=16MHzをデッドタイム用クロックとする、が正解に近いわけです.

正解に近いなどと煮え切らないのは、デッドタイム用クロックは、TIMER回路の入り口に近いところで、fMASTER/外部トリガピンTIM_ETR/外部ピンTIM1_CHx の3者択一で決めますので、必ずしもfMASTERだとは限らないからなのです.

ともあれ、よくあるパターンであろう下表の16MHzの列を見ると、デッドタイムを最大で63uSecまで設定できることがわかります.




クロック別の遅延時間 uSec
DTG[7:0] クロック
倍数

16MHz 8MHz 4MHz 2MHz 1MHz
00 0
0.0000 0.000 0.00 0.0 0 uSec
01 1
0.0625 0.125 0.25 0.5 1 uSec
02 2
0.1250 0.250 0.50 1.0 2 uSec
03 3
0.1875 0.375 0.75 1.5 3 uSec
04 4
0.2500 0.500 1.00 2.0 4 uSec
05 5
0.3125 0.625 1.25 2.5 5 uSec
06 6
0.3750 0.750 1.50 3.0 6 uSec
07 7
0.4375 0.875 1.75 3.5 7 uSec
08 8
0.5000 1.000 2.00 4.0 8 uSec
09 9
0.5625 1.125 2.25 4.5 9 uSec
0A 10
0.6250 1.250 2.50 5.0 10 uSec
0B 11
0.6875 1.375 2.75 5.5 11 uSec
0C 12
0.7500 1.500 3.00 6.0 12 uSec
0D 13
0.8125 1.625 3.25 6.5 13 uSec
0E 14
0.8750 1.750 3.50 7.0 14 uSec
0F 15
0.9375 1.875 3.75 7.5 15 uSec
10 16
1.0000 2.000 4.00 8.0 16 uSec
11 17
1.0625 2.125 4.25 8.5 17 uSec
12 18
1.1250 2.250 4.50 9.0 18 uSec
13 19
1.1875 2.375 4.75 9.5 19 uSec
14 20
1.2500 2.500 5.00 10.0 20 uSec
15 21
1.3125 2.625 5.25 10.5 21 uSec
16 22
1.3750 2.750 5.50 11.0 22 uSec
17 23
1.4375 2.875 5.75 11.5 23 uSec
18 24
1.5000 3.000 6.00 12.0 24 uSec
19 25
1.5625 3.125 6.25 12.5 25 uSec
1A 26
1.6250 3.250 6.50 13.0 26 uSec
1B 27
1.6875 3.375 6.75 13.5 27 uSec
1C 28
1.7500 3.500 7.00 14.0 28 uSec
1D 29
1.8125 3.625 7.25 14.5 29 uSec
1E 30
1.8750 3.750 7.50 15.0 30 uSec
1F 31
1.9375 3.875 7.75 15.5 31 uSec
20 32
2.0000 4.000 8.00 16.0 32 uSec
21 33
2.0625 4.125 8.25 16.5 33 uSec
22 34
2.1250 4.250 8.50 17.0 34 uSec
23 35
2.1875 4.375 8.75 17.5 35 uSec
24 36
2.2500 4.500 9.00 18.0 36 uSec
25 37
2.3125 4.625 9.25 18.5 37 uSec
26 38
2.3750 4.750 9.50 19.0 38 uSec
27 39
2.4375 4.875 9.75 19.5 39 uSec
28 40
2.5000 5.000 10.00 20.0 40 uSec
29 41
2.5625 5.125 10.25 20.5 41 uSec
2A 42
2.6250 5.250 10.50 21.0 42 uSec
2B 43
2.6875 5.375 10.75 21.5 43 uSec
2C 44
2.7500 5.500 11.00 22.0 44 uSec
2D 45
2.8125 5.625 11.25 22.5 45 uSec
2E 46
2.8750 5.750 11.50 23.0 46 uSec
2F 47
2.9375 5.875 11.75 23.5 47 uSec
30 48
3.0000 6.000 12.00 24.0 48 uSec
31 49
3.0625 6.125 12.25 24.5 49 uSec
32 50
3.1250 6.250 12.50 25.0 50 uSec
33 51
3.1875 6.375 12.75 25.5 51 uSec
34 52
3.2500 6.500 13.00 26.0 52 uSec
35 53
3.3125 6.625 13.25 26.5 53 uSec
36 54
3.3750 6.750 13.50 27.0 54 uSec
37 55
3.4375 6.875 13.75 27.5 55 uSec
38 56
3.5000 7.000 14.00 28.0 56 uSec
39 57
3.5625 7.125 14.25 28.5 57 uSec
3A 58
3.6250 7.250 14.50 29.0 58 uSec
3B 59
3.6875 7.375 14.75 29.5 59 uSec
3C 60
3.7500 7.500 15.00 30.0 60 uSec
3D 61
3.8125 7.625 15.25 30.5 61 uSec
3E 62
3.8750 7.750 15.50 31.0 62 uSec
3F 63
3.9375 7.875 15.75 31.5 63 uSec
40 64
4.0000 8.000 16.00 32.0 64 uSec
41 65
4.0625 8.125 16.25 32.5 65 uSec
42 66
4.1250 8.250 16.50 33.0 66 uSec
43 67
4.1875 8.375 16.75 33.5 67 uSec
44 68
4.2500 8.500 17.00 34.0 68 uSec
45 69
4.3125 8.625 17.25 34.5 69 uSec
46 70
4.3750 8.750 17.50 35.0 70 uSec
47 71
4.4375 8.875 17.75 35.5 71 uSec
48 72
4.5000 9.000 18.00 36.0 72 uSec
49 73
4.5625 9.125 18.25 36.5 73 uSec
4A 74
4.6250 9.250 18.50 37.0 74 uSec
4B 75
4.6875 9.375 18.75 37.5 75 uSec
4C 76
4.7500 9.500 19.00 38.0 76 uSec
4D 77
4.8125 9.625 19.25 38.5 77 uSec
4E 78
4.8750 9.750 19.50 39.0 78 uSec
4F 79
4.9375 9.875 19.75 39.5 79 uSec
50 80
5.0000 10.000 20.00 40.0 80 uSec
51 81
5.0625 10.125 20.25 40.5 81 uSec
52 82
5.1250 10.250 20.50 41.0 82 uSec
53 83
5.1875 10.375 20.75 41.5 83 uSec
54 84
5.2500 10.500 21.00 42.0 84 uSec
55 85
5.3125 10.625 21.25 42.5 85 uSec
56 86
5.3750 10.750 21.50 43.0 86 uSec
57 87
5.4375 10.875 21.75 43.5 87 uSec
58 88
5.5000 11.000 22.00 44.0 88 uSec
59 89
5.5625 11.125 22.25 44.5 89 uSec
5A 90
5.6250 11.250 22.50 45.0 90 uSec
5B 91
5.6875 11.375 22.75 45.5 91 uSec
5C 92
5.7500 11.500 23.00 46.0 92 uSec
5D 93
5.8125 11.625 23.25 46.5 93 uSec
5E 94
5.8750 11.750 23.50 47.0 94 uSec
5F 95
5.9375 11.875 23.75 47.5 95 uSec
60 96
6.0000 12.000 24.00 48.0 96 uSec
61 97
6.0625 12.125 24.25 48.5 97 uSec
62 98
6.1250 12.250 24.50 49.0 98 uSec
63 99
6.1875 12.375 24.75 49.5 99 uSec
64 100
6.2500 12.500 25.00 50.0 100 uSec
65 101
6.3125 12.625 25.25 50.5 101 uSec
66 102
6.3750 12.750 25.50 51.0 102 uSec
67 103
6.4375 12.875 25.75 51.5 103 uSec
68 104
6.5000 13.000 26.00 52.0 104 uSec
69 105
6.5625 13.125 26.25 52.5 105 uSec
6A 106
6.6250 13.250 26.50 53.0 106 uSec
6B 107
6.6875 13.375 26.75 53.5 107 uSec
6C 108
6.7500 13.500 27.00 54.0 108 uSec
6D 109
6.8125 13.625 27.25 54.5 109 uSec
6E 110
6.8750 13.750 27.50 55.0 110 uSec
6F 111
6.9375 13.875 27.75 55.5 111 uSec
70 112
7.0000 14.000 28.00 56.0 112 uSec
71 113
7.0625 14.125 28.25 56.5 113 uSec
72 114
7.1250 14.250 28.50 57.0 114 uSec
73 115
7.1875 14.375 28.75 57.5 115 uSec
74 116
7.2500 14.500 29.00 58.0 116 uSec
75 117
7.3125 14.625 29.25 58.5 117 uSec
76 118
7.3750 14.750 29.50 59.0 118 uSec
77 119
7.4375 14.875 29.75 59.5 119 uSec
78 120
7.5000 15.000 30.00 60.0 120 uSec
79 121
7.5625 15.125 30.25 60.5 121 uSec
7A 122
7.6250 15.250 30.50 61.0 122 uSec
7B 123
7.6875 15.375 30.75 61.5 123 uSec
7C 124
7.7500 15.500 31.00 62.0 124 uSec
7D 125
7.8125 15.625 31.25 62.5 125 uSec
7E 126
7.8750 15.750 31.50 63.0 126 uSec
7F 127
7.9375 15.875 31.75 63.5 127 uSec



クロック別の遅延時間 uSec
DTG[7:0] クロック
倍数

16MHz 8MHz 4MHz 2MHz 1MHz
80 128
8.000 16.00 32.0 64 128 uSec
81 130
8.125 16.25 32.5 65 130 uSec
82 132
8.250 16.50 33.0 66 132 uSec
83 134
8.375 16.75 33.5 67 134 uSec
84 136
8.500 17.00 34.0 68 136 uSec
85 138
8.625 17.25 34.5 69 138 uSec
86 140
8.750 17.50 35.0 70 140 uSec
87 142
8.875 17.75 35.5 71 142 uSec
88 144
9.000 18.00 36.0 72 144 uSec
89 146
9.125 18.25 36.5 73 146 uSec
8A 148
9.250 18.50 37.0 74 148 uSec
8B 150
9.375 18.75 37.5 75 150 uSec
8C 152
9.500 19.00 38.0 76 152 uSec
8D 154
9.625 19.25 38.5 77 154 uSec
8E 156
9.750 19.50 39.0 78 156 uSec
8F 158
9.875 19.75 39.5 79 158 uSec
90 160
10.000 20.00 40.0 80 160 uSec
91 162
10.125 20.25 40.5 81 162 uSec
92 164
10.250 20.50 41.0 82 164 uSec
93 166
10.375 20.75 41.5 83 166 uSec
94 168
10.500 21.00 42.0 84 168 uSec
95 170
10.625 21.25 42.5 85 170 uSec
96 172
10.750 21.50 43.0 86 172 uSec
97 174
10.875 21.75 43.5 87 174 uSec
98 176
11.000 22.00 44.0 88 176 uSec
99 178
11.125 22.25 44.5 89 178 uSec
9A 180
11.250 22.50 45.0 90 180 uSec
9B 182
11.375 22.75 45.5 91 182 uSec
9C 184
11.500 23.00 46.0 92 184 uSec
9D 186
11.625 23.25 46.5 93 186 uSec
9E 188
11.750 23.50 47.0 94 188 uSec
9F 190
11.875 23.75 47.5 95 190 uSec
A0 192
12.000 24.00 48.0 96 192 uSec
A1 194
12.125 24.25 48.5 97 194 uSec
A2 196
12.250 24.50 49.0 98 196 uSec
A3 198
12.375 24.75 49.5 99 198 uSec
A4 200
12.500 25.00 50.0 100 200 uSec
A5 202
12.625 25.25 50.5 101 202 uSec
A6 204
12.750 25.50 51.0 102 204 uSec
A7 206
12.875 25.75 51.5 103 206 uSec
A8 208
13.000 26.00 52.0 104 208 uSec
A9 210
13.125 26.25 52.5 105 210 uSec
AA 212
13.250 26.50 53.0 106 212 uSec
AB 214
13.375 26.75 53.5 107 214 uSec
AC 216
13.500 27.00 54.0 108 216 uSec
AD 218
13.625 27.25 54.5 109 218 uSec
AE 220
13.750 27.50 55.0 110 220 uSec
AF 222
13.875 27.75 55.5 111 222 uSec
B0 224
14.000 28.00 56.0 112 224 uSec
B1 226
14.125 28.25 56.5 113 226 uSec
B2 228
14.250 28.50 57.0 114 228 uSec
B3 230
14.375 28.75 57.5 115 230 uSec
B4 232
14.500 29.00 58.0 116 232 uSec
B5 234
14.625 29.25 58.5 117 234 uSec
B6 236
14.750 29.50 59.0 118 236 uSec
B7 238
14.875 29.75 59.5 119 238 uSec
B8 240
15.000 30.00 60.0 120 240 uSec
B9 242
15.125 30.25 60.5 121 242 uSec
BA 244
15.250 30.50 61.0 122 244 uSec
BB 246
15.375 30.75 61.5 123 246 uSec
BC 248
15.500 31.00 62.0 124 248 uSec
BD 250
15.625 31.25 62.5 125 250 uSec
BE 252
15.750 31.50 63.0 126 252 uSec
BF 254
15.875 31.75 63.5 127 254 uSec



クロック別の遅延時間 uSec
DTG[7:0] クロック
倍数

16MHz 8MHz 4MHz 2MHz 1MHz
C0 256
16 32 64 128 256 uSec
C1 264
17 33 66 132 264 uSec
C2 272
17 34 68 136 272 uSec
C3 280
18 35 70 140 280 uSec
C4 288
18 36 72 144 288 uSec
C5 296
19 37 74 148 296 uSec
C6 304
19 38 76 152 304 uSec
C7 312
20 39 78 156 312 uSec
C8 320
20 40 80 160 320 uSec
C9 328
21 41 82 164 328 uSec
CA 336
21 42 84 168 336 uSec
CB 344
22 43 86 172 344 uSec
CC 352
22 44 88 176 352 uSec
CD 360
23 45 90 180 360 uSec
CE 368
23 46 92 184 368 uSec
CF 376
24 47 94 188 376 uSec
D0 384
24 48 96 192 384 uSec
D1 392
25 49 98 196 392 uSec
D2 400
25 50 100 200 400 uSec
D3 408
26 51 102 204 408 uSec
D4 416
26 52 104 208 416 uSec
D5 424
27 53 106 212 424 uSec
D6 432
27 54 108 216 432 uSec
D7 440
28 55 110 220 440 uSec
D8 448
28 56 112 224 448 uSec
D9 456
29 57 114 228 456 uSec
DA 464
29 58 116 232 464 uSec
DB 472
30 59 118 236 472 uSec
DC 480
30 60 120 240 480 uSec
DD 488
31 61 122 244 488 uSec
DE 496
31 62 124 248 496 uSec
DF 504
32 63 126 252 504 uSec



クロック別の遅延時間 uSec
DTG[7:0] クロック
倍数

16MHz 8MHz 4MHz 2MHz 1MHz
E0 512
32 64 128 256 512 uSec
E1 528
33 66 132 264 528 uSec
E2 544
34 68 136 272 544 uSec
E3 560
35 70 140 280 560 uSec
E4 576
36 72 144 288 576 uSec
E5 592
37 74 148 296 592 uSec
E6 608
38 76 152 304 608 uSec
E7 624
39 78 156 312 624 uSec
E8 640
40 80 160 320 640 uSec
E9 656
41 82 164 328 656 uSec
EA 672
42 84 168 336 672 uSec
EB 688
43 86 172 344 688 uSec
EC 704
44 88 176 352 704 uSec
ED 720
45 90 180 360 720 uSec
EE 736
46 92 184 368 736 uSec
EF 752
47 94 188 376 752 uSec
F0 768
48 96 192 384 768 uSec
F1 784
49 98 196 392 784 uSec
F2 800
50 100 200 400 800 uSec
F3 816
51 102 204 408 816 uSec
F4 832
52 104 208 416 832 uSec
F5 848
53 106 212 424 848 uSec
F6 864
54 108 216 432 864 uSec
F7 880
55 110 220 440 880 uSec
F8 896
56 112 224 448 896 uSec
F9 912
57 114 228 456 912 uSec
FA 928
58 116 232 464 928 uSec
FB 944
59 118 236 472 944 uSec
FC 960
60 120 240 480 960 uSec
FD 976
61 122 244 488 976 uSec
FE 992
62 124 248 496 992 uSec
FF 1008
63 126 252 504 1008 uSec
DTG[7:0] クロック
倍数

16MHz 8MHz 4MHz 2MHz 1MHz



クロック別の遅延時間 uSec



======英文仕様=================================================
DTG[7:0]: Deadtime generator set-up
This bitfield defines the duration of the deadtime inserted between the complementary outputs.
DT corresponds to this duration. tCK_PSC is the TIM1 clock pulse.
DTG[7:5] = 0xx => DT= DTG[7:0] x tdtg with tdtg = tCK_PSC (f1)
DTG[7:5] = 10x => DT= (64 + DTG[5:0]) x tdtg with tdtg= 2 x tCK_PSC (f2)
DTG[7:5] = 110 => DT = (32 + DTG[4:0]) x tdtg with tdtg= 8 x tCK_PSC (f3)
DTG[7:5] = 111 => DT = (32 + DTG[4:0]) x tdtg with tdtg = 16 x tCK_PSC (f4)
Example
If tCK_PSC= 125 ns (8 MHz), deadtime possible values are:
DTG[7:0] = 0 x 0 to 0 x 7F from 0 to 15875 ns in 125 ns steps (refer to f1)
DTG[7:0] = 0 x 80 to 0 x BF from 16 μs to 31750 ns in 250 ns steps (refer to f2)
DTG[7:0] = 0 x C0 to 0 x DF from 32 μs to 63 μs in 1μs steps (refer to f3)
DTG[7:0] = 0 x E0 to 0 x FF from 64 μs to 126 μs in 2 μs steps (refer to f4)
================================================================
inserted by FC2 system