這個(gè)工程準(zhǔn)確的時(shí)間是從2019 8初開(kāi)始的,中間很多事耽擱,一方面是做這件事本身不太重視吧,感覺(jué)簡(jiǎn)單,可能只是做一個(gè)板子,但是硬件的事誰(shuí)知道呢(就像我有同學(xué)說(shuō),昨天剛還好的代碼 今天就不行了),我遇見(jiàn)的大多數(shù)情況,其實(shí)是自己不用心所致,所以呢我希望把這些經(jīng)驗(yàn)分享出來(lái),如果對(duì)你有觸動(dòng),想必也會(huì)減少你的損失。 由于這里時(shí)間有限,有些工作做得不是很細(xì)致,像是原件的選用,某些驅(qū)動(dòng)的移別人寫的比較亂這里就也就直接拿來(lái)用了。另外呢由于每個(gè)人的習(xí)慣不 同,代碼的風(fēng)格也會(huì)有較大的差異所以,整體的代碼風(fēng)格可能不是很一致,這里希望讀者能夠理解。 首先看一下我初始時(shí)候的構(gòu)想: 大概的形式如下 其 實(shí)這個(gè)和最終的實(shí)物的排版方式已經(jīng)很接近了,除了沒(méi)有加電源模塊,lcd也最終放棄了橫屏,由于驅(qū)動(dòng)的管腳有限所以就沒(méi)有選用需要驅(qū)動(dòng)管腳較多的橫屏 LCD,而是選用SPI的LCD,這樣省下了不少的管腳可以利用(最終貌似沒(méi)有用到),mcu也放棄st32f103c8t6(64K flash)專用引腳數(shù)更多的身體stm32f103rgt6(1M flash),儲(chǔ)存更大便于集成FAT,和更多的調(diào)試框架(直接用正點(diǎn)原子的usmart之類的)。
外置接口: Uart SWD 耳機(jī)口 microusb(或可以用于USB通信) microSD 集成的功能如下 外設(shè)最終沒(méi)有集成FM和藍(lán)牙,相信以后的工程會(huì)集成更多的功能。 起初我的設(shè)想就是直接開(kāi)源,可能大家對(duì)整個(gè)項(xiàng)目感興趣很少,但是,pcb原理圖,或者是驅(qū)動(dòng)代碼等總會(huì)對(duì)大家有幫助你的。 原件的選擇 由于這里還是在驗(yàn)證階段,原件選用的原則就比較的隨意了,不用考慮原理圖,pcb布線事(最后發(fā)現(xiàn)這里是一個(gè)大坑),這里其實(shí)主要的選擇是 LCD的尺寸,以及解碼芯片的選擇,由于是市場(chǎng)上有很多的解碼芯片,有的甚至直接插上內(nèi)存卡都可以播放歌曲例如BY8001-SSOP24(淘寶有賣), 但是這里希望能夠編程,并且獲得更多的功能,所以這些芯片是放棄的,另外屏幕的尺寸選擇主要兼顧顯示和性能,象stm32f1系列主頻不是很高的,越大的 屏幕刷新一次的時(shí)間就越長(zhǎng),這樣對(duì)其他硬件的影響就比較大。最終選擇如下: (以上也算的打廣告了了吧,關(guān)鍵是我沒(méi)有網(wǎng)店啊) LCD使用2寸屏(178*200)主要是2.4寸有點(diǎn)大,1.8又感覺(jué)很小折中之舉吧。 解碼芯片使用VS1053B:這個(gè)可以直接給音頻數(shù)據(jù)然后直接播放直接減輕了mcu的壓力。
關(guān)于flash我不知道很早的的時(shí)候買了兩個(gè)W25Q128所以這直接就選用了(還是16腳的),雖然有點(diǎn)占地方但是驅(qū)動(dòng)簡(jiǎn)單就直接上了。
管腳的分配 這次的的管腳的分配是根據(jù)最小系統(tǒng)板的管腳進(jìn)行配置的(之后發(fā)現(xiàn)真傻,只是方便了初期的驗(yàn)證),最小系統(tǒng)板的資源分配如下:
管腳分配如下:
驗(yàn)證板將會(huì)在電路模擬中展開(kāi)。 電路的模擬 初期只是為了驗(yàn)證驅(qū)動(dòng)能力所以還是在stm32f103c8t6上做驗(yàn)證,可能你會(huì)問(wèn)這么簡(jiǎn)單還要做驗(yàn)證?關(guān)鍵是我真的沒(méi)有經(jīng)驗(yàn),不論是電源 的選用還是管腳的驅(qū)動(dòng)的問(wèn)題,最終驗(yàn)證還是發(fā)現(xiàn)了一些管腳驅(qū)動(dòng)能力的問(wèn)題,所以在管腳分配的時(shí)候標(biāo)記出來(lái),防止畫原理圖的時(shí)候分配管腳出問(wèn)題。下面是驗(yàn)證 板的樣子:
由于是手動(dòng)焊接的樣子確實(shí)有點(diǎn)挫, 二期工程里主要包含的是原件的選擇(更為細(xì)致),原理圖,PCB,封裝圖庫(kù)的完成以及第一次打樣測(cè)試(這個(gè)真的是第一次打樣的經(jīng)歷)過(guò)程,由于 當(dāng)時(shí)沒(méi)有錄制視頻,現(xiàn)在手里的只有一堆的電路,器件的手冊(cè)材料,以及驅(qū)動(dòng)代碼等。 貌似我github上傳的是這期的工程如果你要參考的話,我會(huì)在GitHub上更新然后區(qū)別一下版本,以及工程記錄文件。
原件的選擇(細(xì)分)下面是有關(guān)器件的選擇以及圖片型號(hào)以及原件來(lái)源: 電阻以及電容的選擇: 晶振:3.726kHz 8MHz 12.228Hz Mcu:stm32f103rgt6(1M flash 72MHz ) 解碼芯片:VS1053B 儲(chǔ)存:MicroSD LCD:2.0寸 按鍵:方形按鍵 LED:直接使用小的led是 耳機(jī)孔: 其他雜項(xiàng): 原理圖及封裝圖下面只是一些展示如果想要所有的文件工程的話呢請(qǐng)到文章的末尾找到筆者在GitHub上上傳的文件。 LED: MicroSD: 耳機(jī)孔:
注重原理而不是電路的連接,另外多的是使用功能而不是電路的具體電流電壓屬性,由于數(shù)字的路的工作電壓的范圍變動(dòng)允許值還是比較大的,所以這 里除了對(duì)電源于有要求外其余大要求不是太大,這里的電源包括了mcu的電源,LCD電源(由于LCD的背光是耗電比較大的),還有就是對(duì)于VS1053B 的專門的電源,包括1.8v的以一個(gè)IOVCC(通過(guò)電阻分壓大概3.0v)。 其實(shí)在這里比較困難的是我不確定原子給的原理圖是否可以直接用,但是由于他們出了模塊所以這里就直接使用了一些電路配置,本工程沒(méi)有使用外放 說(shuō)以電路上又有一些改進(jìn),這里在Vs1053B的配置過(guò)程中有一個(gè)管腳讓我比較長(zhǎng)困惑的是它的功能,那就是GRUND,手冊(cè)上說(shuō)在不使用的時(shí)候不能接地, 但是在網(wǎng)絡(luò)上查找相關(guān)的資料以后得到的結(jié)果是,其實(shí)這是耳機(jī)的公共地,也就是耳機(jī)的地線。 下面是我電路的配置。 電源(供電給MCU 以及其部件):通過(guò)AMS1117-3.3將5V的USB輸入轉(zhuǎn)換成3.3V供電 (3.3V的濾波電解電容改為了220uf普通電容)
LCD及供電: (這里注意圖中BlackLight+最終的限流電阻更改成了27R,3.3V的濾波電解電容改為了220uf普通電容)
MCU電路配置: (我已經(jīng)最大限度保持清晰了,想看原理圖的話還是在文章末尾在GitHub上找吧。
W25Q128以及MicoSD電路配置: (開(kāi)始的時(shí)候我還以為MicroSD對(duì)電壓比較敏感呢,這里其實(shí)就幾個(gè)上拉電阻而已)。 Key(按鍵): 這里的配置其實(shí)沒(méi)有加消抖電容,這是由于最終的排版的位置不夠索性就去掉了軟件處理一下問(wèn)題其實(shí)不大。
UART與SWD(仿真下載):uart這里沒(méi)有考慮到使用的特殊情況直接沒(méi)有任何的限制,然后外接一個(gè)ch340用于調(diào)試,swd則是借鑒jtag的接法接的。
這就是一個(gè)jtag下載器的接法由于我用的是swd的下載方式其他無(wú)用的線路也就按照這里的接法拉高了。
具體的接法 重點(diǎn)來(lái)了這里是VS1053B的電路配置 VS1053B:包括VS1053B芯片周圍電源以及耳機(jī)接口
電源1.8V: 耳機(jī)接口: 好了就是所有的電路配置了,下面是一張全圖,很模糊的還是看我上傳的工程文件吧。
中間其實(shí)除了很多的狀況,這才是小白吧,不過(guò)初期遇到問(wèn)題越多也越好,這一樣以后遇到類似的問(wèn)題解決問(wèn)題的能力就能夠體現(xiàn)出來(lái)了,寫代碼也一 樣啊,所以呀,一個(gè)問(wèn)題出來(lái)你還不會(huì)解決的時(shí)候就是你最好的學(xué)習(xí)機(jī)會(huì)。雖然這樣的經(jīng)歷是不是很友好的甚至你還會(huì)反感但是現(xiàn)實(shí)不就是這樣么。
在下面直接就是PCB圖了(貌似我github上傳的是這期的工程圖) PCB:
以上就是最終的PCB的樣子了。但是這里的的問(wèn)題是: 1.屏幕接線的尺寸畫錯(cuò)了,本來(lái)0.4mm的尺寸我畫成了0.8mm以上了。 2.沒(méi)有關(guān)注高頻的線路的設(shè)計(jì),也就是下圖的地方,下方直接就從晶振的下方穿過(guò)去了。
商家的選擇 其實(shí)這里商家的選擇很簡(jiǎn)單,便宜就行,我開(kāi)始的時(shí)候還專門整理一下價(jià)格以及他們的制程等,例如: 其實(shí)不必要這樣,你只要保證你的你的PCB線寬大于8mil,線距也大于8mil(因?yàn)榇蟛糠志距為6mil),過(guò)孔大小大于8mil就好了,這三個(gè)條件其實(shí)我不用怎么調(diào)整對(duì)于我這樣的工程完全沒(méi)問(wèn)題。 另外第一次打樣我就被坑了,人家說(shuō)50塊(打印10片)我就給了,記住啊,普通10cm*10cm的板子1-10片都是30塊(普通價(jià)格,綠油的)。所以直接一次打印10片就好了。 工程打樣由于我第一次畫板子所以直接翻車,下面是圖:
我主要說(shuō)我第一次板子的問(wèn)題: 1. 布線問(wèn)題 有 注意到的是晶振和背面的信號(hào)干擾的問(wèn)題所以這里直接無(wú)法驅(qū)動(dòng),要不是晶振干擾到了信號(hào)線或者反之,怎么說(shuō)吧,畫圖之前確實(shí)考慮的好好的檢查完的時(shí)候真是覺(jué) 得這第一次打樣就這樣(而且還被坑了20塊,8cm*5cm居然問(wèn)我要了50,第二次打樣花了30),還有就是Uart串口布線反了(Rx,Tx反了)這 不是太大的問(wèn)題改一下布線就行。 2. LCD接口: 本著把所有的原件檢查了一遍的原則,還是沒(méi)有防止自己犯這種錯(cuò)誤簡(jiǎn)直了,把封裝的尺寸畫錯(cuò)了,管腳間距直接擴(kuò)大了一倍多,當(dāng)時(shí)拿回來(lái)整個(gè)心情就不好了,但 是為了檢驗(yàn)線路正確還是焊上去了原件。 3. 晶振布局問(wèn)題(重要) 這個(gè)地方是很容易犯的,沒(méi)做過(guò)電路,還沒(méi)人帶過(guò)很容易犯這種錯(cuò)誤,在高速電路中要避免晶振下面過(guò)線,而且盡量頂層與底層走線靠近時(shí)不要平行,這些都是一般 的規(guī)則,此次的布線本著的原則是很簡(jiǎn)單的直接將所有的器件連接到位能工作就萬(wàn)事大吉。 重畫PCB再次打樣 更改晶振的背部干擾的問(wèn)題 實(shí)物圖如下: 更改驅(qū)動(dòng)(出現(xiàn)的問(wèn)題): 這里主要是LCD的驅(qū)動(dòng),順便說(shuō)一下驅(qū)動(dòng)LCD的步驟: 1. 初始化驅(qū)動(dòng)管腳如:CS RESET,D/C之類的,SPI或者FMSC。 2. 向LCD寫驅(qū)動(dòng)代碼 3. 你可以寫一個(gè)設(shè)置背景色為白色(用以驗(yàn)證) 集成文件系統(tǒng)1. MicroSD卡的準(zhǔn)備 2. 更改diskio的底層驅(qū)動(dòng) 3. 加入內(nèi)存管理代碼(這里直接使用正點(diǎn)原子的代碼) 播放效果:這里沒(méi)有寫什么復(fù)雜的界面(關(guān)鍵是下一步的考慮用不到)
工程文件已經(jīng)通過(guò)附件的形式上傳內(nèi)容包括如下:
0.png (38.3 KB, 下載次數(shù): 85)
下載附件
2020-7-15 03:09 上傳
工程所有的代碼可以通過(guò)我個(gè)人的博客找到鏈接
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當(dāng)前積分為 0
PCB工程文件51hei下載地址:
MP3_Player.zip
(9.73 MB, 下載次數(shù): 29)
2020-7-14 17:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|