歷時2天,幾經折騰。終于將MEGA328P-AU最小系統板調試正常了。下面分享我的制作經驗。
期間所有用到的東西如下:
70mm*50mm單面覆銅板 1塊
MEGA328P-AU單片機 1塊
16M無源貼片晶振 1個
22pF 貼片電容2個
1M貼片電阻1個
1K貼片電阻2個
10K貼片電阻1個
500mA自恢復貼片熔絲1個
0.1uF貼片電容2個
貼片LED燈2個
8位插接端子(針)4組
8位插接端子(座)4組
5位插接端子(針)1組
貼片按鈕1個
Si2323DS 1個。這個是P-MOS管,用來做反接保護,當然也可以用二極管。
用到的設備和軟件:
Altium Designer PCB制圖軟件,設計原理圖和PCB圖
自家造的小雕刻機(打眼真心方便,別問我為什么不用它雕電路,實在是板小,線細,雕刻機加工效果不行)
負性感光油墨(其實現在某寶上有一種感光膜,看著挺不錯,刮油墨是件痛苦的事)
膠片,顯影劑,脫模劑,環保刻蝕劑等做PCB的原材料
USBISP下載器(這個尤為重要,因為空白的芯片需要燒寫熔絲位和下載bootloader,必須用)
示波器(最好有,因為他能判斷你的電路是否成功起振)
Arduino 的IDE軟件。
差不多就這么多了。下面開始說過程:
1. 制版
繪制原理圖,如下:
180143w7cyqgjyqbk0d15c.png (81.3 KB, 下載次數: 171)
下載附件
2016-4-11 02:52 上傳
PCB走線:
180143c4ajzi6016f6qebb.png (65.45 KB, 下載次數: 140)
下載附件
2016-4-11 02:52 上傳
下面的藍色線是實在走不過去了,所以打算背面飛線,留了過孔。
然后輸出負片(如果你的感光油墨是正性的就要輸出正片)并打印
180144hvzgq8j0711801q3.png (175.61 KB, 下載次數: 151)
下載附件
2016-4-11 02:52 上傳
顯影
180144smryll6c7mrrrx5g.png (416.72 KB, 下載次數: 167)
下載附件
2016-4-11 02:52 上傳
刻蝕完成后檢查
180145jxblm0mz5xzsbhyu.png (467.14 KB, 下載次數: 145)
下載附件
2016-4-11 02:52 上傳
這是我已經打好洞的。
然后焊接
180146ih78lhj4nq34yb4b.png (243.71 KB, 下載次數: 168)
下載附件
2016-4-11 02:52 上傳
發現有的地方有錫,有的地方沒有,干脆就都給鍍上,焊工一般。呵呵
然后重頭戲了。
給板子供電。示波器看晶振,沒起振。。。。。。到處檢查電路,沒發現什么問題。后來到處找資料,才知道新的芯片默認是內部晶振,外部是檢測不到的。需要對熔絲位進行初步設置才行。
先如下圖連接線路:
180146ch44n3o24hpg233l.png (7.82 KB, 下載次數: 146)
下載附件
2016-4-11 02:52 上傳
這個是ISP的標準接口。MOSI接單片機11。MISO接12。SCK接13。RESET接單片機RESET口。電源不用說了。
接好線,打開編程器軟件:
180146vuucezqcn0brhxvj.png (70.35 KB, 下載次數: 174)
下載附件
2016-4-11 02:52 上傳
選擇芯片Atmega328P。點RD。校驗通過就OK了
然后選熔絲:如下
180146drreeulj17ddn162.png (41.99 KB, 下載次數: 177)
下載附件
2016-4-11 02:52 上傳
這個熔絲是現在默認的,可以讀取下,新芯片一般都是這樣。
至于要怎么設置具體的熔絲位,我是在arduino安裝目錄下的hardwarearduinoavr里面,有個boards.txt的文件。用記事本打開可以找到這個
180147uuiucxooobek57xe.png (14.87 KB, 下載次數: 153)
下載附件
2016-4-11 02:52 上傳
其中
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
這就是需要我們配置的。
0xff 轉換為二進制為 1111 1111,也就是全部為1。
0xde 轉換為二進制為 1101 1110。怎么用后面說。
180147ks5kdwtrdd3jus3n.png (41.78 KB, 下載次數: 160)
下載附件
2016-4-11 02:52 上傳
如下選擇。就發現下面的熔絲低位為FF了,高位為DE了。后面擴展什么的不用管了
具體軟件不一樣,是打勾為1還是取消為1需要看情況,千萬別弄錯了,弄錯了會出大事的。
好了,再次檢查,寫熔絲。成功后要確認可以再讀取一次,發現還是FF DE就可以了。
現在用示波器測晶振的兩個引腳,果然起振了。
現在開始燒錄bootloader。選擇 調入flash(調入之前你的系統里要先確認有arduino的IDE軟件)在arduino安裝目錄下的
…hardwarearduinoavrootloadersatmegaATmegaBOOT_168_atmega328.hex文件。我試著用過ATmegaBOOT_168_atmega328_pro_8MHz.hex,貌似不行。所以不糾結了,選擇ATmegaBOOT_168_atmega328.hex就對了。
180147ynhjnxnj5pjjnhwp.png (8.49 KB, 下載次數: 155)
下載附件
2016-4-11 02:52 上傳
勾選如上圖4個項,別點別的。然后自動運行寫入bootloader。成功了之后會發現13腳的那個LED燈會一閃一閃,表示好了,現在可以用USB轉TTL的線插上直接給板子用ARDUINO的IDE寫程序了,隨便寫個串口輸出模擬量的程序,下載,成功。打開串口有數據,OK,大功告成。
180913grsz23dry8qz5ae8.jpg (59.19 KB, 下載次數: 140)
下載附件
2016-4-11 02:52 上傳
補坑,今天在自己另外做的帶電源的板子上實驗328P-AU發現一個問題。是上面沒想到的,所以特此來補坑。
首先熔絲位設置要該變下。低位:FF,高位:DA,擴展:05.具體設置方法如下圖:
134447gzzgf0gh9eh44b62.png (33.59 KB, 下載次數: 165)
下載附件
2016-4-11 02:52 上傳
為什么擴展位要加05呢,意思是設置最低電壓2.7V左右。我之前沒設,發現有時候單片機會丟失bootloader。一直找不到原因,原來是電源掉電的時候沒設置最低停機電壓導致的。所以要設置。還有如下圖:
134639jhs0090huqtnpzx8.png (30.23 KB, 下載次數: 146)
下載附件
2016-4-11 02:52 上傳
Arduino Duemilanove or Diecimila的熔絲位為
diecimila.bootloader.low_fuses=0xFF
diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0x05
刷的固件為:
diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
之前所說的有 一點小失誤,特此說明!
最后上一張半成品:(DIY的自平衡車控制板,USB micro搞反了,飛線了 ,P-MOS反接保護和3.3V變壓芯片引腳都搞錯了。唉!!!!粗心惹的禍)
135120ym636xvzb8x876rk.png (318.7 KB, 下載次數: 151)
下載附件
2016-4-11 02:52 上傳
|