전체 글 272

아트메가 디버깅하기(AVR, ATMEL ICE, JTAG)

안녕하세요. 오늘은 아트메가128을 디버깅해보겠습니다. (JTAG) (Microchip studio 7.0사용) 먼저 디버깅 제품이 필요합니다. 저는 ATMEL ICE(정품)를 구매해서 사용했습니다. 먼저 ATMEL ICE는 커넥터가 엄청 특별합니다. 정품인 커넥터도 파는데 비싸긴 하지만 사서 쓰는 게 편합니다. 아니면 알리익스프레스 같은 곳에서 호환되는 커넥터를 사면 될 거 같습니다 저는 이중에 위의 커넥터를 사용했습니다. 커넥터에 번호가 적혀있는데 아래처럼 연결해줘야합니다. 7,8번핀은 옵션이므로 연결안해줘도 상관없습니다. TCK,TDO,TMS,TDI는 각 MCU 데이터시트에 나와있습니다 프로그램 넣는방법은 ISP와 같습니다. TOOL -> Device Programming가서 넣으면 됩니다. * 정..

아트메가/기타 2022.10.05

CLCD ATMEGA128로 제어하기 3편(I2C)

안녕하세요. 오늘은 I2C(TWI)통신을 통해서 ATMEGA로 LCD를 제어해보겠습니다. 일단은 ATMEGA128로 I2C통신을통해 LCD를 제어하려면 여러가지 알아야 합니다. 1. CLCD 사용방법 1) CLCD MCU없이 제어하기(ADM1602) 1편 2) CLCD MCU없이 제어하기 (ADM1602) 2편 3) CLCD MCU없이 제어하기 (ADM1602) 3편 4) CLCD ATMEGA128로 제어하기 1편 5) CLCD ATMEGA128로 제어하기 2편 2. ATMEGA128로 TWI통신하는방법 1) ATMEGA128 TWI(I2C)통신 알아보기 1편 2) ATMEGA128 TWI(I2C)통신 알아보기 2편 3) ATMEGA128 TWI(I2C)통신 알아보기 3편 3. PCF8574 사용방법 1..

아트메가/활용 2022.10.03

PCF8574 IC 알아보기

안녕하세요. 오늘은 PCF8574에 대해 알아보겠습니다. PCF8574란 I2C 통신을 통해서 입력 or 출력 8개를 사용할 수 있는 IC입니다. I/O가 부족할 때 사용하면 됩니다. 대표적인 사용예로는 아래의 그림과 같은 CLCD를 제어하려면 7핀(4비트모드) or 11(8비트모드)핀이 필요합니다. 4비트모드를 사용한다면 PCF8574 1개를 사용해서 I2C통신을 통해 CLCD를 제어할 수 있습니다. *회로구성 제가 사용한 모델은 PCF8574P로써 DIP16타입입니다. 핀배치입니다. A0~A2 : IC의 address설정 P0~P7 : I/O SDA,SCL : I2C VDD,VSS : 전원 INT : 인터럽트핀(통신할때 인터럽트가 발생한다는데 이 글이서는 인터럽트는 테스트하지 않습니다) 테스트를위해 ..

각종IC 2022.09.24

ATMEGA128 TWI(I2C)통신 알아보기 3편

안녕하세요. 오늘은 ATMEGA128 TWI READ를 해보겠습니다 READ를 알아보기전에 먼저 알아야 할게 있습니다. 어떤 모듈에게 데이터를 WRITE/READ를 하려면 먼저 그 모듈의 메모리주소에 접근해야하고 접근하려면 WRITE를 해야합니다. 그래서 WRITE를 하고 READ를 하면 데이터를 읽을 수 있습니다. *READ하기 Read통신하는 순서가 있습니다. 순서를 크게보면 슬레이브 주소를 전송하고 슬레이브가 응답했으면 데이터를 Read하고 통신을 끝냅니다. - 순서 0) WRITE과정하기(ATMEGA128 TWI(I2C)통신 알아보기 2편 참고) 1) START신호 전송 2) START신호 전송완료했나 확인 3) 슬레이브 주소 전송(7bit) + READ전송( Write : 0, Read : 1)..

아트메가/이론 2022.09.13

ATMEGA128 TWI(I2C)통신 알아보기 2편

안녕하세요. 오늘은 TWI통신의 Write에 대해 알아보겠습니다. * 초기세팅하기 - 통신속도설정 일단 초기세팅으로 통신속도를 설정해줘야 합니다. 통신속도는 일반적으로 100kHz로 설정을 하고 10us입니다 위의 파형은 클럭 파형이고 100kHz로 설정한 모습입니다. 주기가 10us인것을 볼 수 있습니다. 속도를 구하는 공식인데 CPU Clock frequency는 16mHz이고 TWBR과 TWPS는 아트메가 레지스터입니다 TWBR = 0x48;, TWSR = 0x00;을 넣으면 100kHz가 나옵니다 - 풀업저항설정 SDA,SCL라인에 풀업저항을 연결해줘야 합니다. 데이터시트에 풀업저항권장 사양이 나와있는 경우도 있습니다. 일반적으로 10k옴을 연결합니다. 풀업저항에 따라서 파형의 기울기가 변합니다...

아트메가/이론 2022.09.11

ATMEGA128 TWI(I2C)통신 알아보기 1편

