技术文:自制嵌入式Linux开发板,低成本

65人浏览   2024-06-10 14:54:48

自制了一个低成本的嵌入式Linux开发板。成本100元左右。这块开发板可以用来制作手机、机顶盒、智能机器人、无线网络摄像机等项目。


开发板配置

一路以太网(RJ45)、一路WIFI(核心板自带,且占用一路USB)、一路USB接口、DMIC、MIC、SDIO、蜂鸣器、一颗LED(不使用SPI时,可配置为心跳灯,占用SPI_DI端口,附件中的kernel取消了心跳灯驱动,后续可将LED接至其他GPIO,避免与复用功能引脚占用)、一路音频输出(接功放和3.5mm耳机接口)、50Pin FPC连接器用于连接TFT屏幕(屏幕分辨率为1024 * 600),6Pin FPC连接器用于连接电容触控屏

大部分功能引脚均用排针引出,支持宽电压供电(12V),PCB大小为10×10的四层板可直接白嫖。


设计图

主控采用SSD202D,Cortex-A7架构,DDR3 - 128MB、Nand Flash - 128MB,双核最高1.2GHz/

用嘉立创EDA设计的原理图_Sigmastar外设板

用嘉立创EDA设计的原理图_Power

用嘉立创EDA设计的原理图_Other

该开发板的可用的GPIO并不算多,其中较多被外设占用.

如LCD的pwm调光、SD使能、功放使能、触控中断等,且大部分为复用IO,如I2C(两路)、SPI(一路)、UART(最多四路,含Debug接口的UART0和一路带流控的FUART,默认配置为不带流控),复用功能由设备树文件管理,因此默认使用上述复用功能,也可自行修改配置。

用嘉立创EDA设计的原理图_LCD

用嘉立创EDA设计的原理图_pin

用嘉立创EDA设计的PCB图

用嘉立创EDA设计的PCB图


源码

#ifndef PNL_TABLE_JLL070QGI60
#define PNL_TABLE_JLL070QGI60
MhalPnlParamConfig_t stPanel_JLL070QGI60 =
    {
        "JLL070QGI60_1024X600", // const char *m_pPanelName;                ///<  PanelName
#if !defined (__aarch64__)
        0,
#endif
        0,                   //MS_U8 m_bPanelDither :1;                                      ///<  PANEL_DITHER, keep the setting
        E_MHAL_PNL_LINK_TTL, //MHAL_DISP_ApiPnlLinkType_e m_ePanelLinkType   :4;  ///<  PANEL_LINK

        ///////////////////////////////////////////////
        // 开发板相关设置
        ///////////////////////////////////////////////
        1, //MS_U8 m_bPanelDualPort      :1;          ///<  VOP_21[8], MOD_4A[1],    PANEL_DUAL_PORT, refer to m_bPanelDoubleClk
        0, //MS_U8 m_bPanelSwapPort      :1;          ///<  MOD_4A[0],               PANEL_SWAP_PORT, refer to "LVDS output app note" A/B channel swap
        0, //MS_U8 m_bPanelSwapOdd_ML    :1;          ///<  PANEL_SWAP_ODD_ML
        0, //MS_U8 m_bPanelSwapEven_ML   :1;          ///<  PANEL_SWAP_EVEN_ML
        0, //MS_U8 m_bPanelSwapOdd_RB    :1;          ///<  PANEL_SWAP_ODD_RB
        0, //MS_U8 m_bPanelSwapEven_RB   :1;          ///<  PANEL_SWAP_EVEN_RB

        0, //MS_U8 m_bPanelSwapLVDS_POL  :1;          ///<  MOD_40[5], PANEL_SWAP_LVDS_POL, for differential P/N swap
        0, //MS_U8 m_bPanelSwapLVDS_CH   :1;          ///<  MOD_40[6], PANEL_SWAP_LVDS_CH, for pair swap
        0, //MS_U8 m_bPanelPDP10BIT      :1;          ///<  MOD_40[3], PANEL_PDP_10BIT ,for pair swap
        1, //MS_U8 m_bPanelLVDS_TI_MODE  :1;          ///<  MOD_40[2], PANEL_LVDS_TI_MODE, refer to "LVDS output app note"

        ///////////////////////////////////////////////
        // For TTL Only
        ///////////////////////////////////////////////
        0, //MS_U8 m_ucPanelDCLKDelay;                ///<  PANEL_DCLK_DELAY
        0, //MS_U8 m_bPanelInvDCLK   :1;              ///<  MOD_4A[4],                   PANEL_INV_DCLK
        0, //MS_U8 m_bPanelInvDE     :1;              ///<  MOD_4A[2],                   PANEL_INV_DE
        0, //MS_U8 m_bPanelInvHSync  :1;              ///<  MOD_4A[12],                  PANEL_INV_HSYNC
        0, //MS_U8 m_bPanelInvVSync  :1;              ///<  MOD_4A[3],                   PANEL_INV_VSYNC

相关推荐