ks10x說明書iic和ttl接口ksks103s v359技術(shù)_第1頁
ks10x說明書iic和ttl接口ksks103s v359技術(shù)_第2頁
ks10x說明書iic和ttl接口ksks103s v359技術(shù)_第3頁
ks10x說明書iic和ttl接口ksks103s v359技術(shù)_第4頁
ks10x說明書iic和ttl接口ksks103s v359技術(shù)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

KS101B/KS103/KS103S技術(shù)說明版本:RevModifyDate:Dauxi .Allrights 使用I2C/串口接口與主機(jī)通信,自動響應(yīng)主機(jī)的I2C/串口20個可修改的I2C/串口地址,范圍為0xd0~0xfe(0xf0,0xf2,0xf4,0xf6除外,8位地址KS103SKS103KS103S不KS101B/KS103/KS103S上連線引腳上標(biāo)識有:VCC、SDA/TX(SDA)、SCL/RX(簡KS101B/KS103/KS103SI2CMODE0VKS101B/KS103/KS103STTLTTL232串口,TTL電平可以MAX232電平轉(zhuǎn)換將TTL電平轉(zhuǎn)換為232電平才可以。KS101B/KS103/KS103S連線

I2CKS101B/KS103/KS103S上連線引腳上標(biāo)識有:VCC、SDA/TX(SDA)、SCL/RX(簡SCL)、GNDMODE。MODE引腳懸空時,KS101B/KS103/KS103S工作于I2C模式。1~10K均可)電阻到VCC。KS101B/KS103/KS103SI2C通信速率建議不要高于100kbit/s。Note1:要達(dá)到最佳的工作狀態(tài)推薦使用+5V電源,低5V的電壓將影響測距量程。并且,嚴(yán)禁將VCCGND接反,否則可能會損壞電路。超過3秒鐘的電路反接將可能導(dǎo)致不可恢復(fù)的損壞。VCC0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf8,0xfa,0xfc,0xfe.(2)使用。例如,本模塊默認(rèn)地址0xe8,對應(yīng)7位的地址0x74。修改I2C地址時序:2延2延2延2延其可調(diào)用附件3所示的change_i2c_address(addr_old,addr_new)函數(shù)來實現(xiàn)。修改完畢后請給KS101B/KS103/KS103S重新上電,可觀察到LED顯示新地址。在修改數(shù)請不要放在while(1)循環(huán)中,保證在程序中上電后只運(yùn)行一次。在I2C地址設(shè)置為不同之后,在主機(jī)的兩根I2C總線上可以同時連接20個KS101BI2C0x00作為地址替在KS101B/KS103/KS103S上電啟動時,系統(tǒng)會開始自檢,自檢正常后其背面的LED會以二進(jìn)其二進(jìn)制數(shù)為0B ,綠色LED漸亮→滅→快閃兩下→滅→快閃兩下→滅→快閃兩下→Note3:LED閃爍時的綠色亮光可能會刺激到眼睛,請盡量不要近距離直視工作中的LED,可以使用眼睛的余光來觀察其閃爍綠色綠色LEDKS101B/KS103/KS103S啟動后如果收到主機(jī)的有效數(shù)據(jù)指令,LED將立即停止閃爍顯示。88位數(shù)據(jù)指令I(lǐng)2C地址否是16I2C(high8bit+low8I2C地址+1探測指令從0x01到0x2f,數(shù)值越大,信號增益越大。指令0x01對應(yīng)量程約100mm,0x021msus值,是一個時間單位,其代表超聲波從發(fā)出到遇到物反射收回所經(jīng)歷的時間。KS101B/KS103/KS103S16位I2C數(shù)據(jù)。而用戶只知道最大探測時間,但并不確知實際每次的探測時間。KS101B/KS103/KS103SKS101B/KS103/KS103S16位數(shù)據(jù)。注意,發(fā)送完探測指令后,需要延時約40usSCL40usKS101B/KS103/KS103S響應(yīng)延遲。由于最快的探0xa01ms1msSCL線,這樣做既不會打斷正16I2C數(shù)據(jù)。(4)Note4:這種總線鉗制探測方式可以為客戶獲得更大的探測速度及效率,而不是通過定時器延時或delay函數(shù)延時每次探測都要至少等65ms。換言之,用戶大部分時候僅需要快速知曉1m范圍內(nèi)是否有物。具體延時時間應(yīng)大于表1所列各指令的最大探測時間如果不希望SCL線在探測時被拉低,可以通過發(fā)送指令0xc3指令,之后斷電重啟0xc2指令即可。配置方法非常簡單,向本模塊發(fā)送指令時序:“I2C+2+0xc2/0xc3”即可,發(fā)送完成后請延時至少2秒,以讓系統(tǒng)自動完成配置。并開始按照新配置工作。探測結(jié)束智能識別功能配置好之后會自動保存,并立即按照新配置工作。探測指令發(fā)送完成后,KS101B/KS103/KS103S將依據(jù)探測指令進(jìn)入相應(yīng)探測模式,主機(jī)此I2CI2C0xff值。注所有I2C控制指令匯總?cè)缦缕?10進(jìn)制(16進(jìn)制00-12為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2無無2無無2無無2無無2無無2無無2無無2無無2無無2無無2無無2無無20-2220-5m范圍,普通距離(帶溫度補(bǔ)償mm2220-11m范圍,普通距離(帶溫度補(bǔ)償),返回mm2耗時約2約287ms(KS103S不支持此命令)2無無2無無2無無2無無2無無2無無20-為-40125℃,探測耗時83ms(KS103S不支20-20-20-30-位數(shù)據(jù)探測結(jié)果的高8位,寄存器3返回 據(jù)的低位0-7-00距離探測(KS103S不支持溫度修正指令0xb0及0xbc及溫度探測指令)0~11m0xb8/0xba/0xbc指令。通過“I2C2序,延時或等待上表中所規(guī)定的相應(yīng)時間后,再使用函數(shù)讀寄存器2及寄存器3的值,即自動使用高精度溫度補(bǔ)償技術(shù),探測值更穩(wěn)定更精確。也可以使用0xb2/0xba(傳輸時間)+聲速換算出精確的距離值。使用經(jīng)溫度修正的0xb4指令,最高精度可達(dá)1mm,誤差為0.152mm/17cm。隨著環(huán)境與科技的變化與發(fā)展,KS101B/KS103的聲速計算可能并同時,在遠(yuǎn)距離探測時,如果電源噪音較大,KS1031cm~800cm最大量程,因此,如果使用噪音較大的電源(USB口取電0~5m的探KS101B/KS103/KS103S默認(rèn)電源推薦使用電池供電。如果使用噪音較大的電源,測距值可用于電池供電的場合,同時也是出廠默認(rèn)設(shè)置。0x71指令將使本模塊配置為第二級降噪,適用指令將使本模塊配置為第五級降噪,適用于噪音較大的開關(guān)電源供電場合。0x75指令將使本模配置方法非常簡單,向本模塊發(fā)送指令時序:“I2C+配置代碼請放在程序的初始化函數(shù)中,即while(1)循環(huán)之前,以保護(hù)模塊。KS101B/KS103/KS103S在重新上電后將按新配置運(yùn)行。溫度探測(僅KS101B/KS103支持0xc9,0xca,0xcb,0xcc4個探測指令,通過“I2C+2+的資料。以0xcc指令為例,其將獲取共16位的探測數(shù)據(jù)。16位數(shù)據(jù)中的前面5位是符號10.0625160xfe6a換成二進(jìn)制是0B1111111001101010,最共5個1,因此是負(fù)溫度,按位取反后二進(jìn)制值為0B0000000110010101,相應(yīng)10進(jìn)制值為4051406,4060.062525.375,500.06254540.062528.375℃。0xa0指令,通過“I2C+20xa0”時序,延時或1ms后再使用 mandsuchasSTART1

0 1 I2C地址I2C地址 START11

10100 xxxxxxxxNotSTART1110100 xxxxxxxxNot寄存器3),讀任意寄存器指令格式(Suchasregister3):(5)I2C地址 START111212

01101 0000001 START1 011 1 x x xNotote5:讀意存器令時如讀寄器2器3必先發(fā)對器2的探測指令。注意,所有探測指令都在2再(2+3)13寫入“C1”20~00b/s的C8bitCK50usdelayie),才可以接收到寄存器的數(shù)據(jù)。在寫“2C地址+12/350us延時delaytie)的話,2C通信速率可以調(diào)10320b/s的2C5usdelytie)10cm的距1ms,否則可能存在上次的超聲波被下一次探測所接收到的問題??傊?C通信的關(guān)鍵有兩點47us;第二,103LED快閃但返回值不正確時,主機(jī)需要加上delaytie不小于0us的延時,即可獲取正確數(shù)據(jù)。請遵從時序圖13之規(guī)定。配置方法非常簡單,向本模塊發(fā)送指令時序:“I2C+2+0xc0/0xc1”即可,發(fā)送完成后請延時至少2秒,以讓系統(tǒng)自動完成配置。并開始按照新配置工作。I2C0xc51s0xc45s休眠模式。配置方法非常簡單,向本模塊發(fā)送指令時序:“I2C地址+寄存器2+0xc4/0xc5”即可,KS101B/KS103/KS103STTL串口模無校驗位,TTL電平。KS101B/KS103/KS103S連線本模塊在上電之前,MODE需要接0V地,上電后模塊將工作于TTL串口模式。如果TTL5VCC用于連接+5V(3.0~5.5V范圍均可)電源(1),GND用于連接電源地,SDA/TXMCU或USBTTLRXD,SCL/RXMCU或USB轉(zhuǎn)TTL模塊的TXD。Note1:要達(dá)到最佳的工作狀態(tài)推薦使用+5V電源,低5V的電壓將影響測距量程。并且,嚴(yán)禁將VCCGND接反,否則可能會損壞電路。超過3秒鐘的電路反接將可能導(dǎo)致不可恢復(fù)的損壞。CC 0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf8,0xfa,0xfc,0xfe.(2)Note2:請注意,以上地址不包括0xf0,0xf2,0xf4,0xf6,其與I2C版地址完全一致。此外,串口協(xié)議規(guī)定一對一,因此建議使用串口模式時,串口總線上最好只備有1臺KS101B/KS103/KS103S,最多請不要超過2臺。2延2延2延2延改地址函數(shù)請不要放在while(1)循環(huán)中,保證在程序中上電后只運(yùn)行一次。2個在KS101B/KS103/KS103S上電啟動時,系統(tǒng)會開始自檢,自檢正常后其背面的LED會以二進(jìn)其二進(jìn)制數(shù)為0B ,綠色LED漸亮→滅→快閃兩下→滅→快閃兩下→滅→快閃兩下→Note3:LED閃爍時的綠色亮光可能會刺激到眼睛,請盡量不要近距離直視工作中的LED,可以使用眼睛的余光來觀察其閃爍綠色綠色LEDKS101B/KS103/KS103S啟動后如果收到主機(jī)的有效數(shù)據(jù)指令,LED將立即停止閃爍顯示。進(jìn)入指令探測模式。每探測一次LED燈會閃爍一次。串口地址(0xe8)—>延時20~100us— 寄存器(0x02)—>延時20~100us— 探測指(0xbc)—>通過串口接KS103的探測數(shù)據(jù)8位—>KS103的探測數(shù)據(jù)8KS101B/KS103/KS103S16位探測結(jié)果,探測結(jié)探測指令從0x01到0x2f,數(shù)值越大,信號增益越大。指令0x01對應(yīng)量程約100mm,0x021msus探測指令發(fā)送完成后,KS101B/KS103/KS103S將依據(jù)探測指令進(jìn)入相應(yīng)探測模式,主機(jī)此TTL器(10進(jìn)制(16進(jìn)制2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2為回最大 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2222222串口通訊測試指令,指令發(fā)送完成后LED顯示相2222220-2220-5m范圍,普通距離(帶溫度補(bǔ)償mm2220-11m范圍,普通距離(帶溫度補(bǔ)償),返回mm2耗時約2約287ms(KS103S不支持此命令)2220-20-20-20-距離探測(KS103S不支持溫度修正指令0xb0及0xbc及溫度探測指令)自動使用高精度溫度補(bǔ)償技術(shù),探測值更穩(wěn)定更精確。也可以使用0xb2/0xba(傳輸時間)+聲速換算出精確的距離值。使用經(jīng)溫度修正的0xb4指令,最高精度可達(dá)1mm,誤差為0.152mm/17cm。隨著環(huán)境與科技的變化與發(fā)展,KS101B/KS103的聲速計算可能并同時,在遠(yuǎn)距離探測時,如果電源噪音較大,KS1031cm~800cm最大量程,因此,如果使用噪音較大的電源(USB口取電0~5m的探KS101B/KS103/KS103S默認(rèn)電源推薦使用電池供電。如果使用噪音較大的電源,測距值可用于電池供電的場合,同時也是出廠默認(rèn)設(shè)置。0x71指令將使本模塊配置為第二級降噪,適用指令將使本模塊配置為第五級降噪,適用于噪音較大的開關(guān)電源供電場合。0x75指令將使本模配置方法非常簡單,向本模塊發(fā)送指令時序:“TTL串口地址+寄存器配置代碼請放在程序的初始化函數(shù)中,即while(1)循環(huán)之前,以保護(hù)模塊。溫度探測(僅KS101B/KS103支持+的資料。以0xcc指令為例,其將獲取共16位的探測數(shù)據(jù)。16位數(shù)據(jù)中的前面5位是符號10.0625160xfe6a換成二進(jìn)制是0B1111111001101010,最共5個1,因此是負(fù)溫度,按位取反后二進(jìn)制值為0B0000000110010101,相應(yīng)10進(jìn)制值為4051406,4060.062525.375,0xa0指令,通過“TTL20xa01ms數(shù)值越大,返回值在0~1023之間。TTL配置方法非常簡單,向本模塊發(fā)送指令時序:“TTL+20xc0/0xc1”即可,發(fā)送完成后請延時至少2秒,以讓系統(tǒng)自動完成配置。并開始按照新配置工作。

圖 條304不銹920mm2 安裝尺寸(單位:毫米2-2- 2-2-2- 2-15.62-15.6包KS101B包裝后的毛重:75g 附件/vshow/id/vshow/id的SCL、SDA線均需個上拉一個4.7K的電阻到電源正極VCC。*/#include<pic.h> //4MHz晶振 #defineDELAY()delay(10)#defineSCLRC3 //此引腳須上拉4.7K電阻至VCC#defineSDARC4 //此引腳須上拉4.7K電阻至VCCvoidsetup(void);unsignedintdetect_KS101B(unsignedcharADDRESS,unsignedcharcommand);voiddelayms(unsignedintms);voidchange_address(unsignedaddr_old,unsignedcharaddr_new); mand(unsignedcharcmd);voiddisy(unsignedintdistance,unsignedintdelay); voidDELAY(void);voidmain(void){//change_address(0xe8,0xe0);//將默認(rèn)0xe80xe0{distance=detect_KS101B(0xe8,0xb0);//Address:0xe8;//GetdetectresultfromKS101B/KS103,16bit //disyfunction,youshouldapplyittothemaster}}voiddisy(unsignedintdistance,unsignedint {}voidchange_address(unsignedaddr_old,unsignedchar{SEN= //sendstartbitto //waitforitto //waitforSSPIF= //thenclearSSPBUF= //KS101B/KS103/KS103S’sI2C //waitforSSPIF= //thenclearSSPBUF= //writetheregister //waitforSSPIF= //thenclearSSPBUF=0x9a; mand=0x9a,changeI2Caddress,firstsequenceSSPIF=PEN= //sendstop //letKS101B/KS103/KS103StobreaktodoSEN= //sendstart //andwaitforittoSSPIF=0;SSPBUF= //KS101B/KS103/KS103S’sI2C //waitforSSPIF= //thenclearSSPBUF= //addressofregistertowrite SSPIF=SSPBUF=0x92; mand=0x92,changeI2Caddress,secondsequence SSPIF=PEN= //sendstop //letKS101B/KS103/KS103StobreaktodosomethingSEN=1; //sendstartbit //andwaitforittoSSPIF=0;SSPBUF=addr_old; //KS101B/KS103/KS103S’sI2Caddress //waitforinterruptSSPIF= //thenclearSSPBUF= //addressofregistertowrite SSPIF=SSPBUF=0x9e; mand=0x9e,,changeI2Caddress,thirdsequence //waitforinterruptSSPIF= //thenclearPEN= //sendstop //letKS101B/KS103/KS103StobreaktodosomethingSEN=1; //sendstartbit //andwaitforittoSSPIF=0;SSPBUF=addr_old; //KS101B/KS103/KS103S’sI2Caddress //waitforinterruptSSPIF= //thenclearSSPBUF= //addressofregistertowrite SSPIF=SSPBUF= //newaddress,itwillbe0xd0~0xfe(without SSPIF=PEN= //sendstop //letKS101B/KS103/KS103Stobreaktodo}unsignedintdetect_KS101B(unsignedcharADDRESS,unsignedchar{//ADDRESSwillbeKS101B/KS103/KS103S’saddresssuchas0xb0,commandwillbethedetectcommandsuchasunsignedintSEN= //sendstart //andwaitforittoSSPIF=SSPBUF= //KS101B/KS103/KS103S’sI2C //waitforSSPIF= //thenclearSSPBUF= //addressofregistertowrite SSPIF=SSPBUF= SSPIF=PEN= //sendstop TMR1H=0; //delaywhiletheKS101B/KS103/KS103SisrangingTMR1L=0;T1CON= //configurationofTMR1IF= //cleanTIME1interruptwhile((!SCL)||(!TMR1IF))disy(distance,100); TMR1ON=0; //stoptimer//finallygettherangeresultfromSEN= //sendstart //andwaitforittoACKDT= //acknowledgeSSPIF=SSPBUF= //KS101B/KS103/KS103SI2C //waitforSSPIF= //thenclearSSPBUF=2; //addressofregistertoreadfrom-highbyteofresult SSPIF= RSEN= //sendrepeatedstart //andwaitforittoSSPIF= SSPBUF=ADDRESS+1; //KS101B/KS103/KS103SI2Caddress-thereadbitissetthistime //waitforinterruptSSPIF= //thenclearRCEN= //start //waitforhighbyteofrange= //andgetACKEN= //startacknowledge //waitforack.sequencetoRCEN= //start //waitforlowbyteofrange+= //andgetACKDT= //notacknowledgeforlastACKEN= //startacknowledge //waitforack.sequencetoendPEN=1; //sendstopbit return} mand(unsignedchar {SEN= //sendstart //andwaitforittoSSPIF=0;SSPBUF= //KS101B/KS103/KS103SI2C //waitforSSPIF= //thenclearSSPBUF= //addressofregistertowrite SSPIF=SSPBUF= SSPIF=PEN= //sendstop }void {SSPSTAT=0x80;SSPCON=0x38;SSPCON2=0x00;SSPADD=50; }voiddelayms(unsignedint{unsignedchari;unsignedintj;}void{}#include );//#defineSDARD6 //此引腳須上拉4.7K電阻至VCC#defineSCLRD5 //此引腳須上拉4.7K電阻至VCC#defineSDAPORTTRISD6//#defineSCLPORTTRISD5//RD6,RD5可換為其他任I/Obitbitvoid{unsignedchark;}{unsignedinti,j;for(i=0;i<ms;i++)}voidi2cstart(void)//startthei2c{ }voidi2cstop(void)//stopthei2c{ }void //readabitfromi2c{ }voidbitout(void)//writeabittoi2c{ }voidi2cwrite(unsignedcharsedata)//writeabytetoi2c{unsignedchark;{{}{}

}}unsignedchar //readabytefromi2c{unsignedcharredata;unsignedcharm;{{}{}

}}unsignedcharKS101B_read(unsignedcharaddress,unsignedchar//////////////readregister:address+register,therewillbe0xe8+{unsignedchar unsignedintrange;return}voidKS101B_write(unsignedcharaddress,unsignedcharbuffer,unsignedchar//////////////////writeacommand:address+register+command,therewillbe0xe8+0x02+{}voidchange_i2c_address(addr_old,addr_new)//addr_oldistheaddressnow,addr_newwillbethenew //thatyouwantchange //Protecttheeeprom,youcandeletethis //Protecttheeeprom,youcandelete}unsignedintdetect_KS101B(unsignedcharaddress,unsignedchar{unsignedint ,range1=range1=(range1<<8)+KS101B_read(address,3);return}void{unsignedint {range=detect_KS101B(0xe8,0xb0);//youjustneedtheonlyonesentencetogettherange.}}#include<reg51h>#includesbit //sbit //unsignedintvoiddisy(unsignedint{//inputyourdisyfunction,}void {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}void //I2C{SDA=SCL=SDA=0;}void //I2C{SDA=SCL=SDA=1;}void {unsignedchari;SCL=1;while(SDA==1&&i<{}SCL=}void //not{SDA=SCL=SCL=}voidi2c_write_byte(unsignedchar //writea{unsignedchari;SCL=0;for(i=0;i<8;{if(dat&{}{}

SDA=SDA=dat=dat<<1;SCL=SCL=}SDA=}unsignedchar //reada{unsignedchari,dat;SCL=0;SDA=1;for(i=0;i<8;{SCL=dat=dat<<1;if(SDA==1){}SCL=}return}void //i2c{SDA=SCL=}voidwrite_byte(unsignedcharaddress,unsignedcharreg,unsignedcharcommand) {}unsignedcharread_byte(unsignedcharaddress,unsignedcharreg)//address(withbit0set)+{ dat=i2c_read_byte();returndat;}voiddelayms(unsignedint //delay{unsignedchari;unsignedintj;}voidchange_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論