精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RTC時鐘與觸摸功能詳解(下)

jf_78858299 ? 來源:金沙灘工作室 ? 作者:金沙灘工作室 ? 2023-05-26 14:45 ? 次閱讀

58.5 電阻式觸摸控制器——XPT2046

為了方便測量觸摸屏的坐標,芯片廠商設計了專門的觸摸屏控制芯片,實現觸摸點電壓測量與轉換功能。本文采用的XPT2046是一款4導線制觸摸屏控制器,內含12位分辨率

125KHz 轉換速率逐次逼近型A/D轉換器。XPT2046通過執行兩次A/D轉換便可以計算出觸摸點位置,該芯片兼容 ADS7843 觸摸芯片,其電路原理圖和引腳圖如圖8-6和表8-1、表8-2所示。

圖片

圖片

XPT2046的電源VCC的范圍為2.7V~5.5V。A/D轉換所需的參考電壓可以選擇通過VREF輸入,范圍是1V~VCC;也可以采用內部內部 2.5V參考電壓,采用內部參考電壓時VREF引腳應懸空。XPT2046除了作為觸摸驅動芯片,還可以進行電池電壓檢測、溫度測量,以及壓力測量。作為觸摸屏應用時,X+、X-、Y+、Y-分別連接電阻觸摸屏的X+、X-、Y+、Y-引腳,測量時芯片會根據指令自動切換X、Y電極的電壓,并采集觸摸點的電壓進行快速A/D轉換。

XPT2046的ADC可以配置為單端或差分模式,具體如下:

單端模式是以外部參考電壓VREF為參考,在采樣過程完成后,進行A/D轉換時可以關閉驅動開關,以降低功耗。但這種模式的缺點是精度直接受參考電壓源的精度限制,同時由于內部驅動開關存在導通電阻,導通電阻與觸摸屏電阻的分壓作用,也會帶來測量誤差。因此該模式主要應用于電池監測、溫度測量和壓力測量。

差分工作模式是以X、Y電極兩端的電壓作為差分輸入電壓,可消除由于驅動開關的導通電阻引入的坐標測量誤差。缺點是驅動開關一直接通,相對于單端輸入模式而言,功耗變高了。作為觸摸屏應用時,為了提高轉換精度,應該配置為差分模式。

68.6 XPT2046通信接口及控制命令

XPT2046允許采用SPI,SSI,Microwire等串行接口通信,本文采用IO口模擬SPI方式通信。XPT2046一次完整的數據轉換一般需要24個時鐘周期,即通信時單片機必須提供24個時鐘周期才能保證XPT2046完成一次數據轉換,數據按照高位在前、低位在后的順序傳輸,當CS為低電平時,數據在CLK的上升沿鎖存,下降沿輸出(即CPOL=0,CPHA=1的模式)通信時序如8-7所示。

圖片

圖8-7 XPT2046 24時鐘周期轉換時序圖

結合時序圖,操作步驟如下:

1、發送控制字命令。前8個時鐘周期單片機通過DIN(MOSI)引腳發送控制字命令,用于配置XPT2046的工作模式。控制命令由8個數據位組成,包括起始位、通道選擇位、分辨率選擇位、輸入方式和低功率模式,控制命令如表8-3所示。

圖片

(1)起始位——第一位,即 S 位。控制字的起始位必須為 1,否則所有的輸入將被忽略。

(2)通道選擇位——A2、A1、A0用于選擇對哪一個通道進行A/D轉換。差分模式下:當A2=0,A1=0,A0=1時表示選擇X+通道,即測量Y軸坐標;當A2=1,A1=0,A0=1時表示選擇Y+通道,即測量X軸坐標。測量坐標時,要分別測量X+和Y+通道。

(3)MODE——模式選擇位,用于設置 ADC 的分辨率。為0表示下一次的轉換為 12 位模式;為1表示下一次的轉換將是 8 位模式,默認設置選擇12位模式。

