Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
管理員
![]() ![]() ![]() |
可以用 BOD33 這個 keyword來查詢, 下面是SAMD21的說明
![]()
發表於: 2021/9/30 10:15
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
新會員
![]() ![]() ![]() |
HI Sirs, 您好.
目前 project 在 marmory configurator 中有看到 BOD33 user level, 是設定 0x06, 請問 0x06 代表什麼電壓 level 值嗎? 在什麼文件有寫到這個設定的解說嗎? 看 spec 中沒看到設定值的說明. 謝謝您~ 參照:
發表於: 2021/9/30 9:15
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
管理員
![]() ![]() ![]() |
參照太多, 只留下當前的問題
想再請教一下,看我的流程是否正確: 第一個問題是: 我是使用MPLAB X IDE, 在Production->Set Configuration Bit, 開發環境提示需使用Simulator tool才可以進入編輯模式,編輯後有個"Generate Source Code to Output",按下去就會在Output 視窗產生Code,把它貼進主程式,Compiler 後,Configuration Bit 設定就會包在Hex檔裡面對吧? Ans: 如果你是使用Harmony來實作時, 建議在MHC中設定Fuse值, 這樣就可以在Gencode時, 自動產生Fuse(Configuration bit)的假指令#Pragma, 然後燒錄時MPLAB X IDE會依照假指令的設定, 將Fuse值寫到SAM MCU中, 含這個假指令的HEX, 目前只有在MPLAB X IDE/IPE中執行燒錄才會有效, 如果在Atmel Studio 7中燒錄這個HEX, 則Fuse不會燒到MCU中. MHC產生的假指令會產生在initialization.c中. ![]() 第二個問題是:關於上面說的保護後需先解開,才可以再次進行燒錄,想詢問需要從哪邊的設定 才可以進行修改目前MCU Configuration Bit的設定。 Ans: 在Production->Set Configuration Bit中, 必須要先自MCU讀取當前的Fuse設定, 讀取設定時必須要先連接好燒錄器(不能使用Simulator tool), 還沒讀取之前Fuse設定是紅色的 ![]() 讀取成功後就會變成黑色的, 然後就可以更改你要的設定, 之後再執行Fuse Write即可. [注意] Fuse更動後, 必須要Power Cycle才能在Cold boot時生效! 另外! HEX中如果有含Fuse的設定時, 再次燒錄HEX後, 會覆蓋手動修改的內容 相同的, 燒錄完含Fuse的HEX之後, 亦可以手動Write Fuse來修改HEX的設定 還有! Fuse設定也可以寫程式在執行中, 透過NVM API來自己更動 ![]()
發表於: 2021/9/28 8:00
Edited by Libra on 2021年09月28日 08:15:21
Edited by Libra on 2021年09月28日 08:17:45 Edited by Libra on 2021年09月28日 08:18:06 |
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
參照:
資料在開、關電階段被修改與電源上升、下降的速度有關,尤其是關機的時候。關機後電源開始下降如果降到核心工作的臨界電壓值時,如果這時 MCU 沒有進入 Reset 狀態下這時程式會使用殘餘的電量開始失控到處亂執行造成 Flash 或 EEPROM 被修改。 我不曉得您是否了解 BOR 的功能。此功能有內建在 MCU 裡可以用燒 Code 方式選擇作動電壓,或在 Reset 腳位加入一個 Voltage Supervisor 的元件 (如: MCP1xx)。 MCP103 : 1uA Supervisor Push-Pull Active Low https://www.microchip.com/en-us/product/MCP103 BOR 一般稱為掉電偵測或重置。如果 MCU 工作是 3.3V 那選用的 BOR 電壓是 2.7V 的話。只要電源掉到 2.7V 以下 MCU 就會進入 Reset Mode 直接鎖住 MCU 不再執行任何程式包含程式的亂跑。 所以建議先啟用 BOR 功能在燒錄 Configuration 時開啟。
發表於: 2021/9/27 11:28
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
中級會員
![]() ![]() ![]() |
參照:
想再請教一下,看我的流程是否正確: 第一個問題是: 我是使用MPLAB X IDE, 在Production->Set Configuration Bit, 開發環境提示需使用Simulator tool才可以進入編輯模式,編輯後有個"Generate Source Code to Output",按下去就會在Output 視窗產生Code,把它貼進主程式,Compiler 後,Configuration Bit 設定就會包在Hex檔裡面對吧? 第二個問題是:關於上面說的保護後需先解開,才可以再次進行燒錄,想詢問需要從哪邊的設定 才可以進行修改目前MCU Configuration Bit的設定。
發表於: 2021/9/24 11:10
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
管理員
![]() ![]() ![]() |
感謝您的提問, 沒錯Erase All對Flash內容還是有效,
是Flash保護相關的Fuse 設定無法被Erase All清除! 更正一下我這段話 注意! 一但設定Boot Protect或是Region Lock時,則被保護及鎖定的Flash區域,將無法再被燒錄新程式, Erase All 可以清除Flash全部內容, 但是無法解除(清除)Boot Protect及Region Lock的設定, 因此 要 Reprogram 之前一定要先解除(清除)Boot Protect及Region Lock的設定後,才能釋放被保護或鎖定的Flash區域,否則 Reprogram 會失敗。 參照:
發表於: 2021/9/23 10:22
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
中級會員
![]() ![]() ![]() |
參照:
Reset RC值 分別是10k & 4.7n 請問您也有遇到相同狀況嗎? 因為現象不好複制,只能先下對策看是否能讓問題不再次發生。 待後續發生頻率更頻繁,可以複制現象,可以試試您說的改變 放電時間是否有幫助。
發表於: 2021/9/22 16:55
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
你好 : 下面這段話, 會不會有問題?這樣的話不是先解除後就看得到程式碼了嗎?
注意! 一但設定Boot Protect或是Region Lock時,則被保護及鎖定的Flash區域,將無法再被Erase或是燒錄新程式,Erase All也無效,一定要先解除(清除)Boot Protect及Region Lock的設定後,才能釋放被保護或鎖定的Flash區域,Erase all及Reprogram才能正常。 謝謝.
發表於: 2021/9/22 15:49
|
|||
|
Re: ATSAMD51J18A 有關Code Protect相關文件
|
||||
---|---|---|---|---|
中級會員
![]() ![]() ![]() |
參照:
感謝Libra回覆,我找時間再試試看。
發表於: 2021/9/22 15:29
Edited by Libra on 2021年09月23日 10:25:44
|
|||
|