...

MSP430 ベンチマーク比較

by user

on
Category: Documents
8

views

Report

Comments

Transcript

MSP430 ベンチマーク比較
参 考 資 料
アプリケーションレポート
JAJA140 was SLAA236_ 2004 年6月
www.tij.co.jp
MSP430 ベンチマーク比較
Greg Morton (I.Maruyama – 訳)
MSP430
要約
このアプリケーションノートは MSP430 と他ベンダーのマイクロコントローラとのベンチマーク
結果を示します。IAR システムズの統合開発環境 Embedded Workbench™をアプリケーショ
ンプログラムのビルドとシミュレーションモードによる実行に使用しました。使用したアプリケー
ションプログラムで、各マイクロコントローラの異なった側面からのパフォーマンスをベンチマー
クします。各アプリケーションプログラムのビルド時に、コードサイズと実行に必要な命令サイ
クル数を記録します。図 1と図 2は各マイクロコントローラのアプリケーションプログラムにおけ
る合計コードサイズと合計命令サイクル数を示します。
合計コードサイズ
10000
9000
サイズ (バイト)
8000
7000
6000
5000
4000
3000
2000
1000
0
MSP430F135 ATmega8
PIC18F242
8051
H8/300L
MC68HC11
マイクロコントローラ
図1.
合計コードサイズ
この資料は日本テキサス・インスツルメンツ(日本TI)が、お客様がTIおよび日本TI製品を理解するための一助としてお役に立てるよう、作成しておりま
す。製品に関する情報は随時更新されますので最新版の情報を取得するようお勧めします。
TIおよび日本TIは、更新以前の情報に基づいて発生した問題や障害等につきましては如何なる責任も負いません。また、TI及び日本TIは本ドキュメン
トに記載された情報により発生した問題や障害等につきましては如何なる責任も負いません。
最新の英語版資料
http://www-s.ti.com/sc/techlit/slaa205.pdf
SLAA205 翻訳版
1
SLAA236
合計命令サイクル数
700000
命令サイクル数
600000
500000
400000
300000
200000
100000
0
MSP430F135
ATmega8
PIC18F242
8051
H8/300L
MC68HC11
マイクロコントローラ
図2.
合計命令サイクル数
表 1にベンチマークしたマイクロコントローラの外部水晶発振周波数から CPU クロック入力へ
の分周数を示します。CPU クロック分周数と合計命令サイクル数を掛け算した結果が、全て
のコードの合計実行時間となります。
表1.
マイクロコントローラ
2
CPU クロック分周数
CPU クロック分周数
MSP430F135
1
ATmega8
1
PIC18F242
4
8051
12
H8/300L
2
MC68HC11
4
MSP430 ベンチマーク比較
SLAA236
表 2は MSP430 を1とした時の各マイクロコントローラの合計コードサイズと、合計命令サイク
ル数を示します。
表2.
MSP430 を 1 とした時の結果
マイクロコントローラ
合計コードサイズ
合計命令サイクル数
MSP430F135
1.00
1.00
ATmega8
1.82
1.26
PIC18F242
3.31
1.98
8051
2.45
1.58
H8/300L
2.45
1.78
MC68HC11
2.36
3.76
表 3 は各マイクロコントローラでアプリケーションプログラムをベンチマークしたコードサイズ
(バイト単位)と命令サイクル数を示します。
表3.
アプリケーション
プログラム名
MSP430F135
バイト数
サイクル数
コードサイズ及び命令サイクル数
ATmega8
バイト数
サイクル数
PIC18F242
バイト数
サイクル数
8051
バイト数
H8/300L
サイクル数
バイト数
MC68HC11
サイクル数
バイト数
サイクル数
8-bit Math
172
299
116
157
386
318
141
112
354
680
285
387
8-bit Matrix
118
2899
364
5300
676
20045
615
17744
356
9098
380
15412
8-bit Switch
180
50
342
131
404
109
209
84
362
388
387
214
16-bit Math
172
343
174
319
598
625
361
426
564
802
315
508
16-bit Matrix
156
5784
570
24426
846
27021
825
29468
450
15280
490
23164
16-bit Switch
178
49
388
144
572
163
326
120
404
398
405
230
32-bit Math
250
792
316
782
960
1818
723
2937
876
1756
962
1446
Floating-point
Math
662
1207
1042
1601
1778
1599
1420
2487
1450
2458
1429
4664
FIR Filter
668
152193
1292
164793
2146
248655
1915
206806
1588
245588
1470
567139
Matrix
Multiplication
Total
252
6633
510
16027
936
36190
345
9454
462
26750
499
26874
2808
170249
5114
213680
9302
336543
6880
269638
6866
303198
6622
640038
MSP430 ベンチマーク比較
3
SLAA236
ハードウエア乗算器とコンパイラの最適化の影響
MSP430 のハードウエア乗算器の影響をコンパイラの最適化とともに示します。
MSP430F135 は MSP430F149 との比較としてベンチマークしました。MSP430F149 はハー
ドウエア乗算器を持っていますが MSP430F135 は持っていません。この比較には IAR の
MSP430 用最新バージョン 3.10A の C コンパイラを用いてビルドし、ベンチマークのアプリケ
ーションプログラム実行を行ないました。 表 4に結果を示します。
表4.
アプリケーション
ハードウエア乗算器とコンパイラの最適化の影響
MSP430F135
MSP430F149
MSP430F149
最適化: 無効
最適化: 無効
最適化: 有効
ハードウエア乗算器: なし
ハードウエア乗算器: あり
ハードウエア乗算器: あり
バイト数
8 Bit Math
8 Bit 2 Dim Matrix
8 Bit Switch Case
16 Bit Math
16 Bit 2 Dim Matrix
16 Bit Switch Case
32 Bit Math
Floating-point Math
FIR Filter
Matrix Multiplication
Total
4
172
118
180
172
156
178
250
662
688
252
2828
MSP430 ベンチマーク比較
サイクル数
299
2899
50
343
5784
49
792
1207
152193
6633
170249
バイト数
156
118
180
156
156
178
248
702
728
236
2858
サイクル数
268
2899
50
268
5784
49
607
1012
143694
5399
160030
バイト数
136
124
178
134
112
176
222
678
732
166
2658
サイクル数
249
1110
49
248
1174
48
583
993
137161
2847
144462
SLAA236
付録
ベンチマークしたアプリケーションプログラム
マイクロコントローラのパフォーマンスをさまざまな側面でベンチマークするために、下に示す
簡単なアプリケーションセットをシミュレーションモードにて、各マイクロコントローラについて実
行しました。ソースコードは付録にあります。
8-bit_math.c – ソースファイルは 3 つの計算関数を含んでいます。3 つの計算関数は
2 つの 8 ビットの足し算、掛け算、割り算です。“main()”関数はそれぞれの関数を呼び
出します。
16-bit_math.c – ソースファイルは 3 つの計算関数を含んでいます。3 つの計算関数
は 2 つの 16 ビットの足し算、掛け算、割り算です。“main()”関数はそれぞれの関数を
呼び出します。
32-bit_math.c – ソースファイルは 3 つの計算関数を含んでいます。3 つの計算関数
は 2 つの 32 ビットの足し算、掛け算、割り算です。“main()”関数はそれぞれの関数を
呼び出します。
floating_point_math.c – ソースファイルは 3 つの計算関数を含んでいます。3 つの
計算関数は 2 つの浮動小数点の足し算、掛け算、割り算です。“main()”関数はそれぞ
れの関数を呼び出します。
8-bit_switch_case.c – ソースファイルには 1 つの 16 ケースを持つスイッチステート
関数が含まれています。8 ビットの値は特定のケースを選択します。“main()”関数は
“switch”関数を最終ケースにより選択した入力パラメータによって呼び出されます。
16-bit_switch_case.c – ソースファイルには 1 つの 16 ケースを持つスイッチステート
関数が含まれています。16 ビットの値は特定のケースを選択します。“main()”関数は
“switch”関数を最終ケースにより選択した入力パラメータによって呼び出されます。
8-bit_2-dim_matrix.c – ソースファイルには 3 つの 2 次元のアレイを含み、8 ビット
の値の内 1 つは初期化されています。“main()”関数はアレイ 1 からアレイ 2、アレイ 2
からアレイ 3 に値をコピーします。
16-bit_2-dim_matrix.c – ソースファイルには 3 つの 2 次元のアレイを含み、16 ビット
の値の内 1 つは初期化されています。“main()”関数はアレイ 1 からアレイ 2、アレイ 2
からアレイ 3 に値をコピーします。
fir_filter.c – ソースファイルにはシュミレーションされた ADC 入力データを使用した 17
係数タップのフィルター出力するコードが含まれています。
matrix_multiplication.c – ソースファイルには 3x4 マトリクスを 4x5 マトリクスによっ
て乗算するコードが含まれています。
MSP430 ベンチマーク比較
5
SLAA236
コンパイラ
CコンパイラはIARシステムズの統合開発環境(IDE) Embedded Workbench™にバンドルさ
れており、ベンチマークしたアプリケーションプログラムのビルドに使用しました。各マイクロコ
ントローラの評価版IDEはIARシステムズのwebサイトhttp://www.iar.comから入手可能です。
表 5にベンチマークアプリケーションのビルドに使用した各マイクロコントローラ用のCコンパイ
ラのバージョンを示します。コードサイズはそれぞれのアプリケーションプログラムのビルド時
に記録しました。
全てのアプリケーションプログラムはコンパイラの最適化を無効にしてビルドしました。これに
よりビルドした結果にコンパイラの影響を最小とします。例えば 8051 のコンパイラは最適化を
有効とするとコンパイル時に幾つかの算術関数の使用を可能にします。最適化アルゴリズム
は入力値を変化させずに算術関数とすることを決定するのに十分な性能です。これはコンパ
イラが算術関数の見極めと関数コードをその結果から置換することを可能にしています。
全てのアプリケーションプログラムの実行はシミュレーションモードで行いました。命令数は各
アプリケーションプログラムの実行に必要な値です。
表5.
マイクロコントローラ
6
C コンパイラバージョン
IAR C コンパイラバージョン
MSP430F135
2.21B
Atmel ATmega8
3.10C
Microchip PIC18F242
6.10A
Generic 8051
2.12A
Renesas H8/300L
4.20A
Motorola MC68HC11
4.45A
MSP430 ベンチマーク比較
SLAA236
ベンチマークしたアプリケーションプログラムのソースコード
以下は本ドキュメントで使用したベンチマークアプリケーションプログラムのソースコードファイル
です。
8-bit Math.c
/******************************************************************************
*
*
*
Name
: 8-bit Math
*
Purpose : Benchmark 8-bit math functions.
*
*******************************************************************************
/
typedef unsigned char UInt8;
UInt8 add(UInt8 a, UInt8 b)
{
return (a + b);
}
UInt8 mul(UInt8 a, UInt8 b)
{
return (a * b);
}
UInt8 div(UInt8 a, UInt8 b)
{
return (a / b);
}
void main(void)
{
volatile UInt8 result[4];
result[0] = 12;
result[1] = 3;
result[2] = add(result[0], result[1]);
result[1] = mul(result[0], result[2]);
result[3] = div(result[1], result[2]);
return;
}
MSP430 ベンチマーク比較
7
SLAA236
8-bit 2-dim Matrix.c
/*******************************************************************************
*
*
Name : 8-bit 2-dim Matrix
*
Purpose : Benchmark copying 8-bit values.
*
*******************************************************************************/
typedef unsigned char UInt8;
const UInt8 m1[16][4] = {
{0x12, 0x56, 0x90, 0x34},
{0x78, 0x12, 0x56, 0x90},
{0x34, 0x78, 0x12, 0x56},
{0x90, 0x34, 0x78, 0x12},
{0x12, 0x56, 0x90, 0x34},
{0x78, 0x12, 0x56, 0x90},
{0x34, 0x78, 0x12, 0x56},
{0x90, 0x34, 0x78, 0x12},
{0x12, 0x56, 0x90, 0x34},
{0x78, 0x12, 0x56, 0x90},
{0x34, 0x78, 0x12, 0x56},
{0x90, 0x34, 0x78, 0x12},
{0x12, 0x56, 0x90, 0x34},
{0x78, 0x12, 0x56, 0x90},
{0x34, 0x78, 0x12, 0x56},
{0x90, 0x34, 0x78, 0x12}
};
void main (void)
{
int i, j;
volatile UInt8 m2[16][4], m3[16][4];
for(i = 0; i < 16; i++)
{
for(j=0; j < 4; j++)
{
m2[i][j] = m1[i][j];
m3[i][j] = m2[i][j];
}
}
return;
}
8
MSP430 ベンチマーク比較
SLAA236
8-bit Switch Case.c
/*******************************************************************************
*
*
Name : 8-bit Switch Case
*
Purpose : Benchmark accessing switch statement using 8-bit value.
*
*******************************************************************************/
typedef unsigned char UInt8;
UInt8 switch_case(UInt8 a)
{
UInt8 output;
switch (a)
{
case 0x01:
output = 0x01;
break;
case 0x02:
output = 0x02;
break;
case 0x03:
output = 0x03;
break;
case 0x04:
output = 0x04;
break;
case 0x05:
output = 0x05;
break;
case 0x06:
output = 0x06;
break;
case 0x07:
output = 0x07;
break;
case 0x08:
output = 0x08;
break;
case 0x09:
output = 0x09;
break;
case 0x0a:
output = 0x0a;
break;
case 0x0b:
output = 0x0b;
break;
case 0x0c:
output = 0x0c;
MSP430 ベンチマーク比較
9
SLAA236
break;
case 0x0d:
output = 0x0d;
break;
case 0x0e:
output = 0x0e;
break;
case 0x0f:
output = 0x0f;
break;
case 0x10:
output = 0x10;
break;
} /* end switch*/
return (output);
}
void main(void)
{
volatile UInt8 result;
result = switch_case(0x10);
return;
}
10
MSP430 ベンチマーク比較
SLAA236
16-bit Math.c
/*******************************************************************************
*
*
Name : 16-bit Math
*
Purpose : Benchmark 16-bit math functions.
*
*******************************************************************************/
typedef unsigned short UInt16;
UInt16 add(UInt16 a, UInt16 b)
{
return (a + b);
}
UInt16 mul(UInt16 a, UInt16 b)
{
return (a * b);
}
UInt16 div(UInt16 a, UInt16 b)
{
return (a / b);
}
void main(void)
{
volatile UInt16 result[4];
result[0] = 231;
result[1] = 12;
result[2] = add(result[0], result[1]);
result[1] = mul(result[0], result[2]);
result[3] = div(result[1], result[2]);
return;
}
MSP430 ベンチマーク比較
11
SLAA236
16-bit 2-dim Matrix.c
/*******************************************************************************
*
*
Name : 16-bit 2-dim Matrix
*
Purpose : Benchmark copying 16-bit values.
*
*******************************************************************************/
typedef unsigned short UInt16;
const UInt16 m1[16][4] = {
{0x1234, 0x5678, 0x9012, 0x3456},
{0x7890, 0x1234, 0x5678, 0x9012},
{0x3456, 0x7890, 0x1234, 0x5678},
{0x9012, 0x3456, 0x7890, 0x1234},
{0x1234, 0x5678, 0x9012, 0x3456},
{0x7890, 0x1234, 0x5678, 0x9012},
{0x3456, 0x7890, 0x1234, 0x5678},
{0x9012, 0x3456, 0x7890, 0x1234},
{0x1234, 0x5678, 0x9012, 0x3456},
{0x7890, 0x1234, 0x5678, 0x9012},
{0x3456, 0x7890, 0x1234, 0x5678},
{0x9012, 0x3456, 0x7890, 0x1234},
{0x1234, 0x5678, 0x9012, 0x3456},
{0x7890, 0x1234, 0x5678, 0x9012},
{0x3456, 0x7890, 0x1234, 0x5678},
{0x9012, 0x3456, 0x7890, 0x1234}
};
void main(void)
{
int i, j;
volatile UInt16 m2[16][4], m3[16][4];
for(i = 0; i < 16; i++)
{
for(j = 0; j < 4; j++)
{
m2[i][j] = m1[i][j];
m3[i][j] = m2[i][j];
}
}
return;
}
12
MSP430 ベンチマーク比較
SLAA236
16-bit Switch Case.c
/******************************************************************************
*
*
*
Name
: 16-bit Switch Case
*
Purpose : Benchmark accessing switch statement using 16-bit value.
*
*******************************************************************************
/
typedef unsigned short UInt16;
UInt16 switch_case(UInt16 a)
{
UInt16 output;
switch (a)
{
case 0x0001:
output = 0x0001;
break;
case 0x0002:
output = 0x0002;
break;
case 0x0003:
output = 0x0003;
break;
case 0x0004:
output = 0x0004;
break;
case 0x0005:
output = 0x0005;
break;
case 0x0006:
output = 0x0006;
break;
case 0x0007:
output = 0x0007;
break;
case 0x0008:
output = 0x0008;
break;
case 0x0009:
output = 0x0009;
break;
case 0x000a:
output = 0x000a;
break;
case 0x000b:
output = 0x000b;
break;
MSP430 ベンチマーク比較
13
SLAA236
case 0x000c:
output = 0x000c;
break;
case 0x000d:
output = 0x000d;
break;
case 0x000e:
output = 0x000e;
break;
case 0x000f:
output = 0x000f;
break;
case 0x0010:
output = 0x0010;
break;
} /* end switch*/
return (output);
}
void main(void)
{
volatile UInt16 result;
result = switch_case(0x0010);
return;
}
14
MSP430 ベンチマーク比較
SLAA236
32-bit Math.c
/*******************************************************************************
*
*
Name : 32-bit Math
*
Purpose : Benchmark 32-bit math functions.
*
*******************************************************************************/
#include <math.h>
typedef unsigned long UInt32;
UInt32 add(UInt32 a, UInt32 b)
{
return (a + b);
}
UInt32 mul(UInt32 a, UInt32 b)
{
return (a * b);
}
UInt32 div(UInt32 a, UInt32 b)
{
return (a / b);
}
void main(void)
{
volatile UInt32 result[4];
result[0] = 43125;
result[1] = 14567;
result[2] = add(result[0], result[1]);
result[1] = mul(result[0], result[2]);
result[3] = div(result[1], result[2]);
return;
}
MSP430 ベンチマーク比較
15
SLAA236
Floating-point Math.c
/******************************************************************************
*
*
*
Name
: Floating-point Math
*
Purpose : Benchmark floating-point math functions.
*
*******************************************************************************
/
float add(float a, float b)
{
return (a + b);
}
float mul(float a, float b)
{
return (a * b);
}
float div(float a, float b)
{
return (a / b);
}
void main(void)
{
volatile float result[4];
result[0] = 54.567;
result[1] = 14346.67;
result[2] = add(result[0], result[1]);
result[1] = mul(result[0], result[2]);
result[3] = div(result[1], result[2]);
return;
}
16
MSP430 ベンチマーク比較
SLAA236
FIR Filter.c
/*******************************************************************************
*
*
Name : FIR Filter
*
Purpose : Benchmark a FIR filter. The input values for the filter
*
is an array of 51 16-bit values. The order of the filter
*
17.
*
*******************************************************************************/
#ifdef MSP430
#include "msp430x13x.h"
#endif
#include <math.h>
#define FIR_LENGTH 17
const float COEFF[FIR_LENGTH] =
{
-0.000091552734,
0.000305175781,
0.004608154297,
0.003356933594,
-0.025939941406,
-0.044006347656,
0.063079833984,
0.290313720703,
0.416748046875,
0.290313720703,
0.063079833984,
-0.044006347656,
-0.025939941406,
0.003356933594,
0.004608154297,
0.000305175781,
-0.000091552734
};
/* The following array simulates input A/D converted values */
const unsigned int INPUT[] =
{
0x0400, 0x0800, 0x0C00, 0x1000, 0x1400, 0x1800, 0x1C00, 0x2000,
0x2400, 0x2000, 0x1C00, 0x1800, 0x1400, 0x1000, 0x0C00, 0x0800,
0x0400, 0x0400, 0x0800, 0x0C00, 0x1000, 0x1400, 0x1800, 0x1C00,
0x2000, 0x2400, 0x2000, 0x1C00, 0x1800, 0x1400, 0x1000, 0x0C00,
0x0800, 0x0400, 0x0400, 0x0800, 0x0C00, 0x1000, 0x1400, 0x1800,
0x1C00, 0x2000, 0x2400, 0x2000, 0x1C00, 0x1800, 0x1400, 0x1000,
0x0C00, 0x0800, 0x0400
};
void main(void)
{
int i, y; /* Loop counters */
volatile float OUTPUT[36];
#ifdef MSP430
MSP430 ベンチマーク比較
17
SLAA236
WDTCTL = WDTPW + WDTHOLD; /* Stop watchdog timer */
#endif
for(y = 0; y < 36; y++)
{
for(i = 0; i < FIR_LENGTH/2; i++)
{
OUTPUT[y] = COEFF[i] * ( INPUT[y + 16 - i] + INPUT[y + i] );
};
OUTPUT[y] = OUTPUT[y] + ( INPUT[y + 16 - i] * COEFF[i] );
}
return;
}
18
MSP430 ベンチマーク比較
SLAA236
Matrix Multiplication.c
/*******************************************************************************
*
*
Name : Matrix Multiplication
*
Purpose : Benchmark multiplying a 3x4 matrix by a 4x5 matrix.
*
Matrix contains 16-bit values.
*
*******************************************************************************/
typedef unsigned short UInt16;
const UInt16 m1[3][4] = {
{0x01, 0x02, 0x03, 0x04},
{0x05, 0x06, 0x07, 0x08},
{0x09, 0x0A, 0x0B, 0x0C}
};
const UInt16 m2[4][5] = {
{0x01, 0x02, 0x03, 0x04, 0x05},
{0x06, 0x07, 0x08, 0x09, 0x0A},
{0x0B, 0x0C, 0x0D, 0x0E, 0x0F},
{0x10, 0x11, 0x12, 0x13, 0x14}
};
void main(void)
{
int m, n, p;
volatile UInt16 m3[3][5];
for(m = 0; m < 3; m++)
{
for(p = 0; p < 5; p++)
{
m3[m][p] = 0;
for(n = 0; n < 4; n++)
{
m3[m][p] += m1[m][n] * m2[n][p];
}
}
}
return;
}
(SLAA207_2004.06)
MSP430 ベンチマーク比較
19
IMPORTANT NOTICE
ご注意
日本テキサス・インスツルメンツ株式会社(以下TIJといいます)
及びTexas Instruments Incorporated(TIJの親会社、以下
TIJおよびTexas Instruments Incorporatedを総称してTIとい
います)は、
その製品及びサービスを任意に修正し、改善、改良、
その他の変更をし、
もしくは製品の製造中止またはサービスの提
供を中止する権利を留保します。従いまして、
お客様は、発注され
る前に、関連する最新の情報を取得して頂き、
その情報が現在有
効かつ完全なものであるかどうかご確認下さい。全ての製品は、
お
客様とTIとの間に取引契約が締結されている場合は、当該契約
条件に基づき、
また当該取引契約が締結されていない場合は、
ご
注文の受諾の際に提示されるTIの標準契約約款に従って販売
されます。
TIは、そのハードウェア製品が、TIの標準保証条件に従い販
売時の仕様に対応した性能を有していること、
またはお客様とTI
との間で合意された保証条件に従い合意された仕様に対応した
性能を有していることを保証します。検査およびその他の品質管
理技法は、TIが当該保証を支援するのに必要とみなす範囲で行
なわれております。各デバイスの全てのパラメーターに関する固有
の検査は、政府がそれ等の実行を義務づけている場合を除き、必
ずしも行なわれておりません。
TIは、製品のアプリケーションに関する支援もしくはお客様の製
品の設計について責任を負うことはありません。TI製部品を使用
しているお客様の製品及びそのアプリケーションについての責任
はお客様にあります。TI製部品を使用したお客様の製品及びア
プリケーションについて想定されうる危険を最小のものとするため、
適切な設計上および操作上の安全対策は、必ずお客様にてお取
り下さい。
TIは、TIの製品もしくはサービスが使用されている組み合せ、
機械装置、
もしくは方法に関連しているTIの特許権、著作権、回
路配置利用権、
その他のTIの知的財産権に基づいて何らかのラ
イセンスを許諾するということは明示的にも黙示的にも保証も表明
もしておりません。TIが第三者の製品もしくはサービスについて情
報を提供することは、TIが当該製品もしくはサービスを使用するこ
とについてライセンスを与えるとか、保証もしくは是認するということ
を意味しません。そのような情報を使用するには第三者の特許そ
の他の知的財産権に基づき当該第三者からライセンスを得なけれ
ばならない場合もあり、
またTIの特許その他の知的財産権に基づ
きTIからライセンスを得て頂かなければならない場合もあります。
TIのデータ・ブックもしくはデータ・シートの中にある情報を複製
することは、
その情報に一切の変更を加えること無く、且つその情
報と結び付られた全ての保証、条件、制限及び通知と共に複製が
なされる限りにおいて許されるものとします。当該情報に変更を加
えて複製することは不公正で誤認を生じさせる行為です。TIは、
そのような変更された情報や複製については何の義務も責任も負
いません。
TIの製品もしくはサービスについてTIにより示された数値、特性、
条件その他のパラメーターと異なる、
あるいは、
それを超えてなされ
た説明で当該TI製品もしくはサービスを再販売することは、当該
TI製品もしくはサービスに対する全ての明示的保証、及び何らか
の黙示的保証を無効にし、且つ不公正で誤認を生じさせる行為
です。TIは、
そのような説明については何の義務も責任もありません。
なお、
日本テキサス・インスツルメンツ株式会社半導体集積回路
製品販売用標準契約約款もご覧下さい。
http://www.tij.co.jp/jsc/docs/stdterms.htm
Copyright  2005, Texas Instruments Incorporated
日本語版 日本テキサス・インスツルメンツ株式会社
弊 社 半 導 体 製 品 の 取り扱 い・保 管につ い て
半導体製品は、取り扱い、保管・輸送環境、基板実装条件によっ
ては、お客様での実装前後に破壊/劣化、または故障を起こすこ
とがあります。
弊社半導体製品のお取り扱い、ご使用にあたっては下記の点
を遵守して下さい。
1. 静電気
● 素手で半導体製品単体を触らないこと。どうしても触
る必要がある場合は、リストストラップ等で人体からアー
スをとり、導電性手袋等をして取り扱うこと。
● 弊社出荷梱包単位
(外装から取り出された内装及び個装)
又は製品単品で取り扱いを行う場合は、接地された導
電性のテーブル上で(導電性マットにアースをとったも
の等)、アースをした作業者が行うこと。また、コンテ
ナ等も、導電性のものを使うこと。
● マウンタやはんだ付け設備等、半導体の実装に関わる
全ての装置類は、静電気の帯電を防止する措置を施す
こと。
● 前記のリストストラップ・導電性手袋・テーブル表面
及び実装装置類の接地等の静電気帯電防止措置は、常
に管理されその機能が確認されていること。
2. 温・湿度環境
● 温度:0∼40℃、相対湿度:40∼85%で保管・輸送
及び取り扱いを行うこと。(但し、結露しないこと。)
● 直射日光があたる状態で保管・輸送しないこと。
3. 防湿梱包
● 防湿梱包品は、開封後は個別推奨保管環境及び期間に
従い基板実装すること。
4. 機械的衝撃
● 梱包品
(外装、内装、個装)
及び製品単品を落下させたり、
衝撃を与えないこと。
5. 熱衝撃
● はんだ付け時は、最低限260℃以上の高温状態に、10
秒以上さらさないこと。(個別推奨条件がある時はそれ
に従うこと。
)
6. 汚染
● はんだ付け性を損なう、又はアルミ配線腐食の原因と
なるような汚染物質(硫黄、塩素等ハロゲン)のある環
境で保管・輸送しないこと。
● はんだ付け後は十分にフラックスの洗浄を行うこと。
(不純物含有率が一定以下に保証された無洗浄タイプの
フラックスは除く。)
以上
2001.11
Fly UP