Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛的先生和瑪達姆斯,

 

我們有一個關於引導加載程序項目中的 ExtCLK 時鐘設置的問題。

 

我們在 PSoC Creator 4.4 IDE 中使用具有 UART 引導程式配置的 CY8C4024AZI-S403 裝置。

為了提高 UART 通信的時鐘準確性,系統時鐘使用 ExtCLK 運行。

 

從 UART 接收固件更新命令時,通過調用引導加載程序啟動引導加載程序。

我們已經確認,如果 Bootloader 時脈資源為 IMO,則韌體更新CAN成功完成。

 

MiNe_85951_0-1695738488275.png

< Bootloader project clock settings : IMO >

MiNe_85951_1-1695738513046.png

 

但是,如果開機載入程式時鐘資源設定為 ExtCLK,韌體更新將無法正常運作。

 

MiNe_85951_2-1695738545706.png

< Bootloader project clock settings : ExtClk >

MiNe_85951_3-1695738577578.png

* 注 1:這兩個項目都正確地將引導加載程序 .hex 分配給引導加載的依賴關係。

 

是否無法在 PSOc4000 的 UART 引導加載程序中將引導加載程序時鐘資源設置為 ExtCLK?

 

由於 PSOc4000 目標與主機之間的時脈準確度對於 UART 通訊很重要,因此我們正在考慮使用 ExtCLK 而不是 IMO。

 

問候,

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/PSoC4000S-ExtClk-clock-settings-in-Bootloader-project/td-p/613749

15 回應
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

其他資訊。

 

對於無法使用韌體更新的專案,如果您將可開機載入專案編程到 PSOc4000s,應用程式將會正常運作。

 

從主機接收到韌體更新指令並呼叫 Bootloader_Start () API 時,韌體更新似乎停止運作且無法正常運作。

 

MiNe_85951_0-1695776659458.png

< Bootloader Clock Settings >

MiNe_85951_2-1695776702109.png

即使您在引導加載程序項目中同時檢查了 IMO 和 ExtCLK 的 HFCLK,行為也不會改變,並且在調用引導加載程序 _Start()API 時操作停止。

MiNe_85951_0-1695783976581.png

我一直在研究引導加載程序 _Start()API,但我還沒有找到任何專門改變 HFCKL 的東西。

 

我已經附加了出現問題的 UART 引導加載程序項目。

如果您可以將其用於操作驗證,我們將不勝感激。

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨, @MiNe_85951

 

我會與內部團隊驗證這一點,並讓你知道。

 

問候,

羅漢

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨羅漢,

 

你有任何更新嗎?

您是否能夠重現這個問題?

 

問候,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

嘗試調用 CySoftware Reset (),而不是調用 BootLoadable_Load ()

通過從 BootLoadable 調用 cySoftwareSet (),PSoC 會執行軟體重設,在等待命令逾時,然後在跳轉到可啟動載入之前執行啟動載入程式"。" 因此,它不會在引導加載器中永遠等待。 您可能需要調整「等"待命令」逾"時才能測試這個問題。

這個建議聽起來並不像與使用 ExtClk 有關,但您永遠不知道。 值得一試。

編輯:
閱讀一些引導加載器組件數據表後,似乎需要 IMO 來編程 FLASH。

部分啟動載入程式元件 (開機載入程式和可啟動元件資料表的 1.6 版本) 對
"於 PSoC 4000 裝置,每次更新至快閃記憶體列都會自動修改裝置時鐘設定。
寫入閃光燈需要更改 IMO 和 HFCLK 設定。 每一
列寫入後,組態都會恢復。
□ 在當前 IMO 頻率的最小頻率除以 8 和最大頻率為 12 MHz
之間,每次寫入閃光行時,HFCLK 的頻率會變
更多次。
□ 這些時鐘變更會影響通訊元件和啟動載入程式
專案中的任何其他硬體的操作。"

也許如果您更改外部 24MHz 時脈的分隔器以生成 12MHz,則可能會有不同的結果。 只是一個想法

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨比比,

 

感謝您的回复。

 

如果 Bootloadble(應用程式)被寫入 Flash,則無論啟動載入程式專案的時鐘設定為 IMO 還是 ExtClk,應用程式都會從電源開啟重設正常啟動。

我已經閱讀了 Bootloader 組件數據表,我相信指定的部分描述了標準 I2C 引導加載器項目的配置。

沒有關於 UART 引導加載器發生什麼的信息,所以我認為有關內容的信息

需要 UART 引導加載器項目的。

但是,從行為來看,Bootloader 似乎被配置為了,除非它是 IMO,否則它不會工作,但我們無法識別它。

 

問候,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

 

我問這個問題已經有很長時間了。

我們已經被我們的客戶要求對此問題進行澄清。

您可以告訴我們為什麼 UART 引導加載器不適用於 ExtCLK?

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨, @MiNe_85951

 

