使用混合信號(hào)示波器調(diào)試混合信號(hào)嵌入式設(shè)計(jì)
為了在相同的系統(tǒng)中滿足高性能模擬與低成本數(shù)字控制這對(duì)相互矛盾的要求,我們?cè)谠S多電池供電的嵌入式測(cè)量應(yīng)用中均采用了專門針對(duì)應(yīng)用設(shè)計(jì)的模擬前端 (AFE) 電路與分離數(shù)字微控制器 ( MCU) 相結(jié)合的辦法。這種提取并將模擬功能集成到特殊電路中的辦法既優(yōu)化了專門的功能集,又實(shí)化了系統(tǒng)通用的數(shù)字控制。但是,隨著現(xiàn)代深亞微米硅技術(shù)的到來,通常其最低量產(chǎn)為 10 萬單位,一套掩模的一次性工程設(shè)計(jì)成本 (NRE) 接近 100 萬美元,加上設(shè)計(jì)超大型的定制電路有風(fēng)險(xiǎn),而且也面臨著加快產(chǎn)品上市時(shí)間的壓力,因此專門定制的解決方案對(duì)除了用于少數(shù)高容量應(yīng)用之外,在其他情況下都是不現(xiàn)實(shí)的。
本文引用地址:http://m.butianyuan.cn/article/81711.htm目前的趨勢(shì)不是采用定制的 AFE,而是采用針對(duì)具體應(yīng)用的標(biāo)準(zhǔn)產(chǎn)品 ( ASSP),在低成本、可重復(fù)使用的系統(tǒng)中平衡了高性能模擬、低成本數(shù)字控制并縮短投放市場(chǎng)的時(shí)間等多項(xiàng)要求。ASSP 作為優(yōu)化的外設(shè)提供了可配置的混合信號(hào)模擬特性,而設(shè)備其他部分則作為可重復(fù)使用的功能實(shí)施,可跨越許多平臺(tái)共享。快閃微控制器單元 (MCU) 是共享功能的主機(jī)與解決方案。混合信號(hào)快閃 MCU 的集成功能顯示于 圖1 的 MSP430FG43x 中。除了作為計(jì)時(shí)器及串行端口等數(shù)字外設(shè)的完全配套之外,我們現(xiàn)在還可以在單一的 ASSP 上集成高精度模數(shù)轉(zhuǎn)換器 ( ADC)、數(shù)模轉(zhuǎn)換器 (DAC)、運(yùn)算放大器 (OA)、電源電壓監(jiān)控器 (SVS) 以及液晶顯示驅(qū)動(dòng)程序等。利用混合信號(hào)基于快閃 MCU 的 ASSP,設(shè)計(jì)工程師不必再為高風(fēng)險(xiǎn)完全定制硬件實(shí)施集中投入其資源,而是可以開發(fā)靈活的、可編程的功能,并能快速地將其投放市場(chǎng)。
典型的混合信號(hào) MCU 解決方案
ASSP可在其中發(fā)揮很好作用的混合信號(hào)應(yīng)用常見實(shí)例就是手持式醫(yī)療設(shè)備。典型的手持式醫(yī)療設(shè)備要求精確的傳感器接口電路、用戶顯示、日歷功能、非易失性存儲(chǔ)器、通信特性、電源管理以及可編程的快閃 MCU 等。
我們用生物催化劑試件測(cè)量小血樣的葡萄糖含量。應(yīng)用血樣時(shí),應(yīng)用參考電壓將試件生成的電子轉(zhuǎn)化為電流。用于試件的參考電壓從混合信號(hào)快閃 MCU 的兩個(gè)內(nèi)部 12 位 DAC 之一提供。生物催化劑產(chǎn)生的電流很小,其范圍在 uA 再降至 nA 之內(nèi)。為了將傳感器的小電流輸出轉(zhuǎn)化為電壓,我們采用其中的一個(gè)集成運(yùn)算放大器實(shí)施互阻抗功能。運(yùn)算放大器的輸出放大至一定的范圍時(shí),可由采用反饋電阻器的嵌入式 12 位 ADC測(cè)量。
試件的化學(xué)反應(yīng)是溫度敏感型的,而測(cè)量周期可能長達(dá) 30 秒,這也使情況復(fù)雜化。例如,血樣可能在溫暖的環(huán)境中放在試件上,比如在用戶的家中,而轉(zhuǎn)換結(jié)果則是在外部冬天的環(huán)境中完成的。有鑒于此,必須在測(cè)量周期開始與結(jié)束時(shí)測(cè)量溫度,而如果二者之間溫差太大,那么測(cè)試結(jié)果就會(huì)作廢,應(yīng)當(dāng)提醒用戶注意到這種情況。我們采用嵌入式 12 位 ADC 中的集成溫度傳感器測(cè)量溫度。
用戶或用戶的醫(yī)師常常記錄測(cè)量日志,下載后存入 PC 進(jìn)行分析。數(shù)據(jù)日志記錄是采用快閃 MCU 的主要原因。由于快閃是系統(tǒng)內(nèi)可編程的 (ISP),因而快閃的一部分用于數(shù)據(jù)存儲(chǔ),不再需要外部數(shù)據(jù)存儲(chǔ)器。先進(jìn)的嵌入式快閃可進(jìn)行高達(dá) 10 萬次擦寫操作與再編程,其壽命比設(shè)備壽命還長。
管理系統(tǒng)電源的基本要求
當(dāng)前的嵌入式設(shè)計(jì)工程師面臨著系統(tǒng)復(fù)雜程度日益提高的挑戰(zhàn)。典型的嵌入式設(shè)計(jì)可能會(huì)包括各種模擬信號(hào)、高速和低速串行數(shù)字通信、微處理器總線等等。I2C和SPI等串行協(xié)議通常用于芯片間通信,但不能在所有應(yīng)用中代替并行總線。微處理器、FPGA、模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)等集成電路給當(dāng)前嵌入式設(shè)計(jì)帶來了獨(dú)特的測(cè)量挑戰(zhàn)。工程師可能需要解碼兩個(gè)IC之間的SPI總線,同時(shí)在同一塊系統(tǒng)電路板上觀察ADC的輸入和輸出。圖1 是混合信號(hào)系統(tǒng)實(shí)例。
對(duì)配備4 通道示波器的工程師來說,調(diào)試圖1所示的硬件是一件困難而又讓人畏縮的任務(wù)。許多工程師用慣了示波器,同時(shí)為了節(jié)約時(shí)間,可能會(huì)選擇購買三四臺(tái)示波器,以便一次探測(cè)多個(gè)信號(hào)。邏輯分析儀可以探測(cè)多個(gè)數(shù)字信號(hào),但調(diào)試任務(wù)非常復(fù)雜,使用邏輯分析儀所帶來的設(shè)置和學(xué)習(xí)過程有些不值得。幸運(yùn)的是,對(duì)面臨這一任務(wù)的工程師,泰克提供了一種新型儀器,稱為混合信號(hào)示波器(MSO),有效地滿足了他們的需求。泰克MSO4000系列混合信號(hào)示波器把16 通道邏輯分析儀的基本功能與泰克4通道示波器倍受信任的性能結(jié)合在一起。本應(yīng)用指南介紹了混合信號(hào)嵌入式設(shè)計(jì)的調(diào)試,演示了泰克MSO4000提供的業(yè)內(nèi)領(lǐng)先的性能。
圖1. 簡化的采集/ 儀器系統(tǒng)。
使用MSO4000 同時(shí)調(diào)試多個(gè)串行協(xié)議
嵌入式設(shè)計(jì)工程師通常使用串行協(xié)議,如I2C和SPI,以簡化電路板上系統(tǒng)模塊之間的通信。這些串行協(xié)議可以降低布線的復(fù)雜性,但傳統(tǒng)示波器一直很難調(diào)試其實(shí)現(xiàn)方案。設(shè)計(jì)人員一般會(huì)被迫手動(dòng)解碼采集的串行數(shù)據(jù),或從示波器導(dǎo)出數(shù)據(jù),以進(jìn)行后期處理和解碼。使用示波器解碼串行數(shù)據(jù)可以為嵌入式設(shè)計(jì)工程師節(jié)約無數(shù)個(gè)小時(shí)的調(diào)試時(shí)間,允許工程師實(shí)時(shí)查看硬件和軟件的影響。
盡管DPO4000系列示波器可以使用最多四條通道探測(cè)串行數(shù)據(jù),但許多常用串行協(xié)議要求三條或三條以上的線。工程師通常需要同時(shí)解碼和顯示多條串行總線,觀測(cè)其時(shí)間相關(guān)性。泰克MSO4000系列把DPO4000 系列的串行觸發(fā)和解碼功能與16條新增數(shù)字通道結(jié)合在一起。除I2C、SPI 和CAN 外,MSO4000還支持觸發(fā)和解碼RS-232和并行總線。通過MSO4000,工程師可以同時(shí)探測(cè)和解碼多條串行總線及自定義并行總線。下面的實(shí)例使用MSO4000,調(diào)試圖1所示的嵌入式設(shè)計(jì)中復(fù)雜的多芯片通信錯(cuò)誤。
在系統(tǒng)最初調(diào)試過程中(如圖1 所示),系統(tǒng)偶爾遇到電路板上狀態(tài)LED指示燈表明發(fā)生故障的情況。狀態(tài)LED指示燈報(bào)告的錯(cuò)誤不明確,導(dǎo)致系統(tǒng)工程師不能確定問題是由硬件導(dǎo)致的還是由軟件導(dǎo)致的。以前,類似錯(cuò)誤一直源于模擬復(fù)用器輸入上的信號(hào)質(zhì)量差,但工程師已經(jīng)成功更換了導(dǎo)致信號(hào)保真度問題的硬件。由于系統(tǒng)工程師懷疑錯(cuò)誤可能源于復(fù)用器輸入之外的其它來源,他決定探測(cè)到復(fù)用器的模擬輸入及多條數(shù)字總線,以全面查看系統(tǒng)狀況。MSO4000 為調(diào)試提供了4 條模擬通道和16 條數(shù)字通道,它連接到圖2 中標(biāo)為1-4 的信號(hào)上。
圖2. 帶有探測(cè)點(diǎn)的采集子系統(tǒng)。
圖3. MSO4000顯示了I2C、SPI和并行總線及CH1模擬信號(hào)。
圖3 顯示了MSO4000 同時(shí)探測(cè)SPI 總線(1)、I2C 總線(2)、3位并行總線(3)和模擬輸入(4)的屏幕快照。由于錯(cuò)誤可以被隔離到某個(gè)子例程,因此MSO4000配置成單次采集,觸發(fā)特定的I2C活動(dòng)。把記錄長度設(shè)置成1M點(diǎn)保證了可以準(zhǔn)確地捕獲I2C總線上事件周圍的所有有用信息。工程師運(yùn)行子例程,迅速查看MSO4000,了解系統(tǒng)中發(fā)生的情況。CH1上顯示的MUX 輸入上清楚的模擬波形確認(rèn)了工程師的疑問,表明硬件問題已經(jīng)得到解決,錯(cuò)誤發(fā)生在其它地方。MSO4000觸發(fā)和解碼從微處理中寫入的I2C 數(shù)據(jù)。工程師注意到SPI上的活動(dòng)及在傳輸I2C數(shù)據(jù)后很快顯示了標(biāo)有D1和D2的信號(hào)。工程師懷疑這些總線上的活動(dòng),因?yàn)樗J(rèn)為執(zhí)行的功能主要涉及LCD控制器。由于MSO4000已經(jīng)解碼I2C數(shù)據(jù)值,因此工程師可以看到微處理器已經(jīng)把I2C數(shù)據(jù)寫入地址0x77。地址0x77是FPGA 的地址,但工程師認(rèn)為子例程把數(shù)據(jù)寫入地址0x76,這是LCD控制器的地址。
圖3. MSO4000顯示了I2C、SPI和并行總線及CH1模擬信號(hào)。
圖4 顯示了同一采集,其中使用Wave Inspector放大SPI 和并行總線的細(xì)節(jié)。SPI 數(shù)據(jù)在屏幕上解碼成從主設(shè)備(FPGA)到從設(shè)備(MUX)的寫入,數(shù)據(jù)值為0x15。這一SPI 命令指示LWTYMUX 改變信號(hào)路徑使用的輸入。輸入信號(hào)中這種意想不到的變化導(dǎo)致FPGA向并行總線上的狀態(tài)LED指示燈發(fā)送一個(gè)錯(cuò)誤代碼。在圖4中也可以觀察到這些并行總線的錯(cuò)誤代碼和解碼。嵌入式設(shè)計(jì)工程師可以迅速確定是軟件漏洞導(dǎo)致了系統(tǒng)問題,因?yàn)镸SO4000能夠同時(shí)查看和解碼所有相關(guān)信號(hào)。軟件編程人員錯(cuò)誤地從微控制器到FPGA 寫入I2C 數(shù)據(jù),而分組的預(yù)計(jì)目標(biāo)是LCD 控制器。
圖4. Wave Inspector 用來放大和顯示分組細(xì)節(jié)。
下一代數(shù)字波形顯示幫您揭示問題 在改動(dòng)系統(tǒng)軟件,校正上一節(jié)中介紹的地址漏洞后,嵌入式設(shè)計(jì)工程師繼續(xù)測(cè)試更多的系統(tǒng)功能。在進(jìn)行測(cè)試時(shí),他注意到狀態(tài)LED指示燈偶爾指明錯(cuò)誤。與上一節(jié)中描述的錯(cuò)誤不同,工程師不確定怎樣重建看到的錯(cuò)誤。錯(cuò)誤似乎具有隨機(jī)特點(diǎn),不能隔離到系統(tǒng)的某個(gè)功能或子例程。
嵌入式設(shè)計(jì)工程師對(duì)錯(cuò)誤的隨機(jī)特點(diǎn)感到很迷惑,不確定從哪兒入手查找來源。查找錯(cuò)誤來源的一個(gè)選項(xiàng)是使用示波器隨機(jī)探測(cè)系統(tǒng),以期捕獲隨機(jī)事件。盡管工程師過去一直使用這種方法,但他知道,連接到所有相關(guān)信號(hào)、正確配置的MSO4000可以用少得多的時(shí)間找到錯(cuò)誤。上一節(jié)中大多數(shù)探測(cè)點(diǎn)仍連接到MSO4000上。CH1 探頭移動(dòng)到活動(dòng)的MUX 輸入上,這是來自傳感器3 的數(shù)字信號(hào)。除這4個(gè)探測(cè)點(diǎn)外,工程師使用一條數(shù)字通道探測(cè)MUX 輸出。
圖5. MUX_OUT 上的白色邊沿表明提供了更詳細(xì)的信息。
FPGA 通過3 位并行總線傳送值0x7,表明已經(jīng)發(fā)生錯(cuò)誤。為隔離問題,MSO4000配置成捕獲單次采集,它把觸發(fā)事件設(shè)置成并行總線值0x7。圖5 顯示了采集結(jié)果。在這種情況下,并行總線解碼和觸發(fā)節(jié)約了時(shí)間,減少了混淆,因?yàn)榭梢院啽愕馗綦x錯(cuò)誤條件。這一采集過程中使用的1M記錄長度允許工程師觀察觸發(fā)事件前和觸發(fā)事件后信號(hào)的關(guān)鍵細(xì)節(jié)。乍一看,圖5 所示的信號(hào)似乎行為正常,但系統(tǒng)工程師很快確定MUX_OUT信號(hào)上出現(xiàn)了獨(dú)特的兩個(gè)邊沿轉(zhuǎn)換。圖5所示的MUX_OUT信號(hào)上的白色轉(zhuǎn)換向用戶表明這些信號(hào)部分存在著更多的信息。MSO4000的多邊沿檢測(cè)功能突出顯示了波形區(qū)域,通過縮放可以揭示頻率較高的數(shù)字脈沖。在使用Wave Inspector放大波形細(xì)節(jié)時(shí),圖6 揭示了第一個(gè)白色轉(zhuǎn)換背后的細(xì)節(jié)。圖5中畫出的白色轉(zhuǎn)換的信號(hào)部分實(shí)際上是MUX_OUT信號(hào)上的一個(gè)毛刺。
圖6. Wave Inspector 揭示了MUX_OUT 信號(hào)上的毛刺。
圖6顯示了MSO4000中模擬通道和數(shù)字通道之間的時(shí)間相關(guān)性。CH1(SENSOR_3)上顯示了到MUX的輸入,數(shù)字通道D14(MUX_OUT)上則可以觀察到MUX輸出。工程師注意到,盡管MUX 輸出有一個(gè)毛刺,但到MUX的輸入似乎沒有毛刺。在使用數(shù)字通道識(shí)別毛刺后,工程師決定把CH2連接到MUX輸出上,更仔細(xì)地進(jìn)行考察。圖7顯示了采集結(jié)果,其中MSO4000 仍配置成觸發(fā)并行總線值0x7。圖7 關(guān)閉了SPI 和I2C總線的波形,把重點(diǎn)放在相關(guān)的主要信號(hào)上。在MUX 輸入和輸出上使用模擬探頭,發(fā)現(xiàn)輸出上存在的毛刺在輸入信號(hào)上并不存在。圖7顯示,MUX_OUT信號(hào)上的毛刺出現(xiàn)了很短的時(shí)間,然后FPGA發(fā)送錯(cuò)誤代碼。這兩個(gè)信號(hào)之間的時(shí)間關(guān)系表明,毛刺可能是工程師看到的問題。工程師使用同一配置重復(fù)采集幾次,看到每次的行為都與圖7類似。
圖7. CH2 顯示MUX_OUT 的更多細(xì)節(jié)。
在分析MSO4000的屏幕快照后,嵌入式設(shè)計(jì)工程師懷疑串?dāng)_可能是MUX_OUT信號(hào)上的毛刺來源。在檢查圖5 中監(jiān)測(cè)的所有信號(hào)后,沒有任何信號(hào)是串?dāng)_來源。在更詳細(xì)地檢查電路板布局時(shí),工程師找到印刷電路板(PCB)上MUX_OUT軌跡旁邊有一個(gè)通路。工程師使用CH1探測(cè)PCB上的通路,等待并行總線的另一個(gè)觸發(fā)。得到的屏幕快照如圖8所示。圖8 顯示,CH1 上捕獲的信號(hào)從低到高轉(zhuǎn)換在時(shí)間上與MUX_OUT信號(hào)的正毛刺直接相關(guān)。相應(yīng)地,從高到低轉(zhuǎn)換直接與MUX_OUT信號(hào)的負(fù)毛刺直接相關(guān)。
在用一段時(shí)間在電路板上對(duì)干擾信號(hào)重選路由后,工程師把MSO4000 配置成觸發(fā)CH1。圖9顯示MSO4000觸發(fā)CH1轉(zhuǎn)換,但在MUX_OUT信號(hào)上沒有顯示毛刺。由于MUX_OUT信號(hào)不存在毛刺,因此并行總線沒有生成錯(cuò)誤條件。在改動(dòng)電路板之后,串?dāng)_消失了,允許嵌入式設(shè)計(jì)工程師完成系統(tǒng)評(píng)估。
圖8. CH1 顯示了MUX_OUT 信號(hào)中的串?dāng)_來源。
圖9. 在改動(dòng)PCB 后,串?dāng)_消失了。
小結(jié)
如本應(yīng)用指南所示,MSO4000 為開發(fā)和調(diào)試嵌入式設(shè)計(jì)的工程師提供了一個(gè)異常強(qiáng)大的工具。MSO4000 把16條時(shí)間相關(guān)的數(shù)字通道與泰克4通道示波器倍受信任的性能和直觀的界面結(jié)合在一起。工程師現(xiàn)在可以使用MSO4000,而不用搜索多臺(tái)示波器或?qū)W習(xí)怎樣操作邏輯分析儀。MSO4000能夠同時(shí)觸發(fā)和解碼并行總線和串行標(biāo)準(zhǔn),如I2C、SPI、CAN 和RS-232,對(duì)評(píng)估當(dāng)前嵌入式設(shè)計(jì)中硬件和軟件復(fù)雜交互的工程師提供了寶貴的工具。
評(píng)論