見過很多初學(xué)者對(duì)PIC16系列單片機(jī)的ID碼的讀和寫犯迷糊。說實(shí)話,這方面的資料也不怎么全。有些教材可能會(huì)涉及ID區(qū)域的介紹,可是往往是一代而過。這對(duì)初學(xué)者來說是比較容易犯錯(cuò)的地方。今天有空,對(duì)相關(guān)的問題作了一些整理,分享給大家。可能有些地方說的不夠妥當(dāng),歡迎大家多多探討。
1.什么是ID區(qū)域?
ID區(qū)域是獨(dú)立于EEPROM,F(xiàn)LASH,RAM的區(qū)域。程序設(shè)計(jì)人員可以利用該區(qū)域存放軟件的版本號(hào),編寫日期,燒錄日期,產(chǎn)品標(biāo)識(shí)等信息。不過該區(qū)域很小PIC16系列只能存放4個(gè)字節(jié)。
2.ID碼怎么燒錄到ID區(qū)域里面去?
可以利用PICC自帶的宏命令I(lǐng)DLOC(X)來實(shí)現(xiàn)。具體操作如下:
.....................................//頭文件 其它宏定義__IDLOC(76F4); //注意:前面是兩個(gè)下劃線。括號(hào)里面最多可以有2個(gè)字節(jié)void main(){...................................//程序主體}
編譯以后再用燒錄工具燒到單片機(jī)中即可。這里要提醒一下,IDLOC(X)里面最多有2個(gè)字節(jié)的16進(jìn)制數(shù),超過部分會(huì)無效。比如你寫個(gè)987FE3,E3會(huì)丟掉。另外得說一下這兩個(gè)16進(jìn)制數(shù)在ID區(qū)域是怎么放的。我們已經(jīng)知道IDLOC(X)里面能又個(gè)字節(jié),而ID區(qū)域能放4個(gè)字節(jié)。以X=76F4為例,它們是這樣放的07060F04。也就是說,在每個(gè)16進(jìn)制數(shù)前加1個(gè)0。如果你寫的不是2個(gè)字節(jié)的16進(jìn)制數(shù),比如是1個(gè)字節(jié)的78。編譯器會(huì)在前面補(bǔ)0,那就成了0078。寫到ID區(qū)域的就是00000708
3.ID碼怎么讀出來?
可以通過燒錄工具跟編譯器配合讀出來。我用的是PICC跟ICD2。連好線,單片機(jī)上電以后,在編程模式下,通過執(zhí)行Read Target Device操作,然后在Configure菜單下的Id memory
選項(xiàng)可以看到剛才編程的時(shí)候設(shè)置的ID碼。
其實(shí),多數(shù)PIC都沒有唯一ID,有人通過燒斷PIC讀出總線來實(shí)現(xiàn),但設(shè)備需要自制。
只要是市場(chǎng)上大量銷售的芯片,解密都不是什么麻煩事,只能盡量用新型號(hào)或者生僻的型號(hào)。
有人用MCU內(nèi)部的EEPROM這么搞過,但不是這么簡(jiǎn)單的這么搞,對(duì)于大批量生產(chǎn)來說,還需要一些技巧才能比較好的處理這個(gè)問題。
1、設(shè)置一個(gè)自檢程序,通過特殊操作(我有一個(gè)自制工裝,可以把MCU的各個(gè)相關(guān)IO強(qiáng)行固定在某個(gè)邏輯電平上,軟件判斷邏輯組合,必須符合一個(gè)特定組合才能進(jìn)入特殊操作啟動(dòng)代碼,UART接受工裝的通信數(shù)據(jù),通信數(shù)據(jù)傳入EEPROM要被擦寫的次數(shù)和位置等)。
2、進(jìn)入自檢后,MCU瘋狂的擦寫EEPROM中設(shè)定的某個(gè)位置(適當(dāng)提高一點(diǎn)VCC電壓以加快失效),最多擦寫200萬次后停止操作,一般MCU自帶的EEPROM擦寫次數(shù)都不到100萬次,EEPROM某個(gè)字節(jié)在0XAA和0X55之間不斷的被循環(huán)擦寫。
3、這個(gè)擦寫的時(shí)間還是比較長(zhǎng)的,一般要數(shù)十分鐘以上,我一般放在產(chǎn)品通電老化階段進(jìn)行這個(gè)自檢程序(產(chǎn)品一般要在老化房4~6個(gè)小時(shí)候通電老化時(shí)間,自檢程序兼容這個(gè)時(shí)間執(zhí)行,避免產(chǎn)生新的工時(shí)損失)
4、擦寫過程中在RAM中記錄EEPROM該字節(jié)失效時(shí)的操作次數(shù),并存入到EEPROM其他字節(jié)中。
5、產(chǎn)品正常銷售中,執(zhí)行APP用戶程序,繼續(xù)不斷的擦寫那個(gè)失效字節(jié),如果不能擦寫,則說明加密成功,否則有另一個(gè)糾錯(cuò)程序就不講了,各位可以自行想辦法。
上一篇:以單片機(jī)PIC16LF873A為核心實(shí)現(xiàn)便攜式磁記憶檢測(cè)儀的設(shè)計(jì)
下一篇:采用PIC單片機(jī)芯片的三相半控整流電路設(shè)計(jì)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫(kù)的一些基本介紹
- 座椅、天窗、電動(dòng)尾門應(yīng)用 國(guó)產(chǎn)車規(guī)級(jí)高壓霍爾效應(yīng)傳感器推薦
- 突發(fā)!又一車企車機(jī)“崩了”
- 寧德時(shí)代為陳立泉院士頒發(fā)“卓越貢獻(xiàn)獎(jiǎng)”
- 一文速覽吉利雷神 AI 電混 2.0 發(fā)布會(huì)重點(diǎn)
- 2025年1-4月ADAS供應(yīng)商裝機(jī)量排行榜:頭部集中與國(guó)產(chǎn)突圍并存
- 國(guó)內(nèi)飛行汽車無線通信測(cè)試成功,通信安全新突破
- SPAD席卷車載激光雷達(dá)市場(chǎng)
- 大聯(lián)大品佳集團(tuán)推出基于Microchip和ams OSRAM產(chǎn)品的10Base-T1S萬級(jí)像素大燈方案
- 哈曼推出采用三星Neo QLED技術(shù)的全新顯示屏
- Syntiant推出超低功耗汽車AI創(chuàng)新技術(shù) 提升車輛安全性和用戶體驗(yàn)
- 下載有禮|精華課件匯編:泰克半導(dǎo)體器件的表征及可靠性研究交流會(huì)暨吉時(shí)利測(cè)試測(cè)量年度研討會(huì)
- 【在線研討會(huì)講義下載】TOF 技術(shù)介紹及產(chǎn)品應(yīng)用
- 感恩十載 與你同在 EEWORLD十周年
- 如何“配齊”脈沖負(fù)載的電源設(shè)計(jì)需求
- 【評(píng)論有禮!】Sleepace RestOn 智能睡眠監(jiān)測(cè)儀拆解
- 下載泰克電源設(shè)計(jì)測(cè)試方案+圖文攻略 幫助工程師解決電源效率問題。有好禮
- 有獎(jiǎng)直播【如何在幾分鐘之內(nèi)完成高效可靠的USB PD電源設(shè)計(jì)——PI Expert™分步教程】(9:30開始入場(chǎng))
- 激情二月 和EEWORLD一起high!
- NI labview、CompactDAQ技術(shù)集錦
- STM32F103:什么時(shí)候需要復(fù)用IO(AFIO)?
- 安謀中國(guó)管理團(tuán)隊(duì)內(nèi)網(wǎng)刊發(fā)聯(lián)名信,闡述Allen解職風(fēng)波
- STM32的GPIO的復(fù)用功能和重映射功能
- 疫情期間,汽車行業(yè)將迎來大考
- STM32F4——串口(USART)通信總結(jié)
- 三星Galaxy S10諜照意外泄露?搭載無邊框曲面屏
- 芯電易:集成電路短板急需補(bǔ)齊,助力“國(guó)芯”起飛
- 谷歌Pixel 3系統(tǒng)截圖亮相:無劉海屏 運(yùn)行安卓9.0
- 三星Galaxy J4渲染圖來了 定位入門主打低端市場(chǎng)
- 黑莓Key 2跑分曝光 佩服黑莓延續(xù)經(jīng)典的毅力