Solutions
Solutions

Imanuwali yomsebenzisi ye-SL-W-TRS-5.5Dx Digital Infrared Thermopile Demo Board

2024-12-13 1652
SLKOR I-Micro Semicon Co., Ltd. inomgogodla wayo wezobuchwepheshe ovela eNyuvesi yaseTsinghua kanye neNyuvesi yaseYonsei eNingizimu Korea. Ihola ukuthuthukiswa kwenkampani ngezinto ezintsha, izinqubo ezintsha kanye nemikhiqizo emisha, futhi ikwazi kahle ubuchwepheshe obuthuthuke emhlabeni wonke besizukulwane sesithathu semiconductor silicon carbide power devices kusenesikhathi uma kuqhathaniswa.

 

SLKOR iyibhizinisi lobuchwepheshe obuphezulu elihlanganisa ukuklama, ukuthuthukiswa, ukukhiqizwa nokuthengiswa kwemikhiqizo ye-elekthronikhi. Ihlinzeka amakhasimende ngemikhiqizo enokwethenjelwa kanye nezinsizakalo zobuchwepheshe ezihambisanayo. Ibhrendi "SLKOR"Ithuthuke kancane kancane yaba edume umhlaba wonke, inikezela ngemikhiqizo nezisombululo kumakhasimende angaphezu kuka-10,000 emhlabeni jikelele.

 

Emzamweni wokulwela ukunikeza amakhasimende uhla olugcwele lwemikhiqizo ehambisanayo, SLKOR yethule uchungechunge lwezincwadi zokusebenzisa amabhodi edemo wemiklamo yezinhlelo zokusebenza zokulinganisa izinga lokushisa le-infrared thermopile okungezona okuthintana nalo.

 

1.1 Igama: Incwadi Yomsebenzisi ye SLKOR Ibhodi Ledemo Yesicelo Sokukala Isilinganiso Sokushisa Kwedijithali ye-Infrared Infrared Thermopile

Izicelo: Imishini egqokekayo ehlakaniphile, amafoni ahlakaniphile, ukuqapha izinga lokushisa kwezimboni, ukukalwa kwezinga lokushisa komzimba womuntu okungathinteki, inzwa yokushisa ehlakaniphile nokulawula namanye amadivaysi anosayizi omncane wokulinganisa izinga lokushisa lebanga elifushane.

1.3 SL-W-TRS-5.5Dx Series Demo Board:

Isetshenziselwa ukuhlola nokuhlola izinhlobo ezahlukene zezinzwa. Imiphumela yokulinganisa izovezwa esikrinini futhi ingaphrintwa kusofthiwe ye-serial yokulungisa iphutha lembobo ku-PC nge-USB kuya kumbobo ye-serial. Incazelo yenkinobho: Inkinobho yangakwesokunxele eyokusethwa kabusha, futhi inkinobho yesokudla ingalawula ukuqala nokumiswa kohlelo.

image.png 

2. Idizayini yezingxenyekazi zekhompuyutha ye-SL-W-TRS-5.5Dx Series

 

Izikhonkwane ze-chip zihlanganisa ukunikezwa kwamandla kanye nebhasi ye-I2C, enenani lamaphini angu-4. Ibanga elivumelekile le-voltage yokuhlinzeka ngu-2.3 - 3.6V. Inzwa ngokwayo inokusetshenziswa kwamandla okuphansi kakhulu. I-capacitor engu-0.1uF phakathi kwendawo yokunikeza amandla yanele. Uma inzwa ikude kakhulu nengxenye yokuphakelwa kwamandla, i-capacitor eyengeziwe engu-10uF ingacatshangelwa ukuze kuqinisekiswe ukunikezwa kwamandla okuzinzile nokunciphisa umsindo.

image.png 

 

 

3. Incazelo ye-SL-W-TRS-5.5Dx Series Demo Board

 

3.1 Ibhodi ledemo linikwa amandla isokhethi yohlobo C, futhi amandla kagesi ebhodi ledemo ngu-5V. Uma isetshenziswa, xhuma ibhodi ledemo ku-PC ngo-Type-C, bese ungakwazi ukubuka imiphumela esikrinini. Uma udinga ukukhombisa idatha ngembobo ye-serial, kudingeka ukuthi ufake uhlelo lomshayeli lwe-WCH CH340 bese usebenzisa isofthiwe ye-serial yokulungisa iphutha lembobo ukuze usebenze. Izilungiselelo zokuxhumana kwembobo yochungechunge zimi kanje: Izinga le-Baud: 9600, Amabhithi edatha: 8, Amabhithi wokumisa: 1, futhi akukho ukuhlola kokulingana.

 

