[17호]JK전자와 함께하는 ARM 완전정복(3)-1
JK전자와 함/께/하/는 ARM 완전 정복Ⅱ.ARM Applications – 1부글 | JK전자 |
자료는 ARM을 처음 접하는 입문자로서 S/W 엔지니어 혹은 H/W 엔지니어를 대상으로 하였습니다. 처음에는 Cortex-M3 구조를 목표로 하였으나 전통적인 ARM(주로 ARM7, ARM9)의 구조에 대해서 먼저 이야기한 다음 Cortex-M3 구조에 대해서 하기로 마음을 고쳐 먹었습니다. Cortex-M3도 ARM 이기 때문에 전통적인 ARM의 구조에 대해서 잘 이해하고 Cortex-M3 구조와 비교해 보면서 공부한다면 큰 도움이 될 것입니다.
ARM Architecture 강의에서는 특정 CPU(S3C2440, STM32Fxx) 에 대한 내용 보다는 ARM Core의 이론적인 구조 자체에 대해서 많은 설명을 하였습니다. 이번 강의에서는 Samsung의 ARM9 CPU S3C2440 개발보드를 이용해서 실제 실습을 통해서 ARM에 대해서 공부해 보도록 하겠습니다.
I. ARM Architecture ~ IV. Cortex-M3 Applications 까지 분명 쉽지 않은 지루하고도 먼 여행이 되겠지만 ARM을 공부하는 임베디드 관련 엔지니어라면 언젠가는 한 번은 넘어야 하는 산이라 생각됩니다. 부디 이 자료가 ARM을 정복하는데 조금이라도 도움이 되시길 바랍니다.
강의 전체 로드맵
I. ARM Architecture | 임베디드 시스템 개론에 대한 설명과 ARM7, ARM9 의 구조에 대해서 설명합니다.
II. ARM Applications | 삼성의 S3C2440(ARM9) 개발보드(S3C2440 Mini 개발보드)를 이용해서 어셈블리어와 UART, GPIO 등을 실습합니다.
III. Cortex-M3 Architecture | Cortex-M3의 특징과 구조에 대해서 설명합니다.
IV. Cortex-M3 Applications | STM32F103VCT6 Dragon 개발보드를 이용해서 GPIO, LCD, SPI, UART, MP3, SDIO, I2C 등을 실습합니다.
이 강의 자료에 대한 모든 질의사항은 http://cafe.naver.com/avrstudio의 ARM Architecture Q&A게시판에 글을 남겨 주시거나 jk@deviceshop.net로 메일을 보내주시기 바랍니다. 가급적이면 여러 사람이 질문에 대한 답변을 공유할 수 있도록 네이버 카페 게시판을 이용해주셨으면 합니다. 감사합니다.
Ⅱ. ARM Applications 1부 목차
1. Base of Software Engineering 1.1 Memory Endian Formats 1.2 보수 표현 1.3 논리연산 1.4 진수변환 1.5 Data Types 1.6 Aligned & Un-Aligned Data 2. 어셈블리어 실습 2.1 ARM Simulator 환경 설정 |
2.2 Data Processing Instructions 2.3 Multiply Instructions 2.4 Load/Store Instructions 2.5 Branch Instructions 2.6 Status Register Access Instructions 2.7 Conditional Execution 3.1 S3C2440 CPU 3.2 S3C2440 Features |
3. S3C2440 개발보드 소개 3.3 S3C2440 HW IPs 3.4 Memory Controller 3.5 Timer 3.6 UART 3.7 NAND Booting 4. 개발환경 설정 4.1 IAR Workbench 개발환경 설정 4.2 ARM-JTAG 을 이용한 프로그램 다운로드 |
1장의 내용은 컴퓨터를 전공한 사람이라면 누구나 다 아는 내용이지만 어셈블리어 실습을 하기위해서는 반드시 알아야 하는 내용입니다. 다 아는 내용이겠지만 기억을 되살리는 차원에서 간단하게만 설명 하도록 하겠습니다.
1. Base of Software Engineering
1.1 Memory Endian Formats
워드 데이터 안에서의 바이트 순서로 크게 빅 엔디언과 리틀 엔디언으로 나눌 수 있습니다. 빅 엔디언은 사람이 숫자를 쓰는 방법과 같이 큰 단위의 바이트가 앞에 오는 방법이고, 리틀 엔디언은 반대로 작은 단위의 바이트가 앞에 오는 방법입니다. 다시 한번 강조하지만 이것은 워드 범위 내에서의 바이트 단위의 순서입니다.
또한 ARM 레지스터에 저장이 될 경우에는 엔디안의 구분이 없고 메모리 접근 측면에서만 구분이 필요합니다.
엔디안 종류 | 0×1234 | 0×12345678 | 아키텍쳐 |
Big-endian | 12 34 | 12 34 56 78 | 모토로라 등 |
Little-endian | 34 12 | 78 56 34 12 | x86 |
* 몇몇 아키텍처는 빅 엔디언과 리틀 엔디언 중 하나를 선택할 수 있도록 설계되어있고, 이를 바이 엔디언(Bi-endian)이라 부릅니다. PowerPC, DEC 알파, MIPS, PA-RISC, IA-64 등은 바이 엔디언을 사용하는 대표적인 아키텍처입니다. 우리가 공부하고 있는 ARM도 엔디언을 선택해서 사용할 수 있도록 설계되어 있습니다.
x86 아키텍처가 리틀 엔디언을 쓰기 때문에, 오늘날 x86 아키텍처를 사용하는 대부분의 데스크톱 컴퓨터는 리틀 엔디언을 쓰며 이를 “인텔 포맷” 이라고 합니다
Example)
32비트 숫자인 0x2A를 Little-endian으로 표시 하면?
0×00 00 00 2A = 2A 00 00 00
1.2 보수 표현
컴퓨터에서 보수를 사용하는 이유는 무엇일까요? 모든 것이 0과 1로 표현되는 컴퓨터에서 음수를 표현하는데 편리하기 때문에 사용합니다. 물론 이를 이용해서 뺄셈도 합니다. 예를 들면 12-3의 수식을 컴퓨터(ALU)에서 계산을 하면 실제로는 12에서 3을 빼는 것이 아니라 12와 3의 2의 보수(3의 음수표현)를 더해서 계산을 하게 됩니다.
1.2.1 “1″ 의 보수
주어진 이진수의 모든 자리 숫자를 반전(0을 1로, 1을 0으로)시키면 1의 보수를 얻을 수 있습니다.
8자리의 이진수 01001011(십진수로 75)의 1의 보수를 구하면 아래와 같습니다.
01001011 의 모든 자리의 수를 반전시킨다.
10110100 –> 1의 보수
1.2.2 “2″ 의 보수
1의 보수를 구한 다음 2진수 “1″ 을 더하면 됩니다.
8자리의 이진수 01001011(십진수로 75)의 2의 보수를 구하면 아래와 같습니다.
01001011 의 모든 자리의 수를 반전시킨다.
10110100 –> 1의 보수
10110100
+) 00000001 –> 1의 보수에서 1을 더합니다.
—————
10110101 –> 2의 보수
보수를 구할 때 한 자리가 더 길어질 경우에는 가장 높은 자리의 숫자는 버립니다.
1.2.3 “2″ 의 보수를 이용한 뺄셈
예제) 100-75를 2의 보수를 이용해서 연산하시요.
100-75는 100+(-75)와 같으므로
01100100 (10진수 100)
+) 10110101 (10진수 75의 2의 보수)
—————
100011001
새로 생긴 가장 높은 자리의 숫자를 빼고 남은 00011001은 십진수로 25와 같으며 이는 계산하려던 식의 결과입니다.
예제) 10-75를 2의 보수를 이용해서 연산하시요.
10-75는 10+(-75)와 같으므로
00001010 (10진수 10)
+) 10110101 (10진수 75의 2의 보수)
—————
10111111 (이 결과는 음수 : MSB가 1 이므로 다시 2의 보수를 취하면 65 즉 -65)
10111111 결과는 MSB가 1(음수)이므로 다시 2의 보수를 취해보면 01000001은 십진수로 65와 같으며 이는 계산하려던 식의 결과 -65가 됩니다.
1.3 논리 연산
1.3.1 NOT
2진수 각 자리의 값을 반대로 바꾸는 연산입니다. 이 연산은 어떤 값의 보수를 구할 때 효과적으로 사용할 수 있습니다.
NOT 0111
= 1000
C나 C++에는 “~” 연산을 통해 이 값을 구할 수 있습니다.
x = ~y;
1.3.2 OR
두 값의 각 자릿수를 비교해, 둘 중 하나라도 1이 있다면 1을, 아니면 0을 계산합니다.
0101
OR 0011
= 0111
C/C++에는 “ | ” 연산자가 이 기능을 제공합니다.
x = y | z;
1.3.3 XOR
두 값의 각 자릿수를 비교해, 값이 같으면 0, 다르면 1을 계산합니다.
0101
XOR 0011
= 0110
C/C++에는 “ ^ ” 연산자가 이 기능을 제공한다.
x = y ^ z;
1.3.4 AND
두 값의 각 자릿수를 비교해, 두 값 모두에 1이 있을 때에만 1을, 나머지 경우에는 0을 계산합니다.
0101
AND 0011
= 0001
C/C++에는 “ & ” 연산자가 이 기능을 제공한다.
x = y & z;
1.4. Shift 연산
1.4.1 왼쪽으로 쉬프트(<<)
“ << ” 키워드는 데이터를 왼쪽으로 비트 수만큼 이동시키기 때문에 2의 “이동할 비트수”를 제곱한 값과 데이터가 곱해진 값이 결과 값으로 도출됩니다. 5(b00000101)를 왼쪽으로 3비트 이동시키면 5 << 3 = 40(b00101000) 즉 5 * 8 한 것과 같은 효과가 나타납니다.
가중치 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
연산전 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
연산후 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
1.4.2 오른쪽으로 쉬프트(>>)
“>>” 키워드는 데이터를 오른쪽으로 비트 수만큼 이동시키기 때문에 2의 “이동한 비트수”를 제곱한 값으로 데이터를 나눗셈 한 값이 도출됩니다.
40(b00101000)를 오른쪽으로 1비트 이동시키면 40 >> 1 = 20(b00101000) 즉 40/2 한 것과 같은 효과가 있습니다.
가중치 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
연산전 | 0 | 0 | 1 | 0 | 2 | 0 | 0 | 0 |
연산후 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
1.4.3 부호가 있는 왼쪽 쉬프트 연산(<<)
79(b01001111) << 1 = -98(b10011110)
부호 비트(“1”)와 그 다음 비트(“0”)가 서로 다른 값인 경우 부호가 바뀌고 Overflow가 발생하게 됩니다. 위의 예제에서는 양수에서 음수로 바뀌면서 Overflow가 발생하였습니다.
가중치 | 부호 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
연산전 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
연산후 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
1.4.4 부호가 있는 오른쪽 쉬프트 연산(>>)
여기서 65의 2의 보수를 이용해서 -65를 표현했습니다. -65(b10111111) >> 1 = -33(b11011111)
예를 들어 위의 그림과 같이 “1011 1111” 값을 오른쪽으로 한번 이동하면 왼쪽에 생긴 빈 공간은 최상위 비트인 1 값으로 채워지는 것입니다. 만약 “-160 >> 4v 를 연산하면 -160 의 이진수 값인“1010 0000”가 오른쪽으로 4비트만큼 이동하고, 왼쪽에 생긴 네개의 빈 공간은 최상위 비트인 1 로 채워지므로 연산 결과는 “1111 1010”가 됩니다.
1.5 Rotate 연산
데이터의 모든 비트들을 각각 서로 이웃한 비트의 자리로 옮기고 한 쪽 끝에서 밀려 나가는 비트가 다시 반대편 끝으로 들어오게 되는 연산입니다.
1.5.1 부호 없는(Rotate no carry) 왼쪽 Rotate
23(b00010111) ROL 1 = 46(b00101110)
1.5.2 부호 없는(Rotate no carry) 오른쪽 Rotate
23(b00010111) ROR 1 = 139(b10001011)
Right circular shift or rotate
1.5.3 부호 있는(Rotate through carry) 왼쪽 Rotate
ROL과 동일하지만 Carry Flag가 최하위 비트로 이동하고, 최상의 비트의 값이 Carry Flag 로 이동됩니다.
23(b00010111) RCL 1 = 47(b00101111)
1.5.4 부호 있는(Rotate through carry) 오른쪽 Rotate
23(b00010111) RCR 1 = 267(b100001011)
Right rotate through carry
아주 기본적인 내용들이지만 기본적인 것부터 정확하게 알고 있어야 합니다. 주로 데이터 암호화나, 고속의 그래픽 처리 작업 등에서 Shift, Rotate 연산을 많이 사용합니다.
1.6 진수변환
2진수를 16진수로 변환할 때 4자리씩 끊어서 계산하면 편리합니다. 자주 쓰이는 수들의 2진수와 16진수들의 예제들입니다.
2^4 = 16B = b0001 0000 = 0×10
2^5 = 32B = b0010 0000 = 0×20
2^6 = 64B = b0100 0000 = 0×40
2^7 = 128B = 0×80
2^8 = 256B = b0001 0000 0000 = 0×100
2^10 = 1KB = b0100 0000 0000 = 0×400
2^20 = 1MB = b0001 0000 0000 0000 0000 0000 = 0×100000
2^30 = 1GB = 0×40000000
2^40 = 1TB = 0X10000000000
4KB = 0×1000, 64KB = 0×10000, 1MB = 0×100000
Ex)
4GB = 4*1GB = 4 * 2^30 = 2^2 * 2^30 = 2^32 = 0×100000000
256KB = 256*1KB = 2^8 * 2^10 = 2^18 = 0×40000
96KB = 64KB + 32KB = 2^6*2^10 + 2^5*2^10 = 0×10000 + 0×3000 = 0×13000
135KB = 128KB + 4KB + 2KB + 1KB = 2^17 + 2^12 + 2^11 + 2^10 = 0×20000 + 0×1000 + 0×800 + 0×400 = 0x21c00
1.7 Data Types
Byte(8 bits)
Halfword(16 bits)
Word (32 bits)
Long Word (64 bits)
- Value ranges
unsigned char val;
0 <= val <= 2^8(255)
signed char val;
-128(0×80) <= val <= 127(0x7F)
int(signed 32bit integer) val;
0×8000 0000 <= val <= 7FFFF FFFF
1.8 Aligned & Un-Aligned Data Access
1.8.1 Aligned Access
(1) Halfword Data Access : 데이터의 주소 값이 짝수이어야 합니다.
(2) Word Data Access : 데이터의 주소 값이 4의 배수이어야 합니다.
Aligned Data Access |
char buf[100];int *p; int gVar;p = (int *)&buf[0]; gVar = *p –> Data Abort 가능성 1p = (int *)&buf[1]; gVar = *p –> Data Abort 가능성 2 |
- Data Abort 가능성 2 : buf의 데이터형이 char(8 bit) 이기 때문에 0번째 이후 부터는 4의 배수가 아니기 때문에 Data Abort 가능성이 있습니다.
- Data Abort 가능성 1 : 0번째 인덱스인데 어떻게 보면 Data Abort 가능성이 없는 것처럼 보입니다. 보통은 Linker가 알아서 buf 변수의 할당 주소를 4의 배수에 맞추어 주지만 그렇지 않을 가능성도 있기 때문에 링커에 따라서는 Data Abort 가능성이 있는 것입니다. 그렇다면 Data Abort가 발생하지 않도록 char 배열 buf를 선언하려면 어떻게 해야 할까요? 컴파일러 지시자를 사용해서 char 배열 buf를 강제로 4의 배수로 맞추어 주는 것입니다.
Aligned Data Access |
#pragma data_alignment = 2 –> 강제로 4의 배수가 되도록 지시 char buf[100];int *p; int gVar;p = (int *)&buf[0]; gVar = *p –> 정상동작p = (int *)&buf[1]; gVar = *p –> 1번째 배열에서는 여전히 Data Abort 가능성 2 |
여기서 또 한가지 ARM C언어에서 구조체 선언을 할 때 어떻게 선언하는 것이 효율적인지를 알아 봅시다.
비 효율적인 구조체 데이터 선언 | |
struct { char a; int b; short c; int d; } gVar; |
메모리 배치 |
위의 그림을 보면 총 5byte의 메모리 공간을 낭비하였습니다. 그렇다면 선언 순서를 short c, int b 의 순서를 바꾸면 어떻게 될까요?
비 효율적인 구조체 데이터 선언 | |
struct { char a; short c; int b; int d; }gVar; |
메모리 배치 |
단지 선언 순서만 바꾸어도 메모리 낭비가 5-byte에서 1-byte로 줄었습니다.
1.8.2 Un-Aligned Data Access
(1) ARM Architecture v6 부터 지원됨
(2) ARM Architecture v4T, v5T(E) 등에서 Un-aligned data를 접근하려고 하면 Data Abort가 발생합니다.
JK전자와 함께하는 ARM 완전정복(3)-2 에서 계속 됩니다.
2채널 핸디형 오실로스코프 추천. OWON HDS1022M-N
(본 글은 pinkwink.kr에도 동기 기고되는 글입니다.)
이번에는 오실로스코프 하나를 소개할려고 합니다. Owon이라고 하는 중국 회사의 제품입니다. 다양한 모델이 라인업되어 있어서 몽땅 소개하기는 어렵고, 하나를 표본삼에 소개할까 합니다. OWON의 HDS1022M-N이라는 제품인데요. 기본 사양을 먼저 살짝 소개하겠습니다.
OWON HDS1022M-N
Bandwidth 20MHz
Sample rate 100MS/s
Horizontal Scale 5ns/div ~ 100s/div
Rise time <17.5ns @ input, typical
Channels Dual
Display 3.7 inch
Dimension 180*115*40 (mm)
이렇습니다. 일단 20MHz 대역의 밴드폭이니 보급형이라고 보실 수 있습니다. 그러나 같은 보급형이라고 하더라도, 이 정도 대역이면 어마어마한 전력이나 노이즈를 다루는 경우가 아니라 MCU 정도 레벨에서 연구 및 학습을 하시는 거라면 충분히 사용할만 합니다. 특히, 동급에 비해 어마어마한 가격의 매력(50만원대)을 가지면서, 또 그 기능도 괜찮기 때문이지요.
일단, 2채널 오실로스코프, 디지털 멀티미터 기능을 같이 가지고 있으면서, PC에 USB를 통해 연결해서 오실로스코프를 조작하고 그 데이터를 받아올 수도 있습니다. 그러면서 또한 쉽게 들고 다닐 수 있는 핸디형입니다. 그런데도 50만원대 가격이라면…. 흠… 괜춘하군…^^. 이라고 말 할 수 있지용.^^.
일단, 간단히 소개를 해볼까용??^^
박스 포장 상태입니다. 무난하고, 내용물에 대한 안내도 있네요^^
그걸 열면, 이렇게 알루미늄 케이스가 나타납니다.
열면 요렇게 잘 포장되어있지요. 뒤의 키보드랑 비교하면 제품의 크기가 손에 들기에 적당하다는 걸 알 수 있습니다.
또하나 놀랄만한건 이 가격의 제품인데도, 필요한 케이블 및 엑세사리가 모두 들어 있습니다. 응? 당연한거 아닌가? 하시겠지만, 아닙니다. 전 학생때 꽤 많은 계측기를 구매해 봤었는데요. 기본적인 프루브와 전원선을 제외하고 나며지 악세사리는 옵션으로 구매하게끔 해두는 경우도 많이 봤습니다.
처음 부팅될때 화면입니다. 그럼 이제 제품이 잘 동작하는지 확인해야죠. 오실로스코프같은 애들을 확인할려면 뭐 어떻게 할까… 망설일 필요없습니다. 대부분의 오실로스코프는 자체적으로 테스트를 할 수 있도록 배려하고 있습니다.
2채널짜리니까 저렇게 둘 다 연결하구용
제품에 포함되어있는 테스트 연결용 단자를 오실로스코프에 연결하고, 두 프루브중 하나만 GND에 연결하시면 됩니다. 그러면 당연히 오실로스코프 화면에는
요렇게 뜰겁니다.
화면만 보면 이렇게 1ch, 2ch의 파형이 나타나지요. 테스트 단자의 출력파형이 잘 나타나는 것을 알 수 있습니다. 오실로스코프 이상없음… 이라고 할 수 있네요.
근데… 요기서 끝내면, 이왕 소개하는거 좀 모자라죠… ㅋㅋㅋ 그래서 요 제품을 PC에 USB로 한번 물려보겠습니다.
추가로, 위에 있는 두번째 단자인 USB단자와 PC를 연결하시면됩니다. 단, 그전에 PC측에 프로그램을 다운받아야죠^^
OWON의 제품 지원 페이지[바로가기]에 가시면 됩니다.
여기서 보시면, Win7까지 지원하고 있다는 것을 알 수 있어요. 그중 OWON_Oscilloscope 프로그램이 버젼이 2.0.8.11이 있네요. 받아서 설치합니다. 그기가 50MB가 좀 넘어요..
그리고 프로그램을 설치하고, 오실로스코프의 USB단자를 연결하면 간혹 처음이라면 USB장치인식 실패라는 말이 뜰겁니다. 그러면,
설치된 프로그램 폴더에 가서 USBDRV라는 위 그림의 위치로 가시면 USB 드라이버를 설치할 수 있습니다. 혹은 장치관리자에서 드라이버 수동업데이트를 선택하시고, 위 폴더를 지정하셔도 됩니다.
아무튼 그렇게 PC 쪽 프로그램도 다 설치했다면
요런 아이가 뜰겁니다. 우측 하단에 check USB가 빨간거 보이시죠?
요렇게 녹색이 되어야 PC와 오실로스코프가 잘 연결된겁니다.
위에 표시된 아이콘이 Continue Data Download라는 기능인데요. 요걸 누르면 처음인 경우 몇몇 설정창이 뜨긴 하지만, 바로 현재 오실로스코프의 화면이 넘어옵니다. 위 그림처럼 말이죵^^
오실로스코프에서도 당연히 되는 기능입니다만, PC에서도 됩니다^^. MATH를 선택하면, 두 채널의 신호에 대한 4칙연산의 결과도 보여주고
이렇게 신호의 FFT 결과도 보여줍니다. 그런데… 음… 결과파형과 x,y축 grid와의 관계는 눈에 잘 안들어오더군요. 뭐 처음 개봉한거니, 살짝 더 봐야겠지요.
PC화면의 선을 더블클릭하면 원하는 색상으로도 바뀌구요
심지어, 위에 표시된 Data Table이라는 아이콘을 누르면, 저렇게 테이블로도 나와서 엑셀등에서 읽을 수도 있습니다.
이건 print preview를 한겁니다. 파형에 대한 설명도 나타나 있는 것을 알 수 있죠. 각 종 발표자료를 꾸밀때 유용할 겁니다.
이렇게 오늘 소개할 오실로스코프에 대한 내용이 끝났네요. 아주아주 고급형 성능이 필요하지 않다면, 50만원대의 2채널 핸디형 오실로스코프로도 충분히 괜찮은 결과가 나올것 같아요.
압착기(ECT-225D) 사용 방법
몰렉스(molex)사의 커넥터는 전기,전자,기계등 여러 분야에 다양하게 사용됩니다.
커넥터는 연결 방법에 따라 Board to Board, Wire to Board, Wire to Wire 로 구분합니다.
디바이스마트에서는 다양한 Wire to Board 제품이 많이 판매되고 있습니다.
Wire 타입의 커넥터를 처음 사용하는 분들이 클림프를 압착하는 작업을
어려워 하는 경우가 많습니다. (실제 문의가 많이 들어옴^^;)
그래서 간단히 클림프를 압착하는 방법에 대해 애기하려 합니다.
여러 방법 중 한가지 팁이니 작업은 본인이 편한대로 사용하면 됩니다.
압착기를 처음 접해보는 사람들에게 조금이나마 도움이 되기 위해
적는 글이니 숙련자(?) 분들의 오해 없으시길 바랍니다.
하나, 전선 및 압착기 선택 하기
1) 선택한 클림프의 사용 가능한 전선 규격을 확인 합니다.
주로 AWG(미국전선규격)로 구분합니다.
AWG 숫자가 높을수록 전선의 직경이 작아 집니다.
2) 압착기는 클림프의 종류에 맞춰 선택하지 않고, (몰렉스사 정품 가격은 30만원 정도)
전선 규격(AWG)에 맞춰 선택합니다.
압착기를 보시면 지원되는 AWG 규격 번호가 적혀 있습니다. (예: AWG 28 ~ 30)
둘, 압착하기 작업 순서
1) 전선을 적절한 길이로 스트립 합니다. (피복제거)
2) 클림프를 압착기에 고정시키고, 전선을 삽입합니다.
3) 압착기의 그립을 쥐고 힘껏 압착합니다.
4) 압착된 전선을 압착기와 분리합니다.
5) 클림프 전선을 커넥터에 삽입합니다. (한번 삽입되면 분리하기 어렵습니다.)
글로 설명하니 굉장히 간단한 작업으로 느껴집니다^^
실제로 한번 경험에 보면 어렵지 않게 작업이 가능합니다.
이제부터는 실제 제품을 사용하여 작업하는 모습을 보여 드리겠습니다.
셋, 작업 예제
디바이스마트에서 가장 많이 판매되는 몰렉스사의 5264 커넥터를 사용한 작업입니다.
5264용 클림프에 사용되는 전선은 AWG 22번 부터 28번까지 가능합니다.
작업에 사용한 전선의 규격은 AWG26 입니다.
클림프는 구매시 사진처럼 서로 연결되어 있습니다. 한개만 손으로 꺽어서 분리하여 사용합니다.
클림프를 보시면 높이가 다른 부분이 보입니다. 위 도면에 보이는 A 부분이 압착되면서
전선의 선심을 감싸게 되고, B 부분이 압착되면서 전선의 피복을 감싸게 됩니다.
아래 압착이 완성된 사진을 보시면 이해가 편합니다.
빨간 피복을 감싸고 있는 부분이 도면상의 B 부분 입니다.
도면의 길이를 참조하여 전선의 피복을 제거 합니다. 스트립퍼, 니퍼 등을 사용합니다.
피복이 번거로운 분들은 하네스용 와이어를 구매하셔서 사용하기도 합니다.
http://www.devicemart.co.kr/goods/list.php?category=003006013
압착기를 보시면 AWG 번호가 적혀 있습니다. 지금 사용하는 전선은 AWG26 이니까
압착기의 앞 부분을 이용합니다. 압착기 모델명은 ECT-225D 입니다.
압착기 손잡이를 움켜 쥐면 오픈 됩니다. 이때 상단을 이빨(뾰족한 부분)
아래 부분을 턱(홈 부분) 이라고 부르겠습니다. (정식 명칭을 모르겠네요^^;)
이때 턱을 자세히 보시면 턱의 높이가 살짝 다릅니다. 계단 형태 모습입니다.
압착기 턱에 클림프의 긴 다리 (도면상의 B 부분)를 걸치도록 합니다.
클림프의 긴 다리를 살짝 모아주면 작업이 용이 합니다.
아래 사진이 클림프의 다리를 걸쳐서 고정한 모습입니다.
다음으로 압착기의 손잡이를 내려 클림프와 맞닿게 고정시켜 줍니다.
피복을 제거한 전선을 고정된 클림프에 삽입합니다.
위 사진의 반대 방향으로 삽입을 하면 됩니다.
전선 삽입이 끝나면 마지막으로 압착기의 손잡이를 힘껏 움켜지면 압착이 됩니다.
손잡이에 충분한 힘이 가해지면 자동리턴 기능으로 압착기가 자동으로 오픈 됩니다.
그 후 다시 작업을 반복 하시면 됩니다.
위에서 보았던 압착이 완성된 사진 입니다.
완성된 클림프 전선을 이제 커넥터에 삽입하면 됩니다.
몰렉스 커넥터 5264 를 보시면 직사각형의 구멍이 보입니다.
클림프 상단에 보이는 걸쇠 부분이 직사각형 구멍에 고정되면서 결착이 완료 됩니다.
굳이 작업을 하시지 않고 클림프 전선을 종류별로 판매하기도 합니다.
5264용 클림프전선, 5051용 클림프전선, 51004용 클림프전선 입니다.
하지만 종류가 한정적이고, 길이도 제한적이라 많은 분들이 직접 작업을 하십니다.
작업이 완성된 사진 입니다. 사진과 글로 설명을 하기에 애매한 부분이 많네요^^;
부족한 부분이 있으면 알려주시면 따로 설명을 드리겠습니다.
여기까지 말씀드린 설명은 일반적인 작업 방법을 소개한 내용입니다.
공구는 여러번 사용하셔서 손에 익숙해지는 것이 중요합니다.
여러번 시행해 보면 본인만의 요령을 익히게 되겠죠!
이상으로 마치도록 하겠습니다. 여기까지 읽어 주셔서 감사합니다.
팝(pop) 너트를 이용해서 간단히 기계적인 조립을 해결하자
(본 글은 PinkWink 블로그 중복 개제하는 것임을 미리 밝힙니다. 또한, ntrexgo 사이트의 베타 테스트의 성격을 함께 가집니다.)
이럴때 편히 쓸 수 있는 것이 있습니다. 바로 팝(pop) 너트, 혹은 블라인드(blind) 너트라고 부르는 건데요.
이렇게 생겼습니다. 너트처럼 생겼는데 좀 이상하죠. 저 주름있는 부분이 압착되는 것이 특징입니다.
이런 구멍이 그냥 뚫려있다면
이런 도구가 하나 필요합니다. 전동 드라이버에 연결하시면 되는데요
여기에 팝 너트를 끼우시구요
여긴 전동 드라이버 혹은 드릴에 끼우시면 됩니다.
뭐.. 이런 모습이죠^^
그 끝에 팝너트를 끼우시면 됩니다.
그리고, 구멍에서 사삭 돌려주시면, 저렇게 주름 부분이 압착되면서 홀에 고정되고, 그리고나서 볼트를 끼우실 수 있습니다.
이런 모습이에요. 너트로 고정할 필요도 없이 그냥 탭가공이 어려운 얇은 곳이나, 또 혹은 실수로 탭가공을 하지 않은 곳에 쓸 수 있죠.
물론 볼트도 잘 들어가구요^^
조금만 연습해서 숙련되면 저렇게 모양도 괜찮습니다.^^
주름부분이 저렇게 마무리되는 것을 알 수 있죠.^^
물론 일반적인 볼트-너트보다야 비쌉니다만, 필요할때, 순간순간 사용하기 좋은 것 같아서 소개합니다.^^
아 당연히 어디서 구할 수 있는지를 먼저 알아야죠^^
팝너트는 디바이스마트 팝너트 카테고리에서 구할 수 있습니다. [바로가기]
그리고, 팝너트를 고정하는 도구도 역시 디바이스마트에서 구할 수 있습니다. [바로가기]
모두들.. 즐거운 작업 되세용^^