聲明:繪制原理圖和PCB的軟件為嘉立創EDA。根據B站尚硅谷嵌入式之原理圖&PCB設計教程學習所作個人用筆記。
目錄
一、原理圖詳解
1、TypeC接口
(1)TypeC接口介紹
(2)TypeC原理圖
2、5V轉3.3V
3、單片機電源開關
4、單片機
5、排針
6、晶振電路
7、復位按鍵
8、MCU供電指示燈
9、程序下載模塊?
10、 通信指示燈
11、P0上拉電阻
(1)推挽輸出?
(2)開漏輸出
12、自動冷啟動
二、PCB布局
1、板框尺寸
2、排針布局
3、 模塊布局規劃
4、位號絲印調整
5、程序下載模塊布局
6、單片機與晶振布局
三、PCB布線
1、TypeC接口和5V轉3.3V模塊布線
2、差分信號的布線
3、VIN_5V到VCC的布線
4、P1口的布線
5、制作銅箔LOGO
6、鋪銅
7、檢測DRC
8、遇到的問題
一、原理圖詳解
51核心板原理圖?
1、TypeC接口
(1)TypeC接口介紹
TypeC接口引腳分布
TypeC接口上下兩排引腳功能都是關于中心點對稱的,因此TypeC接口正插還是反插,都不影響引腳的接觸順序,所以大大簡化了使用過程。
A1,A12,B1,B12:接地;
A2,A3,A10,A11,B2,B3,B10,B11:分別是兩個差分信號對,它們是為了高速數據傳輸所準備的,這個項目不需要高速數據傳輸,了解即可;
A4,A9,B4,B9:VBUS相當于電源正極;
A5,B5:兩個CC引腳,是在TypeC協議中用來協商充電協議的,還可以協商設備身份(判斷主從設備,靠CC引腳上的電阻來判斷);
A6,A7,B6,B7:USB2.0數據傳輸;
A8,B8:用來傳輸視頻或者音頻信號,有些擴展屏幕就是TypeC一線通,一根線就可以完成充電、控制和視頻傳輸,否則有些擴展屏幕就得單獨接視頻線,單獨接電源線。
實物照片
由于有些引腳在實際項目中不需要用到,而且兩排引腳不方便焊接,因此實際項目中我們采用16Pin引腳的TypeC接口。
這里把GND和VBUS都焊在一起了,因此從外面數只有12個引腳,但是還是按實際內部16引腳來稱呼。具體實物也只有一排引腳,更方便實物焊接了。
(2)TypeC原理圖
具體元器件的參數和型號,可以通過查看數據手冊,和之前介紹的引腳相對應,即可拿來使用。
引腳1,12:直接接地;
引腳2,11:連接到電源總線上VIN_5V上,中間的F1是一個自恢復保險絲,電容C2和C5一端接地,另一端接電源VIN_5V,這樣是為了讓電源電壓更加平穩,它們有過濾雜波(濾波)的作用。
引腳3,9:SBU1-2用來傳輸視頻或者音頻信號,這里用不到,加上非連接標識。
引腳4,10:CC1和CC2連接5.1kΩ的厚膜貼片電阻后,接地。
引腳5,6,7,8:接到網絡標簽USB_D+和USB_D-上,這樣其他模塊就可以通過同名網絡標簽直接連接到這里。
外殼引腳13,14:也接地,為了防止手上的靜電影響USB的數據傳輸,損壞后面的元件;
自恢復保險絲的工作原理
傳統保險絲經過熔斷后,就需要更換保險絲,但是自恢復保險絲是由聚合物和導電顆粒組成,當產生高溫時,聚合物會膨脹,導致導電顆粒間的距離增加,從而斷開了導電路徑;當溫度降低時,聚合物會收縮,又使得導電顆粒重新接近,重建導電路徑。
充電協議:
當一個充電設備(上游設備,如快充頭)連接到一個受電設備(下游設備,如手機)時,充電頭首先通過CC引腳檢測連接的設備類型和方向。
如果檢測到下游設備符合規范(例如CC引腳上有5.1k歐姆的電阻值到接地),充電頭才會把這個設備識別成需要充電的設備,會默認提供5V的初始電壓進行供電。這是所有USB充電協議的基礎行為,以確保設備可以安全啟動和進行初步通信。
當5V的供電開始一段時間后,如果CC引腳連接的是快充協議的一些其他芯片,這時候才會跟充電頭進行快充的協商。
2、5V轉3.3V
之所以需要5V轉3.3V,是因為在以后的嵌入式開發中,有很多傳感器或者芯片的工作電壓是3.3V。
這里采用的芯片是低壓差線性穩壓器(LDO),如果我們選擇了一個固定輸出為3.3V的LDO,無論輸入電壓是5V、6V還是8V,它都能穩定輸出3.3V。它只能降壓,無法升壓。
3、單片機電源開關
?這個開關是一個自鎖開關,用來控制單片機的供電,右邊的VCC是給單片機供電的電源網絡。
前面的電源模塊能提供5V和3.3V的供電,自鎖開關又控制著一個新的電源網絡VCC,后面會把MCU(單片機芯片)掛在VCC下面,這樣就可以通過自鎖開關,控制VIN_5V和VCC兩個電源之間的導通,來控制單片機的電源。
4、單片機
芯片選型
芯片選用STC公司生產的89C52RC,這個芯片擁有豐富的網絡學習資源,適合新手學習單片機。封裝類型選擇QFP封裝,適合在PCB上安裝。? ? ? ?
批量導出芯片引腳為網絡標簽步驟
?將pinName內容,復制到netname中,然后再用查找替換功能,去掉小數點,再把其他多余的名字去掉,最后將文件保存,再導入到立創EDA即可。
5、排針
排針主要是用來引出單片機引腳,方便接入一些外部設備。
6、晶振電路
中間矩形就是晶振元件,它在特定的電路接法下,可以產生機械振動,然后在它的輸出引腳產生一定波動的電壓波,如下所示。
現代CPU的運作需要依靠時序波動的電壓信號來捕捉上升沿,并在這些上升沿到達時推動芯片內部指令的執行,即每次來臨一次上升沿,代碼就會繼續往下執行一步。
1MHz意味著每秒鐘,晶振震動次數為一百萬次。
晶振一般分為無源晶振和有源晶振。
無源晶振:必須依賴外部電路的支持才能進行穩定的震動,無源晶振和外部組成的讓它可以震動的電路我們稱為時鐘電路。這里電路設計使用的是無源晶振,因此需要在原理圖上再接兩個電容。
?有源晶振:元件內部自成一個時鐘電路,我們只需給它的VCC引腳,GND引腳做相應的連接,就可以從第3個引腳上捕獲震蕩信號。
7、復位按鍵
復位按鍵的作用就是通過單片機的RST引腳,來做一個狀態重置(復位)的操作。
單片機的復位引腳(RST)需要一個持續一定時間長度的高電平信號才能識別并執行復位操作。
在上電的瞬間,電容處于充電狀態,此時電容相當于一根導線,RST引腳得到高電平。
在上電一段時間后,電容充滿,此時電容相當于短路,這個時候RST將得到低電平。
按下開關后,RST引腳相當于直接接到VCC,此時RST引腳將是高電平,這個狀態維持幾十us,MCU就會清空當前狀態,重新回到第一行代碼開始執行。
電容的作用:電容在默認情況下是充電狀態,當按下開關后,RST會短暫的和VCC直連,但是開關會很快彈起來,這時候的RST就會和VCC斷開,為了保證有充足的高電平的維持時間來激活復位狀態,就需要開關斷開后,仍有一個電容能給RST繼續供電。
電阻的作用:防止按下開關后,VCC和GND直連,導致電源短路。
8、MCU供電指示燈
這個指示燈也是VCC供電,和MCU芯片一致,只有當MCU芯片有電時,這個指示燈才會亮。
9、程序下載模塊?
其中RXD就是接收數據的引腳,TXD是發送數據的引腳。
當給芯片5V供電時,需要給V3引腳接一個電容,然后接地。VCC為3.3V時V3需短接到VCC。
RTS引腳和后面的自動冷啟動電路相關。
TypeC接口有兩個網絡USB_D+和USB_D-,這兩個接口主要是電腦通過USB接口用來傳輸數據的。
USB主要是通過一種差分信號的方式來進行傳輸數據,但是STC89C52RC這個芯片不支持差分協議,所以需要通過CH340N這個芯片將差分信號轉化成STC89C52RC芯片可以支持的TTL信號。這樣電腦才可以和芯片傳輸數據。
同理,芯片也可以通過TTL信號傳送數據到CH340N,再轉成差分信號的形式將數據發送給電腦。
TTL信號(單端信號):所謂單端信號,指的是只用一根導線來發送信號。這種發送信號的方式非常簡便。如果A芯片要給B芯片發送數據,那么它只需要將導線上的電平一會兒置高,一會兒置低就可以了。
單端信號傳輸方式主要適用于短距離的板上通信,而不宜用于線纜通信。這主要是因為單端信號的抗干擾能力較弱。
例如,如果我們使用一根導線將電腦和單片機連接起來傳輸數據,而在此過程中如果不小心觸碰了這根導線,可能會導致身上的靜電釋放到導線上。這種靜電干擾可能會改變導線上的電平,從而導致接收端接收到錯誤的數據。
差分信號:為了克服單端信號易受干擾的問題,我們可以采用差分信號傳輸技術。這種技術涉及將發送端的原始信號轉變為兩個信號:D+ 和 D-。這兩個信號通過兩根導線傳輸,其中D+ 的波形與原始信號幾乎相同,而 D- 是 D+ 的反相。這種方式可以顯著增強信號的抗干擾能力。
在接收端,信號的還原過程非常直接。系統通過比較 D+ 和 D- 兩條線上的電壓差來確定原始信號的狀態。如果 D+ 的電壓高于 D-,則認定為數字信號 "1";相反,如果 D+ 的電壓低于 D-,則認定為數字信號 "0"。
我們再將D+和D-兩根導線絞在一起,這樣它們就組成了雙絞線。
在這種情況下,如果外部環境產生靜電干擾,兩根導線D+和D-會受到幾乎相同的影響。這種干擾對兩條線的影響是對稱的,因此不會改變D+與D-之間的相對電壓差。結果是,盡管存在干擾,接收端仍然能夠準確地還原出發送端的原始信號。這展示了差分信號傳輸在保持數據完整性方面的強大能力,即使在高干擾的環境中也能維持信號的準確傳輸。?
通過CH340N芯片的數據手冊,能夠查找到CH340N芯片連接到單片機的參考電路。通過參考電路,可以大致知道芯片的接法。
由于MCU的引腳RXD和TXD已經備注了P30和P31的網絡標簽,因此這里需要給這個引腳再弄一個網絡標簽,使得兩個不同名字的網絡標簽可以連接到同一根引腳上。
?在放置中,找到短接標識,然后將這個標識放置到兩個引腳上。
然后再短接標識的另一端再延長導線,插入兩個新的網絡標簽,這樣就可以實現上面要求。?
10、 通信指示燈
二極管右端接電源,左端接數據傳輸引腳,由于數據傳輸是一系列的高低電平,所以當RXD或者TXD為低電平時,兩個二極管就會發光,當RXD或者TXD為高電平時,兩個二極管就會熄滅。
因此可以通過二極管是否快速的閃爍來判斷是否正在進行數據傳輸。
11、P0上拉電阻
在MCU芯片中,以P開頭的引腳,都是有輸出功能的,也就是芯片內部能夠控制引腳是高電平還是低電平,一般分為兩種控制方式:推挽輸出和開漏輸出。
(1)推挽輸出?
?通過控制上下兩個MOS管的導通和斷開,來使得輸出引腳是高電平或低電平,還是高阻態。
推挽輸出又叫推拉輸出,當引腳為高電平時,電流像是被從芯片中推出來一樣;當引腳為低電平時,電流像是被從拉進電流中,因此得名。
(2)開漏輸出
開漏輸出只控制一個接地的MOS管,當MOS管斷開,引腳為高阻態;當MOS管閉合,引腳為低電平。
這個開關在沒有芯片干預情況下,默認是開路狀態,且電流一定從MOS管的漏極流入的,因此這種控制輸出方式就稱呼為開漏輸出。
之前的電路是無法通過引腳輸出高電平的,因此這里增加一個上拉電阻連接到VCC來輸出高電平。
當MOS管閉合時,跟之前電路一樣,引腳是低電平狀態;
當MOS管斷開時,外設就會直接通過電阻拉到了VCC,因此外設收到的電平就是高電平。
開漏輸出的優點:當芯片是5V供電時,像推挽輸出,就只能通過引腳輸出5V的高電平,但是開漏輸出可以通過上拉電阻連接到一個3.3V的電源,因此開漏輸出可以不局限于芯片供電電壓。
在數據手冊中顯示P0引腳都是開漏輸出模式的引腳,因此需要上拉電阻連接到高電平,來使得引腳能夠輸出高電平。
12、自動冷啟動
單片機燒錄軟件過程中,必須要先把單片機斷電后,再重新給電源,在開機啟動中,單片機的P3.0\RXD引腳會檢測是否有別的芯片傳輸過來的下載命令,只有檢測到下載命令才會開始下載程序,如果下載成功,就會直接執行新的代碼,如果在開機后沒有檢測到新的代碼,它就會執行上次燒錄進單片機的程序。
這種強行斷電,再上電的開機方式,就被稱為冷啟動。如果按照上面的方法,每次都要按下兩次開關,一次給單片機斷電,一次給單片機上電,就會非常麻煩。
因此通過設計自動冷啟動電路去檢測CH340N芯片,如果檢測到了下載程序的信號,它就會自動完成單片機掉電再上電的過程,這樣每次下載程序就不需要按動開關了。
RTS(Request To Send,發送請求)引腳的作用是向其他設備發出“我有數據要發送,請準備接收”的信號,這種操作稱為硬件控制流,它的作用是為了讓下游接收數據的對象,能夠把正在工作的內容停下來,做好接收數據的準備。
當芯片準備好發送數據時,RTS引腳會進入激活狀態。如果在RTS旁邊有一個#(即RTS#),或者名字上方有一個橫杠,這通常表示它是以低電平激活的。
默認情況下RTS是高電平,當有數據要發送時,RTS會變成低電平,當數據發送完成后,RTS又會變回高電平。
當電腦點擊下載程序按鈕時,?開始跟CH340N芯片進行通訊時,這個RTS引腳就會被拉到低電平,MCU只有在上電時,才會響應CH340N。如果說MCU一直不斷電,不重新上電,則RTS引腳會一直是低電平。????????
自動冷啟動電路原理分析:
P溝道MOS管導通條件:源極接VIN_5V,柵極接RTS,剩下的就是漏極。
當RTS為5V時,MOS管的源極和漏極不會導通;
當RTS為0V時,源極和漏極電流就會導通。
(1)當RTS為高電平時,左邊MOS管不會導通,右邊MOS管會導通,此時燈泡(MCU)處于上電狀態,電流如上圖所示。
(2)當RTS為0V時,左邊MOS管會導通,剛開始電容會處于充電狀態,相當于一根導線,這時可以認為右邊MOS管的柵極也是5V,因此右邊MOS管在此時是截止狀態,右邊燈泡(MCU)就會被斷電。
(3)當RTS為0V,電容充滿電后,此時的電容相當于一個斷路,后面的10歐姆可忽略,兩個10kΩ并聯相當于5k歐姆,與47kΩ串聯,通過計算可得到右邊MOS管的柵極電壓為0.4V左右,因此這個MOS管會被導通,此時的燈泡又重新處于上電狀態。
(4)當RTS恢復到5V時,右邊MOS管仍處于導通狀態,燈泡不會受到影響,左邊的MOS管會瞬間截止,電容會對并聯47kΩ的電阻一直放電,直到放空為止。?
這個電路的缺陷在于不能短時間的連續下載程序,不然的話電容電還沒有放完,又重新充電的話,右邊的MOS管也就不會截止,自動冷啟動電路就會失效,因此這個時候就需要電源開關,來手動給MCU斷電和上電。
MOS管柵極連接10Ω電阻的作用:
MOS管的柵極具有一定的寄生電容,連接線和MOS管自身也會有一定的寄生電感。如果柵極的連接上沒有任何的阻尼,這些寄生的電氣效應可能會組成一個LC震蕩電路,從而引起振鈴現象。
在MOS管的柵極去串聯一個電阻,以此來削弱振鈴效應。
寄生電容:是電路中非設計意圖的電容效應,由導體間電場耦合形成,常見于高頻電路,可能導致信號干擾或性能下降。
寄生電感:是指在電路設計中未刻意引入,但由于導體布局或物理特性而自然產生的電感。
也是因為MOS管上的寄生電容,MOS管的柵極在電平拉高或拉低時,會遇到一個平臺期,這個現象與米勒效應有關,因此也被稱為米勒平臺。它導致MOS管從開啟轉到閉合時的時間間隔延長。
也不能串聯太大的電阻,這是因為隨著我們串聯電阻的阻值的升高,米勒平臺會相應地延長。
?通常,在柵極上串聯10到100Ω的電阻是一種常見做法,這不僅可以有效抑制振鈴效應,還能防止過長的米勒平臺導致的開關延遲。在實踐中,通常可以首選10Ω的電阻。
二、PCB布局
PCB的完整設計之前已經有詳細介紹過了完整流程,因此本篇文章只寫之前沒有出現的一些問題。
1、板框尺寸
3個角小圓弧尺寸
大圓弧尺寸?
板框整體尺寸?
?2、排針布局
排針方位需要跟上圖保持一致,同時放置底層。?
選中兩排針,垂直指定中心間距分布為29mm,同時需要按上面排針中心左右居中。
同時對兩個排針進行鎖定功能,這樣后面拖動其他元器件時,就不會影響這兩個排針。
3、 模塊布局規劃
4、位號絲印調整
選中位號,然后按Ctrl+F,就會出現查找欄,點擊查找全部,就能夠實現對所有位號的選中。
將字體線寬和高度修改到上圖所示,單位為mil,這樣就能夠讓位號變得更小,更方便布局。
5、程序下載模塊布局
這是布局完成后的芯片CH340N內部的VIN_5V線,它的背面會有一些藍色信號線經過它,信號線的電壓是會在0V和5V直接來回變化的,就有可能產生一些電磁感應在5V導線上,會讓VIN_5V有一個上下波動,所以這個模塊的供電盡管之前就用了電容濾波處理,但是這里還是繼續得用電容濾波處理。
濾波電容離芯片越近越好,防止線太長,中間被其他信號線得電磁感應影響。
電源線一定要先經過電容,再到達芯片的電源引腳,這樣可以讓電容濾波效果達到最優。
6、單片機與晶振布局
原則上是兩個連接的引腳越近越好,但是這里上面芯片需要流出位置來引出線,因此C12位置需要靠下一些。
所有的GND引腳都是通過一個銅皮來進行連接的,但是晶振下方是最好不要做鋪銅處理的,目的是為了防止晶振和GND網絡互相干擾。所以需要對晶振區域做一個禁止鋪銅的設置。
?用多邊形工具將晶振區域圍住,然后將該區域選擇為禁止區域,然后將鋪銅勾選上,既可以將晶振區域設置為禁止鋪銅區域。
同時,選中圖層,然后將屬性中的圖層改成多層,這樣底層也能稱為禁止鋪銅區域。?
三、PCB布線
1、TypeC接口和5V轉3.3V模塊布線
首先可以將GND的飛線隱藏,防止干擾到其他飛線的布線。
電流最早是從TypeC接口流入的,因此先從TypeC模塊開始布線(快捷鍵Alt+W)。?
從原理圖可知,所有的電流都將從Type模塊流向F1自恢復保險絲和它所在的這段導線,因此需要充分考慮這段導線的線寬和最大能承載的電流。
F1自恢復保險絲跳閘電流為1A,通過PCB走線載流計算器可以計算得到線寬最好要大于11.83mil,又因為要流出冗余,因此這段導線的線寬設置為20mil。
?電源線一般都是先經過大電容濾波,再經過小電容濾波,先過濾低頻噪音,再過濾高頻噪音。
Type接口為了實現能正反插,有兩個電源入口,因此需要將另外一個電源入口的導線連接到第一個電源入口處,但是這里明顯需要繞彎,因此通過過孔(Alt+V)方式來連接。
同樣的,過孔也需要考慮最大承載電流,通過PCB過孔載流計算器,可計算得到12mil孔徑、18um厚度的孔壁銅厚,在10攝氏度下能承載的最大電流為1.462A,但是為了給實際施工有更大的冗余,通過經驗判斷,這里的孔徑(過孔內徑)可設置為20mil。
但是內孔徑和外孔徑的差值需要大于5mil,因此這里設置外孔徑為30mil。
2、差分信號的布線
差分信號的布線與平時的導線布線有所不同。
兩條差分導線的長短誤差需要在合理的范圍內。
如果布線完成后,上圖提示沒有顯示符合規則的綠色,需要通過等長調節去調節它們之間的長度誤差。
?3、VIN_5V到VCC的布線
電源模塊通過Type接口引入VIN_5V供電,通過自動冷啟動電路變成VCC_SW,然后再通過電源開關變成VCC,最后的VCC才是給MCU供電的電源。
4、P1口的布線
P1口的飛線這里已經完全擰在了一起,所以需要先把線擰回來,再把導線接過去。?
如上圖所示,可以通過過孔和繞線的方式,將它們的排序給擰回來。?
其他飛線難處理的,可以通過兩個過孔穿過其他線來布線,這里就不多加說明了。布線完如下所示。
5、制作銅箔LOGO
插入文本,然后放置頂層。
然后復制一個放到邊上。將邊上這個文字切換到頂層阻焊層。
然后將當前工作圖層,也切換到頂層阻焊層,然后將兩部分文字重合。
將這部分文字區域設置為禁止鋪銅區域,且該區域的圓角半徑設置為1mm。
?最后將該區域復制一份,將復制后的區域翻面。
將工作區設置為底層,然后將復制后的區域和復制前的區域重合,最后在鋪銅以后就能得到文字的銅箔LOGO了。
6、鋪銅
當對正反面鋪銅完之后,還有GND飛線殘留就可以在飛線的源頭鋪銅上,放置過孔的GND。
當放置了GND的過孔后,飛線就會自然消失。
晶振區域,禁止鋪銅的部分,也可以通過在旁邊的銅板上加一個GND的過孔,然后將晶振中需要連接GND的部分,連接到過孔上,這樣飛線就可以完成了。
7、放置縫合孔
當覺得有些銅皮上的狹窄處難以通過大電流時,就可以在對應的銅皮上添加GND過孔,來增加它的載流能力。
?設置完成后,框選整個板子。
板子上就會增加很多GND過孔,來增加銅皮的載流能力,尤其是上下兩層銅皮,它們之間的載流能力。
7、檢測DRC
完成所有的步驟后,最后記得再檢測以下DRC,以防出現問題。
8、遇到的問題
CH340N灌電問題
當閉合自鎖開關后,MCU供電指示燈亮,但是斷開開關后,供電指示燈還是亮著的,因此通過排查故障,發現問題產生原因是CH340N充上電空閑時,RXD和TXD引腳都維持著5V電壓,然后連接到MCU就會給芯片供電,讓芯片的VCC引腳產生了3.3V電壓。
通過查閱數據手冊,可以找到解決問題的電路,將CH340N原理圖轉化成下圖所示。
?然后是PCB增加三個元件進去后,需要重新調整。
?首先,將之前的頂層和底層的鋪銅區隱藏,然后再開始布線。
?CH340N的RXD和TXD引腳這里連接都需要刪除,重新布線。
布線完成后,記得重新鋪銅和DRC檢查。
第二版本完成后,將核心板插上開發板后又遇到了第二個問題。
在自鎖開關斷開后,將核心板子插上開發板上,結果電源燈還是亮了,并且給開發板供電上了。
5V排針是一直有電源的,當MCU某個引腳為低電平時,就可能和5V排針形成下面的電路,導致5V能直接通過這個電路給MCU供電。?
解決辦法也很簡單,只需要將5V排針接到自鎖開關控制的VCC,而不是由TypeC接口供電的VIN_5V。同時,3.3V的排針也需要連接到由VCC控制的電源。
原理圖的解決辦法:只需要將5V轉3.3V模塊和排針模塊的5V電壓來源,由VIN_5V改成自鎖開關控制的VCC。
PCB重新布線即可,然后需要重新來一遍淚滴,鋪銅操作。