一種基于單芯片方案的電子秤系統(tǒng)設計
圖4:按鍵陣列圖。
按鍵掃描 假設按鍵掃描陣列為4×6,PT1[5]、PT1[6]、PT1[7]、PT2[0]、PT2[1] 、PT2[2]為回掃線,PT2[3]、PT26]、PT3[5]、PT3[6]為驅動線。按鍵陣排列如圖4,在本例中,為了節(jié)省元件,未在驅動線中串聯(lián)隔離元件,如果同時按
下與同一回掃線(輸入口)連接的兩個按鍵,就會通過兩條相關的驅動線造成兩個輸出端短路。此時可以使用如下方式法避免:初始化時,接通所有上拉電阻,連接按鍵的各I/O口均設置為輸入口,當需要進行按鍵掃描時,只需將其需要驅動的那一個I/O口設置為輸出口并輸出低電平,回檢讀口后立刻將該I/O恢復為輸入口,如此反復,即同一時刻只有一條線為輸出口,就不會造成故障。
設計要點及注意事項
CSU1221內部集成1MHz時鐘,CPU的時鐘周期可選擇為:62.5K、125K、250K、 500KHZ,選擇500KHz以縮短每次大循環(huán)的運行時間。
CSU1221內部集成的ADC,速率選擇范圍 3.8~488Hz。在測量電壓時使用125Hz;在測量傳感器時使用15HZ,每個AD值的周期約為67ms,保證在AD值更新之前,程序的大循環(huán)已經結束(根據(jù)程序大循環(huán)運行的時間不同,可以適當調整),為了得到更穩(wěn)定的重量,首先對AD值進行2次算術平均,然后再進行8次的滑動平均。在測量電壓結束之后,必須丟掉3個AD值的時間為200ms,在重量穩(wěn)定的情況下察覺不到跳動或反應遲鈍的現(xiàn)象。
為了提高電子秤的線性,可增加ADC內部運放的偏置電流,增加100%時為最佳。使用CSU1221直接驅動無源蜂鳴器時,必須串一個100歐的電阻,避免快速按鍵時影響AD值的跳動。在每個大循環(huán)結束之后,可以使用HALT指令使CPU處于暫停狀態(tài),直到新的中斷(如AD中斷)產生才恢復正常,這樣可以降低功耗CSU1221運行功耗。
由于模擬信號極易受到外界的電磁干擾,所以實際設計中應注意以下細節(jié):1)在PCB布板時接口傳感器輸入端至 AIN0、AIN1的距離盡可能短,濾波電容的接地端要直接接到鋪地銅箔上;2)模擬信號的兩引線與鐵氧體均平行布線,濾波電容緊密平行排列。
由于I2C的時鐘頻率比較高,為了避免干擾內置的ADC,需遠離模擬端的I/O引腳。CSU1221的模擬地AGND應與數(shù)字 DGND分開來,同時回到穩(wěn)壓芯片(HT7130)的地端,而HT7130的地端與電池的地端相連接。并且其它的元器件,如E2PROM (HT24C02)、液晶驅動芯片(HT1621)的地端并不一定要與DGND相連,如果這些元器件的地端與電池的地端相近,可直接將這些地連接到電池的地端。地線連接應遵循下面的原則:非CSU1221模擬地的地線,不能與CSU1221模擬地部分相連,以避免其它元器件產生的干擾信號流經 CSU1221模擬地,影響穩(wěn)定性。
上電開機后對CSU1221進行初始化時,建議采取如下順序以提高軟件可靠性:a.上電后,延遲30ms;b.初始化CSU1221數(shù)字部分;c.延遲30ms后,初始化CSU1221模擬部分;d.延遲60ms后,初始化所有RAM。
本文小結
CSU1221是一款內置ADC的高精度、低功耗、高可靠性的單芯片MCU,外圍電路非常簡單,應用方便,非常適合用于高精度、小信號測量產品,如高精度電子秤、氣壓計、血壓計,等等。該產品目前已經獲得若干衡器及其它行業(yè)的批量應用。
評論