3.2 Ukuboniswa kwesikrini kwebhodi ledemo ukusuka phezulu kuye phansi kungokulandelayo: izinga lokushisa le-ambient (tamb), i-sensor output voltage (vtp_cor), izinga lokushisa lento (engaphezulu) (tobj), kanye nezinga lokushisa lomzimba womuntu (tbdy). Iyunithi yamanani okushisa angenhla ngu-°C, kanti iyunithi ye-voltage ingu-μV. Phakathi kwazo, amanani amathathu okuqala yimiphumela yasekuqaleni yedivayisi. Inani lokushisa komzimba libalwa ngokusekelwe kumanani okuqala kusetshenziswa i-algorithm yenkampani yethu futhi ingeyereferensi kuphela. Abasebenzisi bangacubungula idatha besebenzisa ama-algorithms abo okushisa komzimba ngokuya ngezidingo zabo. 

image.png 

Umphumela wokuboniswa kwembobo ye-serial

 

 2. Isibonelo sohlelo lwebhodi ledemo lochungechunge lwe-SL-W-TRS-5.5Dx

 

/////////////////////////////////////////// /////////////////////////////////////////// //

 // main.c

 //XNUMX

 #chaza FOR_CUSTOMER

 #ifdef FOR_CUSTOMER

 #ihlanganisa "drv_uart.h"

 

#ihlanganisa "drv_i2c.h"

#faka phakathi "drv_key.h"

#faka phakathi "oled/oled.h"

#faka phakathi "trs55d.h"

 

i-extern void SystemCoreClockupdate(engenalutho);

i-extern void delay_ms(int cnt);

 int main (ayikho)

{

uint8_t ukhiye;

 uint8_t run = 0x01;

 I-SystemCoreClockupdate();

uma (SysTick_Config(SystemCoreClock / 1000))

ngenkathi(1);

 uartInit();

drv_i2c_init();

drv_key_init();

 

OLED_Init();

 OLED_Vuselela();

OLED_Sula();

OLED_ShowString(8,0,"Tamb:",16,1);

OLED_ShowString(8,16,"Vtp:",16,1);

 OLED_ShowChinese(8,32,0,16,1);

OLED_ShowChinese(24,32,2,16,1);

OLED_ShowChinese(40,32,3,16,1);

OLED_ShowChinese(8,48,1,16,1);

 OLED_ShowChinese(24,48,2,16,1);

OLED_ShowChinese(40,48,3,16,1);

OLED_Vuselela();

uartSendString("I-SL-W-TRS-5.5Dx Uhlelo lwedemo ");

ngenkathi(1) {

key = drv_key_read();

ngenkathi(drv_key_read());

uma (ukhiye) {

 gijima = (gijima)?0:1;

}

uma (gijima) {

 I-TRS55D_read();

OLED_Vuselela();

}

delay_ms(20);

}

}

 

/////////////////////////////////////////// /////////////////////////////////////////// //

 //trs55d.h

 //XNUMX

#ifndef _TRS55D_H_

#chaza _TRS55D_H_

#hlanganisa

#define TRS55D_NORMAL_Tobj_MSB_R 0x10

#define TRS55D_NORMAL_Tobj_CSB_R 0x11

#define TRS55D_NORMAL_Tobj_LSB_R 0x12

 #define TRS55D_NORMAL_TEMP_MSB_R 0x16

#define TRS55D_NORMAL_TEMP_CSB_R 0x17

#define TRS55D_NORMAL_TEMP_LSB_R 0x18

 #define TRS55D_NORMAL_DATA1_MSB_R 0x19

#define TRS55D_NORMAL_DATA1_CSB_R 0x1A

 #define TRS55D_NORMAL_DATA1_LSB_R 0x1B

 #define TRS55D_NORMAL_DATA2_MSB_R 0x1C

 #define TRS55D_NORMAL_DATA2_CSB_R 0x1D

#define TRS55D_NORMAL_DATA2_LSB_R 0x1E

 #define TRS55D_RAW_DATA1_MSB_R 0x22

 #define TRS55D_RAW_DATA1_CSB_R 0x23

#define TRS55D_RAW_DATA1_LSB_R 0x24

 #define TRS55D_RAW_DATA2_MSB_R 0x25

 #define TRS55D_RAW_DATA2_CSB_R 0x26

 #define TRS55D_RAW_DATA2_LSB_R 0x27

 #define TRS55D_RAW_TEMP_MSB_R 0x28

 #define TRS55D_RAW_TEMP_CSB_R 0x29

#define TRS55D_RAW_TEMP_LSB_R 0x2A

 #define ADDR_TRS55D 0xFE //(0x7F << 1)

 #chaza _STATUS_DRDY_ 0x01 void TRS55D_read(engenalutho);

#okugcina

/////////////////////////////////////////// /////////////////////////////////////////// //

// trs55d.c

//XNUMX

#hlanganisa

 #ihlanganisa "drv_i2c.h"

 #faka phakathi "trs55d.h"

 #faka phakathi "isimo_somzimba.h"

 extern uint8_t uartSendString(const char* buf);

