最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PMW3901光流傳感器

2023-03-17 23:44 作者:bili_42806779649  | 我要投稿

概述

? ? ? ? PMW3901是中國臺灣省原相科技(PixArt)推出的一款芯片,它可以測量二維平面X軸和Y軸的相對運(yùn)動(dòng)偏移量(我個(gè)人理解成運(yùn)動(dòng)速度),類似于鼠標(biāo),和鼠標(biāo)不同的是,這款芯片的工作距離是80mm到無窮遠(yuǎn),淘寶價(jià)格大概在30塊錢一片,所以是理想的小無人機(jī)室內(nèi)定位的理想選擇,也就是大家所說的光流傳感器的核心芯片。


原理圖設(shè)計(jì)

? ? ? ? 芯片應(yīng)用電路圖如下圖所示(來自于官網(wǎng)技術(shù)手冊截圖):


PMW3901應(yīng)用電路圖


? ? ? ?其中VDD可承受的電壓范圍是1.8V~2.1V,VDDIO可承受的電壓范圍是1.8V~3.6V,芯片平均工作電流只有9ma;

? ? ? ? 也就是說,用一片LDO將5V或者3.3V轉(zhuǎn)成2V給PMW3901供電,注意原理圖VDD端口串聯(lián)有電阻,將會分去部分電壓,所以不要將VDD電壓調(diào)到1.8V,這樣工作的時(shí)候有可能會超出芯片正常工作電壓范圍,2V輸出的LDO有很多,例如國產(chǎn)南京微盟的ME6206A20M3G,https://item.szlcsc.com/139341.html。

? ? ? ? 而對于VDDIO,直接接3.3V,這樣就可以和STM32或者GD32這類3.3V處理器通過SPI直接通訊。


? ? ? ? PMW3901還有一個(gè)LED_N引腳,可以用來作為光源的控制信號,用來增加環(huán)境亮度,如果有需要可以增加。

光源控制信號


PCB設(shè)計(jì)

? ? ? ? PCB設(shè)計(jì)只有一條需要注意,就是各個(gè)電容盡量靠近芯片相對應(yīng)的引腳,別的線只需要能連接上即可。


PCB焊接

? ? ? ? 這種類型的芯片,如果是手焊的話只能先在焊盤上上點(diǎn)錫,把芯片放上去,然后用熱風(fēng)槍從PCB背面來吹,但是要注意,這個(gè)芯片自帶了一顆小鏡頭,不要帶上這個(gè)鏡頭去用熱風(fēng)槍吹,鏡頭頂不住溫度會融化,芯片就報(bào)廢了。

? ? ? ? 正確做法是先把芯片吹到PCB上面焊接好,然后再撕去芯片鏡頭上面的保護(hù)膜,再把鏡頭安裝上去,鏡頭很小,用手摁進(jìn)去就行了,鏡頭沒有什么卡扣或者固定的設(shè)計(jì),需要在外面點(diǎn)膠水或者使用別的方法固定。

鏡頭


? ? ? ? 安裝完成長這樣,鏡頭相對于芯片表面會高出一點(diǎn)點(diǎn)。

安裝完成


安裝完成側(cè)面


? ? ? ? 如果要拆芯片的時(shí)候也要記得先把鏡頭拆下來再吹。


通訊接口

? ? ? ? 除了SPI使用的四根線以外,芯片還有一個(gè)NRESET引腳和MOTION引腳,

NRESET:復(fù)位芯片,拉低復(fù)位芯片,上電啟動(dòng)的時(shí)候有用。

MOTION:中斷信號引腳,有運(yùn)動(dòng)發(fā)生時(shí)引腳會拉低,這樣會產(chǎn)生一個(gè)下降沿,這樣處理器可以用中斷的方式去處理。


? ? ? ? SPI使用模式0,通訊最大速率2Mhz,初始化SPI后,可以去讀取一下芯片的地址為0x00的寄存器或者地址為0x5F寄存器,這兩個(gè)寄存器的值不變且不為0或者0xFF。

對于地址0x00寄存器,如果讀出來的值為0x49,說明SPI通訊成功。

對于地址0x5F寄存器,如果讀出來的值為0xB6,說明SPI通訊成功。

