본문 바로가기

AVR(ATmega128)로 장난하기

AVR(ATmaga128)로 텍스트LCD 장난하기 안녕하세요 고군입니다~이번 시간에는 텍스트LCD에 대하여 알아보고 AVR을 사용하여 화면을 표시해보도록 하겠습니다.LCD는 저렴한 가격으로 인해 산업현장에서는 아직도 많이 사용되고 있으며, 표시(Display)장치와 구동(Driver)장치가 하나로 되어 있습니다.LCD는 8문자 x 2라인, 16 x 2, 16 x 4, 20 x2, 40 x 2라인 등 많은 종류가 있는데 여기서는 16 x 2 LCD에 대해 알아보겠습니다. [그림1] LCD 모듈구조 및 외형 핀 번호 기호 기 능 1 Vss 0V 전원 2 VDD 5V 3 VL VR 10k 4 RS H : 데이터, L : 인스트력션 5 R / /W H : 리드, L : 라이트 6 E1 H : 인에이블 신호 7 D0 데이터 버스 4비트 사용시 : D4~D7만 사.. 더보기
AVR(ATmaga128)로 FND 4Digt 7세그먼트 전자회로 장난하기 안녕하세요 고군입니다. 이번에는 4자리 FND에 대해 알아보고 예제 프로그램을 통해 표시하는 방법도 알아보겠습니다. 1. 4-digit FND 7세그먼트 특성 및 전자회로 FND 4-Digit 7세그먼트 외형과 회로 위 그림은 숫자 4자리를 표시할 수 있는 7세그먼트의 외형 및 핀 구조를 보이고 있습니다. 2개의 공통 핀을 사용하는 1자리 표시용 7세그먼트와 달리 공통 단자가 각 자리별로 1개씩 있습니다. 위 그림에서 공통 단자를 COMn으로 표기하고 있으며, COM1 ~ COM4까지 사용하고 있습니다, 또한 a~g, 그리고 dp등 총 8개의 세그먼트 핀이 존재합니다. 따라서 12핀으로 구성됩니다. (a) 4-digit 규격의 공통 음극(Common Cathod)방식 그림 (a)는 4-digit 규격의 .. 더보기
AVR(ATmaga128)로 FND 1Digt 7세그먼트 전자회로 장난하기 1. 1-Digit FND 7세그먼트 특성 및 전자회로 1> 1-digit FND 7세그먼트 전자회로 FND 1-Digit 7세그먼트 외형과 회로 FND 7세그먼트는 7개의 세그먼트로 이루어져 있으며, dot를 포함하고 있기 때문에 8개의 세그먼트로 이루어졌다고 볼 수도 있다. 8개의 세그먼트는 위쪽 세그먼트부터 시계방향으로 a부터 f까지 부여되고 가운데는 g가 된다. 한편, 핀 배열은 순서적이지 않다. e이름을 가진 세그먼트가 1번핀과 연결된다. 2> 1-digit FND 7세그먼트의 공통단자 전자회로 FND 7세그먼트는 공통 음극(cathode)방식과 공통 양극(anode)방식 두 가지가 존재한다. 콘트롤러의 전자부품이나 전자회로로 지금도 많이 사용되고 있다. 2. FND 7세그먼트 제어에 사용되는 .. 더보기
AVR(ATmaga128)로 LED 매트릭스 장난하기 안녕하세요 고군입니다. 이번시간에는 디스플레이 장치 중 문자 또는 그림까지도 디스플레이 할 수 있는 장치인 LDM(LED Dot Matrix)에 대해 알아보고 프로그램을 통해 표시해 보겠습니다. 1. LED 매트릭스 특성 및 전자 회로 LED 매트릭스는 LED를 매트릭스 형태로 배열하여 다양한 문자나 패턴을 표현 할 수 있도록 해주는 표시 장치의 일종으로 광고를 비롯한 다양한 분야에서 활용되고 있습니다. 8X8 크기의 매트릭스의 경우 알파벳 한 글자 숫자 등을 표현할 수 있어 정보 표시를 위해 많이 사용되고 있습니다. 8X8 크기의 LED 매트릭스는 LED만 포함한 제품에서 부터 제어를 위한 칩을 포함한 보드 형태로 제작된 제품 등 종류가 다양합니다. 매트릭스의 도트를 구성하는 LED도 단색, 이색, 등.. 더보기
AVR(ATmaga128)로 8스위치 장난하기 안녕하세요 고군입니다~이번 시간에는 입력부품으로 가장 흔하게 사용되는 택트 스위치에 관하여 알아보겠습니다. 먼저 스위치구조와 원리에 대해 알아보고 AVR로 테스트를 해보겠습니다. 1. 택트 스위치 특성 및 전자 회로 그림1. 택스스위치 외형 및 내부 결선도 그림1은 택스스위치의 외형과 내부 결선도를 보여줍니다. 택트 스위치는 종류도 많고 모양도 다양한데 4핀으로 구성된 스위치는 위와 같이 생겼다고 생각하시면 됩니다. 택트 스위치의 내부 결선도를 보시면 1,2 그리고 3,4은 내부적으로 하나로 연결되 있습니다. 그러니 1,2번이나 3,4은 스위치를 누르던 누르지 않던 항상 연결될어 있습니다. 스위치를 ON/OFF로서 사용하기 위해서는 1,2과 3,4에 독립적으로 회로를 구성해 주시면 됩니다. 그림2. 택스.. 더보기
AVR(ATmaga128)로 LED전자회로 장난하기 1. LED 특성 및 제어회로 a. 그림은 LED에 정 방향의 바이어스 전압을 인가하여 전류가 잘 흐르는 그림을 보이고 있다. 이때 LED는 밝게 켜진다. b. 그림은 LED에 역 방향의 바이어스 전압을 인가하여 전류가 흐르지 않는 상태를 나타내고 있다. 이때 LED는 OFF다. 위 두 회로는 모두 LED를 ON/OFF할 수 있도록 구성된 회로다. 다만 LED가 켜지기 위한 포트의 출력이 다른데, a에서는 포트의 핀 출력이 'Low'(0)일 때 LED가 켜진다. 반면 b에서는 포트의 핀 출력이 'High'(1)일 때 LED가 켜진다. 2. AVR(Atmega128)의 LED제어에 사용되는 디지털 출력 레지스터 3. AVR(Atmega128) 연습용 키트를 사용한 실제 LED제어 이 블럭은 앞에 설명한 것.. 더보기
AVR(ATmega128) 시스템 개발 기초 지식_어셈블리 명령 1. 명령어 분류와 주소지정 방식 ● 명령어 기본 형식 : 명령어는 명령코드(OP 코드:OPeration code)와 오퍼랜드(operand)로 구성되는데 명령코드는 명령 그 자체이고 오퍼랜드는 명령의 대상으로 레지스터, 메모리, 상수값이 사용될 수 있으며 명령에 따라 오퍼랜드 없이 명령코드에 포함되는 경우가 있다. 명령코드는 대부분 16비트의 길이이지만 LDS, STS, JMP, CALL 4개의 명령어는 32비트이다.● 실행시간에 따른 분류 : 실행하는데 1~4 기계사이클를 요구하여 ① 1기계사이클 명령어(예: ADD Rd, Rr)와 ② 2기계사이클 명령어(예:ADIW Rdl, K) ③3기계사이클 명령어(예:ELPM 혹은 LPM) ④4기계사이클 명령어 (예:RETI 혹은 RET)로 나뉠 수 있다.● 기.. 더보기
AVR 통합개발환경 AVR Studio4 컴파일 & 라이팅 하기 이번 시간에는 설치된 AVR Studio4를 실행하여 코드작성을 하고 컴파일하는 방법에 대해 알아보겠습니다. ■ AVR Studio4로 컴파일하기 1) AVR Studio4 아이콘을 클릭해서 실행합니다.2) New Project를 선택합니다. 3) 아래 나타나는 화면의 Project type에서 자신이 어셈불러로 프로그램을 작성한다면 Atmel AVR Assembler을 선택고, C언어로 프로그램을 작성한다면 AVR GCC을 선택면 됩니다. Project name에는 자신이 원하는 이름의 파일명을 작성하고 밑에 Creat folder는 체크를 해제합니다.Location에는 자신이 작성한 파일을 저장하고자하는 폴더를 지정해주시면 됩니다.(※ Project name 파일이름이나 Location 폴더 이름은 .. 더보기
AVR 통합개발환경 AVR Studio4 + WinAVR 설치 AVR 소프트웨어 개발툴로 현재도 많이 사용되고 있는 AVR Studio4 4.18을 설치해 보겠습니다. 지금 설치하는 PC환경은 Win7 64bit의 컴퓨터로 이보다 낮은 환경의 OS가 설치된 컴퓨터는 호환에 문제가 없으나 이보다 높은 환경의 컴퓨터는 AVR Studio4 사용시 버그나 호환등의 문제가 발생할 수 있습니다. 이런 환경의 컴퓨터일 경우는 AVR Studio4 상위 버전을 사용하시길 권장합니다. AVR Studio4 4.18로 소프트웨어를 컴파일하려면 WinAvr를 같이 설치해야 합니다. AVR-GCC는 리눅스용으로 개발된 GCC로 이것을 윈도우에서 사용할 수 있도록 다시 컴파일한 후, 컴파일러, 링커, 라이브러리를 통합하여 제공하는 패키지가 WinAVR입니다.AVR Studio 는 Win.. 더보기
AVR(ATmaga128) 기초지식(7)_리셋과 워치돗 타이머 1. Reset과 Watchdog 타이머 (1) 리셋 ● 정상적으로 동작하고 있는 마이컴이 리셋되면 모든 I/O레지스터값이 디폴트값으로 초기화되고 프로그램은 리셋벡터에서 시작된다. 리셋은 5가지의 발생원이 존재한다. [그림1] 리셋 관련 내부 회로 블록선도 ① 파워온 리셋 : 공급전원이 그림 2에 정의된 VPOT 이하일 때 리셋되는 것.② 외부 리셋 : /RESET핀에 50ns 이상동안 그림 2에 정의된 VRST 이하의 신호가 입력되면 리셋되는 것③ Brown-out 리셋 : 공급전원이 2마이크로초 이상동안 그림 2에 정의된 VBOT이하로 떨어져 Brown-out 감지기가 작동해 리셋되는 것.④ 워치독 리셋 : 워치독 타이머가 지정한 주기 이상이 경과되어 워치독 기능이 동작할 때 리셋되는 것 ⑤ JTAG.. 더보기
AVR(ATmaga128) 기초지식(6)_시스템 클록과 슬립 모드 1. 클록 분배 [그림1]에 보여진 것처럼 ATmega128은 다양한 소스에 의해 클록을 발생시키고 분배가 가능하다. 또한 내부의 각 부분은 모두 동시에 클록이 필요치 않아 소비 전력을 절약시키기 위해 개별적으로 공급을 차단할 수도 있다. ● CPU 클록(clkcpu ) : 범용레지스터, 상태레지스터, 데이터 메모리와 같은 AVR 핵심적인 동작과 관련된 클록으로 공급을 차단하면 이들의 동작을 멈추게 한다.● I/O 클록(clkI/O ) : 타이머, SPI, USART 등 I/O모듈 대부분에서 사용되는 클록이다. 외부인터럽트 모듈에서도 사용되나 일부 외부인터럽트는 I/O 클록의 공급이 차단되어도 인터럽트 처리가 된다.● 플래쉬 클록(clkFLASH ) : 플래쉬롬과의 인터페이스를 제어하며 보통 CPU 클록.. 더보기
AVR(ATmaga128) 기초지식(5)_AVR ATmega128의 메모리(3) 1. 메모리 lock 비트 메모리의 보호를 위해 설정하는데 사용하는 1바이트 구조의 비트로 디폴트로 비트값이 1로 되어 있고 프로그램하면 0으로 설정되고 chip erase명령에 의해 1로 환원된다. 그림 10은 lock비트의 구성을 보여준다. 그리고 그림1은 lock비트 값에 따른 모드 설정값과 각 모드에 따른 메모리 보호기능을 보여준다. 그림1 Lock 비트의 구성그림2 Lock 비트설정에 따른 기능 2. 퓨즈 비트 ATmega128의 기본적인 설정용으로 사용되며 Extended Fuse, Fuse High, Fuse Low바이트로 모두 3개의바이트로 구성되어 있다. 디폴트로 비트값이 1로 되어 있고 프로그램하면 0으로 설정되고 chip erase명령에 의해 영향을 받지 않으므로 메모리 Lock비트의.. 더보기
AVR(ATmaga128) 기초지식(4)_AVR ATmega128의 메모리(2) 1. 외부 데이터 메모리 ATmega128은 노말모드에서 0x1100-0xffff번지에 외부 데이터 메모리로 사용가능하며 이들은 외부 램, 외부 플래쉬 롬 또는 LCD나 AD변환기와 같은 주변장치의 인터페이스용으로 사용할 수 있다. 이를 위해 다음과 같은 기능이 제공된다. ① 주변장치와 적절한 인터페이스를 위한 0-3의 대기 사이클을 지정할 수 있다.② 2개의 섹터로 외부 데이터 메모리를 분할하고 이들에 독립적인 대기 사이클을 지정할 수 있다.③ 16비트 주소의 상위바이트에 중 필요한 갯수의 비트만을 주소 버스로 동작하게 할 수 있다.④ 데이터 버스의 신호들이 동작할 때 전류 소비량이 감소되도록 Bus-keeper 기능을 설정할 수 있다. (1) 외부 메모리 인터페이스 ● 외부 램 연결을 위한 핀 : M.. 더보기
AVR(ATmaga128) 기초지식(3)_AVR ATmega128의 메모리(1) AVR ATmga128은 Harvard architecture로 되어 있기 때문에 프로그램 메모리와 데이터 메모리 2개로 구성되어 있으며 EEPROM 메모리는 데이터 메모리에 속합니다. 1. 프로그램 메모리 AVR ATmega128은 내부에 프로그램 메모리로 사용하는 128k의 플래시 메모리를 가지고 있으며, 8비트 마이크로컨트롤러이지만 이 프로그램 메모리는 각 번지가 16비트 구조로 되어 있어서 64k X 16비트의 용량을 갖습니다. 따라서, 모든 명령이 16비트 또는 32비트 구조로 되어 있으므로 각 명령은 프로그램 메모리에서 1~2개의 번지를 차지하게 됩니다. 프로그램 메모리는 부트 프로그램 섹션(또는 부트로더 섹션)과 응용 프로그램 섹션으로 나뉘어 사용됩니다. 이 플래시 메모리는 SPI 통신방식을.. 더보기
AVR(ATmaga128) 기초지식(2)_AVR ATmega128의 내부구조 AVR ATmega128은 AVR RISC 구조를 바탕으로 만들어진 8비트의 CMOS형 마이크로컨트롤러입니다. AVR ATmega128 마이크로 컨트롤러는 Harvard Architecture로 설계되었기 때문에 내부 버스인 프로그램 버스와 데이터 버스가 2가지로 분리되어 있습니다. AVR ATmega128의 프로그램 메모리는 64k워드 플래시 롬으로 이루어져 있으며 이를 위한 버스도 내부에만 존재하게 됩니다. 내부 SRAM은 4k바이트이고, 내부 EEPROM 메모리는 4k바이트로 구성되어 있습니다. [그림1]에 내부 구조를 나타내었습니다. 그림1. AVR ATmega128의 내부구조 [그림1]에서 CPU 코아만 다시 나타내면 [그림2]가 됩니다. 이 CPU 코아는 AVR ATmega128의 중요 부분으.. 더보기