我使用PMS150C構建了一個簡單的閃爍自行車燈
這是一個簡單的項目,使用觸覺按鈕開關來打開或關閉閃爍的LED,可能用作自行車燈。
自行車燈
雖然許多人可能會使用滑動開關和555定時器來實施此項目,但此實施的BOM行數要少得多,而且BOM成本也要低得多。
在上面的GIF中,我閃爍了一個LED,但是,MCU將使端口A上的所有引腳都閃爍相同—在SOT23-6器件上,
您最多可以使用3個LED,而SO-8封裝將閃爍最多3個LED。5個LED。
該項目主要是為了對應廣部件的睡眠功率模式進行實際測試而設計的。在睡眠模式下,當采用3.3V電源供電時,PMS150C僅消耗350nA的電流。
考慮到這包括來自用于按鈕的GPIO輸入引腳上的內部上拉的漏電流,這是相當令人印象深刻的。
CR2032電池可以在睡眠模式下為這個東西供電10-15年——限制因素是電池本身的自放電。
PMS150C電氣功能介紹
通用OTP系列
不建議使用于AC阻容降壓供電或有高EFT要求之應用
工作溫度范圍:-40°C~85°C
系統特性
1.1KWOTP程序儲存器
2.64Bytes數據儲存器
3.一個16位定時器
4.一個8位定時器(可做為PWM產生器)
5.一個通用比較器
6.快速喚醒功能
7.每個IO引腳都可設定喚醒功能
8.六個帶上拉電阻IO引腳,且輸出時具有可選的電流驅動能力
9.時鐘源:內部高頻震蕩器,內部低頻震蕩器
10.八段LVR可選
11.一個外部中斷引腳
CPU特性
1.單一處理單元工作模式
2.提供79個有效指令
3.1T(單周期)指令
4.可程序設定的堆棧指針和堆棧深度
5.數據存取支持直接和間接尋址模式,用數據存儲器即可當作間接尋址模式的數據指針(indexpointer)
6.獨立的IO地址以及儲存地址空間
使用者在使用PMS15A/PMS150C時避免一些常犯的錯誤
IO使用與設定
(1)IO作為數字輸入時
IO作為數字輸入時,Vih與Vil的準位,會隨著電壓與溫度變化,請遵守Vih的最小值,Vil的最大值規范。
內部上拉電阻值將隨著電壓、溫度與引腳電壓而變動,并非為固定值。
(2)IO作為數字輸入和打開喚醒功能
將IO設為輸入。
用PADIER寄存器,將對應的位設為1。
為了防止PA中那些沒有用到的IO口漏電,PADIER[1:2]需要常設為0。
(3)PA5作為輸出
PA5只能做OpenDrain輸出,輸出高需要外加上拉電阻。
(4)PA5作為PRSTB輸入
設定PA5為輸入。
設定CLKMD.0=1,使PA5為外部PRSTB輸入腳位。
(5)PA5作為輸入并通過長導線連接至按鍵或者開關
必需在PA5與長導線中間串接>33歐電阻。
應盡量避免使用PA5作為輸入。
中斷
(1)使用中斷功能的一般步驟如下:
步驟1:設定INTEN寄存器,開啟需要的中斷的控制位。
步驟2:清除INTRQ寄存器。
步驟3:主程序中,使用ENGINT指令允許CPU的中斷功能。
步驟4:等待中斷。中斷發生后,跳入中斷子程序。
步驟5:當中斷子程序執行完畢,返回主程序。
*在主程序中,可使用DISGINT指令關閉所有中斷。
*跳入中斷子程序處理時,可使用PUSHAF指令來保存ALU和FLAG寄存器數據,并在RETI
之前,使用POPAF指令復原。一般步驟如下:
voidInterrupt(void)//中斷發生后,跳入中斷子程序,
{//自動進入DISGINT的狀態,CPU不會再接受中斷
PUSHAF;
POPAF;
}//
系統自動填入RETI,直到執行RETI完畢才自動恢復到ENGINT的狀態
(2)INTEN,INTRQ沒有初始值,所以要使用中斷前,一定要根據需要設定數值。
切換系統時鐘
利用CLKMD寄存器可切換系統時鐘源。但必須注意,不可在切換系統時鐘源的同時把原時鐘源關閉。例如:
從A時鐘源切換到B時鐘源時,應該先用CLKMD寄存器切換系統時鐘源,然后再透過CLKMD寄存器關閉A
時鐘源振蕩器。
例:系統時鐘從ILRC切換到IHRC/2
.CLKMD=0x36;//切到IHRC,但ILRC不要停用。
CLKMD.2=0;//此時才可關閉ILRC。
錯誤的寫法:ILRC切換到IHRC,同時關閉ILRC
.CLKMD=0x50;//MCU會當機。
掉電模式、喚醒以及看門狗
當ILRC關閉時,看門狗也會失效。
TIMER16溢出時間
當設定$INTEGSBIT_R時(這是IC默認值),且設定T16M計數器BIT8產生中斷,若T16計數從0開
始,則第一次中斷是在計數到0x100時發生(BIT8從0到1),第二次中斷在計數到0x300時發生(BIT8從0
到1)。所以設定BIT8是計數512次才中斷。請注意,如果在中斷中重新給T16M計數器設值,則下一次中斷也
將在BIT8從0變1時發生。如果設定$INTEGSBIT_F(BIT從1到0觸發)而且設定T16M計數器BIT8產生中斷,則T16計數改
為每次數到0x200/0x400/0x600/…時發生中斷。兩種設定INTEGS的方法各有好處,也請注意其中差異。
IHRC
(1)當IC在燒錄器燒錄時,會校準IHRC頻率。
(2)由于EMC的特性或者在IC封裝或COB時,會不同程度影響IHRC頻率。如果頻率校準在IC封塑之前已
經完成,那么實際的IHRC頻率會在IC封塑之后有可能出現偏差或者超出規格指標。通常情況下該頻率會
稍稍變慢。
(3)通常在COB封膠或QTP時會發生如上描述的情況,應廣科技不負任何責任。
(4)用戶可以根據使用經驗來做頻率補償,例如,用戶可以在使用時調高IHRC頻率約0.5%~1%,以便得到比
IC封塑之后更好的IHRC頻率。