1. <dd id="q3npm"></dd>
    2. <dd id="q3npm"><noscript id="q3npm"></noscript></dd><rp id="q3npm"></rp>

      1. <li id="q3npm"><acronym id="q3npm"></acronym></li>
        新聞動態???News
        聯系我們???Contact
        你的位置:首頁 > 新聞動態 > 新聞資訊

        2023.8.21 經驗分享會

        2023/8/21 14:49:10??????點擊:

              2023年8月21日上午,上海實邦電子科技有限公司開展了一次經驗交流會,由王工、崔工、和陳工一起分享了他們在工作中積累的一些經驗。

              首先是陳工分享了掉電數據保存與方案管理系統


              一、 存儲方式選擇

              1. 單片機內部flash,優點是無需額外的硬件開銷,缺點比較多,存儲內容比較少,存儲速度比較慢,存儲占用空間不合理

              詳解:Stm32F407的flash結構,使用內部flash作為掉電存儲,一般是用最后幾個扇區,避免把代碼覆蓋,由于flash寫需要先擦擦,所以扇區大小過大會造成擦除時間過長,影響整體存儲時間。

              2外部flasheeprom

             掉電存儲數據量在M級別用flash,K級別用eeprom

             flash優點速度快,內存大,缺點是寫之前需要讀出整個扇區數據,然后擦除整個扇區,通常會有個4k大小的數組,

             eeprom優點就是不用擦除,隨機寫,連續寫需要考慮頁面大小,連續寫的數據量取決于頁面大小,缺點就是速度慢,寫完以后需要延時5ms


             二、 存儲結構及程序設計

             1. 簡單的存儲方式-數組

             優點:程序簡單

             缺點:封裝性很差,遇到復雜的場景程序可讀性很差,也沒有校驗

             2. 結構體的方式

             缺點:代碼比較復雜

             優點:封裝性很高,不同項目移植方便,包括新建,刪除,查看,修改等功能,類似電腦上的文件操作,使用方便,調用時代碼簡潔,帶校驗

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

             4. 程序設計

             (1)創建結構體

             (2)調用對應接口函數,形參傳入創建的結構體

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





              崔工分享了一些調制PWM波

              配置頻率:調制波形的頻率主要是調定時器的預分頻值和重裝載值:即找到合適的預分頻值和重裝載值
              公式①:freq(目標頻率) =  Main_Freq/(Psc*Arr)(主頻/預分頻值*重裝載值)
              得到:Arr*Psc = Main_Freq/freq;
              采用輪詢的方式確定這兩個值,先假定一個值,假設分頻值小于等于重裝載值
              公式②:Psc_max(最大分頻值) = Arr_min(最小重裝載值);
              得到:Psc_max(最大分頻值) = Arr_min(最小重裝載值) = √Arr?Psc;
              確定這兩個值:
              for(uint8_t  i=0; i< Psc_max;i++)//因為我需要占空比分辨率盡可能大,所以從預分頻值1開始輪詢
              {
              if((Arr*Psc%i == 0)&&(Arr*Psc/i<=0xffff ))//因為f103定時器的ARR為16位
              {
              Arr = Arr*Psc/i;//確定重裝載值
              Psc = i;//確定預分頻值
              }
              }

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

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


              沒有外部的波形進行標定:只能將DMA的回調函數作為參考點
              當調整相位時:與當前相位進行比較:進行相位相對延時,將下一個PWM波整體作為一個延時,改變控制PWM波的定時器的CNT值可以改變下一個PWM波時間的長短。
              發生的PWM由一個PWM波組成
              增加n度相位:TIMX->CNT += ARR - ARR*n/360;
              減少n度相位:TIMX->CNT + =ARR*n/360;
              發生的PWM由多個PWM波組成
              由于只能調整一個波的PWM ;所以每次調整一度。分多次進行。

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




              王工分享了一些嘉立創EDA技巧,立創EDA的圖塊復用和復用布局布線

              模塊復用:復用圖塊是層次原理圖設計中較為常用的方式,其可以概括不同原理圖中相同網絡之間的交互關系。優化表達,使讀者更容易理解各個硬件模塊之間的關系。在嘉立創EDA(專業版)中也有這個功能。

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

             復用模塊不但簡單易懂,切在中大型項目中可以有效節省電腦性能,在難以卡頓的情況下進行作圖





              

        国产成人精品中国熟悉妇_男人插女人软件_国产在线观看A片视频_亚洲码国产精品高潮在线
        1. <dd id="q3npm"></dd>
        2. <dd id="q3npm"><noscript id="q3npm"></noscript></dd><rp id="q3npm"></rp>

          1. <li id="q3npm"><acronym id="q3npm"></acronym></li>