(4)SER/DFR——輸入模式選擇位,單端輸入方式/差分輸入方式選擇位。為1是單端輸入方式,為0是差分輸入方式,觸摸測量時默認選擇差分模式,即設置該位為0。

(5)PD1和PD0——模式選擇位,其功能如表8-4所示。若為11,器件總處于全功耗模式;若為00,器件在A/D轉換之間處于低功率模式。同時PD0位還控制是否產生PENIRQ中斷,如果使能PENIRQ中斷,當有觸摸動作時,PENIRQ引腳會輸出0,否則輸出1,通過PENIRQ引腳可以判斷是否有觸摸動作,本教材默認設置PD1、PD0為00。

2、電壓采樣。當XPT2046接收到5個控制命令位時,即在接收到MODE位后,XPT2046內部就可以根據控制位信息設置輸入多路選擇器和參考源輸入,并啟動觸摸面板驅動器,開始進入采樣模式,該動作與SPI串行通信是同步的,并不影響剩余控制位的傳輸,如圖8-7種的時序圖所示;3個多時鐘周期后,控制字接收完成,于此同時采樣完畢,轉換器進入轉換狀態,此時XPT2046會將BUSY引腳置高,表示數據正在轉換。

3、轉換結束后需要提供16個時鐘信號,其中第1個時鐘信號用于清除BUSY位,然后再發送12個時鐘周期將輸出轉換后的12位有效數據。最后3個時鐘信號用于輸出剩余3個無效數據,默認為0。

4、注意當次讀取的轉換數據,是上一次的轉換結果,而當次的時鐘提供的轉換數據,下一次讀取,因此第一次讀取的數據是無效數據。

78.7 觸摸屏校準

計算觸摸點位置時需要引入兩個概念——物理坐標和邏輯坐標。物理坐標就是觸摸點在液晶屏上的實際位置,通常以液晶上像素的個數來度量。本文采用的TFT-LCD的X和Y軸坐標范圍分別為0239和0319。邏輯坐標指的是觸摸點的電壓值經ADC轉換后得到的坐標值,由ADC精度決定,12位ADC模式下其范圍為0~4095。實際使用時需要通過邏輯坐標計算相應的實際物理坐標。

觸摸屏是由液晶顯示屏(TFT-LCD)疊加一層觸摸層構成一個矩形的實際物理平面。一方面由于存在誤差,這兩個平面并不是完全重合;另一方面由于 A/D轉換器的前端電路具有高輸入阻抗,因此特別容易受到電氣噪聲的干擾;觸摸屏本身電阻材料的均勻性以及模擬電子開關的內阻和 A/D轉換器自身的轉換精度都會影響轉換后的邏輯坐標值。基于以上兩方面原因導致實際的物理坐標與軟件通過邏輯坐標所計算的物理坐標有所偏差。校準的作用就是要將邏輯平面映射到物理平面上,即得到觸點在液晶屏上的位置坐標。

由于電阻式觸摸屏的電壓成線性均勻分布,那么A/D轉換后的坐標值也成線性。首先假定物理平面和邏輯平面之間的誤差是線性誤差,如果已知觸摸屏上一點A,其物理坐標為(X a ,Y a ),相應的邏輯坐標為(X b ,Y b ),根據假定的線性關系,可以得到:

Xa = K ~x ~ * X ~b ~ + D x

Ya = K ~y ~ * X ~b ~ + D y ;

其中Kx、Ky分別為觸摸屏X方向和Y方向的縮放比例系數,D x 、Dy為偏差常數,它們由校準點計算而來。根據觸摸屏的Kx、Ky、D x 、D y ,就可以通過邏輯坐標計算出相對準確的物理坐標。

觸摸屏的校準方法大致有兩點校準、三點校準、四點校準、五點校準等。其中校準的點數越多,觸摸屏的校準相對越精確。本文采用五點校正法。五點校正法優勢在于可以更加精確的計算出X和Y方向的比例縮放系數,同時提供了中心基準點,對于一些線性電阻系數比較差的電阻式觸摸屏有很好的校正作用。

