Atmega128(10)
-
[Atmega128] 11. DATA Memory - EEPROM
이번엔 데이터 메모리 EEPROM을 다루는 방법을 알아보자. EEPROM은, Electrically Erasable Programmable Read-Only Memory의 약자로 ROM에 전기적으로 지우고, 프로그램 가능한 ROM을 말한다. 특징으로는 최대 10만번 쓰기가 가능한 4K바이트가 내장되었다는 점이다. 그럼 제어하는 레지스터를 알아보자 1. EEAR (EEPROM Address Register) EEAR0...11 : 읽고 쓸 EEPROM의 주소 지정에 사용된다. 초기에는 임의값이 들어가니 항상 접근 전에 주소값 지정이 필요하다. 2. EEDR (EEPROM Data Register) 쓰기의 경우에는 EEAR의 주소에 쓰여질 값을 임시로 저장하고, 읽기의 경우에는 읽힌 값을 저장한다. 3. E..
2019.08.06 -
[Atmega128] 9. I2C 통신 (Inter-Integrated Circuit)
이번에는 TWI라고도 불리우는 I2C통신에 대하여 알아보자. 클럭과 데이터로 구성된 두개의 버스 선으로 이루어져 있으며, 7비트로 128개의 서로 다른 디바이스를 제어할 수 있다. 각 버스선 마다 pull-up저항이 연결되어 있으며, 마스터와 슬레이브 동작을 동시에 지원한다. 기본원리는 간단하고, 주요 기능들은 레지스터에 있으니 바로 레지스터를 알아보도록 하자. 전체적인 모듈 구성도는 위 그림처럼 생겼으며, SCL,SDA 두개의 선으로 이루어지고 컨트롤 레지스터 두개, 전송속도 레지스터, 주소 레지스터, 데이터 레지스터로 이루어져 있는걸 볼 수 있다. 1. TWBR (TWI Bit Rate Register) TWBR0...7(TWI Bit Rate Register) : TWI 전송속도를 설정하는 레지스터..
2019.08.05 -
[Atmega128] 8. UASRT 통신 (Universal Synchronus Receiver Transmit)
USART (Universal Synchronus Receiver Transmit)에 대하여 알아보자. 스타트 비트 : 1비트로 이루어 졌으며 항상 0레벨이다. 송신시에 자동적으로 생성된다. 데이터 비트 : 5,6,7,8,9비트가 가능하다. 패리티 비트 : 패리티를 사용하지 않을 수도 있고 사용하는 경우 홀수 혹은 짝수 패리티 1비트를 사용한다. 스탑 비트 : 1,2개의 비트가 가능하며 항상 1레벨이다. 송신시에 자동적으로 생성된다. 이 데이터 프레임으로 통신하며, 완전 이중방식이며 동기 및 비동기 전송이 가능하다. 송신완료, 송신 데이터 레지스터 준비완료, 수신완료등 3가지의 인터럽트를 제공한다. 그럼 바로 레지스터를 알아보도록 하자 1. UDRn (Usart i/o Data Register) 데이터 ..
2019.08.05 -
[Atmega128] 7. SPI 통신 (Serial Peripheral Interface Bus)
이번엔 atmega128에 있는 SPI (Serial Peripheral Interface Bus) 통신을 알아보도록 하자. 직렬 주변기기 인터페이스 버스라는 뜻으로, 전이중 통신이며 마스터 슬레이브 형식으로 통신한다. MHz 단위까지 통신이 가능하며 전송완료 인터럽트를 제공한다. 먼저 SS핀으로 슬레이브를 지정하고, SCK를 통해 송신할 데이터를 시프트 레지스터에 준비하여 마스터에서 슬레이브에게 MOSI를 보내고 슬레이브가 마스터에게 MISO를 보낸다. 레지스터를 알아보자. 1. SPCR (SPI Control Register) SPIE (SPI Interrupt Enable) : 1로 설정시 전송완료 인터럽트 허용 SPE : (SPI Enable) : 1로 설정시 SPI 통신 허용 DORD (Data..
2019.08.05 -
[Atmega128] 6. 아날로그 변환기 ADC (Analog to Digital Converter)
atmega128의 ADC에 대하여 알아보도록 하자. atmega128 ADC의 특징으로는, 10비트 8채널의 변환기가 있고 7채널의 차동입력 변환기로 사용가능하다. 그리고 변환완료 인터럽트를 사용할 수 있다. 먼저 adc가 아날로그신호를 디지털신호로 바꾸는 과정에 대해 알아보자. 1. 전처리 : 아날로그 신호에 포함된 잡음을 제거하고 신호의 대역폭을 제한하여 엘리어싱 을 줄인다. 2. 표본화 : 신호 대역폭 두배이상의 일정한 샘플링 주파수에 따라 신호값을 취하여 즉 신호에 포함된 최고 주파수 성분 주기의 보다 작은 주기로 신호값을 취하여 저장한다. 3. 양자화 : 표본화된 아날로그 신호는 연속적인 양으로 이를 진화하면 무한한 자리수를 요구할 수도 있다. 그러므로 표본화된 값을 소구간으로 분할하여 유한한..
2019.08.05 -
[Atmega128] 5. 아날로그 비교기 (Analog Comparator)
analog comparator에 대하여 알아보자. 용도는 인터럽트를 발생시키거나 / 타이머(카운터)를 트리거할 때 사용된다. AIN0(+)와 AIN1(-)로 들어온 아날로그 값을 비교하여 AIN0이 더 전압이 클 경우 발생한다. AIN0에서는 ACBG를 통해 bandgap reference의 고정 전압을 사용하거나 외부 전압을 사용할 수 있고, AIN1에서는 ACME, ADEN, 그리고 ADC 멀티플렉서에서의 아웃풋을 받아 결정한다. 그럼 이제 Analog Comparator의 레지스터를 알아보자 1. ADCSRB : ADC control and status register B (ADCSRA 는 ADC에서만 사용) ACME는 analog comparator multiplexer enable bit로, ..
2019.08.03