임베디드 프로그래밍 Lecture #04 2017. 10. 16.

Slides:



Advertisements
Similar presentations
컴퓨터 계측 및 실습 개 요 영남대학교 기계공학부. PC 의 기본장치 PC 의 작동구조.
Advertisements

1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
IC DESIGN LAB 서강대학교 집적회로설계 연구실 SOGANG UNIVERSITY 2014 Since 1993
ZX Smart Sensor 매뉴얼 韓國OMRON(株) 기술영업부 ZX-LDA11 (앰프) ZX-LD40 (헤더)
11 레지스터 (Register) IT CookBook, 디지털 논리회로.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
SoC 로봇워 참가자 교육.
AVR.
Vision System Lab, Sang-Hun Han
AVR 실습.
임베디드 프로그래밍 Lecture #
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
Switched – Mode Power Supply
Smart IoT 설계 시스템 Lecture 07. 센서와 액츄에이터 실습.
마이크로프로세서(Microprocessor,µP)
2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
기본 컴퓨터 프로그래밍 Lecture #6.
센서공학 Sensor Engineering
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
10장 주변장치 (PIO) Slide 1 (of 28).
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
 midi LOGGER GL220   신제품 소개 Dec, 2011.
IEC 가정용 전기용품 안전 규격 ㈜표준엔지니어링.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
임베디드 하드웨어 Lecture #6.
임베디드 프로그래밍 Lecture #
임베디드 프로그래밍 Lecture #
To Hear will be forget To see will get memory again To do will be know.
아날로그 및 디지털 회로의 인터페이싱.
Embedded System Porting (2)
Embeded 기초 다지기 2015년 10월 26일 intern Sally
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
UNIT 18 AD Converter Test 로봇 SW 교육원 조용수.
고등용 LED를 이용한 재미있는 표현.
DSP 소개 및 TMS320LF2407A 6th hyaoo.
DataScience Lab. 박사과정 김희찬 (월)
AVR Studio 소개 1. AVR Studio의 다운로드 - AVR Studio 관련 홈페이지 -
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Android Coding Convention
6장. LCD 사용하기.
AVR - Chapter 12 황 지 연.
타이머/카운트 정리 정보통신•컴퓨터 공학부 송명규
임베디드 소프트웨어 설계.
Medical Instrumentation
Chapter 4 The Von Neumann Model.
DataScience Lab. 박사과정 김희찬 (월)
A Web-Based Little Man Computer Simulator
RPi2 SPI 8x8 Dot Matrix LED
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
임베디드 프로그래밍 Lecture #
임베디드 프로그래밍 Lecture #
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
7주차 FPGA 보드 사용법.
(1) 필터 구조마다 유한 정세도 특성(finite precision characteristics)이 다름.
아두이노 프로그래밍 Lecture #
MA125T ▶ 제품개요 MA125T는 Temic & EM-CARD를 Read 하여 카드 데이터 전송모듈
아날로그일까? 디지털일까? -사용자 경험 기반 디지털 기술을 활용한 반응하는 액자 만들기-
교육 내용 OMRON SYSMAC Gateway(SGW) 설치 INDEX 제어 프로그램 설치
임베디드 하드웨어 Lecture #6.
사물인터넷(IoT) 프로그래밍 기초 5. 시리얼통신.
Progress Seminar 양승만.
Lecture 7 7-Segment LED controller using u-controller
임베디드 프로그래밍 Lecture #
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

임베디드 프로그래밍 Lecture #04 2017. 10. 16

목 차 I2C 통신 테스트 TMP102 디지털 온도 센서 인터페이스

동기식 직렬 통신 (1) 라즈베리파이 동기식 직렬 통신 ADC Sensors RaspberryPi I2C / SPI Actuator ADC I2C / SPI DAC

동기식 직렬 통신 (2) I2C 직렬 통신

동기식 직렬 통신 (3) SPI 직렬 통신

