CY8CMBR3xxx 設(shè)備編程規(guī)范解讀
在電子設(shè)計(jì)領(lǐng)域,對(duì)特定設(shè)備的編程規(guī)范有深入了解至關(guān)重要。今天我們就來(lái)詳細(xì)探討一下 CY8CMBR3xxx 設(shè)備的編程規(guī)范,這對(duì)于工程師們進(jìn)行相關(guān)硬件設(shè)計(jì)和開(kāi)發(fā)具有重要的指導(dǎo)意義。
文件下載:CY3280-MBR3.pdf
一、背景與概述
Cypress 現(xiàn)屬于 Infineon Technologies 公司,但該文檔仍以 “Cypress” 標(biāo)記,因?yàn)?Cypress 是該產(chǎn)品的原始開(kāi)發(fā)者。Infineon 會(huì)繼續(xù)將此產(chǎn)品納入其產(chǎn)品組合,為新老客戶(hù)提供服務(wù)。這份編程規(guī)范主要提供了對(duì) CY8CMBR3xxx 設(shè)備非易失性存儲(chǔ)器進(jìn)行編程所需的信息,包括通信協(xié)議、編程算法以及物理連接的電氣規(guī)格等內(nèi)容。
二、關(guān)鍵概念與設(shè)備介紹
2.1 編程器
編程器是一個(gè)軟硬件系統(tǒng),其主要功能是將二進(jìn)制程序(十六進(jìn)制文件)存儲(chǔ)到芯片的程序(閃存)存儲(chǔ)器中。它在工程師的原型開(kāi)發(fā)環(huán)境或制造環(huán)境(批量編程)中都起著關(guān)鍵作用。編程器有軟件中心和固件中心兩種類(lèi)型:
- 軟件中心型:其硬件作為協(xié)議(如 USB)和 I2C 之間的橋梁,所有 I2C 命令通過(guò)協(xié)議從外部設(shè)備(軟件)傳遞到硬件,橋接部分不參與十六進(jìn)制文件的解析和編程算法,這些任務(wù)由上層軟件完成,例如 Cypress MiniProg3 和 Touch Tuning Bridge。
- 固件中心型:是一種獨(dú)立的硬件設(shè)計(jì),編程器的所有功能都包含在一個(gè)設(shè)備中,包括十六進(jìn)制文件的存儲(chǔ),主要用于制造中的批量編程。
2.2 CY8CMBR3xxx 設(shè)備
CY8CMBR3xxx 系列是用于 CapSense 終端應(yīng)用的專(zhuān)用集成電路(ASIC)設(shè)備,無(wú)需編碼,通過(guò) I2C - Bus 對(duì)配置寄存器進(jìn)行編程。其非易失性子系統(tǒng)由最大 128 字節(jié)的閃存存儲(chǔ)器系統(tǒng)組成,用于存儲(chǔ)設(shè)備配置信息。該設(shè)備可以通過(guò) I2C 接口進(jìn)行系統(tǒng)內(nèi)編程,I2C 從接口具有通信速度高達(dá) 400 kHz、無(wú)總線(xiàn)停滯(無(wú)時(shí)鐘拉伸)以及 I2C 地址可通過(guò) I2C 寄存器映射配置等特點(diǎn)。
三、所需數(shù)據(jù)
3.1 十六進(jìn)制文件來(lái)源
客戶(hù)使用 EZ - Click GUI 開(kāi)發(fā)項(xiàng)目,項(xiàng)目開(kāi)發(fā)完成后,芯片的非易失性配置信息會(huì)保存到十六進(jìn)制文件中。該文件中只有一條記錄真正針對(duì)閃存存儲(chǔ)器,即設(shè)備配置寄存器,其他記錄為輔助記錄,用于保持編程流程的完整性。
3.2 非易失性子系統(tǒng)
閃存存儲(chǔ)器組織成一個(gè) 128 字節(jié)的存儲(chǔ)塊,編程粒度為每次一個(gè)存儲(chǔ)塊。該存儲(chǔ)塊代表設(shè)備配置狀態(tài)的寄存器,在芯片啟動(dòng)(硬件/軟件復(fù)位后),重新編程的功能會(huì)加載到相應(yīng)的易失性存儲(chǔ)器(寄存器)中。
3.3 十六進(jìn)制文件組織
CY8CMBR3xxx 系列的十六進(jìn)制文件遵循 Intel 十六進(jìn)制文件格式,該文件定義了配置閃存、校驗(yàn)和和元數(shù)據(jù)三個(gè)數(shù)據(jù)部分。其地址空間并不直接映射到芯片 I/O 寄存器的物理地址,編程器使用十六進(jìn)制地址將文件中的數(shù)據(jù)讀取到本地緩沖區(qū),然后將這些數(shù)據(jù)編程(轉(zhuǎn)換)到芯片的相應(yīng)地址。其中,元數(shù)據(jù)包含了十六進(jìn)制文件版本、I2C 寫(xiě)入地址、設(shè)備 ID 等重要信息,編程器可利用這些信息進(jìn)行文件驗(yàn)證和編程操作。
四、通信接口
4.1 協(xié)議棧
編程過(guò)程涉及的協(xié)議棧包括編程算法協(xié)議、I2C 接口和物理層。編程算法協(xié)議是最頂層的協(xié)議,實(shí)現(xiàn)了整個(gè)編程流程的原子 I2C 命令;I2C 接口層是純軟件和硬件實(shí)現(xiàn)之間的橋梁,有助于將編程算法與硬件細(xì)節(jié)隔離開(kāi)來(lái),使算法可復(fù)用;物理層則是信號(hào)和接口引腳的完整硬件規(guī)范,包括驅(qū)動(dòng)模式、電壓電平、電阻等組件。
4.2 I2C 接口
I2C 是由 Phillips Semiconductors(現(xiàn) NXP Semiconductors)開(kāi)發(fā)的行業(yè)標(biāo)準(zhǔn)通信接口,是一種同步、串行、8 位定向、雙向 2 線(xiàn)總線(xiàn),支持 128 個(gè)從設(shè)備。CY8CMBR3xxx 設(shè)備是 I2C 兼容設(shè)備,工作在從模式,第三方編程器必須按照標(biāo)準(zhǔn)規(guī)范實(shí)現(xiàn) I2C 主設(shè)備。該設(shè)備的 I2C 接口具有 7 位尋址模式、最高 400 kHz 的比特率、無(wú)總線(xiàn)停滯以及 252 字節(jié)的 I2C 緩沖區(qū)等特點(diǎn)。
4.3 物理層
編程器與目標(biāo)設(shè)備之間的硬件連接通過(guò)特定的引腳實(shí)現(xiàn),僅需五個(gè)引腳即可與芯片通信,包括 SCL、SDA、VDD、VSS 和可選的 HW Reset(XRES)引腳。編程模式有復(fù)位模式、無(wú)復(fù)位模式和電源循環(huán)模式,不同模式適用于不同的應(yīng)用場(chǎng)景。同時(shí),I2C 總線(xiàn)需要外部上拉電阻,電阻值的選擇需考慮電源電壓、時(shí)鐘速度和總線(xiàn)電容等因素。
4.4 硬件訪(fǎng)問(wèn)命令
編程器需要支持一系列硬件訪(fǎng)問(wèn)命令,如 I2C_WriteTransfer、I2C_ReadTransfer、ToggleReset、Power 和 Delay 等。這些命令構(gòu)成了高級(jí)編程算法的軟件基礎(chǔ),可被視為硬件抽象層,理論上上層的編程算法可以在不同的編程器硬件上復(fù)用。
4.5 偽代碼
編程流程由眾多 I2C_Read 和 I2C_Write 傳輸命令組成,為了方便編寫(xiě)和理解編程算法,文檔使用了易讀的偽代碼。定義了 I2C_Write 和 I2C_Read 偽命令,這些命令會(huì)自動(dòng)檢查當(dāng)前事務(wù)的所有 ACK 狀態(tài),并通過(guò)名稱(chēng)返回單個(gè)狀態(tài),有助于保持編程腳本的簡(jiǎn)潔性。
五、編程算法
5.1 高級(jí)編程流程
編程 CY8CMBR3xxx 設(shè)備需要按順序執(zhí)行一系列步驟,包括獲取芯片、檢查硅 ID、編程閃存、驗(yàn)證閃存和釋放芯片。任何一步失敗,編程流程都應(yīng)停止,并執(zhí)行釋放芯片步驟,以確保編程器和目標(biāo)設(shè)備處于已知狀態(tài)。
5.2 編程流程中使用的子程序
編程流程中包含一些常用操作,通過(guò)封裝成子程序,使編程代碼更加緊湊、易讀。例如 WritePacket 和 ReadPacket 子程序,它們分別封裝了 I2C_Write 和 I2C_Read API,會(huì)不斷發(fā)送 I2C 請(qǐng)求,直到收到 ACK 信號(hào)。
5.3 具體編程步驟
- 獲取芯片:此步驟要確保設(shè)備在總線(xiàn)上被檢測(cè)到并準(zhǔn)備好編程。編程器需要根據(jù)不同的編程場(chǎng)景確定正確的 I2C 地址,如首次編程使用 I2C 編程地址,后續(xù)編程使用驗(yàn)證地址。通過(guò)不斷嘗試讀取數(shù)據(jù),找到正確的設(shè)備地址,并檢查設(shè)備是否屬于 CY8CMBR3xxx 系列。
- 檢查硅 ID:該步驟用于驗(yàn)證獲取的設(shè)備是否與十六進(jìn)制文件對(duì)應(yīng)。通過(guò)讀取十六進(jìn)制文件中的設(shè)備 ID 并與目標(biāo)設(shè)備的 ID 進(jìn)行比較,如果不匹配則編程失敗。
- 編程閃存:將配置數(shù)據(jù)(128 字節(jié))從十六進(jìn)制文件中提取出來(lái),加載到易失性存儲(chǔ)器中,然后提交編程請(qǐng)求,對(duì)整個(gè)閃存進(jìn)行編程,并執(zhí)行軟件復(fù)位以加載新配置。
- 驗(yàn)證閃存:該步驟是編程器的必要操作,通過(guò)讀取芯片的設(shè)備配置并與十六進(jìn)制文件中的數(shù)據(jù)進(jìn)行比較,確保寫(xiě)入的數(shù)據(jù)正確。如果發(fā)現(xiàn)任何差異,編程器應(yīng)停止并返回失敗。
- 釋放芯片:該步驟與獲取芯片步驟相反,釋放芯片使其脫離編程器。編程器執(zhí)行諸如斷電、復(fù)位、斷開(kāi) I2C 總線(xiàn)連接等最終操作,確保設(shè)備處于已知狀態(tài)。
六、附錄
6.1 Intel 十六進(jìn)制文件格式
Intel 十六進(jìn)制文件記錄是十六進(jìn)制編碼二進(jìn)制數(shù)據(jù)的文本表示,每行記錄由起始代碼、字節(jié)計(jì)數(shù)、地址、記錄類(lèi)型、數(shù)據(jù)和校驗(yàn)和六個(gè)部分組成。不同的記錄類(lèi)型具有不同的含義,如數(shù)據(jù)記錄、文件結(jié)束記錄和擴(kuò)展線(xiàn)性地址記錄等。
6.2 I2C 協(xié)議 - 數(shù)據(jù)包和信號(hào)
I2C 接口是基于數(shù)據(jù)包的串行事務(wù)協(xié)議,一次完整的數(shù)據(jù)傳輸包括起始條件、地址、R/W 位、數(shù)據(jù)塊和停止條件五個(gè)階段。數(shù)據(jù)在 SDA 線(xiàn)上必須在時(shí)鐘的高電平期間保持穩(wěn)定,時(shí)鐘信號(hào)由主設(shè)備生成,大多數(shù)從設(shè)備(包括 CY8CMBR3xxx)不支持時(shí)鐘拉伸功能。
綜上所述,CY8CMBR3xxx 設(shè)備的編程規(guī)范涵蓋了多個(gè)方面的內(nèi)容,從數(shù)據(jù)提取到通信接口,再到具體的編程算法,每個(gè)環(huán)節(jié)都至關(guān)重要。工程師們?cè)谶M(jìn)行相關(guān)設(shè)計(jì)和開(kāi)發(fā)時(shí),需要深入理解這些規(guī)范,以確保編程過(guò)程的順利進(jìn)行和設(shè)備的正常運(yùn)行。你在實(shí)際應(yīng)用中是否遇到過(guò)類(lèi)似設(shè)備編程的問(wèn)題呢?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)和見(jiàn)解。
-
編程規(guī)范
+關(guān)注
關(guān)注
0文章
11瀏覽量
9029
發(fā)布評(píng)論請(qǐng)先 登錄
CY8CMBR3xxx 設(shè)備編程規(guī)范解讀
評(píng)論