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