• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > DIY一個樹莓派擴展板

    DIY一個樹莓派擴展板

    作者: 時間:2017-10-20 來源:網絡 收藏

      Arduino的擴展板被稱為Shield,而的擴展板則稱作(Hardware Attached on Top),意為附加在頂上的硬件板卡。下面就帶著大家從零開始設計一塊開源的擴展板,暫名為Raspberry Pi ICA

    本文引用地址:http://www.czjhyjcfj.com/article/201710/366821.htm

      

      Raspberry Pi ICA

      1. 需求分析

      設計HAT的初衷是為樹莓派提供基本的顯示和用戶輸入功能,并引出UART、I2C、SPI等硬件接口,方便連接其他模塊,同時也能夠做為用戶學習樹莓派硬件編程的入門板(Starter Board)。ICA HAT的配置如下:

      1. 用戶按鍵x5,可以作為上下左右和“確定”按鍵;

      2. 用戶LED x4,實現基本指示功能,另有一個電源指示LED;

      3. 有源蜂鳴器x1,提供報警功能;

      4. 紅外發射管x2,紅外接收頭x1,實現紅外收發遙控功能;

      5. 七段數碼管x2,實現8位數字顯示,通過SPI接口的MAX7219芯片驅動;

      6. I/O和電源擴展排針若干。

      設定好需求后,首先需要考慮的是結構問題,本例的設計針對的是樹莓派2B型號,同時也兼容一代的B+型號。下圖為樹莓派2B/B+的機械結構:

      

      針對樹莓派的機械結構,可以設計全長和半長兩種HAT。全長板與樹莓派外框尺寸相同,但由于樹莓的USB和RJ45連接器較高,需要注意該區域底層的器件是否會與連接器接觸。

      半長板則只包含四個螺孔的區域。

      兩種板型都通過2.54mm間距排座與主板上的排針連接,并通過4個M2.5銅柱或螺釘與主板進行固定。如下圖所示。

      

      圖 全長HAT和半長HAT

     已將設計好的兩種尺寸HAT存放在GitHub上,讀者可以在此基礎上進行設計。

      分析完機械結構后,緊接著需要考慮的是I/O資源分配。樹莓派2B/B+的I/O中包括兩個SPI接口、兩個I2C接口和一個UART接口。沒有可用的硬件PWM和ADC。并且,I2C0被用作IDPROM接口,用于讀取HAT板卡信息,用戶無法使用。SPI1在CPU中又叫做SPI_AUX,目前 Linux驅動尚不完善,但可以通過pigpo庫調用。如下圖所示:

      

      本例將SPI0、I2C1和UART0引出至排針,MAX7219使用SPI1控制,并使用GPIO作為軟片選。其他功能根據布線任意分配GPIO。

      2. 硬件設計與制作

      需求分析完成后開始進行硬件設計,兔子使用的是Cadence 16.6工具。原理圖工具為OrCAD Capture CIS,PCB工具為Allegro PCB Editor。

      首先是IDPROM,將一片EEPROM與樹莓派的I2C0相連。這部分電路為保留功能,實際生產時不安裝(實際不焊接的器件用NC表示)。

      

      用戶LED使用GPIO灌電流控制,當IO為低時LED點亮。

      

      按鍵部分通過GPIO檢測按鍵左側電平實現,按鍵松開時為高電平,按下為低電平。這里未添加硬件消抖,需要軟件實現。

      

      紅外發射管需要電流較大,因此通過一個GPIO控制NPN三極管來驅動紅外LED,高電平時紅外管導通。可以只焊接并使用一個LED,使用兩個LED可以增強紅外信號。

      

      紅外接收采用一體接收頭HS0038,可以工作在3.3V電壓下,使用一個GPIO來接收紅外信號。

      

      有源蜂鳴器也需要較大電流,和紅外管一樣采用三極管驅動,GPIO高電平時蜂鳴器發聲。

      

      數字顯示采用兩個4位7段數碼管(共陰極,算上小數點其實是8段),并通過MAX7219芯片進行驅動。MAX7219最多提供8段8位顯示,這里將 MAX7219的段碼A~DP按順序同時連接兩片數碼管,用于顯示每一位的內容。而MAX7219的數位(Digital)選擇信號則分別連至兩片數碼管各公共端。

      MAX7219通過SPI與樹莓派相連,由于只需要控制不需要讀取信息,DOUT可不接。芯片采用5V供電,嚴格意義上SPI應使用5V電平,經過樹莓派的3.3V電平也可以正常控制,但建議設置電平轉換電路。

      

      

      最后是接口擴展排針,串接的100ohm電阻起限流保護作用。每個接口分別提供了3.3V電源和GND。

      

      ICA HAT的PCB采用廉價的雙面板(生產10片PCB只需要50RMB),需要說明的是布局。

      根據一般用戶的使用習慣,數碼管并排放置于板子的上部(最為醒目的位置),按鍵放在板子的右下角(慣用左手的朋友可放在左側)。紅外收發部分和IO接口整齊排列于四周板邊以防止阻擋和方便接線。其他的如LED和蜂鳴器在板中間選擇位置放置即可。

      

      

      設計好的PCB文件可導出成光繪(Artwork)和鉆孔(Drill)文件交予PCB廠商生產,國內的廠商一般也會接受Altium Designer和Protel格式的工程文件,但實際也是轉成光繪來進行生產的。廠商同時會提供免費的測試,保證電路不出現短路等情況,下圖為生產好的 PCB:

      

      

      PCB生產后是器件貼片焊接,如果是機器焊接就需要提供生產鋼網用的助焊層(Solder mask)文件,和用于機器貼片的裝配層(Assembly)文件。

      這里由于器件簡單量少,兔子采用手工焊接的方式。焊接時可先焊接難度較大引腳密集的貼片IC,然后焊接高度較低的貼片器件,最后焊接較高的直插器件。連接器和數碼管可于最后焊接。下圖為手工焊接完成的電路板,我們稱之為PCBA:

      

      

      需要注意的是,焊接完成后需要測試電路是否短路,特別是電源的短路,然后再上電測試。否則不但可能燒壞HAT板子,還有可能損壞樹莓派主板。



    關鍵詞: 樹莓派 HAT

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 高淳县| 涟源市| 大埔县| 都昌县| 绵竹市| 太仓市| 迭部县| 双辽市| 沅陵县| 子洲县| 东乌珠穆沁旗| 区。| 辉南县| 鲜城| 崇阳县| 吉首市| 平顶山市| 延津县| 连州市| 台州市| 丰宁| 朝阳区| 弥勒县| 贵南县| 蛟河市| 萍乡市| 曲阜市| 马龙县| 阳江市| 汶川县| 电白县| 永福县| 交城县| 台中市| 名山县| 梅河口市| 临桂县| 邵阳市| 白玉县| 柞水县| 沭阳县|