TMP102 디지털 온도 센서 (1) TMP102 Breakout Board TMP102 IC Low-power digital temperature sensor SMBus™/Two-Wire(I2C) Serial Interface 12-bit ADC Resolution - 0.0625 ℃/count Accuracy: 0.5°C (–25°C to +85°C) Low Quiescent Current: 10mA Active (max) / 1mA Shutdown (max) Voltage Supply Range: 1.4V to 3.6V

TMP102 디지털 온도 센서 (2) TMP102 Breakout Board TMP102 IC

TMP102 디지털 온도 센서 (3) TMP102 Breakout Board TMP102 IC cf) (1) Pointer register : 8 bits (2) Other registers : 16 bits, Little-endian order

TMP102 디지털 온도 센서 (4) TMP102 Breakout Board TMP102 Temperature Register Normal Mode Config. Reg. EM bit = 0 12-bit resolution Extended Mode Config. Reg. EM bit = 1 13-bit resolution

TMP102 디지털 온도 센서 (5) TMP102 Breakout Board TMP102 Temperature Register – data format

TMP102 디지털 온도 센서 (6) TMP102 Breakout Board TMP102 Temperature Register – data format

TMP102 디지털 온도 센서 (7) TMP102 Breakout Board TMP102 High/Low Limit Register Alert 동작의 경계 온도 설정

TMP102 디지털 온도 센서 (8) TMP102 Breakout Board TMP102 Configuration Register (1) Conversion Rate(CR) - Sampling speed (2) Extended Mode(EM) - Sampling resolution(12/13 bits) 선택

TMP102 디지털 온도 센서 (9) TMP102 Breakout Board TMP102 Configuration Register (3) Alert(AL) – read only (4) Polarity(POL) (5) Termostat Mode(TM) TM = 0 TM = 1

TMP102 디지털 온도 센서 (10) TMP102 Breakout Board TMP102 Configuration Register (6) Fault Queue(F1/F0) A fault condition exists when the measured temperature exceeds the user-defined limits set in the THIGH and TLOW registers. The number of fault conditions required to generate an alert may be programmed using the fault queue. The fault queue is provided to prevent a false alert as a result of environmental noise.

TMP102 디지털 온도 센서 (11) TMP102 Breakout Board TMP102 Configuration Register (7) Shutdown Mode(SM) (8) One-Shot/Conversion-Ready(OS) (9) Conversion Rate(R1/R0=‘11’)

TMP102 디지털 온도 센서 (12) TMP102 Breakout Board TMP102 Addressing : ADD0 pin

TMP102 디지털 온도 센서 (13) TMP102 Breakout Board https://www.sparkfun.com/products/13314 http://www.devicemart.co.kr/1342030

TMP102 디지털 온도 센서 (14) TMP102 Breakout Board : JK전자 ADD0을 Vcc에 연결 => 0x49

TMP102 디지털 온도 센서 (15) TMP102 Breakout Board : 라즈베리파이와의 연결 RaspberryPi TMP102 BB pin1(3.3V) Vcc pin39(GND) GND pin3(SDA) SDA pin4(SCL) SCL ADD0 pin11(GPIO17) Alert

TMP102 디지털 온도 센서 (16) TMP102 Breakout Board : I2C 주소 확인 # sudo i2cdetect –y 1

TMP102 디지털 온도 센서 (17) TMP102 Breakout Board : I2C 입출력 테스트 # sudo i2cget –y 1 0x49 0x00 w // read current temperature # sudo i2cget –y 1 0x49 0x01 w // read config. register # sudo i2cget –y 1 0x49 0x02 w // read low limit temperature register # sudo i2cget –y 1 0x49 0x03 w // read high limit temperature register # sudo i2cset –y 1 0x49 0x01 0xb060 w // set config. Register to enable EM mode

TMP102 BB 테스트 (1) 테스트 프로젝트 생성 NetBeans IDE를 이용한 테스트 프로그램 작성 및 테스트 프로젝트명: TMP102_Test 프로젝트 속성 설정에서 라이브러리 추가 lib 디렉토리 생성 dio.jar 파일을 lib 디렉토리로 복사 프로젝트 속성에서 dio.jar 라이브러리 추가

