Protell99中的鋪銅設定

2021-09-24 10:50:31 字數 1609 閱讀 5178

最近設計了一塊電路板,做了正反面的鋪銅,在發給pcb廠家進行加工的時候,廠家的工程師給我**說我的pcb走線距離鋪銅網格線的距離太近了,只有1.9mil,他們廠家加工不了。因為我之前也設計過一塊板子,也是正反面進行了鋪銅,沒有聽到廠家反應過這樣的問題。仔細檢查了pcb的design rules規則,發現clearance constraint的約束距離偏小,而在鋪銅的時候網格線與訊號線的距離預設也是這個設定。按照如下的方法進行修改後就ok了:

1、pcb覆銅安全間距設定:

覆銅的安全間距(clearance)一般是佈線的安全間距的二倍。但是在沒有覆銅之前,為佈線而設定好了佈線的安全間距,那麼在隨後的覆銅過程中,覆銅的安全間距也會預設是佈線的安全距離。這樣與預期的結果不一樣。

一種笨方法就是在佈好線之後,把安全距離擴大到原來的二倍,然後覆銅,覆銅完畢之後再把安全距離改回佈線的安全距離,這樣drc檢查就不會報錯了。這種辦法可以,但是如果要重新更改覆銅的話就要重複上面的步驟,略顯麻煩,最好的辦法是單獨為覆銅的安全距離設定規則。

2、pcb覆銅技巧之大面積敷銅、網格銅哪一種好?

經常也有人問到,大面積覆銅好還是網格覆銅好,不好一概而論。為什麼呢?大面積敷銅,具備了加大電流和遮蔽雙重作用,但是大面積覆銅,如果過波峰焊時,板子就可能會翹起來,甚至會起泡。因此大面積敷銅,一般也會開幾個槽,緩解銅箔起泡。

單純的網格敷銅主要還是遮蔽作用,加大電流的作用被降低了,從散熱的角度說,網格有好處(它降低了銅的受熱面)又起到了一定的電磁遮蔽的作用。但是需要指出的是,網格是使由交錯方向的走線組成的,我們知道對於電路來說,走線的寬度對於電路板的工作頻率是有其相應的「電長度「的(實際尺寸除以工作頻率對應的數字頻率可得,具體可見相關書籍),當工作頻率不是很高的時候,或許網格線的作用不是很明顯,一旦電長度和工作頻率匹配時,就非常糟糕了,你會發現電路根本就不能正常工作,到處都在發射干擾系統工作的訊號。所以對於使用網格的同仁,我的建議是根據設計的電路板工作情況選擇,不要死抱著一種東西不放。因此高頻電路對抗干擾要求高的多用網格,低頻電路有大電流的電路等常用完整的鋪銅。

上班的第一天拿到了板子,先焊接了一塊板子,採用逐步完善法,先焊接l7805器件相關的原件得到5v電壓,沒有問題後在焊接s812c33相關的器件得到3.3v,以此類推得到12v電壓,最後焊接max232晶元,進行工裝測試。通過usb轉rs232串列埠線連線電腦和工裝,最初沒有能夠通訊,在除錯的過程中發現給max232晶元供電的3.3v變為4.5v的電壓比較奇怪,剛開始以為是s812c33晶元損壞了,連續換了2顆後問題依舊,覺得應該不是s812c33晶元損壞,拔掉232串列埠線後max232晶元電壓恢復正常的3.3v,而插上串列埠線電壓又變為4.5v,看來問題應該是串列埠線沒有連線對導致的問題。經過仔細檢查pcb上串列埠的針腳排列和我使用的串列埠母頭聯結器,最終發現是母頭聯結器針腳的反向和pcb上的方向弄反了。

這是pcb板上的串列埠引腳定義,方向由左到右定義。

這是我焊接到pcb板上的串列埠母頭聯結器,1~5的引腳定義反向是從右到左,這樣在連線usb串列埠的時候相當於串列埠的第一腳(dcd,即載波檢查)連線到pcb的地(即pcb的5引腳);usb串列埠的第二引腳連線到pcb的4引腳,沒有定義;串列埠的第3引腳連線到pcb的3引腳(即max232的接收引腳),這也解釋了最初除錯的時候偶爾還能從示波器上抓取到從串列埠傳送過來的資料波形。而載波檢查引腳連線的pcb的地引起了max232晶元上電壓的變化,還好max232晶元沒有損壞。

C99標準中的 main 函式

一 main 函式的形式 在最新的 c99 標準中,只有以下兩種定義方式是正確的 int main void 無引數形式 int main int argc,char argv 帶引數形式 int指明了main 函式的返回型別,函式名後面的圓括號一般包含傳遞給函式的資訊。void表示沒有給函式傳遞引...

C99中的變長陣列(VLA)

處理二維陣列的函式有一處可能不太容易理解,陣列的行可以在函式呼叫的時候傳遞,但是陣列的列卻只能被預置在函式內部。例如下面這樣的定義 define cols 4 int sum3d int ar cols int rows 現在假定了如下的陣列 int array1 5 4 int array2 10...

C99中很酷的C語言技巧

c語言常常讓人覺得它所能表達的東西非常有限。它不具有類似第一級函式和模式匹配這樣的高階功能。但是c非常簡單,並且仍然有一些非常有用的語法技巧和功能,只是沒有多少人知道罷了。指定的初始化 很多人都知道像這樣來靜態地初始化陣列 intfibs c99標準實際上支援一種更為直觀簡單的方式來初始化各種不同的...