안녕하세요. 오늘은 TWI 통신에 대해 알아보겠습니다. *TWI통신이란 TWI통신이란 Two Wire Interface이고 I2C통신과 같습니다. 선 2개로 통신을 하므로 편리하고 많이 사용됩니다. 선2개의 이름은 각각 SDA, SCL이라고 부릅니다. *SDA/SCL 데이터 읽는방법 SDA는 Serial Data이고 SCL은 Serial Clock입니다. SDA가 실제 데이터이고 SCL은 클럭입니다. HIGH와 LOW로 데이터를 전달합니다. 기본적으로 SDA는 SCL이 LOW일때 상태를 변경하고 SCL이 HIGH일때는 SDA이 변하지 않습니다. 그래서 SCL이 HIGH일때 값을 읽습니다 위의 그림처럼 데이터가 0b10001이 됩니다 이러한 과정은 출력을 HIGH/LOW를 계속 변경해가면서 만들수도 있는데..

아트메가/이론 2022.09.10

CLCD ATMEGA128로 제어하기 2편

안녕하세요. ATMEGA로 CLCD를 제어하는 2편 해보겠습니다. 여기서는 1편에서 올렸던 코드를 사용하기쉽게 수정하고 CGRAM에 대해서 알아보겠습니다 CGRAM이란 사용자가 문자를 만들어서 저장할수있는 장소입니다. 사용자가 문자 8개를 만들어서 저장 가능합니다. CGRAM Address를 보면 b5~b3가 3비트이므로 문자 8개 저장 가능합니다. 첫번째 CGRAM 주소의 000000부터 시작해서 000111까지 데이터를 한줄씩 저장 가능합니다. CGRAM의 주소는 DDRAM의 데이터와 대응이 됩니다. 그래서 데이터를 저장하고 사용할때는 0x00부터 0x07까지 사용하면 됩니다.(총8개) 그리고 CGRAM에서 주의할점은 CGRAM Address은 b5~b3가 주소 기준이므로 첫번째 주소는 0x00이고 ..

아트메가/활용 2022.08.21

CLCD ATMEGA128로 제어하기 1편

안녕하세요. 오늘은 MCU로 CLCD를 제어해 보겠습니다. 이전 글에서는 MCU 없이 CLCD를 버튼으로 제어를 했었는데, 버튼으로 했던 동작들을 MCU로 해보겠습니다. 사용하는 MCU는 ATMEGA128입니다. 기본 개념들은 이전글 참고 바랍니다 CLCD MCU없이 제어하기 (ADM1602) 1편 => CLCD 기초설명 CLCD MCU없이 제어하기 (ADM1602) 2편 => 여러기능 테스트 CLCD MCU없이 제어하기 (ADM1602) 3편 => DDRAM,CGROM,CGRAM,AC설명 회로 코드 코드를 작성하기전에 고려해야 할 사항이 있습니다. CLCD 타이밍입니다. 위의 파형과 비슷하게 MCU 포트를 제어하면 됩니다. MIN값으로 가장 큰게 500ns이므로 코드에서 1ms로 통일했습니다. 그리고 ..

아트메가/활용 2022.08.14

CLCD MCU없이 제어하기 (ADM1602) 3편

안녕하세요. 오늘은 CLCD의 두번째줄에 데이터를 입력하는 방법과 DDRAM, CGROM, CGRAM,AC에 대해서 알아보겠습니다 DDRAM(DIsplay Data RAM)이란 두번째줄에 데이터를 입력하려면 DDRAM을 알아야 합니다. 저희가 사용하는 16x2 CLCD에는 각각 주소가 있는데 이 주소를 DDRAM이라고 부릅니다. 그리고 현재 주소를 AC(Address Counter)라고 부릅니다. 이전 2편에서 데이터를 입력할때마다 Address Counter가 자동으로 1씩 증가했습니다. 위의 CLCD에서 표시되는건 16x2=32개 문자 32개입니다. 근데 1행 1열의 주소가 0x00이고 1행 2열의 주소가 0x40인데 그 이유가 있습니다. DDRAM은 문자 80개를 저장할수있습니다. 80개를 저장하긴..

회로이론/활용 2022.07.16

CLCD MCU없이 제어하기 (ADM1602) 2편

안녕하세요. 오늘은 CLCD를 MCU없이 제어해보겠습니다 1편에서 CLCD에 대해 알아보고 오늘은 1편에서 만들었던걸 가지고 실제 데이터시트에 나와있는 기능들을 사용해보겠습니다 1편보러가기 CLCD MCU없이 제어하기(ADM1602) 1편 안녕하세요. 오늘은 CLCD를 MCU없이 제어해보겠습니다 데이터시트 일반적인 방식으로 CLCD를 아두이노에 연결해서 제어하면 라이브러리를 사용하므로 복잡하지않습니다. 근데 이 글에서는 데이터 wowon.tistory.com 1편의 회로도에서는 전원on/off 버튼은 없는데 그냥 전원을 on/off해주는 버튼입니다. 4bit를 사용하므로 버튼을 4개만 연결하였습니다. RS스위치의 왼쪽은HIGH, 오른쪽은 LOW입니다. 나머지 저항,캐패시터는 LCD아래에 있습니다. (1)..

회로이론/활용 2022.07.13