2023.8.21 經(jīng)驗(yàn)分享會(huì)

2023/8/21 14:49:10??????點(diǎn)擊:

      2023年8月21日上午,上海實(shí)邦電子科技有限公司開(kāi)展了一次經(jīng)驗(yàn)交流會(huì),由王工、崔工、和陳工一起分享了他們?cè)诠ぷ髦蟹e累的一些經(jīng)驗(yàn)。

      首先是陳工分享了掉電數(shù)據(jù)保存與方案管理系統(tǒng)


      一、 存儲(chǔ)方式選擇

      1. 單片機(jī)內(nèi)部flash,優(yōu)點(diǎn)是無(wú)需額外的硬件開(kāi)銷,缺點(diǎn)比較多,存儲(chǔ)內(nèi)容比較少,存儲(chǔ)速度比較慢,存儲(chǔ)占用空間不合理

      詳解:Stm32F407的flash結(jié)構(gòu),使用內(nèi)部flash作為掉電存儲(chǔ),一般是用最后幾個(gè)扇區(qū),避免把代碼覆蓋,由于flash寫需要先擦擦,所以扇區(qū)大小過(guò)大會(huì)造成擦除時(shí)間過(guò)長(zhǎng),影響整體存儲(chǔ)時(shí)間。

      2外部flasheeprom

     掉電存儲(chǔ)數(shù)據(jù)量在M級(jí)別用flash,K級(jí)別用eeprom

     flash優(yōu)點(diǎn)速度快,內(nèi)存大,缺點(diǎn)是寫之前需要讀出整個(gè)扇區(qū)數(shù)據(jù),然后擦除整個(gè)扇區(qū),通常會(huì)有個(gè)4k大小的數(shù)組,

     eeprom優(yōu)點(diǎn)就是不用擦除,隨機(jī)寫,連續(xù)寫需要考慮頁(yè)面大小,連續(xù)寫的數(shù)據(jù)量取決于頁(yè)面大小,缺點(diǎn)就是速度慢,寫完以后需要延時(shí)5ms


     二、 存儲(chǔ)結(jié)構(gòu)及程序設(shè)計(jì)

     1. 簡(jiǎn)單的存儲(chǔ)方式-數(shù)組

     優(yōu)點(diǎn):程序簡(jiǎn)單

     缺點(diǎn):封裝性很差,遇到復(fù)雜的場(chǎng)景程序可讀性很差,也沒(méi)有校驗(yàn)

     2. 結(jié)構(gòu)體的方式

     缺點(diǎn):代碼比較復(fù)雜

     優(yōu)點(diǎn):封裝性很高,不同項(xiàng)目移植方便,包括新建,刪除,查看,修改等功能,類似電腦上的文件操作,使用方便,調(diào)用時(shí)代碼簡(jiǎn)潔,帶校驗(yàn)

     3. 函數(shù)種類:根據(jù)功能的需要需要有新建函數(shù)、刪除函數(shù)、修改函數(shù)(包括重命名)、讀取函數(shù)

     4. 程序設(shè)計(jì)

     (1)創(chuàng)建結(jié)構(gòu)體

     (2)調(diào)用對(duì)應(yīng)接口函數(shù),形參傳入創(chuàng)建的結(jié)構(gòu)體

     (3)根據(jù)操作結(jié)果,如果成功,加載這個(gè)方案,如果失敗,初始化方案后,再次加載方案





      崔工分享了一些調(diào)制PWM波

      配置頻率:調(diào)制波形的頻率主要是調(diào)定時(shí)器的預(yù)分頻值和重裝載值:即找到合適的預(yù)分頻值和重裝載值
      公式①:freq(目標(biāo)頻率) =  Main_Freq/(Psc*Arr)(主頻/預(yù)分頻值*重裝載值)
      得到:Arr*Psc = Main_Freq/freq;
      采用輪詢的方式確定這兩個(gè)值,先假定一個(gè)值,假設(shè)分頻值小于等于重裝載值
      公式②:Psc_max(最大分頻值) = Arr_min(最小重裝載值);
      得到:Psc_max(最大分頻值) = Arr_min(最小重裝載值) = √Arr?Psc;
      確定這兩個(gè)值:
      for(uint8_t  i=0; i< Psc_max;i++)//因?yàn)槲倚枰伎毡确直媛时M可能大,所以從預(yù)分頻值1開(kāi)始輪詢
      {
      if((Arr*Psc%i == 0)&&(Arr*Psc/i<=0xffff ))//因?yàn)閒103定時(shí)器的ARR為16位
      {
      Arr = Arr*Psc/i;//確定重裝載值
      Psc = i;//確定預(yù)分頻值
      }
      }

      確定占空比的分辨率
      公式③:t(步進(jìn)時(shí)間)= T(周期)/Arr(重裝載值);//表示重裝載值步進(jìn)時(shí)間
      如果需要調(diào)整的高電平時(shí)間小于分辨率
      例:5HZpwm波周期:200ms;f103定時(shí)器的arr最大為65535;
      最大分辨率:200000/65535(us)
      如果我需要調(diào)整1us的占空比就達(dá)不到標(biāo)準(zhǔn);
      解決方法:將一個(gè)PWM波分成多個(gè)PWM波以解決分辨率不夠的問(wèn)題,
      驅(qū)動(dòng)PWM波的方法:為防止兩個(gè)PWM波之間有配置占空比的時(shí)間,所以采用DMA控制PWM波的產(chǎn)生。
      如果分辨率夠的話:直接配置占空比

      如果有外部的波形進(jìn)行標(biāo)定:采用外部波形的上升沿或者下降沿作為發(fā)生的頻率的零度
      分析:如果發(fā)生相位的偏移:需要根據(jù)相位延時(shí)偏移需要的時(shí)間,將PWM波從零度開(kāi)始
      方法:使用定時(shí)器,在標(biāo)定點(diǎn)設(shè)置定時(shí)器,在中斷時(shí)發(fā)生PWM波
      出現(xiàn)問(wèn)題:如果相位偏移較少:我門設(shè)置的定時(shí)器時(shí)間就很短,會(huì)導(dǎo)致定時(shí)時(shí)間偏差很大
      解決方法:將定時(shí)器的頻率設(shè)置與PWM的波的頻率相同,需要偏差多少度,直接改變TIM->CNT的值,可以減少配置定時(shí)器的時(shí)間


      沒(méi)有外部的波形進(jìn)行標(biāo)定:只能將DMA的回調(diào)函數(shù)作為參考點(diǎn)
      當(dāng)調(diào)整相位時(shí):與當(dāng)前相位進(jìn)行比較:進(jìn)行相位相對(duì)延時(shí),將下一個(gè)PWM波整體作為一個(gè)延時(shí),改變控制PWM波的定時(shí)器的CNT值可以改變下一個(gè)PWM波時(shí)間的長(zhǎng)短。
      發(fā)生的PWM由一個(gè)PWM波組成
      增加n度相位:TIMX->CNT += ARR - ARR*n/360;
      減少n度相位:TIMX->CNT + =ARR*n/360;
      發(fā)生的PWM由多個(gè)PWM波組成
      由于只能調(diào)整一個(gè)波的PWM ;所以每次調(diào)整一度。分多次進(jìn)行。

      問(wèn)題①:當(dāng)ARR%360!=0時(shí):會(huì)產(chǎn)生一點(diǎn)誤差
      解決方法:我將ARR%360這些多余的值分給0~(ARR%360-1)上
      問(wèn)題②:當(dāng)給TIMX->CNT賦值時(shí),操作寄存器存在一點(diǎn)誤差,當(dāng)從0調(diào)到360度時(shí)積少成多會(huì)與原來(lái)的0度有一定誤差
      我的解決方法:加入時(shí)間補(bǔ)償 TIMX->CNT += (phase_delay - err);//err調(diào)試得出,現(xiàn)在旋轉(zhuǎn)調(diào)整一周后任然有2us左右的誤差




      王工分享了一些嘉立創(chuàng)EDA技巧,立創(chuàng)EDA的圖塊復(fù)用和復(fù)用布局布線

      模塊復(fù)用:復(fù)用圖塊是層次原理圖設(shè)計(jì)中較為常用的方式,其可以概括不同原理圖中相同網(wǎng)絡(luò)之間的交互關(guān)系。優(yōu)化表達(dá),使讀者更容易理解各個(gè)硬件模塊之間的關(guān)系。在嘉立創(chuàng)EDA(專業(yè)版)中也有這個(gè)功能。

     復(fù)用模塊的創(chuàng)建:在工程文件夾內(nèi)創(chuàng)建一個(gè)新的原理圖→繪制需要重復(fù)引用的原理圖右擊原理圖生成復(fù)用模塊→此時(shí)生成一個(gè)未處理的復(fù)用模塊符號(hào)→處理后的復(fù)用模塊符號(hào)??梢宰孕芯幣乓_朝向,這個(gè)朝向不作用于PCB,僅能使得原理圖直觀易懂

     復(fù)用模塊不但簡(jiǎn)單易懂,切在中大型項(xiàng)目中可以有效節(jié)省電腦性能,在難以卡頓的情況下進(jìn)行作圖