敦泰FT6X06单层自容调屏
– AFE是模擬前端的縮寫-Analog Front End
? Raw Data和CI調好后,再對軟件的各個濾波功能進行微調以使基本的畫點,畫線功能都正常。
調屏工具界面:
調屏前準備
●必備的:
待調試TP對應的Sensor圖案。(可以根據圖案來確定通道的順序)
待調試TP的通訊接口信息。(I2C還是SPI還是USB)
待調試TP的目標分辨率信息。
●建議準備的:
整機(打開FTS權限 方便整機升級和讀raw data)
TP半成品(調試工廠特殊測試模式參數使用)
調屏相關參數:
一、芯片型號
? 由于6206芯片和6306芯片支持的最大通道數不同以及芯片內部的通道映射也不同,所以要根據實際使用的芯片選擇正確的芯片型號。
– 6206最大支持28全通道
– 6306最大支持36全通道
? FT6206
– 選擇6206芯片
? FT6306
– 選擇6306芯片
二、通信協議
目前6x06芯片和主機端的通信只支持標準的I2C協議,通信速率最大可以支持400kbit/s
三、屏廠ID和項目信息
設置正確的屏廠ID(CFG_PANEL_VENDOR_ID) 以供主機端在升級Firmware時可以根據該ID來識別不同的屏廠和升級不同的Firmware。
屏廠ID的范圍是0x01~0xFE,可以從FocalTech定義的屏廠ID文檔中找到常用屏廠的定義。
? 項目信息
? CFG_PROJECT_CODE
? CFG_CUSTOMER_CODE
四、I2C從地址
FT6x06芯片相對于主機來說是一個I2C設備 因此需要一個I2C從地址來和主機通信。
取值范圍為0x60~0x7E
五、通道個數
1.需要設置6x06芯片使用的通道總個數。
2.TP_CHANNEL_NUM :該通道總數是指除單獨實現虛擬按鍵的通道以外的其他所有通道的總數
3.虛擬按鍵可以單獨使用通道,即用不同的ITO圖案實現(和VA區分開),也可以和VA區用一樣的ITO圖案一起實現。
4.TP_KEY_NUM :單獨實現虛擬按鍵通道的總數
? 注意:使用雙端掃描時,TP_KEY_NUM不能為奇數,如果物理上確實只用到奇數個通道,并且需要使用雙端掃描,請將通道個數加1轉為偶數。(單端掃描不限制奇偶數)
下面舉例說明一下通道的描述:
上圖列出了帶虛擬按鍵和不帶虛擬案件的通道的配置。如果虛擬按鍵物理上有三個通道并且使用雙端掃描,需要TP_KEY_NUM = 4,使用單端掃描則不需要+1,直接寫:TP_KEY_NUM = 3
六、芯片通道掃描順序
? TP_CHANNEL_ORDER
? 芯片通道掃描順序的取值范圍就是實際的通道Index,從0開始,6206最大為27, 6306最大35。
? 為了符合軟件算法的需要,期望屏體先掃描屏幕的上半部分,再掃描下半部分。對于每個部分,每列之間按照原點方向從左到右掃描,每列的2個通道需要連續掃描,且這2個通道按照原點方向先掃描上邊通道,再掃描下邊通道。
虛擬按鍵區的通道需要在VA區通道后再掃描,且按照從左到右的原則。因此:
VA區通道的順序只需從屏體的原點方向開始,先讀取上半部分,再讀取下半部分。每部分的列通道從左到右,列內部從上到下讀出順序即可。
? 虛擬按鍵通道順序按照從左到右的順序讀出即可。
?如果使用雙端掃描,并且虛擬按鍵通道是奇數個,需要在最后添加一個沒用到的無效通道index轉換為偶數個通道。
下面舉例說明:
七、掃描方式
? AFE_SCAN_MODE
??單端掃描 :每次掃描單個通道。
? 雙端掃描 :每次按照通道順序的設置掃描兩個通道。
? 雙端掃描可以有更快的掃描速度,所以可以搭配更高的掃描次數來提高精度,同時雙端掃描抗電源噪聲能力也會增強。不足之處是由于pattern的特點,雙端掃描會使上下兩邊更不容易到邊,跟單端掃描比較需要更大的拉邊參數。
八、掃描次數
? AFE_SAMPLE_CYCLE
? 取值范圍為3~5,分別對應64次掃描,128次掃描,和256次掃描。
? N次掃描意味著芯片在掃描通道時,會連續對其掃描N次,然后返回N次掃描結果的和值。
? 掃描次數越多,掃描的精度越高,但是報點頻率會降低。
九、防哈氣/防水處理
? AFE_WATERPROOF_EN
? 1:使用特殊的防水掃描方式
? 0:使用一般的掃描方式
? AFE_WATERPROOF_LVL
? 防水級別選擇,0~3級可選,級別越高,防水能力越強,推薦使用3級。
? 對于個別有RF干擾的項目,需要適當使用低級別防水等級(如1級)。
十、掃描頻率
? AFE_SCAN_K1_DELAY :掃描時的采樣時間,最小值為7。
? AFE_SCAN_K2_DELAY :掃描時的充電時間,最小值為9
? AFE的掃描頻率計算公司:4.8M Hz / (AFE_SCAN_K1_DELAY + AFE_SCAN_K2_DELAY)
? 掃描頻率越高,報點頻率也相應越高,但是可能在某些頻段存在LCD或者電源等干擾,針對具體的項目需要,可以調整K1,K2選擇合適的掃描頻率。
十一、VDD5電壓
? VDD5_VOL_SEL
? 從3.25V到5.65V,13檔可選,步長為0.2V。
? 默認使用10(5.25V)。
十二、觸摸閾值
? RV_G_THGROUP
? 當上下兩個通道的differ值之和大于該值時軟件就可能會報點。
? RV_G_THGROUP值越小觸摸靈敏度越高,推薦值為3000,具體需要根據實際項目調整。
十三、CS值
CHANNEL_BASE_VAL_SET :應用于VA通道
KEY_BASE_VAL_SET :應用于Key通道
– Capacitance Base
– CS調整的目的是找到一個合適的CS值,使軟件自動校正后得到的每個通道的Raw Data趨于235*san_times(scan_times大于64時,按照64進行計算:RawData大約為:15040左右),并且每個通道的CI值最小值應該在x (單體TP:x=70,整機:x=50)左右, 最大值不應高于250.可以通過TP tools界面查看
十四、工廠特殊測試模式下的CS值
FIRST_PART_CS_VAL_TESTMODE_x :前FIRST_PART_CH_NUM個VA區通道在測試模式x下的CS值
OTHER_PART_CH_VAL_TESTMODE_x :后(TP_CHANNEL_NUM- FIRST_PART_CH_NUM) 個VA區通道在測試模式x下的CS值
KEY_CS_VAL_TESTMODE_x :獨立虛擬按鍵通道在測試模式x下的CS值
CS調整的目的是找到一個合適的CS值 使軟件自動校正后得到的每個通道的Raw Data趨于235*san_times(scan_times大于64時,按照64進行計算),并且每個通道的CI值最小值應該在x(單體TP:x=50,整機:x=30)左右, 最大值不應高于200.
工作模式寄存器地址0xAE:0 正常工廠模式(默認值); 1-特殊測試工廠模式1; 2 特殊測試工廠模式2
FIRST_PART_CH_NUM :VA區的通道在特殊測試模式下會分兩組,該參數指定前幾個VA區通道為第一組。
CONFIG_TESTMODE_CH_REORDER
– 當調整FIRST_PART_CH_NUM和相應的CS值后仍無法滿足CI的標準(即CI的最小值和最大值差很多)
– 此時需要將CONFIG_TESTMODE_CH_REORDER設置為1,并且調整TP_CHANNEL_ORDER_TESTMODE,從而使CI值相對比較大的通道排在一起,剩下的排在另
一部分。然后重新調整FIRST_PART_CH_NUM和相應的CS值。
TP_CHANNEL_ORDER_TESTMODE需要在原有掃描順序TP_CHANNEL_ORDER的基礎上調整,且保持獨立虛擬按鍵通道不變。VA區通道移動位置時,需要一對通道一起移動
KEY_CH_INVALID_NUM :默認情況為0。當使用雙端掃描并且獨立虛擬按鍵通道個數是奇數時(該情況下設置的TP_KEY_NUM 比實際情況多1),該值需要設置為1,否則為0.
十五、VA區和虛擬虛擬按鍵區分界
RV_G_VA_Y_MAX_VALUE
當支持虛擬按鍵處理,且Y坐標大于等于該值時,此時的觸摸點會當做虛擬按鍵處理。
十六、 Rawdata
十七、CI值:
坐標調試步驟:
主要宏為:COORDINATE_TUNING_STEP:該宏被設置為不同的調試步驟時,軟件會自動打開/關閉一些相關的宏定義,排除其他項目的干擾,使當前調試的步驟更容易。
一、 坐標調試步驟定義:
1.TUNING_STEP_RES_AND_Y_CENTER :設定目標分辨率,調試Y坐標中心對齊。
2.TUNING_STEP_LR_LINE_TOUCH_HANDLE :調試左右邊緣不到邊問題。
3.TUNING_STEP_BORDER_SHIFT_MANUAL_HANDLE :調試X軸邊緣甩尾的問題(甩尾反向修正方法)。
4.TUNING_STEP_BORDER_SPECIAL_HANDLE :調試X軸邊緣甩尾的問題(邊緣坐標截掉方法)。
5.TUNING_STEP_Y_SHIFT_COMPENSATE :調試Y軸坐標不到邊問題(拉邊處理)。
6.TUNING_STEP_TB_LINE_TOUCH_HANDLE :調試上下邊緣不到邊問題。
7.TUNING_STEP_FINISHED :調試結束標志。(調試結束后需要將步驟設置為該值)
二、設定分辨率
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_RES_AND_Y_CENTER,然后設定分辨率。
2.MAPPING_MAX_X :主機端需要輸出的X方向分辨率
3.MAPPING_MAX_Y :當TP虛擬按鍵是用單獨通道實現時或者沒有虛擬按鍵時,該值為主機端需要輸出的Y方向分辨率
注意:
當TP虛擬按鍵是和VA區一起全通道實現時,該值為((主機端需要輸出的Y方向分辨率*SENSOR_TOTAL_HEIGHT)/VA_SENSOR_HEIGHT)
SENSOR_TOTAL_HEIGHT : Sensor整個高度
VA_SENSOR_HEIGHT : VA區sensor的高度
三、Y坐標中心對齊
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_RES_AND_Y_CENTER,然后調整中心偏移量。
2.Y_CENTER_SHIFT_TOP :該值是上半屏Y中心(屏幕VA區1/4位置)的偏移量,該值為正值時,可以使Y中心向下偏移(坐標變大),該值為負值時反之。通過該值的設定,使觸摸上半屏中心位置時坐標準確。
3.Y_CENTER_SHIFT_BOTTOM: 該值是下半屏Y中心(屏幕VA區3/4位置)的偏移量。該值為正值時,可以使Y中心向下偏移(坐標變大),該值為負值時反之。通過該值的設定,使觸摸下半屏中心位置時坐標準確
四、左右不到邊處理
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_LR_LINE_TOUCH_HANDLE,然后調整LR_LINE_TOUCH_HANDLE相關的宏和參數。
2.LR_LINE_TOUCH_HANDLE:如果觸摸到VA區以外的左右邊緣走線時引起X坐標偏移(表現為向內側偏移),就需要開啟此功能。并對以下的宏參數做相應的修改。
3.LR_LINETOUCH_VIRTUAL_CH_IDX{LT_idx, RT_idx, LB_idx, RB_idx, LM_idx, RM_idx} :以上分別對應左上,右上,左下,右下,左中和右中參照通道,這里需要填寫合適參照通道的數據存儲index(index定義規則見附錄一),具體選擇合適參照通道的規則是它的走線要靠近左/右邊緣, 但是不參與左右邊緣坐標計算的通道,一般都推薦使用虛擬按鍵通道作為參照通道。
4.0xFF代表不需要做處理,如{0xFF, 0xFF, 32, 33, 32, 33}表示上左和上右邊緣不需要做該處理
5.LR_LINETOUCH_COEFF_1{LT_idx, RT_idx, LB_idx, RB_idx, LM_idx, RM_idx}
xxx_coeff1/xxx_coeff2是補償功能的比例系數,大于1時補償效果更明顯(越容易偏邊),小于1時補償效果
xxx_coeff2在算法中會用作除數,設置為0是非法的。
五、甩尾修正處理
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_BORDER_SHIFT_MANUAL_HANDLE ,然后調整BORDER_SHIFT_MANUAL_HANDLE相關的宏和參數。
2.BORDER_SHIFT_MANUAL_HANDLE :先將BORDER_SHIFT_MANUAL_HANDLE設置為0,然后水平畫線到左邊緣和右
邊緣。根據得到的坐標信息估算出從哪個X位置開始發生了Y坐標的明顯偏移(BORDER_MANUAL_COEFF_CNT)。在不同的X坐標位置,Y坐標個偏移了多少像素(LEFT_BORDER_MANUAL_COEFF/RIGHT_BORDER_MANUAL_COEFF)。
六、甩尾截邊處理
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_BORDER_SPECIAL_HANDLE,然后調整BORDER_SPECIAL_HANDLE相關的宏和參數。
2.BORDER_SPECIAL_HANDLE
– 先將ORI_BORDER_SPECIAL_HANDLE設置為0,然后水平畫線到左邊緣和右邊緣。
– 經過上一步驟的調試,在最邊緣(2,3個像素左右)仍然有比較嚴重的甩尾現象。
此時需要找出這個距離( BORDER_HANDLE_X_LEFT_TOP(左上)/BORDER_HANDLE_X_LEFT_BOTTOM(左下)/BORDER HANDLE X LEFT BOTTOM(左下)/
BORDER_HANDLE_X_RIGHT_TOP(右上)/BORDER_HANDLE_X_RIGHT_BOTTOM(右下)),然后將此范圍內的坐標都截掉。
– 截邊的像素不能太大(最好不要超過5),否則邊緣的靈敏度會下降太多。
七、拉邊處理
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_Y_SHIFT_COMPENSATE ,然后調整Y_COMPENSATE_XXX_SHIFT_XXX相關的參數。
2.主要參數如下:
? Y_COMPENSATE_UP_SHIFT_TOP
? Y_COMPENSATE_DOWN_SHIFT_TOP
? Y_COMPENSATE_UP_SHIFT_BOTTOM
? Y_COMPENSATE_DOWN_SHIFT_BOTTOM
3.補償Y方向坐標無法到邊緣的問題
? 先將以上參數都設置為0(即原始狀態),測試Y方向分別在上,下半屏可以輸出的平均最小和最大Y坐標。它們到真正邊緣的距離即可以粗略地設置為以上參數的值,然后在此基礎上精細調整這些值。
? 單體TP和整機環境對于以上值會有一些影響,需要以整機為準,常用整機上英文全鍵盤的點擊準確度作為標準調整這些值。設置的值越大,Y坐標會越往邊緣偏,反之會往中心偏
4.Y_COMPENSATE_EDGE_HANDLE
– 需要對邊緣區域Y坐標做二次拉邊處理時則打開該宏。
– Y坐標方向,對于上半部分的下邊緣和下半部分的上邊緣,即靠近整個TP中心的部分需要做特殊的拉伸/壓縮處理才可以提高中心位置的精確度和線性度。
?Y_COMPENSATE_EDGE_DOWN_SHIFT_TOP
– 上半部分大于((MAPPING_MAX_Y/2) -Y_COMPENSATE_EDGE_DOWN_SHIFT_TOP)的Y坐標
會做二次拉邊補償處理
– 如果偏中間,則需要乘以一個大于1的系數,如果偏邊緣,則需要除以一個大于1的系數,具體需要修改代碼,搜索宏Y_COMPENSATE_EDGE_HANDLE
?X_COMPENSATE_EDGE_UP_SHIFT_BOTTOM
– 下半部分小于((MAPPING_MAX_Y/2) + X_COMPENSATE_EDGE_UP_SHIFT_BOTTOM)的Y坐標會做二次拉邊補償處理
– 如果偏中間,則需要乘以一個大于1的系數,如果偏邊緣,則需要除以一個大于1的系數,具體需要修改代碼,搜索宏Y_COMPENSATE_EDGE_HANDLE
八、上下不到邊處理
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_TB_LINE_TOUCH_HANDLE ,然后調整TB_LINE_TOUCH_HANDLE相關的宏和參數。
2.LR_LINE_TOUCH_HANDLE
? 如果觸摸到VA區以外的上下邊緣走線時引起Y坐標偏移(表現為向內側偏移),就需要開啟此功能。并對以下的宏參數做相應的修改。
?TB_LINETOUCH_VIRTUAL_CH_IDX_1{top_idx1, top_idx2, ... top_idx8, bottom_idx1, bottom_idx2, ... , bottom_idx8}
–top_idxN上邊緣的參照通道, bottom_idxN是下邊緣的參照通道,這里需要填寫合適參照通道的數據存儲index(index定義規則見附錄一),具體選擇合適參照通道的規則是它的走線要靠近上/下邊緣, 但是不參與上下邊緣坐標計算的通道,一般都推薦使用虛擬按鍵通道作為參照通道。
–0xFF代表該位置不需要做處理
? TB_LINETOUCH_COEFF_1{top_idx1, top_idx2, ... top_idx8, bottom_idx1, bottom_idx2, ... , bottom_idx8}
? TB_LINETOUCH_COEFF_2{top_idx1, top_idx2, ... top_idx8, bottom_idx1, bottom_idx2, ... , bottom_idx8}
–xxx_coeff1/xxx_coeff2是補償功能的比例系數,大于1時補償效果更明顯(越容易偏邊),小于1時補償效果越不明顯(越容易偏內),需要根據實際情況選擇合適的系數。
–xxx_coeff2在算法中會用作除數,設置為0是非法的。
九、調試結束
1.將COORDINATE_TUNING_STEP設置為TUNING_STEP_FINISHED,然后調整X坐標映射相關的參數。
2.AUTO_MAPPING
3.X_SHIFT_COMPENSATE
–X_COMPENSATE_LEFT_SHIFT
? 左側超出VA區的sensor所占像素
? X_COMPENSATE_LEFT_SHIFT = (LEFT_OVERRANGE_SENSOR_WIDTH * (64* ( _CHANNEL_NUM2))) /SENSOR_TOTAL_WIDTH
LEFT_OVERRANGE_SENSOR_WIDTH : 左側部超出部分的sensor寬度
SENSOR_TOTAL_WIDTH : 整個sensor的寬度
-X_COMPENSATE_RIGHT_SHIFT
? 右側超出VA區的sensor所占像素
? X_COMPENSATE_RIGHT_SHIFT= (RIGHT_OVERRANGE_SENSOR_WIDTH* (64* (TP_CHANNEL_NUM2))) /SENSOR_TOTAL_WIDTH
RIGHT_OVERRANGE_SENSOR_WIDTH : 右側部超出部分的sensor寬度
SENSOR_TOTAL_WIDTH : 整個sensor的寬度
K_X
? X方向映射系數
? 當宏X_SHIFT_COMPENSATE打開時
–K_X = ((MAPPING_MAX_X - 1)*256) / (X_COMPENSATE_MAX – 1)
當宏X_SHIFT_COMPENSATE關閉時
– K_X = ((MAPPING MAX X - 1)*256) / ((TP CHANNEL NUM/4)*64 – 1)
宏功能開關
WDTEN :是否啟動watch dog功能
FACTORYMODE :是否支持factory模式
AUTO_MAPPING :是否需要映射X坐標,預設的X坐標范圍是X(0, 64*(TP_CHANNEL_NUM/4)) ,Y坐標范圍已經是(0,MAPPING_MAX_Y)
DOUBLE_BUFFER_MODE :使用雙buffer還是多buffer
GESTURE_FUNC :是否支持手勢(Zoom in/out)
POINT_FILTER_PROCESS :濾掉剛觸摸時的不穩定點
LIFTUP_FILTER :避免斷線
POINTS_STABLE_HANDLE :觸摸靜止不動時的點穩定功能
LIFTUP_PROCESS :抬起時濾掉錯誤點
POINT_ID_PROC :支持ID
VIRTUAL_KEY :是否支持虛擬按鍵
INT_LOW_VOL_LONG_PERIOD :中斷低電平觸發方式,默認(關閉時)為下降沿觸發方式
INT_PIN_TEST :支持TP Tool的Pin Test功能
APP_UPGRADE :支持Host端升級FW
CONFIGFROMFLASH_EN :從Flash中讀取I2C地址和Panel ID信息
CURRENT_NUMBER_SUPPORTED :最大支持點數
虛擬按鍵處理函數
當虛擬按鍵是和VA區一起全通道實現時
–不同項目需要修改函數VirtualKeyprocessing()
?如果主機端需要TP上報虛擬按鍵區真實坐標,由主機端自己去映射按鍵,那么只需將REPORT_ACTUAL_COORDINATE設置為1即可。
?如果主機端需要TP上報虛擬按鍵的固定坐標,那么意味著TP FW需要自己做按鍵映射。首先需要將REPORT_ACTUAL_COORDINATE設置為0,然后和主機端一起定義固定坐標的鍵值,目前TP FW中默認會報3個固定虛擬按鍵,鍵值分別是(0, 1161), (1, 1161)和(2,1161). 最后還需要按照按鍵的個數和位置修改按鍵的映射范圍。
– 需要修改KEY_VIRTUAL_Y
– RV_G_VA_Y_MAX_VALUE_UP, RV_G_VA_Y_MAX_VALUE_DOWN
– RV_G_KEY_LEFT_X0,RV_G_KEY_LEFT_X1...
– 如果多于三個按鍵,可能需要增加新的定義和變量
當虛擬按鍵是單獨通道實現時
– 不同項目需要修改函數KeyChannelHandle()
? 此實現方法基礎上,TP只可以上報固定坐標。需要和主機端一個定義每個虛擬按鍵的固定坐標,然后根據觸摸不同虛擬按鍵時通道differ值的不同特征來區分不同按鍵。
? 此處的觸摸閾值和VA區是分開的,可以單獨定義,自由實現。
? 需要注意的是需要在有觸摸時設置觸摸按鍵通道的ucFlag為0,否則可能會發生長時間觸摸虛擬按鍵消點的問題(base跟蹤)。公版FW已經添加了這樣的code,可以參照。
總結
以上是生活随笔為你收集整理的敦泰FT6X06单层自容调屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FT5X06 如何应用在10寸电容屏(l
- 下一篇: Linux下触摸屏驱动程序分析