本應(yīng)用筆記說明了使用Microchip PIC1845F1855微控制器實現(xiàn)DS12或DS509非易失數(shù)字電位器按鈕接口的方法。
硬件設(shè)置
圖1中的原理圖說明了如何將按鈕連接到微控制器。它還顯示了IC接口是如何實現(xiàn)的。
其中三個開關(guān)為瞬時按鈕型,用于遞增 (UP)、遞減 (DWN) 和設(shè)置中間電位值 (MID)。按下時,這些開關(guān)會強制微控制器的三個通用I/O(GP0、GP1和GP3)為低電平。之所以明確選擇這些I/O,是因為它們具有內(nèi)部(可選)上拉電阻,如果啟用低電流SLEEP模式,它們會產(chǎn)生喚醒中斷。另一個輸入開關(guān)是分配給GP2的DPDT開關(guān)。此開關(guān)可用于選擇 POT0 或 POT1 進行編程。
SDA、SCL 和 LED 上的輸出信號分配給 GP5、GP4 和 GP0。SDA和SCL具有4.7kΩ上拉電阻,并直接連接到數(shù)字電位器的通信引腳。LED 和 MID 瞬時開關(guān)均使用 GP0 引腳作為資源。GP0引腳大部分時間用作輸入,輪詢由MID按鈕引起的低電平。但是,如果按下一個或兩個其他瞬時按鈕,則PIC輸出低電平,導(dǎo)致LED被驅(qū)動。這樣,只要按下 MID 按鈕,LED 就會被驅(qū)動,每當(dāng)按下另一個按鈕開關(guān)時,PIC 就會驅(qū)動 LED。R1、R2 和 R3 是可選的上拉電阻,使用 PIC12F509 時無需填充。
圖2給出了DS1845/DS1855用于評估的特定連接。提供跳線用于選擇地址引腳,分隔共享的V抄送(五DD),以及隔離 SDA 和 SCL。
圖1.PIC12F509接口電路。
圖2.DS1845/DS1855數(shù)字電位器連接到PIC控制器。
固件說明
該項目的固件是用MPLAB IDE(版本7.31)編譯的匯編語言編寫的。該工具目前可從Microchip免費獲得。整個程序由程序空間(閃存)中的不到512條指令和數(shù)據(jù)空間(RAM)中的14個位置組成。
指令分為五個塊:初始化、讀取、UP、DWN 和 MID。固件只是在循環(huán)中連續(xù)輪詢輸入引腳。由于程序的固有延遲和邏輯流程,開關(guān)去波化會自動合并到軟件中。
初始化模塊在 PIC 上電時或喚醒后運行一次(如果啟用了 SLEEP)。運行 Initialize 塊中的指令后,操作寄存器、標(biāo)志和變量將加載到已知狀態(tài)。執(zhí)行這些指令后,其余模塊串行形成無限循環(huán),以輪詢開關(guān),通過IC讀取或?qū)懭胄碌?a target="_blank">電位器值。
電位器值的IC讀取僅在設(shè)置RD_FLAG時發(fā)生。此標(biāo)志在初始化期間設(shè)置一次,然后在按鈕調(diào)用將電位器寄存器寫入新值時設(shè)置一次。通過在電位值變化期間和啟動時僅執(zhí)行IC READ,當(dāng)UP、DWN或MID按鈕未按下時,總線上不會發(fā)生多余的通信突發(fā)。例如,如果電位器已經(jīng)在使用中控制電源微調(diào)參數(shù),則連接按鈕控制器以執(zhí)行在線編程。在對電位器值執(zhí)行IC寫入之前,將讀取當(dāng)前的電位器值。IC寫入完成后,再次設(shè)置RD_FLAG以生成新電位器值的最終IC讀取。
UP、DWN 和 MID 塊在讀取塊之后按順序運行。在每個模塊中,相應(yīng)的引腳被輪詢?yōu)榈蜖顟B(tài)。如果找到HIGH狀態(tài),則程序?qū)⒖焖偻顺鲈搲K,而不會導(dǎo)致發(fā)生任何IC通信。如果檢測到 LOW,則程序按照邏輯框圖中的說明進行。
功能說明
該項目的固件和硬件允許在DS1845/DS1855上對電位器值進行編程時執(zhí)行多種不同的操作。開關(guān)和 LED 功能包括:
POT0/1(選擇撥動開關(guān)) | 此開關(guān)選擇在下一次循環(huán)迭代中控制哪個電位器(如有必要)。此開關(guān)上的狀態(tài)更改會選擇 POT0 或 POT1,導(dǎo)致 IC 讀取,并且對 LED 沒有影響。2 |
點擊 MID、UP或 DWN 按鈕(< 400 毫秒) | 通過輕觸其中一個開關(guān),所選電位器將遞增 (UP)、遞減 (DWN) 或直接加載中間位置 (MID)。執(zhí)行IC寫入時,LED將短暫亮起;IC讀取將在下一次循環(huán)迭代中進行。22 |
按住 UP 或 DWN 按鈕(> 400 毫秒) | 通過按住UP或DWN按鈕,所選電位器將進入快速遞增或遞減模式。現(xiàn)在,電位器值將繼續(xù)變化,直到松開按鈕或達到最大/最小位置。執(zhí)行 IC 寫入時,LED 將亮起;它將保持亮起,直到松開按鈕。按鈕釋放后,IC讀取將在下一次循環(huán)迭代中進行。22 |
按住 UP,然后點擊 DWN 按鈕 | 通過按住UP按鈕,所選的電位器將開始遞增。然后,在仍然按下UP按鈕的同時,點擊DWN按鈕,使所選電位器直接加載到最大位置。LED 將亮起,直到松開開關(guān)。釋放按鈕后,IC讀取將在下一次循環(huán)迭代中發(fā)生。2 |
按住 DWN,然后點擊向上按鈕 | 通過按住DWN按鈕,所選電位器將開始遞減。然后,在仍然按下DWN按鈕的同時,點擊UP按鈕,使所選電位器直接加載到最小位置0x00。LED 將亮起,直到松開開關(guān)。釋放按鈕后,IC讀取將在下一次循環(huán)迭代中發(fā)生。2 |
指示燈閃爍三次 | 每當(dāng)上電期間初始化PIC或看門狗定時器導(dǎo)致系統(tǒng)復(fù)位(如果啟用)時,LED將閃爍三次。 |
LED 持續(xù)快速閃爍 | 每當(dāng)發(fā)生IC錯誤時,LED將持續(xù)快速閃爍。糾正錯誤后,指示燈將恢復(fù)正常功能。通過檢查設(shè)備地址是否正確以及IC總線是否已連接來進行故障排除。22 |
結(jié)論
本應(yīng)用筆記介紹如何為DS1845/DS1855非易失數(shù)字電位器使用和構(gòu)建簡單、高性價比的控制器。按鈕輸入轉(zhuǎn)換為IC命令,以遞增、遞減或設(shè)置中間位置,而無需主機。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7947瀏覽量
154848 -
led
+關(guān)注
關(guān)注
242文章
23828瀏覽量
673778 -
數(shù)字電位器
+關(guān)注
關(guān)注
4文章
267瀏覽量
84001
發(fā)布評論請先 登錄
一種DS1845/DS1855接口方案介紹
數(shù)字電位器DS1267及其在電橋自動平衡中的應(yīng)用
DS1267中文資料 (256結(jié)點雙數(shù)字電位器)
構(gòu)建DS1803/DS1805數(shù)字電位器的按鍵控制器

DS1845/DS1855數(shù)字電位器的接口方案
DS1855雙路非易失性(NV)數(shù)字電位器

DS1855雙路、非易失數(shù)字電位器及安全存儲器

數(shù)字電位器DS126的結(jié)構(gòu)和工作原理及DS1267在電橋自動平衡的應(yīng)用說明

數(shù)字電位器DS1267中文資料及應(yīng)用
DS1845E-100+ 數(shù)據(jù)采集 - 數(shù)字電位器

DS1855E-010+ 數(shù)據(jù)采集 - 數(shù)字電位器

DS1855B-010+ 數(shù)據(jù)采集 - 數(shù)字電位器

DS1855E-050+ 數(shù)據(jù)采集 - 數(shù)字電位器

DS1855B-010/T&R 數(shù)據(jù)采集 - 數(shù)字電位器

DS1845/DS1855溫度系數(shù)分析

評論