i-extern void OLED_ShowString(uint8_t x,uint8_t y, const char *chr,uint8_t size1,uint8_t mode);

 i-extern void OLED_ShowBNum(uint8_t x,uint8_t y,float num,uint8_t len,

imodi ye-uint8_t size2,uint8_t); uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg,

uint8_t *buf, uint16_t count)

{

uint8_t ret;

uint8_t ackflag;

uint16_t i = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR);

 

drv_i2c_writebyte(addr_reg);

 drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPRD);

for(i = 0; i < count; i ++) { ackflag = (i < (count-1))? 1:0; buf[i]

 = drv_i2c_readbyte(ackflag);

 }

drv_i2c_stop();

 buyisela kabusha;

 }

 

i-void TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t count)

 {

 uint16_t i = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR);

drv_i2c_writebyte(addr_reg);

 ngoba (i = 0; i < count; i ++)

 {drv_i2c_writebyte(buf[i]);

}

drv_i2c_stop();

}

 typedef union{

int16_t i16;

uint16_t u16;

yakha {

uint8_t u8l;

uint8_t u8h;

 }un;

}uu16_t;

 

typedef union{

int32_t i32;

yakha {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}un;

 }uu32_t;

 

i-static char buffer[264];

 uu32_t tobj, tamb_cal;

 

uu32_t vtp_cor;

iflothi vtp_uv_f = 0.0;

iflothi vtp_cor_f = 0.0;

iflothi tambf = 0.0; i-float tobjf = 0.0;

 i-float tbdyf = 0.0;

 i-TRS55D_read(engenalutho)

{

uint8_t rbuf[4];

uint8_t raddr,rdat;

 uint8_t waddr = 0x0, wdat = 0x0;

int timeout=0;

 

waddr = 0x30;

wdat = 0x09;

TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);

 //start ukuguqulwa delay_ms(100);

 

// linda ukuguqulwa kudlule

raddr = 0x03;

yenza {

TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);

} ngenkathi(((rdat == 0xFF) || (!(rdat & 0x30))) && timeout++ <200);

raddr = 0x02;

 yenza {

TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);

} ngenkathi(((rdat == 0xFF) || (!(rdat & 0x0B))) && timeout++ <200);

 

 // inani le-voltage ngemuva kokulinganisa

raddr = TRS55D_NORMAL_DATA1_MSB_R;

TRS55D_IIC_Read (ADDR_TRS55D, raddr,&rbuf[0],3);

vtp_cor.un.u8b2 = rbuf[0];

 vtp_cor.un.u8b1 = rbuf[1];

vtp_cor.un.u8b0 =rbuf[2];

 uma (vtp_cor.un.u8b2 & 0x80) {vtp_cor.un.u8b3 = 0xFF;

}okunye {

vtp_cor.un.u8b3 = 0x00;

// vtp ngemva kokulungiswa

}

vtp_cor_f = (ntanta)vtp_cor.i32/524288.0;

vtp_cor_f *= 1000;

// inani lokushisa elizungezile ngemva kokulinganisa

 raddr = TRS55D_NORMAL_TEMP_MSB_R;

TRS55D_IIC_Read (ADDR_TRS55D,raddr,&rbuf[0],3);

 tamb_cal.un.u8b2 = rbuf[0];

tamb_cal.un.u8b1 =rbuf[1];

tamb_cal.un.u8b0 =rbuf[2];

tambf = (ntanta)tamb_cal.i32 / 16384.0; // izinga lokushisa elizungezile

 

// izinga lokushisa lezinto (ezingaphezulu) ngemuva kokulinganisa

raddr = TRS55D_NORMAL_Tobj_MSB_R;

TRS55D_IIC_Read (ADDR_TRS55D,raddr,&rbuf[0],3);

 tobj.un.u8b2 = rbuf[0]; tobj.un.u8b1 = rbuf[1];

tobj.un.u8b0 =rbuf[2]; tobjf = (ntanta)tobj.i32 / 16384.0;

// izinga lokushisa lento(ubuso).

 

// uthole ukushisa komzimba

tbdyf = get_body_temp(tambf,tobjf); // uthole ukushisa komzimba

 

// bonisa ku-uart sprintf(buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(buffer);

 

// bonisa ku-oled

 ama-float vals[4] = {tambf, vtp_cor_f, tobjf, tbdyf+0.05};

 OLED_ShowBNum (64, 0, vals[0], 4, 16, 1); // Tamb

OLED_ShowBNum (48, 16, vals[1], 6, 16, 1); //vtp

OLED_ShowString(112,16, "uv",16, 1);

OLED_ShowBNum (64, 32, vals[2], 4, 16, 1); // Thobe

OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // Tbdy

}

Izincomo Ezihlobene
whatsapp

I-hotline yensiza

ucingo: +86 755 83044319

WhatsApp

I-whatsapp: +8618073002950