在系統(tǒng)級(jí)不斷追求更高性能的過(guò)程中,集成設(shè)備制造商 (IDM) 已經(jīng)精通開(kāi)發(fā)能夠在具有挑戰(zhàn)性的電氣環(huán)境中高速運(yùn)行的。標(biāo)準(zhǔn)接口,如 SPI 和 I2C,提供了一種相對(duì)簡(jiǎn)單的方法,以可靠和有效的方式互連來(lái)自不同供應(yīng)商的設(shè)備。其他類型的接口也是如此。
可以將數(shù)字域視為為希望使用“標(biāo)準(zhǔn)”技術(shù)快速構(gòu)建復(fù)雜系統(tǒng)的開(kāi)發(fā)人員提供的避風(fēng)港。事實(shí)上,嵌入式行業(yè)很大程度上依賴于“正常工作”的基于標(biāo)準(zhǔn)的接口,因?yàn)樗鼈優(yōu)閯?chuàng)新提供了框架。當(dāng)它們不“正常工作”時(shí),可能會(huì)導(dǎo)致混亂,尤其是在錯(cuò)誤解釋錯(cuò)誤原因的情況下。任何混淆都是可以理解的,因?yàn)檫@些接口在按照規(guī)范應(yīng)用時(shí)是健壯和可靠的。底層物理接口固定在硅片中的事實(shí)也可以提供保證。
各種形式的系統(tǒng)噪音、
信號(hào)的任何失真都可以被解釋為噪聲,并且可以合理地假設(shè)噪聲在通信環(huán)境中最常見(jiàn);收到的信號(hào)不是發(fā)送的信號(hào)。這種直接相關(guān)性比較容易找到,但在某些情況下,因果關(guān)系并不那么容易確定。當(dāng)故障變得間歇性時(shí),挑戰(zhàn)變得更加復(fù)雜。
當(dāng)今的微控制器旨在以最少的配置提供可靠的操作。在串行接口的情況下,這可能包括默認(rèn)為 I/O 引腳上的高驅(qū)動(dòng)電流,以對(duì)抗長(zhǎng) PCB 走線或高容性負(fù)載的影響。在某些情況下,這可能導(dǎo)致接口過(guò)度驅(qū)動(dòng),進(jìn)而導(dǎo)致衍生效應(yīng)被解釋為錯(cuò)誤或故障。
例如,串行閃存設(shè)備提供了許多高級(jí)功能,可確保可靠運(yùn)行并允許對(duì)設(shè)備進(jìn)行查詢。這可以包括噪聲過(guò)濾器、高級(jí)自適應(yīng)編程和管理單元余量的擦除算法。一些制造商還在存儲(chǔ)元件中包含 ECC,以在每次寫(xiě)入操作時(shí)保存額外的元數(shù)據(jù),以允許檢測(cè)和糾正單個(gè)或多個(gè)位錯(cuò)誤,但當(dāng)噪聲破壞通信接口總線上的基本消息事務(wù)時(shí),此 ECC 修復(fù)將無(wú)濟(jì)于事。
SPI 接口上的噪聲可能會(huì)被誤解為額外的時(shí)鐘脈沖。由于 SPI 是時(shí)鐘驅(qū)動(dòng)的接口,因此會(huì)產(chǎn)生一些影響,例如命令被忽略、數(shù)據(jù)被誤解、使用錯(cuò)誤命令等。但是,噪聲也帶有能量,在某些情況下,這種能量本身會(huì)在設(shè)備操作中引入錯(cuò)誤.
電荷泵和過(guò)沖
在大多數(shù)情況下,數(shù)字接口可以容忍信號(hào)中的一些過(guò)沖或下沖。然而,不應(yīng)忘記曲線下的能量仍然存在,并且在某些電路中這可能是破壞性的。
一個(gè)典型的例子是串行閃存中的電荷泵電路。如果 SPI 總線信號(hào)包含大量噪聲,則該信號(hào)中的能量可能會(huì)傳播到電荷泵并破壞其運(yùn)行。
閃存中的電荷泵是一項(xiàng)關(guān)鍵功能,因?yàn)樗峁┝烁淖兇鎯?chǔ)單元偏置所需的功率,并有效地存儲(chǔ)邏輯 1 或 0。寫(xiě)入/擦除過(guò)程是閃存操作的關(guān)鍵時(shí)刻內(nèi)存,在此期間對(duì)電荷泵的任何中斷都可能導(dǎo)致寫(xiě)入或擦除錯(cuò)誤,雖然可以檢測(cè)到這些錯(cuò)誤,但它們有可能不會(huì)很明顯。
這種錯(cuò)誤很容易被解釋為閃存設(shè)備中的故障。嵌入式設(shè)計(jì)人員非常了解閃存具有制造商保證的有限數(shù)量的讀寫(xiě)周期這一事實(shí),但可能不太了解的是提供沒(méi)有太多過(guò)沖或下沖的干凈接口的重要性。
例如,考慮圖 1 中的圖像。它顯示了六個(gè)閃存設(shè)備的健康單元邊距。在用表示邏輯 1(2V 至 5V)和 0(>6v)的數(shù)據(jù)編程的單元之間出現(xiàn)了兩種不同的模式。相比之下,圖 2 中的圖像顯示了三個(gè)閃存設(shè)備的存儲(chǔ)單元余量,這些設(shè)備因控制線上的過(guò)沖和下沖而遭受數(shù)據(jù)損壞。
圖 1:該圖顯示了已編程和擦除的閃存的良好單元邊緣分離數(shù)據(jù)。(來(lái)源:阿德斯托)
圖 2:該圖顯示了閃存的單元邊緣分離數(shù)據(jù)較差,其中 SPI 線路上存在明顯的噪聲。(來(lái)源:阿德斯托)
多種因素會(huì)影響噪聲水平,例如工作頻率、信號(hào)幅度、MCU 驅(qū)動(dòng)水平以及噪聲尖峰中包含的能量。PCB 設(shè)計(jì)和信號(hào)之間的串?dāng)_也可能是影響因素。
圖 2 中的數(shù)據(jù)顯示了過(guò)度過(guò)沖和下沖對(duì)串行接口的影響。下面的圖 3 顯示了這種過(guò)沖在實(shí)際應(yīng)用中的樣子。
圖 3:此跡線圖像清楚地顯示了 SPI 線路上存在的過(guò)沖和下沖導(dǎo)致 5.65V 的峰峰值電壓,超過(guò)了閃存規(guī)范中記錄的絕對(duì)最大值。(來(lái)源:阿德斯托)
這種噪聲的結(jié)果是錯(cuò)誤的設(shè)備操作,表現(xiàn)為串行閃存存儲(chǔ)值中的錯(cuò)誤。最初,錯(cuò)誤的真正影響被忽略了,因?yàn)橐暂^低頻率輪詢狀態(tài)寄存器報(bào)告的錯(cuò)誤較少,導(dǎo)致設(shè)計(jì)人員對(duì)故障的根本原因做出錯(cuò)誤的假設(shè)。
確定真正的根本原因
盡管此故障表現(xiàn)為內(nèi)存故障,但根本原因并非閃存設(shè)備。Adesto 工程師通過(guò)探測(cè) SPI 信號(hào)并識(shí)別存在的系統(tǒng)噪聲發(fā)現(xiàn)了這一點(diǎn)。雖然噪聲可能部分歸因于 MCU 和閃存之間的 PCB 軌道上存在的阻抗不匹配,但這并不是全部。
噪聲的來(lái)源實(shí)際上是 MCU 接口,它在上電時(shí)默認(rèn)為高驅(qū)動(dòng)電平。過(guò)度驅(qū)動(dòng)足以導(dǎo)致 SPI 線路上的過(guò)沖和下沖,在某些情況下可能會(huì)被誤解為信號(hào)轉(zhuǎn)換,從而導(dǎo)致讀取或?qū)懭脲e(cuò)誤。然而,在這種情況下,發(fā)現(xiàn)過(guò)沖具有足夠的能量來(lái)破壞 Flash 電荷泵,這反過(guò)來(lái)又會(huì)導(dǎo)致錯(cuò)誤。
在客戶的設(shè)計(jì)中,所使用的微控制器為其 I/O 提供了可配置的驅(qū)動(dòng)電流,在啟動(dòng)時(shí)默認(rèn)為 HIGH。由于應(yīng)用程序代碼在初始化期間沒(méi)有修改此級(jí)別,因此它在正常操作中保持高電平。
對(duì)于 SPI 總線上的其他設(shè)備,這種影響可能并不明顯,因?yàn)閿?shù)字接口通常被設(shè)計(jì)成穩(wěn)健的。閃存的敏感特性,需要以更高的頻率運(yùn)行,特別是電荷泵的運(yùn)行,使存儲(chǔ)器容易出現(xiàn)過(guò)沖/下沖。這導(dǎo)致了最初被誤解為閃存設(shè)備故障的錯(cuò)誤操作。
糾正錯(cuò)誤
通過(guò)固件降低驅(qū)動(dòng)電流可將過(guò)沖和下沖有效地減少為零(圖 4),進(jìn)而導(dǎo)致閃存的無(wú)錯(cuò)誤運(yùn)行。
圖 4:沒(méi)有明顯的過(guò)沖,串行閃存的電荷泵能夠正確運(yùn)行并提供可靠的功能。(來(lái)源:阿德斯托)
故障的性質(zhì)表明,F(xiàn)lash 設(shè)備正在盡一切努力補(bǔ)償錯(cuò)誤的影響,即 SPI 接口上的系統(tǒng)噪聲過(guò)大。
也許這里最重要的一點(diǎn)是,原因?qū)嶋H上是所使用的 MCU 的設(shè)計(jì)特性,它默認(rèn)為在大多數(shù)情況下完全可以接受的操作模式。高驅(qū)動(dòng)輸出和不完美的 PCB 電感相結(jié)合造成了導(dǎo)致間歇性故障的條件。通過(guò)簡(jiǎn)單的固件更改,減少 MCU 上的驅(qū)動(dòng)輸出,解決了這個(gè)問(wèn)題。
這突出了這里真正的教訓(xùn):看似真正的組件故障實(shí)際上可能是設(shè)計(jì)中的疏忽。更換存儲(chǔ)設(shè)備本來(lái)是對(duì)最初認(rèn)為是故障的自然反應(yīng),但通過(guò)客戶和供應(yīng)商以及硬件和軟件工程團(tuán)隊(duì)之間的牢固工作關(guān)系,找到了實(shí)際原因并應(yīng)用了正確的解決方案.結(jié)果是明顯更好的設(shè)計(jì)、更高的系統(tǒng)性能和更高的可靠性。
結(jié)論
當(dāng)沒(méi)有明顯影響時(shí),系統(tǒng)噪音很容易被消除。在最佳條件下,間歇性錯(cuò)誤特別難以定位,但當(dāng)錯(cuò)誤被誤解時(shí),挑戰(zhàn)變得更加困難。
過(guò)沖可能是最不明顯的系統(tǒng)噪聲形式,但正如這里所解釋的,它的影響可能很大。閃存是一種可靠的技術(shù),但它依賴于精心設(shè)計(jì)的接口。串行接口上的過(guò)多噪聲有可能傳播到電荷泵電路,從而影響編程和擦除電路的操作。這會(huì)導(dǎo)致無(wú)法預(yù)料的特性,這些特性很容易被解釋為設(shè)備本身的故障,表現(xiàn)為存儲(chǔ)單元故障,以及不一致或不可靠的編程和擦除操作。
在這種情況下,更換閃存并假設(shè)問(wèn)題已得到解決可能會(huì)導(dǎo)致產(chǎn)品上市,而這些產(chǎn)品可能會(huì)在某個(gè)時(shí)候失敗。相反,設(shè)計(jì)人員能夠?qū)⒕幊毯筒脸恢滦蕴岣咭粋€(gè)重要因素,有效的耐久性從檢測(cè)到錯(cuò)誤之前不可接受的約 20K 周期躍升至超過(guò) 250 萬(wàn)個(gè)周期,沒(méi)有錯(cuò)誤,并且不需要補(bǔ)充錯(cuò)誤檢測(cè)和糾正例程。
現(xiàn)代微控制器提供的可配置性水平既可以看作是幫助,也可以看作是障礙。驅(qū)動(dòng)電流可配置的事實(shí)可能是該示例中過(guò)沖的原因。然而,能夠降低驅(qū)動(dòng)強(qiáng)度對(duì)于解決問(wèn)題也很有效。
-
閃存
+關(guān)注
關(guān)注
16文章
1782瀏覽量
114878 -
數(shù)字接口
+關(guān)注
關(guān)注
1文章
85瀏覽量
21971 -
IDM
+關(guān)注
關(guān)注
1文章
120瀏覽量
18889
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論