Embedded System/AVR 13

[AVR] ADC 사용하기(13.11.25 코드 수정)

AVR을 이용해 개발하는 사람들은 꼭 해보는 과정이 있다. 내가 배워온 과정을 순서대로 적으면 다음과 같다.(아마 제일 흔한 과정이 아닐까?) IO핀을 이용하여 LED제어 ↓ 타이머/카운터로 1초 만들기 ↓ PWM사용해서 서보모터 제어 ↓ 캐릭터 LCD 동작구현 ↓ USART통신 ↓ ADC 사용해서 센서값 받아오기 여기까지 하면 나머지 부분은 스스로 데이터시트를 보면서 할 수 있다고 생각한다. PWM사용하는것 까진 쉽게 할 수 있어서 이렇게 따로 게시글로 정리하진 않았다. 그래도 캐릭터 LCD, USART까지 글을 올렸으니 ADC도 올리는게 맞는거겠지? ADC는 뭐인고? Analog to Digital Converter의 약자다. 즉 아날로그 신호를 디지털값으로 바꿔주는 놈이다. AVR의 ADC분해능은 ..

Embedded System/AVR 2017.04.02

[AVR] USART 직렬통신 하기(시리얼통신)

AVR과 컴퓨터간에 시리얼통신으로 데이터를 주고 받아보자. 이론적인 내용은 잘 몰라서 설명은 내 마음대로한다. 먼저 시리얼통신에는 동기모드와 비동기모드 두 가지 모드가 있다. 자세한 내용은 잘 모르겠지만 내가 알기론 동기식과 비동기식의 차이는 클럭의 차이다. 디지털회로시간에 배우긴했는데 기억이 가물가물... 일단 건드려야할 레지스터는 4개 밖에 없다. 색이 칠해져있는건 뭔지 feel이 온다. UCSR은 저놈들이 중요한놈들이다. 일단 UCSRA의 비트5 UDRE는 새로운 송신데이터를 받을 준비가 되어 있으면 set 되는 플래그이다. Read만 가능! UCSRB의 4,3번 비트는 Rx enable, Tx enable이다. 즉 avr의Rx, Tx핀을 일반IO 말고 데이터 송수신 용도로 쓰게한다. UCSRB와 ..

Embedded System/AVR 2017.04.02

[AVR] 캐릭터 LCD 사용하기(LMC1623A)

Atmega128을 이용하여 CLCD를 구동해보자. 꼭 mega128을 사용하지 않아도 된다. 있는게 128이라서.... 나중에 핀 할당만 다시해주면 된다. 나는 CLCD모델 LMC1623A를 가지고 설명하겠다. 모델마다 데이터시트가 다르니 여기 있는글과 똑같이하면 안될수도 있다. 하지만 다른제품도 거의 비슷하게 되어있다. 그리고 8bit 기준으로 설명하겠다. 갑자기 8bit라니 무슨 말인지 모르겠지... 데이터핀을 8개 쓰니까 8bit다. 핀 아낄려면 핀 4개만 연결해주면 된다. 그러면 4bit가 되는것이다. 먼저 CLCD가 atmega128에 어떻게 연결되어있는지 회로도를 보자. 위(15, 16번 핀),아래(1,2,3번 핀)에 있는 가변저항은 백라이트와 글자농도를 조정해준다. Data PIN에는 일반..

Embedded System/AVR 2017.04.02