Page 1 of 12 비접촉온도측정 원거리온도측정 Small Size High Accuracy 디지털인터페이스 (SPI 프로토콜 ) 제품설명 DTS-L300 은적외선온도센서를기반으로한접촉하지않고원하는대상에온도를정확히측정할수있는온도센서모듈입니다. DTS-L300 은접촉을하지않고원하는물체표면에온도를 1 초이내에정확하게측정할수있는온도센서모듈입니다. DTS-L300 은온도계산프로세서를내장하고있어정확한온도값을출력합니다. (Master MCU 에온도계산알고리즘이필요하지않습니다.) DTS-L300 은 SPI 포트가내장되어있어디지털통신으로온도값을출력합니다. 주변온도와타겟온도를동시에측정. 특징 응용분야 원거리에물체온도측정가능 -30~300 C 타켓온도측정 -20~80 C 주변온도측정 0.01 C 분해능 1mA 저전류소비 Small Size(23mm*23mm) 적외선온도계. 과열방지시스템. 인체온도를측정하는체온계. 산업용온도측정장치. 체온측정을통한인체감지. 전자레인지, 에어컨, 토스터기및기타가전기기. 자동차내온도제어장치.
Page 2 of 12 ABSOLUTE MAXIMUM RATINGS Absolute maximum rating 값을초과하는조건에서 DTS-L300 을동작시킬경우 DTS-L300 에치명적인손상을가할수있습니다. Parameter Symbol Conditions Min Typ Max Unit Supply Voltage Vcc Measured versus GND -0.2 4.0 V Storage temperature Tstor -40 85 C Operating temperature Top -20 80 C ELECTRICAL REQUIREMENTS Parameter Symbol Conditions Min Typ Max Unit 공급전압 Vcc Measured versus GND 2.4 3.6 V 방사율 (Emission Coefficient) ε 0.99 Full ambient temp. range, 공급전류 typical value, no output load 1 ma Sleep Mode 1 ua SPI Clock 1 MHz OPERATIONAL CHARACTERISTICS If not otherwise noted, 25 C ambient temperature, 3.3V supply voltage and object with ε =0.99 were applied. Parameter Symbol Conditions Min Typ Max Unit 측정각 (Field of View) 4 온도측정범위 ( 타겟온도범위 ) Tobj -30 300 C 동작온도 ( 주변온도 ) Tamb -20 80 C 온도측정시간 Fout 1 sec 정확도 AccT ±2 % 온도분해능 (Resolution Digital) 0.01 C Standard Start-UP Time tstart 3 sec Stabilization Time tstab 3 min
Page 3 of 12 MECHANICAL DIMENSIONS < TOP VIEW > < BOTTOM VIEW > < SIDE VIEW> All units mm Figure 1: Mechanical dimensions of DTS-L300
Page 4 of 12 TERMINALS Connector : Molex 053398-0671( 반대편 Connector 은 Molex 51021-0600 이필요합니다.) Pin Name Description Type 1 GND Ground Ground 2 /CS Enable Input 3 SCK Clock Input 4 SDI Signal Input Input 5 SDO Signal Output Output 6 VCC Supply Voltage Supply < BOTTOM VIEW > BLOCK DIAGRAM
Page 5 of 12 SPI INTERFACE - General Description DTS-L300 은 SPI Slave mode 로동작합니다. 500ms( 약 2Hz) 주기로온도를측정하여 data 를업데이트합니다. 전송방식 : MSB, SCK 주파수 : 최대 1MHz Figure. 2 Timing of SPI
Page 6 of 12 - 온도측정프로토콜 - 온도계산방법 (Temperature calculation) 영상온도계산 0xA0 0x42 0x0E 0xA1 0x C4 0x09 * 타겟온도계산 : 상위 Byte(0x0E) + 하위 Byte(0x42) = 0x0E42 => 3650(HEX 10 진수 ) 즉 36.50 도입니다. * 주변온도계산 : 상위 Byte(0x09) + 하위 Byte(0xC4) = 0x09C4 = >2500 (HEX 10 진수 ) 즉 25.00 도입니다. 영하온도계산 ( 영하 (0 도미만 ) 일때는 2 의보수값으로전송됩니다.) 0xA0 0x6A 0xFF 0xA1 0x7A 0xFF * 타겟온도계산 : 상위 Byte(0xFF) + 하위 Byte(0x6A) = 0xFF6A = 350 0xFF6A = 1111 1111 0110 1010 (1 의보수값 + 1 의연산을합니다 ) 0000 0000 1001 0101 1 의보수값 0000 0000 1001 0110 +1 = 0x0096 0x0096 = 150 즉, -1.50 도입니다. * 주변온도계산 : 상위 Byte(0xFF) + 하위 Byte(0x7A) = 0xFF7A = -1.34 도입니다
Page 7 of 12 Sleep Mode 셋팅방법 *Sleep Mode 는 0xEE 명령을보내면셋팅되며셋팅완료시 0xEE, 0xEE 값이리턴됩니다. *Sleep Mode 에서정상동작모드로변환은위에서설명한온도측정명령어 (0xa0 또는 0xa1) 를모듈에보내면자동으로 wake up 되어정상동작모드로전환됩니다. 모든명령은 3byte 형식으로보내야합니다. 예시 : (0xEE,0x22,0x22)(0xA0,0x22,0x22) 0xEE 0xEE 0xEE 주의사항 - 본제품은비접촉적외선온도센서모듈입니다. - 공급전원은 2.4~3.6V 입니다. 전원을 3.6V 이상공급하면제품에손상이갈수있습니다. - 각핀에연결은제대로되었는지확인하세요. 확인시에는전원을분리하여주세요. - 각핀에연결방법은아래그림과같습니다. Figure 3: Pin connection Diagram - 제품에심한전기적쇼크나충격을가하지않도록하십시오. 오작동의원인이됩니다. EX) 온도를측정하려는타켓물체와모듈과에거리가 3m 일경우타켓물체의약 20cm 직경에온도를측정하게됩니다. Figure 4: FOV(field of view) Diagram
Page 8 of 12 - 테스트보드를사용하시면보다편리하게온도측정을할수있습니다. - Figure 5: Test Board Additional Information 제조회사 디웰전자 (DIWELL Electronics Co., Ltd.) 경기도군포시당정동 358 군포창업보육센터 202 호 202, Kunpo Business Incubator Center, 358, Dangjung-Dong, Gunpo-City, Gyeonggi-Do, South Korea Phone 070-8235-0820 (+82-70-8235-0820) Fax 031-429-0821 (+82-31-429-0821) 기술문의 email : expoeb2@diwell.com, dsjeong@diwell.com
Page 9 of 12 부록 1 (Sonix MCU spi 레지스터를이용한예제코드 ) 아래소스코드는 DTS Series 통신을위한참고용가이드소스코드로반드시지켜야할사항이아닙니다. 코드를참고하여사용자환경에맞게끔레지스터설정 / 응용하시길바랍니다. 컴파일러마다레지스터설정명령이전부다릅니다. 하지만설정하는내용은같습니다. 아래설정값으로해당컴파일러에맞게응용적용하셔야합니다. SPI 초기값세팅 - Clock 주파수최대 1Mhz - Internal SPI Clock(Master Mode) - SCK data transfer edge : Rising Edge - MSB first data transfer - SCK idle status : High long Check_Temp(unsigned char datum) // Sonix 컴파일러에는 Long 이 2byte 입니다. long temp_bank=0; SIOB = datum; // Buffer 레지스터에저장 NOP(1); EN_LOW; // Enable Low delay_us(10); // 10us delay FSTART = 1; // SPI 전송시작 while(fstart==1); // 전송완료 flag check buffer2=siob; // dummy SIOB = 0x22; // 0x22 or 0x00 가능합니다. delay_ms(10); // 10ms delay FSTART = 1; // SPI 전송시작 while(fstart==1); // 전송완료 flag check buffer=siob; // 하위 Byte 저장 SIOB = 0x22; // 0x22 or 0x00 가능합니다./ delay_ms(10); FSTART = 1; // 10ms delay // SPI 전송시작 while(fstart==1); // 전송완료 flag check buffer1=siob; // 상위 Byte 저장
Page 10 of 12 EN_HIGH; // Enable High temp_bank=(buffer1*256)+buffer; // 상위, 하위 Byte 온도계산식. // temp_bank : 최종온도 return temp_bank; void main(void) Long Target_Value, Ambient_Value; // 부호있는 2byte 선언 Port_init(); LCD_init(); EN_HIGH; SPI_init(); // PORT 초기화 // LCD 초기화 // CS idle High // SPI 초기화 while(1) Target_Value = Check_Temp(0xa0); // SPI 통신 ( 타겟온도 ) delay_ms(100); Ambient_Value = Check_Temp(0xa1); // SPI 통신 ( 주변온도 ) LCD_view(); // 온도값 LCD 표시 delay_ms(900); // 900ms delay( 필수 ) // 온도값 read 명령후다음명령까지 900ms delay
Page 11 of 12 부록 2. (IO 를이용한 SPI 예제코드 ) 아래소스코드는 IO 를이용해 SPI 통신을하는함수입니다. 참고하시어적용하십시오. 단, 포트표현방법이컴파일러마다다르므로해당컴파일러에맞게수정하시고흐름을참고하십시오. SPI.H #ifndef _SPI_ #define _SPI_ #define SCK_HIGH #define SCK_LOW #define SDO_HIGH #define SDO_LOW #define EN_HIGH #define EN_LOW FP16=1 FP16=0 FP14=1 FP14=0 FP17=1 FP17=0 long CHECK(unsigned char datum); #endif SPI.C #include "SN8F27E65.h" #include "delay.h" #include "SPI.h" unsigned char buffer_lo, buffer_hi, p02; //1byte 선언 long CHECK(unsigned char datum) //2 byte return 함수 unsigned char i=0; buffer_lo=0; buffer_hi = 0; EN_LOW; delay_us(10); for(i=0; i<8; i++) if(((0x80 >>i)&datum)==0)sdo_low; else SDO_HIGH; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); SDO_LOW; // 0x22 or 0x00 전부가능합니다만코드간결을위해 0x00 사용 delay_ms(10); //Low byte read for(i=0; i<8; i++) buffer_lo = buffer_lo <<1; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); p02=fp02; // 포트의상태읽는문장 if(p02 == 1)buffer_Lo = buffer_lo 0x01; elsebuffer_lo = buffer_lo&0xfe; SDO_LOW; delay_ms(10); //High byte read for(i=0; i<8; i++)
Page 12 of 12 buffer_hi = buffer_hi <<1; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); p02=fp02; // 포트의상태읽는문장 if(p02 == 1)buffer_Hi = buffer_hi 0x01; elsebuffer_hi = buffer_hi&0xfe; EN_HIGH; return (buffer_hi*256+buffer_lo); void main(void) Long Target_Value, Ambient_Value; // sonix 컴파일러는 long 이 2byte 입니다. 해당하는컴파일러에맞게 2byte 변수선언하세요 // spi 해당포트초기화 // 클럭포트는 Idle =HIGH 입니다. // 기타 LCD 등사용자포트초기화 while(1) Target_Value = CHECK(0xa0); // 대상온도 delay_ms(100); Ambient_Value = CHECK(0xa1) // 주변온도 delay_ms(900); // LCD View CODE here