본문 바로가기

Embeded Programming

페이저의 표현과 사칙연산 페이저의 표현과 사칙연산 - by Tapito 차례 1. 복소평면과 페이저 1-1. 직각좌표 1-2. 극좌표 1-3. 직각좌표와 극좌표의 변환 1-4. 오일러의 공식 2. 페이저의 사칙연산 2-1. 직각좌표의 덧셈, 뺄셈, 곱셈, 나눗셈 2-2. 극좌표의 덧셈, 뺄셈, 곱셈, 나눗셈 2-3. 오일러 공식 좌표의 곱셈과 나눗셈 1. 복소평면과 페이저 전기에서 복소평면은 실수축이라고 부르는 가로축(발열, 발광, 운동 등 실제로 보여지고 느낄 수 있는 어떤 값으로서 저항, 유효전력 등)과 허수축이라고 부르는 세로축(이론적으로 뭔가 존재하는 것 같지만 수동소자에 축적되었다가 다시 전원으로 돌아가기 때문에 느낄 수 없는 어떤 값으로서 리액턴스, 무효전력 등)으로 이루어져 있습니다. 복소평면에 위치한 임의의 지점은.. 더보기
Tapito의 AVR 정복기 – 6부. 비안정 멀티바이브레이터 Tapito의 AVR 정복기 6부. 비 안정 멀티 바이브레이터 1. 비안정 멀티바이브레이터란? 이번 화에서는 아날로그 회로에 대해 공부해 보겠습니다. 아날로그 회로는… 깊이 파고들면 미적분도 나오고 정말 한도 끝도 없기에 본인도 아직 그 정도 실력까지는 도달하지 못한 만큼, 작동 과정 위주로 해 봅니다. 비 안정 멀티 바이브레이터는 간단히 말하자면 커패시터와 저항만을 이용해 일정 주기의 신호를 만들어내는 회로입니다. 이 용어를 쪼개본다면, "비 안정"이라는 말은 안정되지 않았다. 즉, 전원만 주면 별도의 개시 신호가 없이도 알아서 소자들이 충전과 방전을 번갈아 하며 작동된다는 뜻이고, 멀티는 R-C 조합된 회로가 둘 이상이라는 뜻입니다. 바이브레이터는 번역하자면 진동 발생기? 발진기? 정도가 되겠습니다... 더보기
ATmega8535 실습 기판 이 책에 부록으로 있었던 PCB 기판.... 이제야 써보게 되네요. http://www.robotstudy.com/ 여기서 판매합니다. 가격 11만 몇 천원... 좀 심하게 질렀죠. 조립하는데 반나절 걸렸습니다. 뭐 좀 할 때마다 브레드보드에 일일이 꽂던 삽질은 이제 끝 더보기
tapito의 AVR 정복기 - 5부. FND tapito의 AVR 정복기 5부. FND (c) tapitolife FND FND는 Flexible Number Display의 약자로, 아라비아 숫자를 표현하기 위해 일정한 모양으로 배열된 LED가 내장된 소자입니다. 여 그림 1. FND의 실물 숫자는 FND에 내장된 각각의 LED를 제어해서 출력하며, LED의 배열 방식에 따라 Annode 형(양극이 공통)과 Cathode 형(음극이 공통)이 있습니다. FND에는 모양에 따라 여러 종류가 있지만 여기에서는 가장 간단한 WDUR-10561(구 FND 507)를 소개해보고자 합니다. 그림 2. FND의 핀 배열 그림 3. Annode 형과 Cathode 형 FND에는 각 LED들이 공통으로 연결된 공통극이 있습니다. 이 공통극이 양극으로 묶여 있는지,.. 더보기
tapito의 AVR 정복기 - 4부. RAM을 이용한 스택 구현 tapito의 AVR 정복기 4부. RAM을 이용한 스택 구현 (c) tapitolife 스택? 스택(Stack)은 컴퓨터에서 후입선출의 방식으로 데이터를 저장하는 자료 구조를 말합니다. 후입선출(Last-In First-Out, LIFO)은 말 그대로 가장 나중에 저장된 데이터가 출력될 때는 가장 먼저 출력된다는 의미로서 주로 함수를 실행할 때 적용되는 개념입니다. 문자열로 이루어진 수식을 첫 글자부터 하나씩 읽어 들이면서 함수가 보이면 일단 연산 버퍼에 기억해 두었다가 버퍼에서 함수를 하나씩 꺼내 쓸 때 스택의 구조를 이용하는데, 이를 그림으로 표현하면 아래와 같습니다. 그림 1. Stack 자료 구조 스택의 작동 과정 push push은 스택의 끝에 데이터를 추가하는 동작입니다. pop pop은 스.. 더보기
tapito의 AVR 정복기 - 3부. RAM tapito의 AVR 정복기 3부. RAM (c) tapito Ram이란? 그림 1. PC에서 사용되는 RAM의 한 종류 병렬 메모리는 1 사이클당 1바이트의 데이터를 취급하는 기억 소자입니다. 이 중 RAM은 전원이 차단되면 기억하고 있던 내용이 모두 지워지며 내부 구조에 따라 플립플롭형인 SRAM과 커패시터형인 DRAM 등으로 분류됩니다. 그림 2. 병렬 메모리의 개념도 병렬 RAM의 핀 배열 대부분의 병렬 RAM의 핀은 주소 핀 + 데이터 핀 + 제어 핀으로 구성되어 있습니다. 즉, 어느 제조사의 어느 모델이든 공통적으로 Axx, I/Ox, /OE, /WE, /CE를 가지고 있습니다. 여기에서는 AMIC에서 제조하는 A625308A-70SF를 예로 들어 보겠습니다. 그림 3. A625308A-70S.. 더보기
CodeVision과 AVR Studio간의 인터럽트 비교 CodeVision AVR Studio interrupt [EXT_INT0] void ext_int1_isr(void); ISR(INT0_vect); interrupt [EXT_INT1] void ext_int1_isr(void); ISR(INT1_vect); ATmega128 기준입니다. interrupt [EXT_INT2] void ext_int2_isr(void); ISR(INT2_vect); (출처: http://turbocrazy.tistory.com/1048) interrupt [EXT_INT3] void ext_int3_isr(void); ISR(INT3_vect); interrupt [EXT_INT4] void ext_int4_isr(void); ISR(INT4_vect); interrup.. 더보기
소스로 보는 ATmega8535 – 2부. I/O Port 소스로 보는 ATmega8535 – 2부. I/O Port © tapitolife 1. I/O 포트의 구성 ATmega8535는 4개의 입/출력 포트가 지원됩니다. 각 포트는 8비트로 구성되어 있으므로 한 번에 4바이트의 데이터를 동시에 처리할 수 있죠. 그림 1. Pinout of ATmega8535 표 1. 각 핀에 대응하는 2진 값 핀 이름 Px7 Px6 Px5 Px4 Px3 Px2 Px1 Px0 2진 값 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 포트와 관련된 레지스터로는 DDRx, PORTx, PINx가 있습니다. 1) DDRx 포트의 방향을 설정합니다. 1이면 출력 전용, 0이면 입력 전용이며 각 핀별로 따로 설정할 수 있습니다. 코드 1. DDRx 사용 방법 01 : DDRA .. 더보기
소스로 보는 ATmega8535 – 1부. AVR에 HEX 파일 굽기. 소스로 보는 ATmega8535 – 1부. AVR에 HEX 파일 굽기. © tapitolife 2011 처음 시도해 볼 코드는 간단한 LED 점등 회로입니다. main.c #include int main() { DDRA = 0xFF; PORTA = 0b10101010; while(1) ; return 0; } 회로는 이렇습니다. 그림 1. LED 점등 회로 AVR에 프로그램을 넣기 위해서는 아래와 같이 합니다. 1. 회로 구성 먼저 AVR에 프로그램이 입력될 수 있도록 회로를 구성합니다. ISP(In-System Programmable) 보드는 컴퓨터에서 데이터를 받아 AVR에 구워주는 역할을 하는데, 병렬 포트를 이용한 ISP, 직렬 포트를 이용한 ISP, USB를 이용한 ISP 등등 다양한 종류의 I.. 더보기
ATmega 굽기 성공! 결국 ISP 보드(Ahram ISP 1.5, http://devicemart.co.kr/goods/view.php?seq=19015) 하나 샀습니다. USB 직접 꽂아서 쓰는 제품이라 시리얼이나 패러랠 포트가 없는 랩톱에서도 잘 호환되는군요. 이 제품도 내부적으로는 ATmega8535 SMD 타입을 쓰네요... 테스트를 위해 AVR Studio에서 간단하게 코드를 작성한 다음 빌드하고... 미리 준비한 타켓 보드와 ATmega8535를 연결해 봅니다. OK, OK, OK... HEX 파일이 에러없이 잘 구워집니다. 테스트 역시 잘 되는군요 ㅎㅎ 더보기
D-SUB 인터페이스 – 1부. Intro D-SUB 인터페이스 #1. Intro 0. D-SUB 커넥터란? D-SUB는 D-Subminiature("초소형")의 줄인 말로, 과거 PC와 여러 가지 주변장치를 연결하던 범용 단자였습니다. 오늘날로 치면 USB나 Fireware에 해당하겠죠. 여기서 D는 단자의 모양이 D자처럼 생겼다 해서 붙여진 것이고, Subminiature는 이 규격이 만들어질 당시 기준에서 보면 단자의 크기가 작았기 때문이라고 합니다. D-SUB는 그 커넥터의 크기에 따라 A, B, C, D, E의 5가지로 분류가 되어있고, 그림 1과 같이 각각의 크기에 따라 핀 수도 다릅니다. - by Tapitolife 1. 규격에 따른 D-SUB의 용도 D-SUB는 단지 단자와 핀의 형태만을 약속해 놓은 것이고, 각각의 핀에 대한 용도.. 더보기
버퍼용 IC 74HC244 참고 문헌: 1. http://www.nxp.com/documents/data_sheet/74HC_HCT244.pdf 2. p256-p261 Datasheet 첨부 74HC244는 버퍼용도로 쓰이는 IC입니다. 케이블로 각 장치들을 연결할 경우 케이블 자체 저항이나 주변 간섭 등으로 감쇠현상이 나타날 수 있는데요... 책과 데이터쉬트를 찾아본 바에 의한다면 이 IC는 전송 도중에 왜곡된 신호를 교정해주는 역할을 하는 것 같습니다. 예를 들면 송신하는 기기 측에서는 "0"(0V)의 신호를 전달했는데 중간에 0.3V나 1.1V 등등으로 바뀌었다면 이걸 다시 "0"(0V)으로 잡아주고, 마찬가지로 "1"(5V)의 신호를 전달했는데, 케이블 자체 저항으로 인해 4.3V나 3.2V 등으로 강하되었을 때 이것 다시.. 더보기
RS232 ISP 회로를 직접 구현. 아무래도 USB-패러렐 변환기를 또 사는 것보다는 아예 직렬 ISP 보드를 만드는 게 훨씬 저렴하죠... 회로 출처: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=79515&start=0 마침 서울 나갔다가 세운상가 들러서 샀습니다. BC547 개당 50원, 1N5231 개당 50원, 직렬포트 개당 200원. 다 합쳐도 단돈 900원. 검색해보니까 BC547도 범용 NPN TR인 거 같은데 노이즈가 적은 특성이 있어 신호 전송용으로 쓰이나 봅니다. 1N5231은 제너다이오드로서 5V로 정전압 유지하기 위해 쓰이고요... 더보기
RS232를 지원하는 AVR ISP 회로 직렬 포트를 사용한 ATmega ISP 회로가 이미 공개되어 있었네요. 아래 회로는 Microsoft Visio로 다시 그린 것입니다. (클릭하면 크게 볼 수 있습니다.) 출처 사이트는 아래와 같습니다. http://diy4fun.blogspot.com/2009/01/simple-serial-programmer-for-avr.html http://www.rocket.pe.kr/10 어떤 종류이든 ATmega라면 공통적으로 VCC, /RESET, MISO, MOSI, SCK 단자만 연결하면 PC와 통신이 가능한 것이겠죠? VCC : 전압을 가하는 단자 GND : 접지와 연결하는 단자 /RESET : 평상시에는 항상 1이 입력되다가 프로그램 덮어 쓸 경우에는 접지시켜 0을 입력함. MOSI(Master O.. 더보기
ISP 보드 회로도입니다. 분류 기호 규격 커패시터 C1, C2 10μF C3 0.1μF C4, C5 20pF 고정 저항 R1 100KΩ 크리스탈 XTAL 16MHz 다이오드 D1 1N4148 집적회로 U1 레귤레이터 7805 U2 버퍼 74HC244 U3 AVR ATmega162 접속단자 D-SUB 25 프린터포트 Female형 D-SUB 25핀 U3 IC 소켓 40핀 병렬포트와 연결해서 쓰는 AVR ISP 보드 회로입니다. 필요한 분들 참고 하세요. 더보기