在調用 Bootloadable_Load () api 之前,請調用 cySysClkeCoStart () API,因為設備始終使用 IMO 啟動,並且必須通過調用 api 啟用外部時鐘,然後在 uart 中使用它。如果您有更多疑問,請告訴我。

 

如需時鐘來源的詳細資訊,請參閱以下文件。

https://www.infineon.com/dgdl/Infineon-Component_PSoC_4_CyBoot_V5.0-Software %20Module% 20Datasheets...

 

問候,

羅漢

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨羅漢,

 

根據您的答案,如果您在調用 Bootloadable_Load () API 之前嘗試調用 CySysClkeCoStart () API,則將發生以下錯誤,調用將無法正常工作。

 

 錯誤:未定義對 'CySysClkeCoStart' 的引用

 

CySysClkeCoStart () API 似乎是在 cy_boot 的 cylib.h 中定義的,但無法調用 CySysClkeCoStart()API。

我認為這個現象可以通過在此線程中附加的項目重現。

請告訴我們如何設置此附加項目。

 

方面,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨, @MiNe_85951

你能告訴你如何為 MCU 提供外部時鐘嗎?您是否驗證了外部時鐘是否正確到達組件? 我會嘗試在我的最後重現這個問題。

同樣正如引導加載器的資料表中所述,快閃寫入是使用 IMO 執行的,因此必須啟用它才能使用 HFCLK 作為來源使用 ExtCLK

 

問候,

羅漢

0
Translation_Bot
Community Manager
Community Manager
Community Manager

羅漢山,

 

Bootloadble(應用程序)與 ExtClk 一起工作良好,所以您不認為硬件連接沒有問題嗎?

 

我們想知道如何執行您提到的以下事項。

/*

同樣正如引導加載器的資料表中所述,快閃寫入是使用 IMO 執行的,因此必須啟用它才能使用 HFCLK 作為來源使用 ExtCLK。

*/

 

我會讓問題更簡單。

(一)

目前 UART 啟動載入程式專案中的啟動載入程式元件是否支援 ExtCLK?(是/否)

 

我可能不明白關於 UART 引導加載器配置的所有內容,但我認為當前的 Bootloader 配置不允許使用外部時鐘。

 

(二)

如果當前的引導加載器組件不兼容 ExtCLK,有沒有辦法使 ExtClk 兼容?(是/否)

 

(三)

我們希望您為我們提供支持外部時鐘以滿足客戶要求的定制 UART 引導加載器。

由於目前的 UART 引導加載器配置很複雜,因此我們不知道時鐘的設置在哪裡。

 

問候,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨, @MiNe_85951

 

我與內部團隊討論了這個問題,他們已經確認我們將能夠與帶有外部時鐘的 UART 一起使用引導加載器,並且它已經過測試。 正如我之前提到的,他們還指出檢查 UART 是否與外部時鐘一起正常工作。 請從您的方檢查 UART 是否正常工作。

 

同時,我已經開始重新生這個問題,但是因為從另一個 mcu 提供外部時鐘而面臨一些問題,因為 PSoC 4000S 沒有 ECO 時鐘。 我會盡快通知您,我會成功調試問題。

 

問候,

羅漢

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨羅漢,

 

感謝您讓我們知道可以使用外部時鐘實現 UART 引導加載器。

 

在檢查 UART 是否使用外部時鐘正常工作之前,如果您在調用您提到的 Bootloadable_Load () API 之前嘗試調用 CySysClkeCoStart () API,則會出現錯誤,這是一種無法避免的情況。

 

首先,我想知道如何使用外部時鐘配置 UART 引導加載器。

我已附加了客戶的項目,因此請隨時修改該項目。

 

問候,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

/**************************************************************************************************************/

同時,我已經開始重新生這個問題,但是因為從另一個 mcu 提供外部時鐘而面臨一些問題,因為 PSoC 4000S 沒有 ECO 時鐘。 我會盡快通知您,我會成功調試問題。

/**************************************************************************************************************/

 

關於你上面所說的,


(一)

請您能告訴我們您在哪裡修改該項目以使其與 ExtClk 兼容?

我們想在附件的項目中進行類似的修改。

 

(二)

如果修改很複雜,您是否可以修改附加的項目以使其與 ExtClk 兼容並將其發送給我們?

 

(三)

或者,我是否可以向您發送您正在評估的項目?
客戶已經有連接外部時鐘的主機板。

 

問候,

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨, @MiNe_85951

 

我正在嘗試在附加項目中進行更改。 如果我能夠成功解決問題,我將分享該項目。

回答您的第三個問題,是的,您可以將項目發送給我。

 

問候,

羅漢

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/PSoC4000S-ExtClk-clock-settings-in-Bootloader-project/m-p/658033

0
Translation_Bot
Community Manager
Community Manager
Community Manager

羅漢山,

 

非常感謝您回應這個困難的問題。

我們深表歉意不了解開機過程。

我們期待收到支持 ExtCLK 的啟動加載器項目。

 

問候,

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/PSoC4000S-ExtClk-clock-settings-in-Bootloader-project/m-p/658721

0