|
發表於 2019-5-2 15:53:03
|
顯示全部樓層
本文章最後由 jason680 於 2019-5-2 04:03 PM 編輯
接下來, 今天討論 分壓 細部討論
1. 多鍵輸入 <==這個是條件就是要符合,應該不是太大問題...
2. 分壓 <== 今天討論重點---詳以下
3. 誤差與軟硬體配合 <== 待討論....
2. 分壓,以下分pull low與pull high來討論
2A: pull low 接地電阻是固定值,每個按鈕電阻(Rvar)不同
Vcc ---Rvar--+--Rfix---GND
註: Rvar變動, Rfix(固定)接地. +為Vin分壓點
分壓公式 Vin = Vcc * Rfix / (Rvar + Rfix)
把 Rvar看成 Rfix的倍數
例: Rfix = 1K, Rvar=1K = 1倍* Rfix
Rvar=2K = 2倍* Rfix, Rvar = 500 = 0.5倍 * Rfix
Rvar用 N * Rfix代入, 公式改為
Vin = Vcc * Rfix / ( N* Rfix + Rfix) ,Rfix提出來
Vin = Vcc * Rfix / (Rfix*(N+1) ) ,Rfix消掉
Vin = Vcc * 1 / (N+1) ,Rfix消掉
N = 10, Vin = Vcc * 1/11
N = 0.1, Vin = Vcc * 1/1.1
Pull Low小結:
分壓結果最大值 約為 0.9Vcc (在N=0.1時)
分壓結果最小值 約為 0.09Vcc (在N=10時)
Rvar愈大,N愈大,分壓結果愈小
2B: pull high
Vcc ---Rfix--+--Rvar---GND
註: Rvar變動, Rfix(固定)接Vcc. +為Vin分壓點
分壓公式
Vin = Vcc * Rvar / (Rvar + Rfix)
一樣把 Rvar看成 Rfix的倍數
Rvar用 N * Rfix代入, 公式改為
Vin = Vcc * (N* Rfix) / (N* Rfix + Rfix)
Vin = Vcc * N / (N +1)
N = 10, Vin = Vcc * 10/11
N = 0.1, Vin = Vcc * 0.1/1.1
Pull Low小結:
分壓結果最大值 約為 0.9Vcc (在N=10時)
分壓結果最小值 約為 0.09Vcc (在N=0.1時)
Rvar愈大,N愈大,分壓結果愈大
Pull High跟 Pull Low寫在一起
公式比較
pull high: Vin = Vcc * N / (N +1) , N愈大,Vin愈大,但差異愈差愈少
pull low: Vin = Vcc * 1 / (N +1) , N愈大,Vin愈小,差異也是愈差愈少
把Vcc移到左邊,用比率(百分比)表示,就可以簡化計算評估誤差問題
pull high: Vin/Vcc = N / (N +1)
pull low: Vin/Vcc = 1 / (N +1)
註: 誤差問題,是之後才要詳細討論,在這裏先簡單說一下
當你做一片時,稍為費心調整一下軟硬體,可能就可以work
但如果要量產,對誤差沒有正確評估,可能怎麼調怎麼不對...
註: 誤差容許,如果太少只有2.X%, 一般電阻5%就不能用,
用1%的精密電阻,仍然可能讓人很頭大...
提問者寫的..."採樣還要額外容許正負5的誤差。"
正負5的誤差,大約只有5/1000 = +-0.5%
1%的精密電阻可能就把你的 正負5(0.5%)的誤差 吃掉了
提問者用的方法為 pull low,N大約在0.1到1之間(附圖 紅色框框)
最少差異只有2.6%,不到3%有點少...
附圖上,可以看出,採線性電阻分壓,但差異卻不是等比率...
不管1/(N+1)或N/(N+1)本來以為差異會不同,結果卻相同(藍色框框)...
|
|