戰(zhàn):從射頻匹配到低功耗設(shè)計(jì))
STM32WL5x系列估計(jì)很多做物聯(lián)網(wǎng)的老哥已經(jīng)盯了很久了。這芯片最大的特點(diǎn)是它把sub-GHz無線電直接塞進(jìn)了MCU里而且是雙核Arm Cortex-M4M0的架構(gòu)跑協(xié)議棧與跑應(yīng)用各干各的互不干擾。配合LoRa、FSK、GFSK、MSK等調(diào)制方式一顆芯片就能搞定遠(yuǎn)距離低功耗無線通信。作為一個(gè)從早期就接觸無線模塊后來被通訊距離折磨過的人看到這顆料的時(shí)候第一反應(yīng)是終于不用再外掛SX126x這樣單獨(dú)的射頻芯片去堆硬件了。當(dāng)然集成度越高參考手冊(cè)越厚踩坑的地方也越多。所以這篇我把手冊(cè)里比較關(guān)鍵的思路和實(shí)際調(diào)板經(jīng)驗(yàn)結(jié)合起來聊聊STM32WL5x這套sub-GHz方案到底怎么落地。1. 為什么是sub-GHz從無線選頻到STM32WL5x的定位提示如果你做的是室內(nèi)短距設(shè)備2.4GHz可能夠用但凡是涉及園區(qū)、農(nóng)場(chǎng)、煙囪表計(jì)、環(huán)境監(jiān)測(cè)這類場(chǎng)景sub-GHz的穿透性和繞射能力是剛性的需求。1.1 sub-GHz與2.4GHz差異的直觀對(duì)比先看一張常用對(duì)比表雖然不夠嚴(yán)謹(jǐn)?shù)奖闳腴T。頻段波長(zhǎng)特點(diǎn)典型應(yīng)用優(yōu)勢(shì)劣勢(shì)2.4GHz波長(zhǎng)短衰減大WiFi、BLE、Zigbee頻段免授權(quán)、速率高墻厚一點(diǎn)就丟包同頻干擾多433/470/868/915MHz波長(zhǎng)較長(zhǎng)繞射強(qiáng)LoRa、FSK遙測(cè)、工業(yè)表計(jì)覆蓋遠(yuǎn)、穿透好數(shù)據(jù)速率低天線尺寸偏大實(shí)際選型時(shí)我們更關(guān)心的是“鏈路預(yù)算”。同樣的發(fā)射功率sub-GHz的頻率每降低一半自由空間路徑損耗會(huì)小6dB左右。而參考手冊(cè)里STM32WL5x的發(fā)射功率最高可以配置到22 dBm接收靈敏度大概在-141 dBm這一級(jí)別超低速率下的LoRa模式。簡(jiǎn)單算一下鏈路預(yù)算能到163dB左右這在野外幾公里的通信是有可能的。所以這顆料并不是要取代高頻短距連接而是專門為廣覆蓋、低速率、電池供電的設(shè)備設(shè)計(jì)的。1.2 STM32WL5x的雙核設(shè)計(jì)解決了什么參考手冊(cè)開篇就會(huì)講這個(gè)內(nèi)部架構(gòu)。Cortex-M4作為主核跑應(yīng)用和網(wǎng)絡(luò)協(xié)議棧比如LoRaWANCortex-M0作為副核專門管理無線電。ST這樣設(shè)計(jì)的邏輯在于無線電的調(diào)度時(shí)隙極其嚴(yán)格尤其LoRaWAN Class B這種需要定時(shí)收發(fā)窗口的功能如果和應(yīng)用邏輯混在一起很容易因?yàn)橹袛鄡?yōu)先級(jí)、任務(wù)搶占導(dǎo)致收發(fā)超時(shí)。M0把射頻事務(wù)“托管”之后M4只管業(yè)務(wù)數(shù)據(jù)開發(fā)難度直接降一個(gè)臺(tái)階。這跟以前用單片機(jī)上定時(shí)器去控制SX1278模塊的狀態(tài)機(jī)完全是兩種體驗(yàn)。以前我每次切換接收/發(fā)射都要算準(zhǔn)時(shí)間還得防著被別的中斷打斷。現(xiàn)在副核自動(dòng)管理狀態(tài)機(jī)主核只需要往寄存器里寫好數(shù)據(jù)包等著中斷回來就行。雙核共享一塊RAM通過硬件信號(hào)量同步避免了雙核同時(shí)寫同一區(qū)域的問題。手冊(cè)里有專門的mailbox機(jī)制說明這部分建議細(xì)讀因?yàn)閿?shù)據(jù)進(jìn)出射頻緩沖區(qū)必須要走“發(fā)送請(qǐng)求—釋放緩沖—更新統(tǒng)計(jì)”的流程不太能隨意繞過。1.3 參考手冊(cè)里藏著哪些關(guān)鍵章節(jié)STM32WL5x的參考手冊(cè)RM0461加起來一千多頁。做產(chǎn)品的建議不要從頭讀。我通常先看這三塊第一個(gè)是電源管理章節(jié)因?yàn)樯漕l發(fā)射瞬間電流會(huì)往上沖需要設(shè)計(jì)好穩(wěn)壓退耦第二個(gè)是“Radio”外設(shè)寄存器描述因?yàn)閷戲?qū)動(dòng)的人離不開它第三個(gè)是“RF subsystem”部分的調(diào)頻與匹配指南尤其是匹配網(wǎng)絡(luò)計(jì)算??赐赀@三個(gè)其他的比如GPIO、DMA、SPI都是通用外設(shè)按需查表就行。2. 核心細(xì)節(jié)解析射頻前端、匹配網(wǎng)絡(luò)與天線設(shè)計(jì)這部分是很多人在原理圖階段就翻車的地方。STM32WL5x雖然把射頻收發(fā)器集成進(jìn)去了但射頻前端PA、LNA的匹配網(wǎng)絡(luò)和天線還是需要自己做。手冊(cè)給出的一堆電感電容值不是隨便抄就完事必須按實(shí)際板子的疊層和PCB寄生參數(shù)調(diào)整。2.1 RF_TX/RF_RX引腳和匹配電路原理找ST官方推薦的參考設(shè)計(jì)通常RF部分只用了兩個(gè)引腳一個(gè)用于發(fā)射一個(gè)用于接收再加上一個(gè)RFIRF input引腳。發(fā)射路徑經(jīng)過一個(gè)不平衡變壓器balun把單片機(jī)的差分輸出轉(zhuǎn)成單端50歐。接收路徑則通過一個(gè)匹配網(wǎng)絡(luò)把天線端的高阻抗匹配到接收機(jī)內(nèi)部低噪聲放大器的輸入。為什么必須匹配你可以把射頻功率想象成水管里流動(dòng)的水。管徑突變水流就會(huì)在接頭處反射實(shí)際送進(jìn)水缸的流量變小。頻率越高這種阻抗不匹配造成的反射損耗越明顯。在sub-GHz頻段微帶線或元件的寄生電容、電感對(duì)匹配影響極大所以這也是為什么抄參考設(shè)計(jì)的時(shí)候連走線的寬度和過孔位置都要盡量保持一致。2.2 板材、走線與元件選型經(jīng)驗(yàn)做無線產(chǎn)品PCB的板材盡量選FR4高頻版本或者Rogers混壓至少保證介質(zhì)損耗角正切不要太大。對(duì)于433MHz普通FR4勉強(qiáng)能跑但868MHz/915MHz時(shí)介質(zhì)損耗就會(huì)開始限制靈敏度。另外RF走線必須短盡量一層走完不要跨層不要走直角過孔要打在地包圍的旁邊。參考手冊(cè)和AN5405里都專門講過這些規(guī)則。元件選型方面匹配網(wǎng)絡(luò)里的電感最好選高Q值的高頻電感例如線藝Coilcraft0402系列電容用NP0/C0G材質(zhì)。普通多層陶瓷電容MLCC用在高頻諧振回路里容易發(fā)熱Q值差而且容值會(huì)隨DC偏置變化。手冊(cè)里給出的所有匹配網(wǎng)絡(luò)參數(shù)都是在規(guī)定寄生下的參考值實(shí)際量產(chǎn)后通常需要使用網(wǎng)絡(luò)分析儀或至少用頻譜儀加電橋微調(diào)。2.3 天線設(shè)計(jì)的落地要點(diǎn)天線是整個(gè)鏈路里又關(guān)鍵又玄學(xué)的一環(huán)。手冊(cè)雖然不會(huì)教你怎么畫天線但會(huì)給出天線的阻抗要求通常50歐。你可以用彈簧天線、PCB天線、外置膠棒天線。如果是做窄帶產(chǎn)品建議直接用SMA座外接天線調(diào)試方便。如果為了降成本做板載天線就參考ST的參考設(shè)計(jì)盡量用倒F天線IFA或螺旋天線。倒F天線這個(gè)結(jié)構(gòu)在PCB上就一段走線加一個(gè)接地腳調(diào)參主要看輻射臂長(zhǎng)度和距離地平面的距離。一個(gè)經(jīng)驗(yàn)是用網(wǎng)分實(shí)測(cè)回波損耗S11在目標(biāo)頻點(diǎn)低于-10dB基本能用不到就剪天線短一點(diǎn)或加長(zhǎng)一點(diǎn)一點(diǎn)一點(diǎn)來。要注意天線下面不能鋪銅四周保持凈空這也直接決定輻射效率。2.4 參考手冊(cè)里的頻段配置范圍STM32WL5x可以工作在150MHz到960MHz的連續(xù)頻段。這個(gè)范圍覆蓋了全球主流的ISM頻段433MHz、470MHz國(guó)內(nèi)計(jì)量較多、868MHz歐洲、915MHz北美。配置時(shí)通過Radio控制器設(shè)置中心頻率和帶寬。需要注意的是不同國(guó)家有對(duì)應(yīng)的法規(guī)與發(fā)射功率限制。我在實(shí)際項(xiàng)目里會(huì)先查當(dāng)?shù)責(zé)o線電管理機(jī)構(gòu)的規(guī)定別等到樣品送檢才發(fā)現(xiàn)頻率超標(biāo)那就得重新改匹配網(wǎng)絡(luò)。3. 實(shí)操過程用STM32WL5x搭建一個(gè)LoRa點(diǎn)對(duì)點(diǎn)通信工程紙上談兵不如跑一遍。下面我以一個(gè)簡(jiǎn)單的兩個(gè)節(jié)點(diǎn)互聯(lián)為例說明從CubeMX到收發(fā)的基本流程。這里假設(shè)你已經(jīng)有了一塊NUCLEO-WL55JC開發(fā)板或者自己畫的板子。3.1 CubeMX配置與初始化Radio用STM32CubeMX新建工程后選擇STM32WL55JCI單片機(jī)。在“Categories”里可以找到“SubGHz_Phy”這是ST提供的Sub-GHz物理層驅(qū)動(dòng)中間件。啟用它并配置如下關(guān)鍵參數(shù)Frequency470000000或者根據(jù)本地頻段設(shè)Modulation使用LoRaTX Power14 dBm調(diào)試階段先別上滿功率Bandwidth125 kHzSpread FactorSF7Coding Rate4/5設(shè)置完記得把“Radio Active Mode”設(shè)為Sleep或Standby根據(jù)功耗需求來。CubeMX會(huì)自動(dòng)生成初始化代碼但是建議手動(dòng)檢查一下射頻部分的GPIO默認(rèn)狀態(tài)比如RF_SW的開關(guān)控制。3.2 發(fā)送端的關(guān)鍵代碼片段使用ST的SubGHz_Phy驅(qū)動(dòng)發(fā)送過程一般長(zhǎng)這樣uint8_t tx_buffer[32] hello sub-ghz; Radio.SetTxConfig(MODEM_LORA, TX_TIME_OUT, 0, 0, 0, 0, TX_POWER); Radio.Send(tx_buffer, sizeof(tx_buffer));關(guān)鍵在SetTxConfig的各個(gè)參數(shù)分別對(duì)應(yīng)超時(shí)時(shí)間、包格式、數(shù)據(jù)長(zhǎng)度、單個(gè)包的前導(dǎo)碼長(zhǎng)度等。很多新手不設(shè)置超時(shí)一旦鏈路沒建立程序就卡在發(fā)送狀態(tài)后面全亂套。建議把超時(shí)設(shè)為0表示無限等待或者設(shè)一個(gè)具體毫秒數(shù)超時(shí)后驅(qū)動(dòng)會(huì)回調(diào)錯(cuò)誤事件。發(fā)送完成會(huì)進(jìn)入Radio事件回調(diào)void Radio_Events(void) { // process event, e.g. set tx_done_flag }在這個(gè)回調(diào)里做狀態(tài)置位再回到主循環(huán)處理后續(xù)業(yè)務(wù)不要把復(fù)雜的邏輯塞進(jìn)去?;卣{(diào)是中斷上下文執(zhí)行時(shí)間長(zhǎng)了會(huì)讓射頻收到新的中斷時(shí)響應(yīng)變慢。3.3 接收端配置與注意事項(xiàng)接收端在初始化時(shí)設(shè)置接收配置然后進(jìn)入Rx模式Radio.SetRxConfig(MODEM_LORA, 0, 0, 0, 0, 0, 0, 0, 0, false, 0, 0, 0, 0); Radio.SetRxTimeOut(0); // 單次接收需要超時(shí)0表示一直等待 Radio.Rx(0);比較關(guān)鍵的是前導(dǎo)碼、包頭格式和同步字必須與發(fā)送端匹配。LoRa模式下同一速率、同一頻點(diǎn)但同步字不同也不會(huì)解出數(shù)據(jù)。這一點(diǎn)經(jīng)常被忽略兩塊板子明明都可以發(fā)射就是收不到對(duì)方的包結(jié)果查了一晚上發(fā)現(xiàn)一個(gè)同步字配置是0x12另一個(gè)是0x34。接收完一幀數(shù)據(jù)在回調(diào)里拿到長(zhǎng)度和緩沖區(qū)復(fù)制到自己的數(shù)組里盡快處理。因?yàn)轵?qū)動(dòng)層緩沖被設(shè)計(jì)成環(huán)形如果業(yè)務(wù)處理太慢后續(xù)的包會(huì)覆蓋之前的造成數(shù)據(jù)丟失。建議做一個(gè)簡(jiǎn)單的隊(duì)列把數(shù)據(jù)包從Radio庫的buffer中拷貝到自己的FIFO中。3.4 低功耗收發(fā)與喚醒機(jī)制如果做電池供電不能一直讓接收機(jī)工作。接收模式下電流一般都在幾毫安到十幾毫安不是特別低所以需要配合周期喚醒或者CAD信道活動(dòng)檢測(cè)。STM32WL5x的Radio外設(shè)支持CAD模式在監(jiān)聽LoRa前導(dǎo)碼時(shí)候功耗相對(duì)低。CAD的原理是周期性掃描信道檢測(cè)到前導(dǎo)碼再切到完整接收這樣大部分時(shí)間都在休息。參考手冊(cè)里對(duì)CAD的時(shí)間參數(shù)有詳細(xì)說明。實(shí)際測(cè)試下來CAD一次大概需要2個(gè)符號(hào)時(shí)間。如果帶寬125kHz、SF7一個(gè)符號(hào)時(shí)間約1ms多一點(diǎn)那么CAD約2~3ms配合占空比控制能把平均接收電流壓到幾十微安。這種參數(shù)搭配需要根據(jù)實(shí)際業(yè)務(wù)去調(diào)沒有萬能的模板只能實(shí)測(cè)。4. 常見問題與排查技巧實(shí)錄調(diào)射頻最容易讓人頭禿的幾個(gè)問題我挑典型的出來講講。4.1 發(fā)射功率上不去實(shí)際測(cè)到的功率比配置的少10dB最常見的原因是電源供電不足。發(fā)射瞬間電流可能達(dá)到幾百毫安如果電池或LDO輸出能力不夠電壓被拉低PA就會(huì)限制輸出。解決方法是測(cè)發(fā)射瞬間VDD波形看有沒有跌落。另外檢查PA的供電引腳是否接了足夠容量的電容通常RF部分要單獨(dú)放一個(gè)10uF100nF的退耦組合。其次看匹配網(wǎng)絡(luò)是否按頻段設(shè)計(jì)。有些工程師做了433MHz的板子硬要在868MHz上跑匹配當(dāng)然不工作。此時(shí)回波損耗高功率反射回芯片輕則功率低重則損壞PA。4.2 接收靈敏度差誤碼率超標(biāo)先排除天線因素。用矢量網(wǎng)絡(luò)分析儀VNA測(cè)天線S11確認(rèn)在目標(biāo)頻點(diǎn)的回波損耗小于-10dB。若沒有VNA一個(gè)簡(jiǎn)易的辦法是用頻譜儀加一個(gè)信號(hào)源直接測(cè)天線端接收到的信號(hào)強(qiáng)度和示例板對(duì)比。如果差距大說明匹配沒有調(diào)整好。還有一個(gè)常被忽略的是晶振頻率校準(zhǔn)。STM32WL5x內(nèi)部有TCXO或外部晶振頻率偏移會(huì)導(dǎo)致通道失諧。如果接收機(jī)在離中心頻點(diǎn)幾十kHz的地方就解不出數(shù)據(jù)那先檢查晶振精度和電容負(fù)載配置。參考手冊(cè)中有頻率誤差補(bǔ)償寄存器的寫入步驟可以用已知信號(hào)源標(biāo)定。4.3 通信距離近隔一堵墻就沒信號(hào)距離近通常不是單點(diǎn)的問題。發(fā)射功率、天線效率、接收靈敏度、數(shù)據(jù)速率都影響鏈路。首先把SF調(diào)高比如從SF7改到SF12。雖然速率變低但靈敏度會(huì)提升好幾dB距離也有顯著改善。其次確認(rèn)自己是否用了擴(kuò)頻因子不同導(dǎo)致的“同頻失配”LoRa要求通信雙方SF一致。第三看天線與地面夾角手持設(shè)備的話天線方向性也要留意。4.4 收發(fā)不同步、經(jīng)常丟第一包LoRa網(wǎng)絡(luò)里對(duì)時(shí)間對(duì)齊比較敏感。如果收發(fā)模式切換太快或者發(fā)射完成后立刻切接收余輝可能會(huì)導(dǎo)致起始數(shù)據(jù)缺失??梢栽诎l(fā)送完成和接收之間插入一個(gè)簡(jiǎn)單的延時(shí)比如2ms等待射頻前端完全釋放。另外檢查RF開關(guān)切換的GPIO邏輯發(fā)射時(shí)切換到PA路徑接收時(shí)切換到LNA路徑邏輯搞反了也會(huì)丟包。5. 從官方方案到實(shí)際應(yīng)用的擴(kuò)展思考參考手冊(cè)畢竟是手冊(cè)但產(chǎn)品落地時(shí)往往還要結(jié)合應(yīng)用場(chǎng)景做很多周邊設(shè)計(jì)。比如無線電愛好者喜歡討論的頻譜監(jiān)測(cè)、SDR之類STM32WL5x的Radio外設(shè)其實(shí)也可以用來做一些簡(jiǎn)單的定制頻譜分析。但要注意無線電發(fā)射、監(jiān)測(cè)設(shè)備在不同地區(qū)有嚴(yán)格的管理要求個(gè)人實(shí)驗(yàn)請(qǐng)務(wù)必遵守當(dāng)?shù)胤ㄒ?guī)使用合法頻段和功率并取得相應(yīng)操作許可。5.1 如何借助手冊(cè)做產(chǎn)品級(jí)低功耗設(shè)計(jì)我習(xí)慣先列一個(gè)功耗賬單把每個(gè)狀態(tài)下的電流和時(shí)間填進(jìn)去。無線通信設(shè)備的平均功耗主要由三部分決定休眠電流、喚醒時(shí)間和通信電流。STM32WL5x手冊(cè)里提供了Stop模式的低功耗參數(shù)配合Radio的Sleep狀態(tài)可以在大部分時(shí)間處于微安級(jí)。但在實(shí)際中必須注意外設(shè)的漏電。一個(gè)上拉電阻沒處理好就把省下的功耗吃回去了。用我們的功耗分析儀實(shí)測(cè)時(shí)經(jīng)常發(fā)現(xiàn)電路板在休眠狀態(tài)下還有幾十微安漏電最后定位到是某個(gè)傳感器的電源沒有完全切斷。如果你做的是燃?xì)獗怼⑺磉@類超低功耗設(shè)備建議把整個(gè)板按功能區(qū)隔供電射頻部分、傳感器部分和主控部分用MOS管或負(fù)載開關(guān)分開。射頻模塊只在發(fā)送時(shí)才上電發(fā)送完立刻斷電這樣能明顯拉長(zhǎng)電池壽命。5.2 網(wǎng)絡(luò)協(xié)議棧的選擇LoRaWAN、Sigfox還是私有協(xié)議STM32WL5x可以跑LoRaWAN也支持Sigfox還可以自定義私有協(xié)議。選擇不能只看通信距離還要看功耗、成本、網(wǎng)絡(luò)所有權(quán)。協(xié)議優(yōu)勢(shì)劣勢(shì)適合場(chǎng)景LoRaWAN廣覆蓋、標(biāo)準(zhǔn)生態(tài)、節(jié)點(diǎn)省電需要網(wǎng)關(guān)有占空比限制智慧城市、農(nóng)業(yè)、水氣表Sigfox極簡(jiǎn)、超低功耗部分地區(qū)基站覆蓋有限依賴運(yùn)營(yíng)商簡(jiǎn)單上報(bào)類設(shè)備私有協(xié)議自由度高、無服務(wù)費(fèi)需自己管理碰撞與功耗點(diǎn)對(duì)點(diǎn)應(yīng)急通信、工廠內(nèi)部從開發(fā)速度角度來看LoRaWAN現(xiàn)成SDK能省很多事但如果你的場(chǎng)景是固定點(diǎn)對(duì)點(diǎn)穿透測(cè)試私有協(xié)議反而更靈活能直接控制包格式和重傳策略。5.3 結(jié)合SDR與頻譜監(jiān)測(cè)的頭腦風(fēng)暴很多無線電發(fā)燒友會(huì)關(guān)注SDR接收機(jī)聽FM廣播、航空波段等這屬于接收范疇相對(duì)風(fēng)險(xiǎn)較小。STM32WL5x畢竟不是一臺(tái)全雙工SDR它的Radio只能按配置的調(diào)制方式收發(fā)不能像真正的軟件無線電那樣隨意解調(diào)任意信號(hào)。不過可以用它做窄帶頻譜掃描器比如在470~470.2MHz之間逐頻點(diǎn)測(cè)量RSSI把數(shù)據(jù)傳送到上位機(jī)畫頻譜圖。這種應(yīng)用特別適合無線環(huán)境調(diào)查、干擾源定位。如果確實(shí)需要寬頻段SDR還是應(yīng)該選用專門的SDR芯片或前端STM32WL5x的價(jià)值還是在長(zhǎng)距離低功耗通信鏈路里。做這類玩具實(shí)驗(yàn)時(shí)也別忘了監(jiān)聽、解調(diào)他人通信內(nèi)容在很多地區(qū)是非法的尤其是航空通信、應(yīng)急通信千萬不要越界。嚴(yán)格把實(shí)驗(yàn)限制在自己的合法設(shè)備、合法頻段內(nèi)技術(shù)樂趣才長(zhǎng)久。5.4 調(diào)試工具推薦與最終小經(jīng)驗(yàn)最后分享一點(diǎn)調(diào)試經(jīng)驗(yàn)和工具。開發(fā)sub-GHz項(xiàng)目幾樣?xùn)|西值得備頻譜儀入門級(jí)的RTL-SDR也好用、矢量網(wǎng)絡(luò)分析儀哪怕簡(jiǎn)陋的也要有以及一個(gè)可調(diào)的衰減器。如果不想投入太多至少準(zhǔn)備一個(gè)相對(duì)準(zhǔn)確的頻率計(jì)和功率計(jì)。我在調(diào)板過程中經(jīng)常用頻譜儀加近場(chǎng)探頭來查輻射泄漏確認(rèn)匹配網(wǎng)絡(luò)是否把功率真正送到了天線而不是輻射到PCB的地平面上。經(jīng)驗(yàn)上多準(zhǔn)備兩套微調(diào)電容和電感不同批次的板材介電常數(shù)會(huì)有小的漂移預(yù)留微調(diào)位置能節(jié)省來回打板的時(shí)間。另外每一個(gè)版本修改都要記錄匹配網(wǎng)絡(luò)參數(shù)和實(shí)測(cè)S11曲線方便對(duì)比。我在項(xiàng)目中就養(yǎng)成了隨手拍頻譜曲線的習(xí)慣后來排查起問題快很多。如果回到最開始那個(gè)問題“STM32WL5x到底好不好用”我的感覺是它比分離方案省心但絕不是零射頻功底就能隨便上。參考手冊(cè)里每一節(jié)都有它存在的意義尤其是射頻匹配和電源設(shè)計(jì)部分值得反復(fù)讀。踏踏實(shí)實(shí)走一遍參考設(shè)計(jì)再動(dòng)手改參數(shù)這條路最穩(wěn)。