首先在液晶屏的4個角取4個固定物理坐標作為測量點,并且在液晶屏中心位置取一個基準點,然后依次顯示各個校準點,并讀取該點的觸摸坐標,最后計算Kx、Ky、D x 、D y ,校準點如圖8-8所示。

圖片

8-8 五點校準示意圖

校準流程如下所示:

1、依次顯示并觸摸5個校準點,并讀取觸摸坐標;

2、根據坐標計算S1、S2、S3、S4、S5、S6五條線段的長度,并比較S1和S2,S3和 S4,S5和S6的距離,當二者的距離小于一定范圍時,默認校準有效,否則無效,重新 校準。當距離差越小時,校準越準確。

3、根據所得的校準點的邏輯坐標計算縮放比例系數K x 、K y ,和偏差D x 、Dy公式如下:

Kx = ((X2-X1)/ S1+(X4-X3)/ S2)/2

Ky = ((Y3-Y1)/ S3+(Y4-Y2)/ S4)/2

D ~x ~ = (S1- K x *(X1+X2))/2

D ~y ~ = (S1- Ky*(Y1+Y2))/2

4、通過K x 、K y 、D x 、Dy以及中心基點的邏輯坐標計算相應的物理坐標,如果計算后的坐標與實際坐標誤差小于一定范圍,比如5個像素時認為校準成功,否則校準失敗,需要重新校準。

88.8 觸摸畫板實驗

根據液晶屏的觸摸功能設計了一款簡易的觸摸畫板實驗。觸摸畫板分為兩部分,功能區和繪畫區,功能區用來選擇畫筆顏色和清除畫板,然后通過觸摸筆在繪畫區繪制圖案。

首先將觸摸事件分為按下、滑動、抬起三種事件,不同事件對應不同的動作。當滑動事件觸發時,如果觸摸點的坐標位于繪畫區,則在對應位置通過畫點函數畫一個2*2的點。當抬起動作觸發時,如果抬起時的坐標是否位于功能區,則觸發相應的功能。

具體代碼如下:

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120003
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10825

    瀏覽量

    211140
  • 實時時鐘
    +關注

    關注

    4

    文章

    239

    瀏覽量

    65691
  • STM32F103
    +關注

    關注

    33

    文章

    476

    瀏覽量

    63478
