基于 Nokia 5110 的 Raspberry Pi Hat(原理圖+PCB+代碼+CAD)


原標題:基于 Nokia 5110 的 Raspberry Pi Hat(原理圖+PCB+代碼+CAD)
Nokia 5110 顯示模塊 Raspberry Pi HAT 設計方案
一、設計概述本方案基于 Nokia 5110 PCD8544 驅動的液晶顯示模塊(分辨率 84×48 像素),通過 SPI 接口與 Raspberry Pi 進行通訊,制作為標準的 Pi HAT 形態,可直接插入 40 針 GPIO 接口,實現靈活的圖形顯示功能。方案包括完整的原理圖、PCB 布局、軟硬件代碼以及 KiCad CAD 文件。
電路框圖
模塊間信號說明:
SPI 數據線(SCLK, MOSI, CE)由 Pi 提供,74HC4050 轉換后驅動 PCD8544。
重置和數據/命令選擇(RST, DC)由 Pi 通過 GPIO 控制。
背光控制(BL)通過 NPN 晶體管開關驅動,提供 PWM 調光方案。
二、原理圖設計
本節詳細列出各元器件型號、作用及選用理由。
1. U1:Nokia 5110 液晶顯示模塊
型號:PCD8544 驅動,84×48 點陣,Adafruit 產品 ID 338(或等效國產模塊)。
功能:核心顯示單元,負責像素驅動和命令解析。
選型理由:該芯片成熟度高、資源豐富,低功耗,易于在 Raspberry Pi 上調用開源庫。
2. J1:40 針直插式母座
型號:Samtec TSW-120-07-L-D(2×20,2.54mm 間距)。
功能:連接 Raspberry Pi GPIO,總線信號傳輸通道。
選型理由:針腳排布符合 Pi HAT 標準,焊接牢固,材料耐高溫,兼容性好。
3. U2:74HC4050PW 六通道電平轉換器
型號:Texas Instruments SN74HC4050PW。
功能:將 3.3V TTL 信號穩定傳輸;提升信號驅動能力,增強抗干擾性能。
選型理由:該芯片支持 6 路電平轉換,響應速度快(典型 25ns),功耗低,封裝小巧,適合緊湊 PCB。
4. Q1:2N3904 NPN 晶體管
型號:Diodes Inc. 2N3904(SOT-23)。
功能:背光 LED(D1)開關控制,實現 PWM 調光。
選型理由:通用性高、成本低、開關速度快,能滿足背光亮度控制需求。
5. D1:背光 LED
型號:OSRAM LY T 361-G(5630, 20mA)。
功能:為 LCD 提供均勻背光,提高顯示對比度。
選型理由:壽命長、亮度高、封裝標準,配合 PWM 調光可實現護眼模式。
6. R1:10kΩ 線性可調電阻(對比度調節)
型號:Bourns 3314J-1-103(0805)。
功能:調節 LCD 對比度,通過調節 V0 引腳電壓影響顯示效果。
選型理由:精度 ±10%、尺寸小,適合貼片安裝,使用壽命長,調節平滑。
7. C1, C2:去耦電容
型號:Murata GRM21BR71H104KA01L(0.1μF, 0402)。
功能:為芯片提供穩定電源,濾除電源紋波,防止信號抖動。
選型理由:高頻性能佳,封裝小,貼片可靠。
8. C3:背光濾波電容
型號:Murata GRM31CR61H106KA12L(10μF, 1206)。
功能:背光電源濾波,平滑 PWM 驅動電流。
選型理由:容量大、耐壓高,支持背光高頻開關。
三、PCB 布局與布線
板層結構:雙面板,頂層信號線、底層地平面。
元件布局:40 針母座靠板邊,顯示模塊區域置于頂層中央,背光 LED 及對比度電阻置于顯示模塊附近。
走線規范:SPI 高速線寬 10mil,阻抗匹配;關鍵信號線最短,避免交叉;地線匯聚接地框,確保可靠接地。
電源布線:3.3V 電源軌加大銅箔寬度,背光電流預留足夠銅厚;電源入口處增加防反接二極管 D2(型號 SS14)。
過孔與測試點:在 GND、3.3V、SPI 以及 RST、DC 上增加測試點,方便調試。
四、軟件設計(Python + spidev)
import RPi.GPIO as GPIO
import spidev
import time
# 引腳定義
RST_PIN = 17
DC_PIN = 25
BL_PIN = 18
SPI_BUS = 0
SPI_DEVICE = 0
# 初始化 GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(RST_PIN, GPIO.OUT)
GPIO.setup(DC_PIN, GPIO.OUT)
GPIO.setup(BL_PIN, GPIO.OUT)
# 初始化 SPI
spi = spidev.SpiDev()
spi.open(SPI_BUS, SPI_DEVICE)
spi.max_speed_hz = 4000000
# 復位顯示
GPIO.output(RST_PIN, GPIO.LOW)
time.sleep(0.1)
GPIO.output(RST_PIN, GPIO.HIGH)
# 發送命令函數
def send_command(cmd):
GPIO.output(DC_PIN, GPIO.LOW)
spi.writebytes([cmd])
# 發送數據函數
def send_data(data):
GPIO.output(DC_PIN, GPIO.HIGH)
spi.writebytes(data)
# 初始化 PCD8544
def init_display():
send_command(0x21) # 進入擴展指令集
send_command(0xB1) # 設置對比度
send_command(0x04) # 溫度系數
send_command(0x14) # 設置 LCD 分頻比
send_command(0x20) # 進入基本指令集
send_command(0x0C) # 正常顯示模式
# 清屏
def clear_display():
send_data([0x00]*504)
# 主函數示例
if __name__ == '__main__':
init_display()
clear_display()
# 繪制簡單圖案
send_data([0xFF if i%2==0 else 0x00 for i in range(504)])
time.sleep(5)
clear_display()
spi.close()
GPIO.cleanup()
五、KiCad CAD 設計說明
庫文件:自定義元件庫
NOKIA5110.lib
, 封裝庫NOKIA5110.pretty
原理圖文件:
Nokia5110_HAT.sch
PCB 文件:
Nokia5110_HAT.kicad_pcb
布局優化:使用 45° 走線、焊盤圓滑過渡、絲印清晰。
六、總結本設計充分考慮電路可靠性、信號完整性及用戶使用體驗,選用成熟的元器件型號,提供完整的軟硬件實現及 CAD 文件,能夠快速部署到生產,適用于開發板顯示、信息提示、簡易游戲等多種應用場景。
責任編輯:David
【免責聲明】
1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。