項目之后小談中穎芯片——SH79F166A


      最近剛做完一個項目,剛好用到了國產芯片中穎的SH79F166A,由於是第一次用到這款芯片,很多細節不是很清楚,其中也踩過很多坑,在這里拿出來分享給大家,希望對同樣用到這款芯片的朋友遇到相似的問題有所幫助,同時也是對這段時間的一個學習總結吧,這也是我寫博客的初衷!

      在這里我不過多的講解做項目的細節,主要談談在使用這款芯片我踩到的一些“坑”。

  首先,看過這款芯片數據手冊的朋友,如果仔細一點的話,肯定會發現,寄存器的地址分為兩個區,bank0區和bank1區,大部分寄存器存放在bank0區,少部分在bank1區,但是它們存在地址重復的現象,比如你要使用bank1區E1H地址P5,如果此時指針指向的是bank0區,那么你實際使用的是P0,因為它的地址也是E1H;

所以我們每次寫寄存器的時候都應該先指向相應的bank區,尤其是中斷服務函數里面在進入中斷之前先保存好bank區值,在退出中斷時恢復bank區值,否則會導致錯誤。當然細心的朋友肯定會發先有些寄存器沒有標明在那個區,那么這時bank區對這類寄存器沒影響,INSCON寄存器可以用來更改bank區。

 

       接下來談談該款芯片的類eeprom,之所以叫“類”eeprom,那它肯定不是真正的eeprom,事實也是如此,本芯片帶有1k的類eeprom存儲空間,分四個區,每個區256個字節,謹記,在操作,寫入數據時必須先擦除該區的內容,這也許是它和真正的eeprom最大的區別吧,讀數據沒有此要求,在寫入數據過程中記得關中斷,防止被打斷,操作流程嚴格按照手冊說明即可;

     最后,談一下系統時鍾配置問題,芯片的系統時鍾選擇通過代碼選項來設置,還有一些看門狗功能,低電壓復位等等都可以通過代碼選項配置,在使用keil編譯器時通過編譯器選擇。至於一些分頻的配置可以通過寄存器CLKCON設置。

對於之前完全沒有接觸過中穎芯片的朋友應該會有所幫助,關於這款芯片的例程網上比較少,做完項目后基本該芯片所有的外設我都用到了,一些配置函數都有在這里貼上幾段:

希望對大家有所幫助,如有不對之處,也煩請指正,謝謝大家!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM