psensor 硬體消抖 及 產線校準

2021-08-20 14:27:39 字數 1504 閱讀 4303

1 psensor 硬體消抖 (僅中斷模式下有支援)

interrupt persist regiseter(0x9e)

方框中的值即為可以設定的n的值,連續n個值都在閾值範圍內或者範圍外才會觸發一次中斷

比如measurement data的時間設定為100ms(0x84暫存器),即100ms會往暫存器中寫一次資料,設定遮擋為中斷拉低,n設定為0100(即5個ps值在閾值外)的話:

則若前乙個時段是不遮擋,中斷引腳為高電平,忽然來了乙個低電平,我不會立馬判為遮擋,如果接下來的連續四次(共五次)都是低電平,再判為遮擋,觸發中斷

2 psensor產線校準

產線會有乙個工裝,每個hmd距離工裝的距離是定值,如:2.5cm,將這時候的psensor 測量值a寫到flash中,並且通過usb下發指令將閾值設定為a,讓閾值即時生效,再將工裝分別移到13cm和1.5cm看識別狀態是否為不遮擋和遮擋

在hmd開機上電的過程中,會從flash中將這個閾值讀出來,以此閾值為標準判斷是否遮擋

具體步驟:

a)用特殊電纜將dut連線到pc。

b)當被pc發現時,將dut放在測試夾具上。

c)通過傳送命令到測試夾具,將卡片從被測裝置移動到2.5cm。

d)讀取2.5cm處的值;

e)將p感測器校準資料寫入mcu快閃儲存器。

f)從mcu快閃儲存器中讀取p感測器校準資料,檢查並解析它。

g)通過usb 下 prox threshold set命令將解析的p感測器校準閾值寫入mcu。

h)通過usb下  prox threshold get命令讀取p感測器校準閾值並檢查它。

i)通過向測試夾具傳送命令將卡移動到距被測器件13cm處。

j)在13cm處讀取數值;

k)將卡從13厘公尺移動到1.5厘公尺。

l)讀取1.5cm處的值

m)pc根據來自dut識別卡的閾值來判斷狀態。

usb prox threshold set/get命令實現

bool hid_feature_report_prox_threshold_get(hid_feature_report_prox_threshold_t *data)

void hid_feature_report_prox_threshold_set(const hid_feature_report_prox_threshold_t *data)

m_threshold = data->threshold;

}

而**中就是用m_threshold這個全域性變數來判斷遮擋與不遮擋狀態

proximity_sensor_digest_t proximity_sensor_digest(void)

從硬體電路和軟體方面進行按鍵消抖

什麼是按鍵抖動及按鍵抖動產生的原因?最近在專案中用到了機械彈性開關,這種開關在按下時候不會馬上就有穩定的接通,在彈開時候也不會馬上斷開,在按下和彈開的瞬間會產生一系列抖動。而我專案中stm32晶元是通過中斷對按鍵進行判斷的,當晶元檢測到上公升沿時認為按鍵按下一次,因為存在開關抖動,所以一次按鍵操作會...

FPGA Verilog按鍵消抖

硬體 鋯石a4開發板,altera ep4ce10f17c8 語言 verilog hdl 原理 機械式按鍵大概有20ms的抖動,所以檢測到按鍵變化後等20ms再判斷一次,如果鍵值相同才視為有效 頂級模組按鍵切換led顯示 module key led,key,clock,reset input c...

FPGA 按鍵消抖

今天簡單的說說按鍵消抖,原理特別好理解,其實就是延時,做一定時間的延時後取值一次,就能夠得到特定的消抖後的狀態了。為什麼要消抖?見圖 我們可以看到,但按鍵按下的那一刻,存在一段時間的抖動,同時在釋放按鍵的一段時間裡也是存在抖動的,這就可能導致狀態在識別的時候可能檢測為多次的按鍵,因為執行過程中普通的...