核到高精度ADC信號(hào)鏈實(shí)戰(zhàn)解析)
第一次拿到ADUC7024BSTZ62這顆料時(shí)多數(shù)嵌入式工程師會(huì)被“ARM7”三個(gè)字帶偏潛意識(shí)里覺(jué)得這是一顆老掉牙的芯片。但我在兩個(gè)工業(yè)項(xiàng)目里用過(guò)這顆ARM7 內(nèi)核精密模擬微控制器之后觀點(diǎn)徹底變了在強(qiáng)調(diào)“精密模擬”的場(chǎng)景里CPU 規(guī)格反而是最不重要的指標(biāo)真正決定系統(tǒng)精度的是 ADC 采樣架構(gòu)、基準(zhǔn)源溫漂、參考電壓處理和 PCB 布板。這篇文章我打算把這顆芯片拆開(kāi)講清楚型號(hào)命名怎么讀、ARM7 內(nèi)核與模擬前端如何配合、開(kāi)發(fā)調(diào)試流程怎么快速上手、實(shí)測(cè)布板有哪些坑以及它和 STM32H743 這類高性能通用 MCU 怎么選型。無(wú)論你是在做 4-20mA 變送器、溫度壓力采集還是電池電壓監(jiān)測(cè)這篇內(nèi)容都值得存一份。1. 先會(huì)讀型號(hào)ADUC7024BSTZ62 里藏著整個(gè)選型邏輯1.1 一顆芯片的命名就是半份選型指南ADI 的精密模擬微控制器命名很有規(guī)律。ADuC代表“Analog Devices MicroController”也就是模擬與數(shù)字結(jié)合的產(chǎn)物。7024是產(chǎn)品家族內(nèi)的具體型號(hào)BSTZ62則可以理解為封裝、工藝和存儲(chǔ)容量的組合ST通常對(duì)應(yīng) LQFP 封裝Z代表無(wú)鉛/RoHS 工藝62對(duì)應(yīng) 62KB 的片內(nèi) Flash。嚴(yán)謹(jǐn)起見(jiàn)不同批次的 Ordering Guide 對(duì)后綴定義可能略有差異設(shè)計(jì)時(shí)一定以當(dāng)年數(shù)據(jù)手冊(cè)為準(zhǔn)。ADuC702x 家族里有 ADuC7020、7021、7022、7024、7026 等多顆成員差別主要體現(xiàn)在引腳數(shù)、DAC 路數(shù)、封裝大小上。ADuC7024 在家族里算比較均衡的一顆既保留了足夠的封裝引腳用于模擬輸入和通信又不像更高階型號(hào)那樣集成過(guò)于復(fù)雜的外設(shè)。很多傳感器變送器項(xiàng)目MCU 引腳需求本來(lái)就不多省的引腳反而是好事。1.2 “精密模擬微控制器”到底在說(shuō)什么傳統(tǒng)做法里一個(gè)高精度采集模塊需要 MCU 外部基準(zhǔn)源 獨(dú)立 ADC 運(yùn)放 溫度傳感器至少五六顆 IC 才能拼出一條完整信號(hào)鏈。每一級(jí)都會(huì)帶來(lái)誤差運(yùn)放的失調(diào)電壓、基準(zhǔn)源的溫漂、ADC 的參考輸入噪聲、PCB 上模擬信號(hào)被數(shù)字總線串?dāng)_……聯(lián)調(diào)時(shí)你根本不知道誤差該歸誰(shuí)管。ADuC7024 的思路是“信號(hào)鏈單芯片化”把多通道 12 位 SAR ADC、PGA 可編程增益放大器、片內(nèi)基準(zhǔn)源、溫度傳感器以及多路 12 位 DAC 全部集成在一顆芯片里。數(shù)據(jù)手冊(cè)直接給出各個(gè)模擬模塊的指標(biāo)布板時(shí)只需要關(guān)注電源去耦和地平面分割就能在較短時(shí)間內(nèi)做到穩(wěn)定的有效位數(shù)。對(duì)這種芯片模擬人的視角會(huì)覺(jué)得很自然但數(shù)字出身的人第一次接觸往往會(huì)不適應(yīng)——你不需要去外掛一個(gè) ADC 驅(qū)動(dòng)也不需要在 SPI 總線上搬數(shù)據(jù)采集結(jié)果直接落在內(nèi)存里了。1.3 ARM7TDMI 不是拿來(lái)跑復(fù)雜運(yùn)算的是做確定性控制的ARM7TDMI 是 1990 年代誕生的經(jīng)典內(nèi)核采用馮·諾依曼架構(gòu)三級(jí)流水線支持 ARM 和 Thumb 兩套指令集。它沒(méi)有 MMU也沒(méi)有 Cache這點(diǎn)在很多工程師眼里是“落后”但在工業(yè)控制里反而成了優(yōu)點(diǎn)指令執(zhí)行路徑可預(yù)測(cè)中斷響應(yīng)時(shí)間確定不會(huì)有 Cache miss 帶來(lái)的抖動(dòng)。ADuC7024 的內(nèi)核主頻典型工作在 40MHz 量級(jí)CPU 算力當(dāng)然比不過(guò)現(xiàn)在的 Cortex-M7 甚至 M4。但那又怎樣采樣系統(tǒng)的工作節(jié)奏由 ADC 決定1MSPS 的采樣率下每次轉(zhuǎn)換只有 1μs內(nèi)核主要工作是切換通道、讀結(jié)果、做濾波和 PID這些任務(wù) ARM7 完全足夠。Thumb 指令還能壓縮代碼密度讓 62KB Flash 比想象中更耐用。2. 芯片架構(gòu)的“老練”內(nèi)核和模擬外設(shè)是怎么配合的2.1 時(shí)鐘系統(tǒng)32.768kHz 晶振怎么撐起 40MHz 主頻ADuC7024 的時(shí)鐘設(shè)計(jì)很有特色。它不鼓勵(lì)你用一顆高速晶振直接給內(nèi)核供時(shí)鐘而是用常見(jiàn)的 32.768kHz 表貼晶振做基準(zhǔn)再靠片內(nèi) PLL 倍頻到幾十 MHz。這個(gè)做法的好處是明顯的低頻晶振成本低、啟動(dòng)快、輻射小而且能同時(shí)兼顧低功耗喚醒時(shí)鐘和看門狗時(shí)基。實(shí)際項(xiàng)目里我會(huì)在 VDD 和地之間放好 PLL 所需的濾波電容晶振兩端再各加一個(gè) 10-20pF 負(fù)載電容具體數(shù)值由晶振負(fù)載電容決定。如果你連晶振都想省也可以用外部時(shí)鐘直接輸入但這樣 EMI 和時(shí)鐘抖動(dòng)都需自己控制。對(duì)測(cè)量類系統(tǒng)時(shí)鐘抖動(dòng)會(huì)影響 ADC 采樣孔徑不確定性所以我的習(xí)慣是能用 32.768kHz PLL 就盡量不折騰外部高速時(shí)鐘。2.2 ADC 信號(hào)鏈從多路開(kāi)關(guān)到有效位數(shù)的關(guān)鍵ADuC7024 的核心模擬外設(shè)是 12 位逐次逼近型 ADC采樣率最高約 1MSPS。SAR 架構(gòu)意味著每次轉(zhuǎn)換要經(jīng)歷采樣、保持、比較、逐位逼近幾個(gè)階段輸入信號(hào)在前端必須被充分采樣。片內(nèi)還帶有可編程增益放大器可以放大微弱信號(hào)讓熱電偶、RTD 這類小信號(hào)不必先去外接儀表放大器這在單芯片方案里非常實(shí)用。要理解系統(tǒng)的真實(shí)精度不能只盯著“12 位”這個(gè)分辨率看。12 位 ADC 的理論分辨率為 1/4096如果參考電壓是 2.5V一個(gè) LSB 約 0.61mV如果前端 PGA 增益是 16等效到輸入端一個(gè) LSB 就只有約 38μV。但這是理想分辨力不是精度。耐受誤差還取決于 INL、DNL、增益誤差、失調(diào)誤差和溫漂。用 ADuC7024 時(shí)我會(huì)做兩步硬件上把參考電壓和地處理干凈軟件上做一次兩點(diǎn)校正把增益誤差和失調(diào)誤差消掉實(shí)測(cè)有效位數(shù)能明顯提升。2.3 DAC、基準(zhǔn)源與溫度傳感器容易忽略但同樣重要片內(nèi) DAC 的價(jià)值很多工程師一開(kāi)始看不出來(lái)。變送器應(yīng)用里DAC 可以輸出線性化補(bǔ)償電壓閥門控制里DAC 可以作為模擬設(shè)定點(diǎn)信號(hào)發(fā)生器應(yīng)用里DAC 可以配合 DMA 生成波形。ADuC7024 的多路 12 位 DAC 帶片內(nèi)輸出緩沖可以直接驅(qū)動(dòng)后級(jí)電路省掉外部運(yùn)放。片內(nèi)基準(zhǔn)源通常是 2.5V 左右好處是省一顆基準(zhǔn)芯片但絕對(duì)精度和溫漂肯定不如外部專用基準(zhǔn)。如果系統(tǒng)要求全溫區(qū)內(nèi)萬(wàn)分之一級(jí)別的穩(wěn)定性我會(huì)禁用內(nèi)部基準(zhǔn)改用外部精密基準(zhǔn)源在 ADC 參考引腳處加上高質(zhì)量去耦電容。片內(nèi)溫度傳感器則適合做環(huán)境溫度監(jiān)測(cè)、冷端補(bǔ)償輔助絕對(duì)精度有限真要靠它做計(jì)量級(jí)測(cè)溫還得多校準(zhǔn)。2.4 存儲(chǔ)、通信與調(diào)試不多不少夠用且直接ADuC7024 集成 62KB 片內(nèi) Flash 和 8KB SRAM。這個(gè)容量在跑 RTOS 的大項(xiàng)目里很緊張但對(duì)單通道數(shù)據(jù)采集、PID 控制、協(xié)議棧精簡(jiǎn)的工業(yè)應(yīng)用來(lái)說(shuō)足夠。我的一個(gè) 4-20mA 變送器固件包含濾波、標(biāo)定、Modbus 簡(jiǎn)版協(xié)議和 ADC 驅(qū)動(dòng)整體 Flash 占用還不到一半。通信接口有 UART、SPI、I2C 三件套工業(yè)上常用的串口橋接、傳感器讀取、EEPROM 擴(kuò)展都能覆蓋。GPIO 數(shù)量不算多但足夠處理幾個(gè)按鍵、LED、繼電器控制邏輯。調(diào)試接口是標(biāo)準(zhǔn) JTAG配合支持 ARM7 的調(diào)試器就能在線看變量、斷點(diǎn)調(diào)試。這個(gè)組合一點(diǎn)不花哨卻非常貼近工業(yè)設(shè)備的真實(shí)需求。3. 上手路線工具鏈、最小系統(tǒng)和一次 ADC 采集的完整過(guò)程3.1 開(kāi)發(fā)工具與例程別自己從頭造輪子ADI 為 ADuC702x 系列提供了官方的 QuickStart 開(kāi)發(fā)套件和例程包里面包含了最小系統(tǒng)原理圖、驅(qū)動(dòng)代碼和評(píng)估板文件。我建議第一次評(píng)估的人直接拿官方評(píng)估板跑例程而不是急著畫板子。先跑通一次 ADC 采集、一次 DAC 輸出、一次串口打印建立對(duì)芯片行為的直覺(jué)再回到自己的應(yīng)用項(xiàng)目里做裁剪。IDE 方面Keil MDK 和 IAR EWARM 都支持 ARM7 內(nèi)核網(wǎng)上能找到不少 ADuC702x 的工程模板。用這類老內(nèi)核芯片最大的陷阱是你可能會(huì)把 STM32 的寄存器習(xí)慣套過(guò)來(lái)。ADuC7024 的外設(shè)寄存器結(jié)構(gòu)是 ADI 自己的風(fēng)格和 ARM 內(nèi)核無(wú)關(guān)必須打開(kāi)數(shù)據(jù)手冊(cè)的寄存器章節(jié)逐個(gè)字段確認(rèn)。3.2 最小系統(tǒng)電路哪些引腳不能省我畫 ADuC7024 最小系統(tǒng)板時(shí)核心器件清單大概是這樣電源芯片輸出 3.3V 給 DVDD 和 AVDD每個(gè)電源引腳都放 0.1μF 陶瓷電容模擬電源再并聯(lián) 10μF 鉭電容32.768kHz 晶振加兩個(gè)負(fù)載電容復(fù)位引腳接外部復(fù)位芯片或 RC 復(fù)位JTAG 接口引出 SWD 之外的完整 TMS、TCK、TDI、TDO 和復(fù)位線ADC 參考引腳無(wú)論用內(nèi)部還是外部基準(zhǔn)都放 0.1μF 1μF 去耦電容。模擬輸入引腳要根據(jù)傳感器輸出類型決定是否加運(yùn)放緩沖和 RC 低通。我的習(xí)慣是如果源阻抗超過(guò) 1kΩ就在輸入引腳前加一個(gè)低失調(diào)運(yùn)放做電壓跟隨再串一個(gè) 100Ω 電阻進(jìn)芯片配合 1nF 電容組成高頻濾波。而且模擬輸入走線要盡量短、盡量寬不要和數(shù)字信號(hào)長(zhǎng)距離平行。3.3 一個(gè)可落地的 ADC 采集流程示例下面的代碼表達(dá)的是核心流程寄存器名以芯片手冊(cè)為準(zhǔn)。流程本身不分廠家基本都遵循“選通道→配增益→定參考→觸發(fā)轉(zhuǎn)換→等待標(biāo)志→讀數(shù)據(jù)”的順序。void adc_init(void) { // 1. 先把PLL配置好給內(nèi)核和ADC時(shí)鐘一個(gè)穩(wěn)定來(lái)源 // 從32.768kHz倍頻到目標(biāo)主頻等待PLL鎖定 // 2. 選擇內(nèi)部基準(zhǔn)2.5V或切換外部基準(zhǔn)引腳 // 3. 設(shè)置PGA增益?zhèn)鞲衅餍盘?hào)小就選8/16倍 // 4. 選軟件觸發(fā)模式方便手動(dòng)控制轉(zhuǎn)換節(jié)奏 } uint16_t adc_read_single(uint8_t ch, uint8_t gain) { // 切換模擬輸入通道設(shè)置增益 // 啟動(dòng)一次ADC轉(zhuǎn)換 // 等待轉(zhuǎn)換完成標(biāo)志位置位 // 讀取結(jié)果寄存器并返回12位數(shù)據(jù) return (uint16_t)0x0FFF adc_data; } void app_poll_adc(void) { float mv; uint16_t raw adc_read_single(0, 1); // 12位ADC參考電壓2.5V無(wú)增益時(shí)滿量程0~2.5V mv (float)raw * 2500.0f / 4095.0f; // 如果用了PGA增益8則換算后還要再除以8 // mv / 8.0f; }這段代碼看起來(lái)簡(jiǎn)單但第一次寫的時(shí)候很容易漏掉“轉(zhuǎn)換啟動(dòng)后要等標(biāo)志位”這件事。如果不等轉(zhuǎn)換完成直接讀結(jié)果讀到的很可能是上一輪通道的舊數(shù)據(jù)。多通道輪詢應(yīng)用里還要額外注意通道切換后的建立時(shí)間切換通道不能立刻啟動(dòng)轉(zhuǎn)換。3.4 電壓反算與標(biāo)定讓測(cè)量值更接近真理實(shí)際傳感器系統(tǒng)里參考電壓不是天文數(shù)字一樣精準(zhǔn)的 2.500V它會(huì)有出廠偏差和溫漂ADC 自身也有增益誤差和失調(diào)誤差。好的設(shè)計(jì)會(huì)在軟件里保存兩個(gè)校準(zhǔn)系數(shù)零點(diǎn)偏移和滿量程增益。出廠校準(zhǔn)時(shí)輸入端短路測(cè)量零點(diǎn)輸入端接入精確標(biāo)準(zhǔn)電壓測(cè)量滿量程然后把兩點(diǎn)擬合的斜率和截距寫進(jìn) Flash。我慣用的標(biāo)定數(shù)據(jù)結(jié)構(gòu)長(zhǎng)這樣typedef struct { float gain; // 實(shí)際增益修正系數(shù) float offset; // 零點(diǎn)電壓偏移單位mV } calib_param_t;采集后換算公式就是real_mv (raw * k_coeff) offset其中k_coeff由兩點(diǎn)標(biāo)定算出。這套方法在 ADuC7024 這類芯片上效果明顯——未校準(zhǔn)時(shí) 12 位系統(tǒng)實(shí)測(cè)可能偏差十幾個(gè) LSB兩點(diǎn)校正后能做到 1-2 個(gè) LSB 以內(nèi)。如果用戶要求更高還需要做正反兩個(gè)方向的二點(diǎn)校準(zhǔn)把滯回和線性誤差都?jí)合氯ァ?. 實(shí)測(cè)中踩過(guò)的坑布板與模擬性能的勝負(fù)手4.1 地平面與電源去耦模擬精度的頭號(hào)隱形殺手我第一版 ADuC7024 評(píng)估板為了省事把模擬部分和數(shù)字部分鋪在同一塊完整地平面上ADC 結(jié)果在屏幕上跳得我心驚膽戰(zhàn)峰峰值噪聲到了 ±4 個(gè) LSB。后來(lái)把板子重新切掉一塊數(shù)字地AVDD 和 DVDD 分別經(jīng)過(guò)磁珠匯合模擬區(qū)域只在底層一點(diǎn)連接ADC 噪聲降到了 ±1 個(gè) LSB 左右。經(jīng)驗(yàn)是ADuC7024 這類精密模擬芯片適合用“分區(qū)但不割裂”的布板方式。模擬地和數(shù)字地概念上要分開(kāi)但最終還是要通過(guò)低阻抗方式在一點(diǎn)匯合千萬(wàn)不要讓數(shù)字地回路單獨(dú)繞一大圈回到芯片。去耦電容必須緊貼芯片電源引腳電容到 VIA 的走線越長(zhǎng)退耦效果越差。4.2 內(nèi)部基準(zhǔn)真的夠用嗎溫漂是最大的敵人片內(nèi)基準(zhǔn)省事但你別指望它達(dá)到外部基準(zhǔn)的水準(zhǔn)。我的一個(gè)項(xiàng)目要求全溫區(qū)電壓測(cè)量誤差小于 0.1%用的是內(nèi)部基準(zhǔn)。常溫下校準(zhǔn)后沒(méi)問(wèn)題溫度箱從 25℃ 拉到 85℃ 時(shí)誤差明顯超差。換成外部精密基準(zhǔn)并把 ADC 參考配置改為外部引腳之后數(shù)據(jù)才壓回規(guī)格內(nèi)。所以選基準(zhǔn)源時(shí)我會(huì)先看系統(tǒng)全溫區(qū)精度預(yù)算。只做常溫臺(tái)式儀器內(nèi)部基準(zhǔn)完全可行做工業(yè)現(xiàn)場(chǎng)變送器最好直接預(yù)留外部基準(zhǔn)的位置。參考電壓引腳上的去耦電容要用低 ESR 陶瓷電容靠近引腳放置并且在基準(zhǔn)源兩端加 0.1μF 與 1μF 組合。4.3 輸入阻抗、采樣保持與建立時(shí)間SAR ADC 的小脾氣SAR ADC 在采樣階段會(huì)把內(nèi)部采樣電容接到輸入引腳上瞬間抽取電荷。如果源阻抗太大電容還沒(méi)充滿就開(kāi)始逐位比較結(jié)果一定偏。這個(gè)問(wèn)題在小信號(hào)高增益場(chǎng)景下尤其嚴(yán)重。我踩過(guò)的一個(gè)坑是用幾十 kΩ 的分壓電阻直接測(cè)高壓。分壓電阻網(wǎng)絡(luò)等效源阻抗很高ADC 采樣周期只有 1μs 量級(jí)等效 RC 充電時(shí)間根本不夠測(cè)出來(lái)的電壓整體偏低。解決辦法有兩個(gè)一是把分壓電阻阻值整體降下來(lái)同時(shí)加大分壓電容補(bǔ)償二是在 ADC 輸入前加一個(gè)低失調(diào)運(yùn)放做緩沖。運(yùn)放的偏置電流和失調(diào)電壓指標(biāo)要匹配傳感器的輸出等級(jí)不能隨手拿一顆通用運(yùn)放就上。4.4 看門狗、復(fù)位與 Flash 操作現(xiàn)場(chǎng)穩(wěn)定的最后防線工業(yè)現(xiàn)場(chǎng)真正的敵人是靜電、浪涌和電磁干擾。ADuC7024 如果只靠?jī)?nèi)部看門狗抗住強(qiáng)干擾復(fù)位后程序可能從一個(gè)不干凈的狀態(tài)起來(lái)。我自己的做法是外部加電壓監(jiān)測(cè)復(fù)位芯片復(fù)位閾值選在 3.0V 左右同時(shí)配置獨(dú)立看門狗喂狗周期避開(kāi)所有長(zhǎng)時(shí)間阻塞操作。還有一條經(jīng)驗(yàn)不要在 ADC 關(guān)鍵采集代碼段里做 Flash 擦寫。片內(nèi) Flash 擦寫時(shí)內(nèi)部高壓充電泵工作會(huì)對(duì)模擬電源產(chǎn)生擾動(dòng)可能讓正在進(jìn)行的轉(zhuǎn)換結(jié)果變差。需要存儲(chǔ)標(biāo)定參數(shù)時(shí)先校準(zhǔn)完并緩存到 SRAM等采集任務(wù)空閑或低優(yōu)先級(jí)時(shí)再批量寫入 Flash。這個(gè)習(xí)慣幫我避免了很多“測(cè)量值偶爾跳一大截”的詭異故障。5. 選型對(duì)照和通用 MCU、更高精度方案怎么取舍5.1 ADuC7024 與 STM32H743 的正面比較不少工程師會(huì)拿 ADuC7024 和 STM32H743 這類高性能 MCU 對(duì)比說(shuō)實(shí)話兩者根本不是同一物種但還是可以列一張表把差異說(shuō)清。維度ADuC7024STM32H743內(nèi)核ARM7TDMI40MHz 量級(jí)Cortex-M7480MHz模擬前端片內(nèi) 12 位 1MSPS ADC、PGA、基準(zhǔn)源、DAC、溫度傳感器片內(nèi)也有 ADC但基準(zhǔn)、PGA、信號(hào)鏈集成度不如精密模擬專用芯片存儲(chǔ)62KB Flash / 8KB SRAM最高約 2MB Flash / 1MB RAM主要外設(shè)UART、SPI、I2C、定時(shí)器、JTAG高速通訊、大量定時(shí)器、DMA、圖形加速、USB、Ethernet 等設(shè)計(jì)目標(biāo)精密模擬測(cè)量 控制高性能計(jì)算、復(fù)雜系統(tǒng)開(kāi)發(fā)生態(tài)工業(yè)模擬資料扎實(shí)資料量不如主流 MCU 龐大社區(qū)資料極豐富例程遍地適用系統(tǒng)4-20mA 變送器、便攜儀表、傳感器采集人機(jī)界面、邊緣信號(hào)處理、復(fù)雜協(xié)議網(wǎng)關(guān)用 H743 做模擬采集也不是不行但你把真正的高精度信號(hào)鏈搭建出來(lái)要下的功夫比直接用 ADuC7024 大得多。反過(guò)來(lái)想在 ADuC7024 上跑復(fù)雜算法或圖形界面也不是合理選擇。選型第一件事是認(rèn)清項(xiàng)目瓶頸瓶頸在模擬鏈路的精度與可靠性就靠近 ADuC7024瓶頸在算力、生態(tài)和復(fù)雜系統(tǒng)集成就靠近 H743。5.2 四個(gè)最適合 ADuC7024 的場(chǎng)景最典型的場(chǎng)景第一名是 4-20mA 兩線制變送器。系統(tǒng)需要低功耗、單芯片模擬鏈路、DAC 輸出或 PWM 驅(qū)動(dòng)環(huán)路ADuC7024 的模擬外設(shè)幾乎為這類應(yīng)用量身定做。第二名是溫度、壓力、應(yīng)變這些微弱信號(hào)采集。RTD 和熱電偶輸出信號(hào)很小片內(nèi) PGA 可以把信號(hào)放大到 ADC 合適量程省掉外置儀表放大器。第三名是電池組電壓監(jiān)測(cè)、電源模塊的電壓電流閉環(huán)控制這類系統(tǒng)采樣速度不需要太快但精度要穩(wěn)定。第四名是便攜式測(cè)量?jī)x器單芯片意味著 BOM 簡(jiǎn)單、體積小、故障率低非常貼合產(chǎn)品化需求。5.3 買不到料怎么辦替代與遷移的思路如果你因?yàn)楣?yīng)鏈原因買不到 ADuC7024可以考慮同家族的 ADuC7020、ADuC7026、ADuC7028 等型號(hào)它們的引腳和軟件在多數(shù)外設(shè)上可以平滑遷移。如果你的需求不是“模擬控制”而是“更高精度的低速采集”ADI 后期的 ADuCM 系列使用 Cortex-M3 內(nèi)核甚至集成 24 位 Σ-Δ ADC適合稱重、溫度精密測(cè)量。它們的軟件框架和調(diào)試手段比 ARM7 時(shí)代舒服不少。如果不得不轉(zhuǎn)向通用 MCU 平臺(tái)我的建議是先把信號(hào)鏈拆開(kāi)外部 16 位 ADC 精密基準(zhǔn) 前級(jí)運(yùn)放再寫驅(qū)動(dòng)和校準(zhǔn)。這樣每顆器件的指標(biāo)可控但系統(tǒng)成本、面積和調(diào)試復(fù)雜度都會(huì)明顯上升??傮w來(lái)說(shuō)ADuC7024 這類芯片的價(jià)值不在“新”而在“?!痹u(píng)估時(shí)別忘了把開(kāi)發(fā)時(shí)間也算進(jìn)成本。最后說(shuō)一點(diǎn)我自己的體會(huì)用 ADuC7024 這類精密模擬微控制器最終能否達(dá)到標(biāo)稱精度一半看芯片一半看布板和校準(zhǔn)。它不像普通 MCU 那樣跑個(gè)流水燈就是成功你要用對(duì)待儀表的態(tài)度去對(duì)待它。如果你手上有這顆芯片的項(xiàng)目先從干凈電源、單點(diǎn)接地、兩點(diǎn)標(biāo)定開(kāi)始整改大概率能收獲驚喜。