TMP102 BB 테스트 (2) I2C 인터페이스 패키지 복사 PCF8591BB_Test 프로젝트로 부터 I2C 인터페이스 패키지를 “source packages” 내로 복사 i2c_dev package I2c_dev.drivers package

TMP102 BB 테스트 (3) I2C 인터페이스 패키지 확장 (1) i2c_dev.I2CUtils 클래스에 short 타입 데이터 출력 메소드 추가 public static void writeShort(I2CDevice device, byte cmd, int value) { ByteBuffer txBuf = ByteBuffer.allocateDirect(3); txBuf.put(0, cmd); txBuf.put(1, (byte)((value >> 8) & 0x00FF)); txBuf.put(2, (byte)(value & 0x00FF)); try { device.write(txBuf); } catch (IOException ex) { System.out.println("WARNING: " + ex.getMessage()); }

TMP102 BB 테스트 (4) I2C 인터페이스 패키지 확장 (2) i2c_dev.TMP102 Enumeration 클래스 추가

TMP102 BB 테스트 (5) I2C 인터페이스 패키지 확장 (3) i2c_dev.drivers.TMP102Device 클래스 추가

TMP102 BB 테스트 (6) 장치 테스트 클래스 작성 tmp102_test.TMP102_Test 클래스 구현

TMP102 BB 테스트 (7) 설정 파일 추가 및 수정 “lib” 디렉토리에 장치 레지스트리 파일 및 보안 정책 파일 추가 build.xml 파일 수정

TMP102 BB 테스트 (8) 설정 파일 – 장치 레지스트리 파일 # RPi3 header pins 1 = deviceType: gpio.GPIOPin, pinNumber:4, name:GPIO4, predefined:true 2 = deviceType: gpio.GPIOPin, pinNumber:7, name:GPIO7, mode:4, direction:1, predefined:true 3 = deviceType: gpio.GPIOPin, pinNumber:17, name:GPIO17, predefined:true 4 = deviceType: gpio.GPIOPin, pinNumber:18, name:GPIO18, mode:4, direction:1, predefined:true 5 = deviceType: gpio.GPIOPin, pinNumber:22, name:GPIO22, predefined:true 6 = deviceType: gpio.GPIOPin, pinNumber:23, name:GPIO23, mode:2, direction:0, predefined:true 7 = deviceType: gpio.GPIOPin, pinNumber:24, name:GPIO24, mode:2, direction:0, predefined:true 8 = deviceType: gpio.GPIOPin, pinNumber:25, name:GPIO25, mode:4, direction:1, predefined:true 9 = deviceType: gpio.GPIOPin, pinNumber:27, name:GPIO27, predefined:true 100 = deviceType: uart.UART, controllerName:ttyAMA0, name:ttyAMA0, baudRate:19200, dataBits:8, parity:0, stopBits:1, flowControl:0, predefined:true 300 = deviceType: spibus.SPIDevice, name:SPI0.0, controllerNumber:0, address:0, csActive:1, wordLength:8, clockFrequency:500000, clockMode:1, bitOrdering:1, predefined:true gpio.GPIOPin = initValue:0, controllerNumber:0, direction:0, mode:2, trigger:1, predefined:true uart.UART = baudRate:19200, parity:0, dataBits:8, stopBits:1, flowControl:0, predefined:true

TMP102 BB 테스트 (9) 설정 파일 – 보안 정책 파일 // policy for DIO framework grant { // Very permissive permissions permission jdk.dio.DeviceMgmtPermission "*:*", "open"; permission jdk.dio.gpio.GPIOPinPermission "*:*"; permission jdk.dio.i2cbus.I2CPermission "*:*"; permission jdk.dio.spibus.SPIPermission "*:*"; };

TMP102 BB 테스트 (10) build.xml 파일 수정

TMP102 BB 테스트 (11) 프로젝트 속성 설정 수정 Sources / Run 속성 수정

TMP102 BB 테스트 (12) 원격 실행 원격 디버깅