找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3102|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

開(kāi)源MP3工程分享 附PCB文件

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這個(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)容包括如下:


工程所有的代碼可以通過(guò)我個(gè)人的博客找到鏈接
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當(dāng)前積分為 0


PCB工程文件51hei下載地址:
MP3_Player.zip (9.73 MB, 下載次數(shù): 29)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表