收藏 人收藏

    評論

    相關推薦

    STM32 RTC實時時鐘(一)

    STM32處理器內部集成了實時時鐘控制器(RTC),因此在實現實時時鐘功能時,無須外擴時鐘芯片即可構建實時
    的頭像 發表于 07-22 15:41 ?4592次閱讀
    STM32 <b class='flag-5'>RTC</b>實時<b class='flag-5'>時鐘</b>(一)

    RTC時鐘模塊有哪些功能

    很多嵌入式設備在使用過程中,會碰到未聯網的狀態,但是有需要保證時間的正常,或者定時開關機功能。這個時候就需要添加RTC 時鐘模塊。下面通過mstar 平臺的rx8130ce 型號時鐘調
    發表于 07-27 08:15

    W601的RTC時鐘功能概述

    計數器/定時器,兩個 32 位寄存器包含秒、分、時、日、月、年,以二進制編碼的十進制格式表示(BCD),能自動對 28、29(閏年)、30、31 天的月份進行修正。在相應軟件配置RTC 既可以提供時鐘日歷
    發表于 01-10 08:05

    淺談RTC實時時鐘特征與原理

    計數的計數器,在相應軟件配置,可提供時鐘日歷的功能。修改計數器的值可以重新設置系統當前的時間和日期。 RTC模塊和時鐘配置系統(RCC_B
    的頭像 發表于 06-30 15:54 ?1.1w次閱讀

    STM32開發 -- RTC詳解

    RTC (Real Time Clock):實時時鐘實時時鐘是一個獨立的定時器。 RTC模塊擁有一組連續計數的計數器,在相應軟件配置,可
    發表于 11-30 13:06 ?27次下載
    STM32開發 -- <b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    【STM32】RTC詳解

    00. 目錄文章目錄00. 目錄01. RTC概述02. RTC主要特性03. RTC部分功能3.1 時鐘和預分頻器3.2 實時
    發表于 12-04 17:21 ?26次下載
    【STM32】<b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    STM32CubeMX | 基于STM32使用HAL庫驅動RTC時鐘及鬧鐘功能

    STM32使用HAL庫驅動RTC時鐘及鬧鐘功能目錄STM32使用HAL庫驅動RTC時鐘及鬧鐘功能
    發表于 12-06 09:21 ?52次下載
    STM32CubeMX | 基于STM32使用HAL庫驅動<b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>及鬧鐘<b class='flag-5'>功能</b>

    RTC時鐘講解(一)

    什么是RTC RTC (Real Time Clock):實時時鐘 RTC是個獨立的定時器。RTC模塊擁有一個連續計數的計數器,在相應的軟件
    的頭像 發表于 06-09 17:48 ?9679次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>講解(一)

    STM32CubeMX-實時時鐘(RTC)

    實時時鐘 (RTC) 是一個獨立的 BCD 定時器/計數器。RTC 提供具有可編程鬧鐘中斷功能的日歷時鐘 /日歷。
    的頭像 發表于 01-14 17:24 ?2485次閱讀

    STM32學習筆記之RTC實時時鐘1

    STM32 的實時時鐘RTC)是一個獨立的定時器。 STM32 的 RTC 模塊擁有一組連續計數的計數器,在相應軟件配置,可提供時鐘日歷
    的頭像 發表于 05-26 14:26 ?1854次閱讀
    STM32學習筆記之<b class='flag-5'>RTC</b>實時<b class='flag-5'>時鐘</b>1

    STM32學習筆記之RTC實時時鐘2

    STM32 的實時時鐘RTC)是一個獨立的定時器。 STM32 的 RTC 模塊擁有一組連續計數的計數器,在相應軟件配置,可提供時鐘日歷
    的頭像 發表于 05-26 14:26 ?1135次閱讀
    STM32學習筆記之<b class='flag-5'>RTC</b>實時<b class='flag-5'>時鐘</b>2

    RTC時鐘觸摸功能詳解(上)

    是CPU內部集成RTC模塊。STM32F103內部集成了RTC模塊,可以通過配置相應的寄存器來實現實時時鐘功能
    的頭像 發表于 05-26 14:44 ?1820次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>與<b class='flag-5'>觸摸</b><b class='flag-5'>功能</b><b class='flag-5'>詳解</b>(上)

    RTC詳解

    RTC的本質很簡單,就是一個時鐘經過精確分頻最后得到的一個1Hz的時鐘,也可以說是計數器,其他大部分功能都是基于這個計數器設計的數字邏輯。 本文講的
    的頭像 發表于 05-26 15:15 ?8974次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    CW32實時時鐘RTC)介紹(

    實時時鐘RTC)是一個專用的計數器 / 定時器,可提供日歷信息,包括小時、分鐘、秒、日、月份、年份以及星期。RTC 具有兩個獨立鬧鐘,時間、日期可組合設定,可產生鬧鐘中斷,并通過引腳輸出;支持時間
    的頭像 發表于 05-26 17:07 ?891次閱讀
    CW32實時<b class='flag-5'>時鐘</b>(<b class='flag-5'>RTC</b>)介紹(<b class='flag-5'>下</b>)

    一文看懂RTC實時時鐘

    RTC是個獨立的定時器。RTC模塊擁有一個連續計數的計數器,在相應的軟件配置,可以提供時鐘日歷的功能。修改計數器的值可以重新設置當前時間和
    的頭像 發表于 06-16 12:24 ?4328次閱讀
    一文看懂<b class='flag-5'>RTC</b>實時<b class='flag-5'>時鐘</b>