寄存器列表


? ? ? ? 對于讀操作,地址位保持不變,而對于寫操作,必須將最高位置1,也就是說,如果芯片寄存器地址位0x7F,如果要去寫這個(gè)寄存器,操作的地址就要變?yōu)?x7F | 0x80,也就是0xFF。


傳感器初始化

? ? ? ? 如果SPI通訊測試通過,接下來就應(yīng)該初始化傳感器,初始化必須嚴(yán)格按照如下順序:

  1. 上電,兩個(gè)電源達(dá)到對于的電壓范圍,兩個(gè)電源上電的時(shí)間差要小于100ms,100ms一般也不會有問題,畢竟一般都是一起上電。

  2. 等待至少40ms。

  3. 復(fù)位傳感器,有兩種操作方式,第一種是向0x3A寄存器寫入0x5A(按照前面的寫操作規(guī)則,0x3A需要變?yōu)?xBA),第二種是直接拉低前面提到的NRESET引腳,可以保持5ms,然后再拉高。

  4. 等待1ms,等待復(fù)位結(jié)束。

  5. 將0x02,,0x03,,0x04,,0x05,0x06按順序全部讀一遍。

  6. 加載配置

? ? ? ? 加載配置比較長,主要內(nèi)容就是寫很多數(shù)據(jù)到寄存器,中間還夾雜有兩處讀取數(shù)據(jù)判斷然后再寫入,內(nèi)容又臭又長,大家自行參考技術(shù)手冊的8.2節(jié),只要前面驗(yàn)證了SPI通訊,這部分按手冊順序往下寫寄存器就不會有問題。主要要注意一點(diǎn),寫寄存器快結(jié)束的時(shí)候,中間有一段需要等待10ms,這部分不能忽略。

延時(shí)


傳感器數(shù)據(jù)讀取

? ? ? ? 讀取操作按如下順序進(jìn)行:

  1. 讀取地址為0x02的寄存器,看看最高位是不是1,如果是1,那就說明有運(yùn)動(dòng)產(chǎn)生,如果為0,那就說明沒運(yùn)動(dòng)。當(dāng)然,有運(yùn)動(dòng)的時(shí)候中斷引腳會產(chǎn)生下降沿中斷,主要看你是用輪詢的方式還是中斷的方式讀取。

  2. 如果0x02寄存器最高位為1,那就按順序讀取0x03、0x04、0x05、0x06、0x07和0x0C寄存器;0x03和0x04表示的是X方向的移動(dòng)量,0x04是高八位,值的范圍為-32768~32767;0x05和0x06表示的是Y方向的移動(dòng)量,0x06是高八位,值的范圍為-32768~32767;

    0x7C和0x0C主要用來判斷數(shù)據(jù)是否有效,當(dāng)0x7C的值小于0x19且0x0C的值等于0x1F,說明這次運(yùn)動(dòng)的數(shù)據(jù)無效。

  3. 重復(fù)以上兩步驟就可以連續(xù)讀取數(shù)據(jù)。


其他

? ? ? ? 芯片還有一些其他的操作模式,如果有需要可以自行參考技術(shù)手冊。對于技術(shù)手冊,芯片官網(wǎng)本身是下載不到的,其他地方下載的也可能遇到后面不全的情況,不過可以直接去正點(diǎn)原子的百度網(wǎng)盤鏈接下載,可以獲取到完整的資料。

http://www.openedv.com/docs/modules/other/PMW3901.html

PMW3901光流傳感器的評論 (共 條)

分享到微博請遵守國家法律
德钦县| 青州市| 正宁县| 河南省| 浑源县| 田阳县| 澜沧| 剑河县| 佛山市| 陵水| 资阳市| 宁晋县| 香河县| 通化市| 南宁市| 达孜县| 临安市| 来宾市| 和平县| 开化县| 嘉禾县| 车致| 台中县| 玛沁县| 新泰市| 临沧市| 安庆市| 舞阳县| 广州市| 耒阳市| 涿州市| 焦作市| 湖北省| 龙川县| 额济纳旗| 哈尔滨市| 隆尧县| 涿州市| 德安县| 织金县| 太白县|