본문 바로가기

분류 전체보기246

질문 https://embed-avr.tistory.com/7 개발환경 구축 프로젝트 요구사항에 맞는 CPU를 선정했으면, 그 CPU에서 수행되는 실행파일을 만들 수 있는 개발환경을 구축하여야 한다. CPU종류도 다양하게 있지만 개발도구도 CPU마다 여러가지가 있을 수 있 embed-avr.tistory.com 프로젝트가 문제없이 컴파일되어 실행파일이 생성된 것을 확인하였으면, 다음 단계로 hello.elf파일을 실제 AVR CPU 안에 있는 플래쉬메모리로 프로그램 하는 방법에 대해서 설명하도록 하겠다. 출처: https://embed-avr.tistory.com/7 [AVR로 시작하는 임베디드] 2021. 7. 30.
atmega 328p SPI(2) 실습 아두이노 2대로 마스터 슬레이브 통신을 해보겠다. PB5 =SCK PB4 = MISO PB3 = MOSI PB2 = SS 선이다. 아두이노에서는 13~10 번 핀이다. master mode 의 경우 PB5 =SCK PB3 = MOSI PB2 = SS 이 출력이고 PB4 = MISO 입력 핀 나는 PORTD7 번 핀을 슬레이브의 SS 핀 제어용으로 사용하겠다. slave mode 의 경우 PB4 = MISO 가 출력이다. 나머지 핀들은 입력 동작 프로그램 설명 master 에서 1초마다 3 과 4 를 slave 에 보낸다. 동시에 slave 측에서 7 을 master 쪽으로 보낸다. 무조건 마스터 쪽에서 SPDR레지스터에 데이터를 입력한면 즉시 데이터 전송이 발생한다. 즉 아무 슬레이브와 연결이 안되어 있.. 2021. 7. 29.
SQLite db 파일 생성 import sqlite3 con = sqlite3.connect('addr.db') cursor = con.cursor() cursor.execute("DROP TABLE IF EXISTS tblAddr") cursor.execute(""" CREATE TABLE tblAddr (name Char(16) PRIMARY KEY , Phone Char(16) , addr TEXT) """1) cursor.execute("INSERT INTO tblAddr VALUES ('김상형','111-1111','오산')") cursor.execute("INSERT INTO tblAddr VALUES ('한경은','222-2222','수원')") cursor.execute("INSERT INTO tbl.. 2021. 7. 29.
atmega 328p SPI(1) 기본개념 , 레지스터 SPI 통신은 직렬 통신방법중의 1개로써 동기 통신이다. 때문에 입력선 , 출력선 , 클럭선이 필요하고 SPI 는 특수하게 제어 선(SS) 가 필요하다. SPI 통신은 위와 같이 Master mode 와 Slave mode 가 존재하고 1대의 Master 가 여러대의 Slave 와 통신하는 구조이다. 어떤 Slave 와 통신 할지는 SS 선에 들어오는 신호를 감지하고 결정한다. SPI 가 정상 작동 하기 위해서는 SCK 가 (CPU CLK)/2 이하가 되어야 된다고 한다. 각 모드별 핀 입 출력 방향 마스터 슬레이브 통신 SPI 통신은 양방향 통신으로 송신과 수신이 동시에 일어난다. 1BIT 씩 송신하고 동신에 1BIT 씩 수신하고 있다. 때문에 실질적으로 데이터 수신 송신 과정은 16 BIT 순환 SH.. 2021. 7. 29.
링커스크립트 임베디드 시스템에서 작성된 코드가 어느 메모리에 들어 갈지는 아주 중요한 문제이다. 마이크로 컨트롤러 마다 각기 다른 메모리 구조를 지니고 있기 때문에 이를 지정해줘야 하는데 이러한 역활을 하는것이 링커이다. 그리고 링커는 링커 스크립트라는 것을 보고 우리가 작성한 코드를 각각의 마이크로컨트롤러 의 메모리에 맞게 배치한다. https://embed-avr.tistory.com/86?category=649136 Linker Script - 링커 스크립트 일반적으로 컴퓨터에서 실행되는 어플리케이션 프로그램을 C나 C++같은 언어로 개발할 때에는, 만들어진 실행파일이 물리적으로 어디에 저장되어 있는지, 실행될 때 메모리의 어느 주소에 어 embed-avr.tistory.com 2021. 7. 29.
좋은 블로그 atmega 관련 https://embed-avr.tistory.com/86?category=649136 Linker Script - 링커 스크립트 일반적으로 컴퓨터에서 실행되는 어플리케이션 프로그램을 C나 C++같은 언어로 개발할 때에는, 만들어진 실행파일이 물리적으로 어디에 저장되어 있는지, 실행될 때 메모리의 어느 주소에 어 embed-avr.tistory.com LED 제어 4 - AVR로 시작하는 임베디드 (tistory.com) LED 제어 4 이번글에서는 AVR에서만 사용가능한 방법이 아닌 일반적인 방법으로 LED를 점멸하는 기능을 구현해 보도록 하겠다. 이번 글은 아직 임베디드 시스템 프로그램에 익숙하지 않은 개발자에게는 다 embed-avr.tistory.com https://kogun.tistory.co.. 2021. 7. 29.
atmel studio 설치 및 hex 파일 업로드 (아두이노 우노) https://kevinthegrey.tistory.com/44 2) Atmel Studio 7.0 설치&프로젝트 생성 Atmel Studio7 설치에대해 알아보자. 우리가 사용할 수 있는 버전으로는 4.x, 6.x, 7.x 버전이 존재 Atmel Studio는 버전이 올라가며 점차 AVR 8bit, 32bit 뿐 아니라 ARM계열의 칩까지 모두 지원을 하기 때문에. kevinthegrey.tistory.com 위 블로그 따라하면됨 atmel stdio 다운 완료 - atmel studio 는 자체 simulater 를 가지고 있으므로 모든 코드는 simulater 로 동작해본다고 생각하면 된다. 별다른 기기 없이 arduino 에 atmel studio 에서 코딩한 파일을 올리기 위해서는 ISP 통신으.. 2021. 7. 29.
atmega328P ADC (2) 프로젝트 실습 아두이노 우노의 경우 AVCC 는 VCC 와 direct 하게 연결되어 있다. -> 따로 설정 안해도 됨 cf) 물론 lc filter 가 없기 때문에 잡음에 취약 할 수 있지만 , 필요하면 비싼 chip 사던가 ADC0 pin 을 input pin 으로 사용 ( A0 핀) 분주비는 128, AREF pin 을 Vref 로 사용하고 ADC conversion complete interrupt 발생할때 마다 The ADC Data Register 를 출력 하겠다. AREF = 5V 입력 저항을 직렬로 3개 연결해서 5v 전압을 1/3 부분에 꽃 았다가 2/3 부분에 꼿았다가 해보았다. 코드 #include uint16_t digitalNum; uint8_t *p8 = (uint8_t*)&digitalNum.. 2021. 7. 28.
atmega328P ADC (1) 개념 및 레지스터 기본 개념 atmega328 의 경우 8 채널 10 bit 의 분해능을 가진 축차 비교형 ADC 이다. 축차 비교형 컴버터의 동작원리 : https://ko.wikipedia.org/wiki/%EC%B6%95%EC%B0%A8_%EB%B9%84%EA%B5%90%ED%98%95_%EC%95%84%EB%82%A0%EB%A1%9C%EA%B7%B8-%EB%94%94%EC%A7%80%ED%84%B8_%EB%B3%80%ED%99%98%ED%9A%8C%EB%A1%9C 축차 비교형 아날로그-디지털 변환회로 - 위키백과, 우리 모두의 백과사전 축차 비교형 ADC 기능도 아날로그-디지털 변환회로 방식중에 축차 비교형 아날로그-디지털 변환회로(Successive approximation ADC)는 이진 탐색 방식으로 양자화하.. 2021. 7. 28.