原创 MDK 查看局部變量顯示

用MDK調試一塊STM32F207的程序,想查看一下變量卻發現watch窗口總是 <not in scope>和<cannot evaluate>,無奈湊合着通過printf函數進行串口打印查看。 後來實在受不了,想了一下,覺得應該

原创 AD中Off Grid Pin和float Net label警告問題的根本解決辦法

使用AD16畫原理圖,編譯時Message出現off grid的警告提示,還有Floating Net Label警告: 而且生成的網絡確實存在錯誤,發現PCB中這幾個管腳沒有網絡,這個問題比較嚴重。如果忽視將造成線路不連通問題。 先在

原创 結構體的定義位置不正確導致的錯誤

今天遇到一個結構體數組的定義錯誤,MDK編譯器報錯爲: error: expression must be a pointer to a complete object type 本以爲是函數形參爲指針,調的是結構體變量名而出錯,以前遇到

原创 補碼的形成與本質

補碼,正數原補碼相同,負數是把正數的原碼取反再+1。 這是數字邏輯的規定,大家都要遵守。補碼是爲減法和負數而生的。如果你有興趣也可以自己制定另一套負數和減法方案,把負數運算取爲其他邏輯,但一定沒有這種方案效率高。 一個簡單的補碼計算技巧是

原创 板子修理經驗一例

同事一塊小板子,RC濾波後直接進單片機差分AD採樣。核心就這樣的四個元件,兩個R,一個C,一個MCU。 在RC濾波後,直到AD引腳上,電平都正常。 進入單片機後,程序輸出顯示0xFFFF,16bitAD,明顯是超範圍了。本以爲是程序有bu

原创 #include順序不正確導致定義無法找到定義

本意是想將全部頭文件包含在一個文件裏,可以省去每次在各個c中添加各種頭文件。 因此在includes.h中做了以下包含: #include <bsp.h> #include <app.h> #include <os.h> #include

原创 淺談LDO

        首先明確一點,LDO是線性穩壓器的一種,它也是靠熱量耗散變換電壓的。例如5V輸入,3V輸出,電路本身電流是200mA,那麼熱量耗散就是2V*200mA         LDO與古典的線性穩壓器最大的區別就是它的壓差drop

原创 製作Orcad的變種BOM(Variant BOM)

      通常在Orcad中畫的原理圖並不只是用於一款產品。例如一個控制器原理圖,可能對應着許多款子產品線,而這些子產品線之間的區別就是通訊口組件不同,少焊幾個芯片,或者只是少焊幾個電阻。       但是這樣交付生產的時候,整理BOM

原创 uC/OSIII的消息隊列處理機制

在uC/OSIII中沒有郵箱這個概念,而是統一合併到了消息隊列MSG_Q。因爲消息隊列可以看作是很多郵箱的集合,郵箱只是包含單個消息的消息隊列。 在分析消息隊列之前,必須要對消息的數據結構做一個徹底的分析。 消息隊列對象和其他內核對象一樣

原创 鉭電容、鋁電解、陶瓷電容作爲DCDC輸出電容的比較

http://www.avx.com/docs/techinfo/DC-DCConverterCapBenchmark.pdf P12 鉭電容在不同頻率下容量表現非常穩定;陶瓷電容不足夠穩定;鋁電解很不穩定; P13 在大範圍頻段內:  

原创 STM32從Flash地址0x08000000的啓動重映射

在初寫STM32程序時,遇到一個困惑,STM32的Flash在MDK裏被設置爲起始地址0x0800 0000,而CM3手冊規定芯片復位時要從0x0000 0000地址開始取出中斷向量 ,那STM32怎麼樣執行代碼呢?地址重映射?或者在0x

原创 Orcad去除修改後元件標號的下劃線

Orcad在複製替換元件後,修改成原標號時元件標號會出現下劃線(原理圖和框圖都是如此),提示此元件被修改過,如下圖的D7。 這個叫用戶屬性,看着很不舒服,去掉的方法是點選D7,在D7元件上點右鍵,選擇User Assigned Refe

原创 uC/OSIII在Cortex-M3的任務切換和中斷退出分析

    uC/OSIII在任務中執行OSSched相關的函數和在中斷退出後都會開始執行調度,這是它的調度機制。而按uC/OSIII書中所講,普通任務切換和從中斷中退出後的任務切換應該是不同的函數,因爲普通任務切換時要入棧出棧全部寄存器,而

原创 AD不修改元件庫直接修改PCB元件讓絲印避開焊盤的方法

PCB畫好後需要增加兩個焊接固定夾用的焊盤,但是發現增加焊盤的位置剛好被接插件的絲印擋住了,這樣導致絲印蓋在了焊盤上。如下圖: 因爲J2是通用封裝,不想修改封裝庫重新導入,想在PCB中直接修改此元件的絲印。 方法是在J2上雙擊,在元件屬

原创 orcad元件屬性批量修改及BOM表

本文適合於沒有使用CIS的情況下,提高元件屬性修改的效率和BOM生成。 第一步:編號 首先給元件編好號: 如果是沿用舊工程,用這個編號。如果是創建的新工程,使用第二項,強制從頭開始編號。因爲編號與PCB是相對應的,如果任意改動舊