Difference between revisions of "Smart4418/zh"
(→烧写系统到Smart4418的eMMC) |
(updated by API) |
||
(76 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Smart4418|English]] | [[Smart4418|English]] | ||
==介绍== | ==介绍== | ||
− | [[File: | + | [[File:Smart441801.jpg|thumb|frameless|500px|]] |
− | [[File: | + | [[File:Smart4418-layout.jpg|thumb|frameless|500px|]] |
− | [[File: | + | [[File:Smart4418 6818SDK V2 1812-2.jpg|thumb|500px|Front]] |
− | [[File:Smart4418- | + | [[File:Smart4418 6818SDK V2 1812-S430.jpg|thumb|500px|Overview]] |
* Smart4418是一款高集成的高性能四核Cortex-A9核心板,由广州友善之臂设计、生产和发行销售。作为Smart210核心板的兼容替代品,它采用三星S5P4418作为主处理器,运行主频可高达1.4Ghz,并标配1GB DDR3内存和8GB eMMC高速闪存。Smart4418核心板不仅集成AXP228电源管理单元,可实现软件开关机和硬件唤醒功能,而且集成千兆以太网卡和声卡芯片,非常方便企业用户进行快速产品设计和项目开发。 | * Smart4418是一款高集成的高性能四核Cortex-A9核心板,由广州友善之臂设计、生产和发行销售。作为Smart210核心板的兼容替代品,它采用三星S5P4418作为主处理器,运行主频可高达1.4Ghz,并标配1GB DDR3内存和8GB eMMC高速闪存。Smart4418核心板不仅集成AXP228电源管理单元,可实现软件开关机和硬件唤醒功能,而且集成千兆以太网卡和声卡芯片,非常方便企业用户进行快速产品设计和项目开发。 | ||
* Smart4418核心板采用了2.0间距双排针(P1,P2,P4),尺寸为74x55mm,总共引出174Pin引脚。其中P1和P2排针为标配焊接(可兼容Smart210之P1,P2),它们已经包含了大部分常用功能;P4空焊,方便有需要的用户扩展开发使用。在布局安排上,我们尽量考虑把常用的LCD模块能够固定在底板上,比如3.5“、4.3“、5“、7“、10.1“LCD等。 | * Smart4418核心板采用了2.0间距双排针(P1,P2,P4),尺寸为74x55mm,总共引出174Pin引脚。其中P1和P2排针为标配焊接(可兼容Smart210之P1,P2),它们已经包含了大部分常用功能;P4空焊,方便有需要的用户扩展开发使用。在布局安排上,我们尽量考虑把常用的LCD模块能够固定在底板上,比如3.5“、4.3“、5“、7“、10.1“LCD等。 | ||
− | * 另外,若需要使用Smart4418的千兆以太网功能,请选用Smart4418/ | + | * 另外,若需要使用Smart4418的千兆以太网功能,请选用Smart4418/6818SDK底板。Smart4418与[[Smart6818]]pin to pin完全兼容。 |
− | * Smart4418SDK 1606底板详情请查看[http://wiki. | + | * Smart4418SDK 1606底板详情请查看[http://wiki.friendlyelec.com/wiki/index.php/Smart4418SDK Smart4418SDK 1606]。 |
+ | * Smart4418/6818SDK V2底板详情请查看[http://wiki.friendlyelec.com/wiki/index.php/Smart4418/6818SDK_V2/zh Smart4418/6818SDK_V2]。 | ||
==资源特性== | ==资源特性== | ||
* CPU: S5P4418, 动态运行主频400Mhz--1.4GHz | * CPU: S5P4418, 动态运行主频400Mhz--1.4GHz | ||
− | * | + | * 电源管理: 采用一颗ARM® Cortex®-M0单片机做电源管理, 支持动态调压, 软件关机和定时开机等功能 |
* DDR3 RAM: 1GB | * DDR3 RAM: 1GB | ||
* 网络: 千兆以太网接口(RTL8211E), 板载唯一MAC地址芯片 | * 网络: 千兆以太网接口(RTL8211E), 板载唯一MAC地址芯片 | ||
Line 19: | Line 20: | ||
* LED:一个电源指示LED, 两个GPIO控制的LED | * LED:一个电源指示LED, 两个GPIO控制的LED | ||
* 其他: 板载温控电阻 | * 其他: 板载温控电阻 | ||
− | * PCB Size: | + | * PCB Size: 74x55mm,8层,沉金工艺 |
+ | * 温度工作范围:零下30摄氏度到70摄氏度 | ||
* 供电: DC 5V, up to 1.2A | * 供电: DC 5V, up to 1.2A | ||
− | * OS/Software: u-boot, | + | * OS/Software: u-boot, Android 7.0, Debian8, ubuntu-core |
* 3个2.0mm排针, 共174针, 引出以下信号: | * 3个2.0mm排针, 共174针, 引出以下信号: | ||
** USB 2.0 - Host x1, OTG x1 | ** USB 2.0 - Host x1, OTG x1 | ||
Line 141: | Line 143: | ||
|23 || GPIOB26 || 24 || ADC3 | |23 || GPIOB26 || 24 || ADC3 | ||
|- | |- | ||
− | |25 || | + | |25 || GPIOC4 || 26 || ADC4 |
|- | |- | ||
|27 || AliveGPIO3 || 28 || ADC5 | |27 || AliveGPIO3 || 28 || ADC5 | ||
|- | |- | ||
− | |29 || | + | |29 || PWREN_SYS || 30 || ADC6 |
|- | |- | ||
|31 || GPIOC14/PWM2 || 32 || ADC7 | |31 || GPIOC14/PWM2 || 32 || ADC7 | ||
Line 160: | Line 162: | ||
::#10/100M以太网模式: LAN_MDI1_N/P=RX-/+, LAN_MDI0_N/P=TX-/+, 也即只需4根信号线连接到带变压器的RJ45连接器 | ::#10/100M以太网模式: LAN_MDI1_N/P=RX-/+, LAN_MDI0_N/P=TX-/+, 也即只需4根信号线连接到带变压器的RJ45连接器 | ||
::#10/100/1000M以太网模式: LAN_MDI0_N/P~LAN_MDI3N/P, 也即需要把全部8根信号线连接到带变压器的RJ45连接器 | ::#10/100/1000M以太网模式: LAN_MDI0_N/P~LAN_MDI3N/P, 也即需要把全部8根信号线连接到带变压器的RJ45连接器 | ||
− | ::#具体外围及扩展电路请参考我们设计的底板[http://wiki. | + | ::#MMC0和MMC1必须在底板上上拉,即使不连接任何设备也需要如此处理 |
− | ::#* Smart4418SDK 1606底板详情请查看[http://wiki. | + | ::#具体外围及扩展电路请参考我们设计的底板[http://wiki.friendlyelec.com/wiki/index.php/Smart210/4418_SDK/zh Smart210/4418 SDK] |
− | ::#[http://wiki. | + | ::#* Smart4418SDK 1606底板详情请查看[http://wiki.friendlyelec.com/wiki/index.php/Smart4418SDK Smart4418SDK 1606]。 |
+ | ::#[http://wiki.friendlyelec.com/wiki/images/c/c2/Smart4418-1711-Schematic.pdf Smart4418原理图pdf] | ||
==机械尺寸== | ==机械尺寸== | ||
− | :[[File:Smart4418- | + | :[[File:Smart4418-1608-Dimensions.png|500px]]<br> |
− | :需要更详细的尺寸, 请下载dxf文件:[http://wiki. | + | :需要更详细的尺寸, 请下载dxf文件::[http://wiki.friendlyelec.com/wiki/images/d/df/Smart4418_6818-1711_drawing%28dxf%29.zip Smart4418-1711-Drawing(dxf).zip] |
==硬件设计注意事项== | ==硬件设计注意事项== | ||
Line 175: | Line 178: | ||
==参考开发底板== | ==参考开发底板== | ||
− | :[http://wiki. | + | :[http://wiki.friendlyelec.com/wiki/index.php/Smart4418SDK_Comparison Smart4418SDK Comparison] |
− | :[http://wiki. | + | :[http://wiki.friendlyelec.com/wiki/index.php/Smart210/4418_SDK/zh Smart210/4418 SDK] |
+ | :[http://wiki.friendlyelec.com/wiki/index.php/Smart4418SDK Smart4418SDK] | ||
+ | :[http://wiki.friendlyelec.com/wiki/index.php/Smart4418/6818SDK_V2/zh Smart4418/6818SDK V2] | ||
==快速入门== | ==快速入门== | ||
===准备工作=== | ===准备工作=== | ||
要开启你的Smart4418开发板,请先准备好以下硬件 | 要开启你的Smart4418开发板,请先准备好以下硬件 | ||
− | * Smart4418核心主板+ | + | * Smart4418核心主板+底板 |
* 大SD卡/: Class10或以上的 8GB SDHC卡 | * 大SD卡/: Class10或以上的 8GB SDHC卡 | ||
− | * | + | * 一个DC接口的外接电源,要求输出为12V/2A |
* 一台支持HDMI输入的显示器或者电视(或选购LCD配件) | * 一台支持HDMI输入的显示器或者电视(或选购LCD配件) | ||
− | * | + | * 一套USB键盘鼠标(或选购串口转接板,要PC上接串口终端进行操作) |
* 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统 | * 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统 | ||
− | + | {{S5P4418BootFromSDCard/zh|Smart4418}} | |
− | + | {{BurnOSToEMMC/zh|Smart4418|s5p4418-eflasher}} | |
− | + | {{S5PXX18MakeSDCardViaSDFusing/zh|Smart4418|sd-fuse_s5p4418}} | |
− | + | {{ResizeTFCardFS/zh|Smart4418}} | |
− | + | {{S5Pxx18HDMI/zh|Smart4418|arch/arm/plat-s5p4418/nanopi2/lcds.c}} | |
− | + | {{S5Pxx18MofidyKernelCommandLineOnHostPC/zh|Smart4418|sd-fuse_s5p4418}} | |
− | + | {{NanoPCStartToUse/zh|Smart4418}} | |
− | + | {{FriendlyCoreGeneral/zh|Smart4418}} | |
− | + | {{FriendlyCoreRunX11Application/zh|Smart4418}} | |
− | + | {{FriendlyCoreS5Pxx18/zh|Smart4418}} | |
− | + | {{UbuntuXenial-Armhf-Install-Docker/zh|Smart4418}} | |
− | + | {{S5Pxx18Android/zh|Smart4418}} | |
− | + | {{S5P4418BuildFromSource/zh|Smart4418}} | |
− | + | {{S5P4418-KernelHeaderFile/zh|Smart4418}} | |
− | |s5p4418- | + | {{S5Pxx18ExternalModules/zh|Smart4418}} |
− | + | {{S5Pxx18AccessHWUnderAndroid/zh|Smart4418}} | |
− | + | {{S5Pxx18ConnectToLCDModules/zh|Smart4418}} | |
− | + | {{S5Pxx18HWfiles/zh|Smart4418}} | |
− | + | {{S5P4418Resources/zh|Smart4418}} | |
− | + | {{DownloadUrl/zh|Smart4418}} | |
− | + | {{TechSupport/zh|Smart4418}} | |
− | + | {{S5P4418ChangeLog/zh}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | || | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |} | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |} | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 08:15, 3 July 2024
Contents
- 1 介绍
- 2 资源特性
- 3 管脚定义
- 4 机械尺寸
- 5 硬件设计注意事项
- 6 参考开发底板
- 7 快速入门
- 8 FriendlyCore的使用
- 8.1 介绍
- 8.2 运行FriendlyCore
- 8.3 开发Qt应用
- 8.4 开机自动运行Qt示例程序
- 8.5 扩展TF卡文件系统
- 8.6 使用蓝牙传输文件
- 8.7 连接WiFi
- 8.8 连接以太网
- 8.9 定制命令行的欢迎信息(文字LOGO)
- 8.10 修改时区
- 8.11 选择系统默认的音频设备
- 8.12 运行X11程序
- 8.13 运行 Qt 5.10.0 演示程序
- 8.14 运行 Qt5-OpenGL示例
- 8.15 硬解播放高清视频
- 8.16 连接DVP摄像头模块(CAM500B)
- 8.17 电源管理: 关机和定时开机
- 8.18 安装与使用 OpenCV 4.1.2
- 8.19 安装与使用 Caffe
- 8.20 Docker在armhf系统下的安装与使用
- 9 Android系统的使用
- 10 如何编译系统
- 11 编译内核头文件安装包
- 12 扩展连接
- 13 在Android下访问硬件资源
- 14 支持LCD型号
- 15 原理图,Datasheet和尺寸图
- 16 资源链接
- 17 源代码和烧写文件的下载地址
- 18 技术支持
- 19 更新日志
- 19.1 日期 2023-01-09
- 19.2 日期 2020-10-26
- 19.3 日期 2019-12-28
- 19.4 日期 2019-11-26
- 19.5 日期 2019-11-14
- 19.6 日期 2019-10-18
- 19.7 日期 2019-09-30
- 19.8 日期 2019-07-18
- 19.9 日期 2019-06-25
- 19.10 日期 2019-06-03
- 19.11 日期 2019-01-24
- 19.12 日期 2018-12-17
- 19.13 日期 2018-09-06
- 19.14 日期 2018-08-11
- 19.15 日期 2018-03-24
- 19.16 日期 2017-06-13
- 19.17 日期 2017-04-18
- 19.18 日期 2017-03-08
- 19.19 日期 2017-02-09
- 19.20 日期 2016-11-17
- 19.21 日期 2016-09-02
- 19.22 日期 2016-08-20
- 19.23 日期 2016-07-01
- 19.24 日期 2016-05-21
- 19.25 日期 2016-04-19
- 19.26 日期 2016-04-01
- 19.27 日期 2016-02-29
- 19.28 日期 2015-12-01
1 介绍
- Smart4418是一款高集成的高性能四核Cortex-A9核心板,由广州友善之臂设计、生产和发行销售。作为Smart210核心板的兼容替代品,它采用三星S5P4418作为主处理器,运行主频可高达1.4Ghz,并标配1GB DDR3内存和8GB eMMC高速闪存。Smart4418核心板不仅集成AXP228电源管理单元,可实现软件开关机和硬件唤醒功能,而且集成千兆以太网卡和声卡芯片,非常方便企业用户进行快速产品设计和项目开发。
- Smart4418核心板采用了2.0间距双排针(P1,P2,P4),尺寸为74x55mm,总共引出174Pin引脚。其中P1和P2排针为标配焊接(可兼容Smart210之P1,P2),它们已经包含了大部分常用功能;P4空焊,方便有需要的用户扩展开发使用。在布局安排上,我们尽量考虑把常用的LCD模块能够固定在底板上,比如3.5“、4.3“、5“、7“、10.1“LCD等。
- 另外,若需要使用Smart4418的千兆以太网功能,请选用Smart4418/6818SDK底板。Smart4418与Smart6818pin to pin完全兼容。
- Smart4418SDK 1606底板详情请查看Smart4418SDK 1606。
- Smart4418/6818SDK V2底板详情请查看Smart4418/6818SDK_V2。
2 资源特性
- CPU: S5P4418, 动态运行主频400Mhz--1.4GHz
- 电源管理: 采用一颗ARM® Cortex®-M0单片机做电源管理, 支持动态调压, 软件关机和定时开机等功能
- DDR3 RAM: 1GB
- 网络: 千兆以太网接口(RTL8211E), 板载唯一MAC地址芯片
- eMMC:8GB
- 音频:集成音频芯片, 支持麦克风输入和耳机输出
- LED:一个电源指示LED, 两个GPIO控制的LED
- 其他: 板载温控电阻
- PCB Size: 74x55mm,8层,沉金工艺
- 温度工作范围:零下30摄氏度到70摄氏度
- 供电: DC 5V, up to 1.2A
- OS/Software: u-boot, Android 7.0, Debian8, ubuntu-core
- 3个2.0mm排针, 共174针, 引出以下信号:
- USB 2.0 - Host x1, OTG x1
- 视频输出/显示 - RGB Parallel I/F (24-bit), LVDS 和HDMI 1.4a
- 视频输入 - DVP Camera interface, ITU-R BT 601/656 8-bit 和 MIPI-CSI
- 音频输入 - 麦克风输入
- 音频输出 - 耳机输出(带插入检测)和HDMI
- 网络 - 10/100/1000Mbps 以太网 x1
- ADC - CPU自带ADC, 7通道, 12-bit, 输入范围0~1.8V
- 外围接口 - SDIO/MMC x2, SPI x2, I2C x3, UART x5, PWM x3, GPIOs x24
- 其他 - Power按键输入, RESET输入, RESET输出, RTC电池输入
3 管脚定义
P1 P2 Pin# Name Pin# Name Pin# Name Pin# Name 1 VDD_5V 2 DGND 1 UART0_TX 2 UART0_RX 3 RTC_BATT 4 GPIOB8 3 UART1_TX 4 UART1_RX 5 NRESETIN 6 GPIOC17 5 UART2_TX 6 UART2_RX 7 MMC0_CMD 8 MMC1_CMD 7 UART3_TX 8 UART3_RX 9 MMC0_CLK 10 MMC1_CLK 9 UART1_nCTS 10 UART1_nRTS 11 MMC0_D0 12 MMC1_D0 11 CAM0_D0 12 CAM0_D1 13 MMC0_D1 14 MMC1_D1 13 CAM0_D2 14 CAM0_D3 15 MMC0_D2 16 MMC1_D2 15 CAM0_D4 16 CAM0_D5 17 MMC0_D3 18 MMC1_D3 17 CAM0_D6 18 CAM0_D7 19 MMC0_CD 20 GPIOB24 19 CAM0_PCLK 20 CAM0_VSYNC 21 PWRKEY 22 SPI1_CS/GPIOC10 21 CAM0_HYNC 22 GPIOB14 23 GPIOB28/UART4_RX 24 SPI1_MISO/GPIOC11 23 GPIOB16 24 HDMI_TX1P 25 GPIOB29/UART4_TX 26 SPI1_MOSI/GPIOC12 25 HDMI_TX0P 26 HDMI_TX1N 27 GPIOB30 28 SPI1_CLK/GPIOC9 27 HDMI_TX0N 28 HDMI_TXCP 29 GPIOC15 30 GPIOC16 29 HDMI_TX2P 30 HDMI_TXCN 31 GPIOB31 32 GPIOB18 31 HDMI_TX2N 32 HDMI_HPD 33 GPIOD1/PWM0 34 I2C0_SCL 33 I2C1_SDA 34 I2C1_SCL 35 GPIOC13/PWM1 36 I2C0_SDA 35 USB_OTG_ID 36 SPI0_CS 37 USB_HOST_D- 38 I2C2_SCL 37 USB_OTG_D- 38 SPI0_MISO 39 USB_HOST_D+ 40 I2C2_SDA 39 USB_OTG_D+ 40 SPI0_MOSI 41 LCD_B0 42 LCD_B1 41 VBUS_5V 42 SPI0_CL 43 LCD_B2 44 LCD_B3 43 LVDS_CLKP 44 GPIOB25 45 LCD_B4 46 LCD_B5 45 LVDS_CLKM 46 DGND 47 LCD_B6 48 LCD_B7 47 LVDS_Y0P 48 LAN_MDI1_N 49 LCD_G0 50 LCD_G1 49 LVDS_Y0M 50 LAN_MDI1_P 51 LCD_G2 52 LCD_G3 51 LVDS_Y1P 52 LAN_MDI0_N 53 LCD_G4 54 LCD_G5 53 LVDS_Y1M 54 LAN_MDI0_P 55 LCD_G6 56 LCD_G7 55 LVDS_Y2P 56 LINK_LED 57 LCD_R0 58 LCD_R1 57 LVDS_Y2M 58 SPEED_LED 59 LCD_R2 60 LCD_R3 59 LVDS_Y3P 60 DGND 61 LCD_R4 62 LCD_R5 61 LVDS_Y3M 62 HP_DETECT 63 LCD_R6 64 LCD_R7 63 HP-R 64 HP-L 65 LCD_VSYNC 66 LCD_HSYNC 65 LAN_MDI2_P 66 LAN_MDI3_P 67 LCD_CLK 68 LCD_DE 67 LAN_MDI2_N 68 LAN_MDI3_N 69 DGND 70 BOOT_CS 69 Mic-P 70 Mic-N
P4 Pin# Name Pin# Name 1 MIPICSI_DP0 2 GPIOD8/PPM 3 MIPICSI_DN0 4 GPIOC7 5 MIPICSI_DP1 6 GPIOC8 7 MIPICSI_DN1 8 GPIOC24 9 MIPICSI_DP2 10 GPIOC28 11 MIPICSI_DN2 12 GPIOC0 13 MIPICSI_DP3 14 GPIOC1 15 MIPICSI_DN3 16 GPIOC2 17 MIPICSI_DPCLK 18 GPIOC3 19 MIPICSI_DNCLK 20 DGND 21 GPIOB9 22 ADC1 23 GPIOB26 24 ADC3 25 GPIOC4 26 ADC4 27 AliveGPIO3 28 ADC5 29 PWREN_SYS 30 ADC6 31 GPIOC14/PWM2 32 ADC7 33 NRESETOUT 34 DGND
- 说明
- VDD_5V:给核心板供电的电源输入脚,输入范围4.7-5.6V,推荐5V/1.2A(MAX), 通过降频降压, 可以有效降低功耗: 主频每降低200MHz, 功耗大概降低0.5W
- BOOT_CS: 启动模式选择,悬空或高电平为eMMC启动,低电平为SD启动
- NRESETIN:复位信号输入,低电平有效。此信号核心板的CPU提供复位信号,外部只需接一个按键就可以
- NRESETOUT: 复位信号输入,低电平有效。此信号核心板是的CPU输出的复位信号, 可以提供给外围电路使用
- RTC_BATT:RTC备份电池输入,直接接3V电池。核心板上电后由板子内部的3.3V给RTC供电,不上电时由备份电池供电,自动切换
- ADC1~7:CPU自带的12-Bit ADC输入,通道1~7,采集范围:0-1.8V
- 10/100M以太网模式: LAN_MDI1_N/P=RX-/+, LAN_MDI0_N/P=TX-/+, 也即只需4根信号线连接到带变压器的RJ45连接器
- 10/100/1000M以太网模式: LAN_MDI0_N/P~LAN_MDI3N/P, 也即需要把全部8根信号线连接到带变压器的RJ45连接器
- MMC0和MMC1必须在底板上上拉,即使不连接任何设备也需要如此处理
- 具体外围及扩展电路请参考我们设计的底板Smart210/4418 SDK
- Smart4418SDK 1606底板详情请查看Smart4418SDK 1606。
- Smart4418原理图pdf
4 机械尺寸
- 需要更详细的尺寸, 请下载dxf文件::Smart4418-1711-Drawing(dxf).zip
5 硬件设计注意事项
5.1 EEPROM
- 因为Smart4418核心板上的集成了带MAC地址的EEPROM, 型号为24AA025E48T-I/OT, 接在I2C0上, 设备地址为0x51, 所以有些型号的EEPROM不能接在I2C0上, 否则会地址冲突.
- 不能接在I2C0上的EEPROM: 24C04, 24C08, 24C16, 可以接在I2C0上的EEPROM:24C01, 24C02, 24C256
- 关于EEPROM地址问题, 请看 http://www.onsemi.com/pub_link/Collateral/CAT24C01-D.PDF
6 参考开发底板
7 快速入门
7.1 准备工作
要开启你的Smart4418开发板,请先准备好以下硬件
- Smart4418核心主板+底板
- 大SD卡/: Class10或以上的 8GB SDHC卡
- 一个DC接口的外接电源,要求输出为12V/2A
- 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
- 一套USB键盘鼠标(或选购串口转接板,要PC上接串口终端进行操作)
- 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统
7.2 快速从SD卡启动
首先访问此处的下载地址下载需要的固件文件:
- 您需要准备一张8G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
Image Files | |
s5p4418-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip | FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core |
s5p4418-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip | LUbuntu桌面版固件,自带X Window图形界面 |
s5p4418-sd-friendlywrt-4.4-YYYYMMDD.img.zip | FriendlyWrt系统固件 (基于OpenWrt定制) |
s5p4418-sd-android7-YYYYMMDD.img.zip | Android7系统固件 (支持4G LTE) |
s5p4418-sd-android-kitkat-YYYYMMDD.img.zip | Android4.4系统固件 (支持4G LTE) |
s5p4418-sd-android-lollipop-YYYYMMDD.img.zip | Android5.1系统固件 |
s5p4418-eflasher-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip | SD卡映象,用于将lubuntu系统烧写到eMMC |
s5p4418-eflasher-friendlywrt-4.4-YYYYMMDD.img.zip | SD卡映象,用于将FriendlyWrt系统烧写到eMMC |
s5p4418-eflasher-android7-YYYYMMDD.img.zip | SD卡映象,用于将Android7系统烧写到eMMC |
s5p4418-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip | SD卡映象,用于将friendlycore系统烧写到eMMC |
s5p4418-eflasher-android-kitkat-YYYYMMDD.img.zip | SD卡映象,用于将android4系统烧写到eMMC |
s5p4418-eflasher-android-lollipop-YYYYMMDD.img.zip | SD卡映象,用于将android5系统烧写到eMMC |
Flash Utility: | |
win32diskimager.rar | Windows utility. Under Linux users can use "dd" |
- 将固件和烧写工具分别解压,在Windows下插入SD卡(限4G及以上的卡),以管理员身份运行 win32diskimager 工具, 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write 按钮烧写即可。
- 当制作完成 SD 卡后,拔出 SD 卡插入 BOOT 卡槽,按住靠网口位置的boot按键 (如果没有eMMC的板子则不用按) 上电启动(注意,这里需要 5V/2A 的供电),你可以看到板上PWR灯常亮,LED1心跳闪烁,LED2不亮,这时你已经成功启动。
7.3 烧写系统到eMMC
- 下载eflasher固件
固件文件名的格式为:s5p4418-eflasher-OSNAME-YYYYMMDD.img.zip
其中,OSNAME替换为你需要烧写的系统,例如 android、friendly-core等等;
这个固件是的一个SD卡映象,包含了一个用SD卡启动的微型Ubuntu core系统,以及eMMC安装工具EFlasher;
将 s5p4418-eflasher-OSNAME-YYYYMMDD.img.zip 下载到电脑上,另外还需要下载Windows下的烧写工具: win32diskimager.rar;
- 用eflasher固件制作SD启动卡
将固件用7z软件解压,得到.img结尾的文件,在Windows下插入SDHC卡(限8G及以上的卡),以管理员身份运行Win32DiskImager,选择 Image File载入固件,选择你的SD卡盘符,点 Write 即开始写Image到SD卡;
如果你的电脑用的是Linux系统,你也可以用 dd 命令将解压后得到的 .img 文件直接写入SD卡完成启动卡的制作;
- 图形界面: 烧写系统到eMMC
将制作好的SD卡插入Smart4418,连接HDMI或LCD, 将开发板右边的S2开关拨到SD端,拨动电源开关,启动开发板后会看到系统选择,选择你需要烧写到eMMC的系统即可。
- 命令行界面: 烧写系统到eMMC
将制作好的SD卡插入Smart4418,登录串口终端,或者ssh终端,输入如下命令启动EFlasher:
sudo eflasher
7.4 在Linux电脑上用脚本制作启动卡
- 1) 将SD卡插入Ubuntu的电脑,用以下命令查看你的SD卡设备名
dmesg | tail
当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。
- 2) 下载Linux下的制作脚本
git clone https://github.com/friendlyarm/sd-fuse_s5p4418.git
cd sd-fuse_s5p4418
- 3) 以下是制作启动Lubuntu desktop的SD卡的方法
sudo ./fusing.sh /dev/sdx lubuntu
(注:/dev/sdx请替换为实际的SD卡设备文件名)
制作包中未包含系统映象文件,第一次使用时会提示需要下载,输入Y下载,N或10秒未输入则取消。
- 4) 如果只想制成一个用于量产的系统映象文件,方法如下:
sudo ./mkimage.sh lubuntu
更多内容可参考 Assembling the SD card image yourself
7.5 扩展TF卡分区
- Debian/Ubuntu系统在启动的时候,会自动扩展SD卡分区,第一次开机时自动扩展分区和根文件系统。
- Android扩展分区,要在pc上执行下列操作:
sudo umount /dev/sdx? sudo parted /dev/sdx unit % resizepart 4 100 resizepart 7 100 unit MB print sudo resize2fs -f /dev/sdx7
(注:/dev/sdx请替换为实际的SD卡设备文件名)
7.6 关于LCD/HDMI分辨率
系统启动时uboot会自动识别LCD,成功则会设置为该LCD的显示分辨率,失败则缺省会设置为HDMI 720P模式。
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。
7.7 在电脑上更改SD卡的启动参数
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,想更改Kernel Command Line参数,则可以通过fw_setenv工具来操作,方法如下:
先查看当前的内核启动参数:
git clone https://github.com/friendlyarm/sd-fuse_s5p4418.git
cd sd-fuse_s5p4418/tools
./fw_printenv /dev/sdx | grep bootargs
例如要禁用Android的SELinux特性,可以执行以下命令:
./fw_setenv /dev/sdx bootargs XXX androidboot.selinux=permissive
其中上面的XXX需要替换成原来的bootargs值, /dev/sdx替换为你的SD卡设备。
7.8 运行Android或Linux
- 将制作好SD卡插入Smart4418,连接HDMI,按住靠近网口的boot按键,最后接电源(5V 2A)拨动开关,Smart4418会从SD卡启动。你可以看到板上PWR灯常亮,LED1灯闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。
- 要在电视上进行操作,你需要连接USB鼠标和键盘;如果你选购了LCD配件,则可以直接使用LCD上面的触摸屏进行操作。
8 FriendlyCore的使用
8.1 介绍
FriendlyCore,是一个没有X-windows环境,基于Ubuntu core构建的系统,使用Qt-Embedded作为图形界面的轻量级系统,兼容Ubuntu系统软件源,非常适合于企业用户用作产品的基础OS。
本系统除了保留Ubuntu Core的特性以外,还包括以下特性:
- 支持电容和电阻触摸屏 (型号:S700, X710, S70, HD702, S430, HD101, S70等友善电子推出的LCD屏)
- 支持WiFi连接
- 支持以太网连接
- 支持蓝牙,已预装bluez等相关软件包
- 支持音频播放
- 支持Qt 5.10.0 EGLES和OpenGL ES1.1/2.0 (限S5P4418/S5P6818平台)
8.2 运行FriendlyCore
- 对于有HDMI接口的板子,如果要在电视上进行操作,您需要连接USB鼠标和键盘。
- 如果您需要进行内核开发,最好选购一个串口配件,连接了串口,则可以通过串口终端对开发板进行操作。
使用串口模块能有效地提升开发效率,以下是串口模块的连接方法:
接上串口后,您可以选择从串口模块的DC口或者从MicroUSB口 (如果有) 进行供电:
以NanoPi-M1为例:
也可以使用USB转串口模块调试,请注意需要使用5V/2A电源给开发板MicroUSB供电:
以NanoPi-NEO2为例:
- FriendlyCore默认帐户:
普通用户:
用户名: pi 密码: pi
Root用户:
用户名: root 密码: fa
默认会以 pi 用户自动登录,你可以使用 sudo npi-config 命令取消自动登录。
- 更新软件包:
$ sudo apt-get update
8.3 开发Qt应用
请参考 How to Build and Install Qt Application for FriendlyELEC Boards/zh
8.4 开机自动运行Qt示例程序
使用npi-config工具进行开启:
sudo npi-config
进入Boot Options -> Autologin -> Qt/Embedded,选择Enable然后重启即可。
8.5 扩展TF卡文件系统
第一次启动FriendlyCore系统时,系统会自动扩展文件系统分区,请耐心等待,TF卡/eMMC的容量越大,需要等待的时间越长,进入系统后执行下列命令查看文件系统分区大小:
df -h
8.6 使用蓝牙传输文件
以传输文件到手机为例进行说明,首先,将你的手机蓝牙设置为可侦测状态,然后执行以下命令开始蓝牙搜索:
hcitool scan
搜索到设备时,结果举例如下:
Scanning ... 2C:8A:72:1D:46:02 HTC6525LVW
这表示搜索到一台名为HTC6525LVW的手机,我们记下手机名称前面的MAC地址,然后用sdptool命令查看该手机支持的蓝牙服务:
sdptool browser 2C:8A:72:1D:46:02
注:上述命令中的MAC地址请替换成手机实际的蓝牙MAC地址
这个命令会详细列出手机蓝牙所支持的协议,我们需要关心的是一个名为 OBEX Object Push 的文件传输服务,以HTC6525LVW手机为例,其显示结果如下所示:
Service Name: OBEX Object Push Service RecHandle: 0x1000b Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 12 "OBEX" (0x0008) Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100
从上面的信息可以看到,这个手机的OBEX Object Push服务的所用的频道是12, 我们需要将它传递给obexftp命令,最后发起文件传输请求的命令如下:
obexftp --nopath --noconn --uuid none --bluetooth -b 2C:8A:72:1D:46:02 -B 12 -put example.jpg
注:上述命令中的MAC地址、频道和文件名请替换成实际的
执行上述命令后,请留意手机屏幕,正常情况下手机会弹出配对和接收文件的提示,确定后就开始文件传輪了。
蓝牙常见问题:
1) 开发板上找不到蓝牙设备, 可尝试用以下命令开启蓝牙:
rfkill unblock 0
2) 提示找不到相关命令,可尝试用以下命令安装相关软件:
apt-get install bluetooth bluez obexftp openobex-apps python-gobject ussp-push
8.7 连接WiFi
无论是SD WiFi还是USB WiFi, 它们的连接方式都是一样的。正基科技的APXX系列芯片属于SD WiFi,另外系统默认也已经支持市面上众多常见的USB WiFi,已测试过的USB WiFi型号如下:
序号 型号 1 RTL8188CUS/8188EU 802.11n WLAN Adapter 2 RT2070 Wireless Adapter 3 RT2870/RT3070 Wireless Adapter 4 RTL8192CU Wireless Adapter 5 小米WiFi mt7601 6 5G USB WiFi RTL8821CU 7 5G USB WiFi RTL8812AU
目前使用 NetworkManager 工具来管理网络,其在命令行下对应的命令是 nmcli,要连接WiFi,相关的命令如下:
- 切换到root账户
$ su root
- 查看网络设备列表
$ nmcli dev
注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.
- 开启WiFi
$ nmcli r wifi on
- 扫描附近的 WiFi 热点
$ nmcli dev wifi
- 连接到指定的 WiFi 热点
$ nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0
请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。
更详细的NetworkManager使用指南可参考这篇文章: Use NetworkManager to configure network settings
如果你的USB WiFi无法正常工作, 大概率是因为文件系统里缺少了对应的USB WiFi固件。对于Debian系统, 可以在Debian-WiFi里找到并安装USB WiFi芯片的固件。而对于Ubuntu系统, 则可以通过下列命令安装所有的USB WiFi固件:
$ apt-get install linux-firmware
一般情况下, 各种WiFi芯片的固件都存放在/lib/firmware目录下。
8.8 连接以太网
默认插上网线开机,会自动连接并通过DHCP获取IP地址,如需要配置静态IP地址,请参考 NetworkManager 的相关文档: Use NetworkManager to configure network settings。
8.9 定制命令行的欢迎信息(文字LOGO)
欢迎信息主要是这个目录下的脚本来打印的:
/etc/update-motd.d/
比如要修改 FriendlyELEC 的大字LOGO,可以修改/etc/update-motd.d/10-header 这个文件,比如要将LOGO改为HELLO,可将以下行:
TERM=linux toilet -f standard -F metal $BOARD_VENDOR
改为:
TERM=linux toilet -f standard -F metal HELLO
8.10 修改时区
例如更改为Shanghai时区:
sudo rm /etc/localtime sudo ln -ls /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
8.11 选择系统默认的音频设备
可以通过下面的操作步骤,设置系统默认的音频设备。
可用以下命令查看系统中所有的声卡设备 (注:不同的开发板结果会有所不同):
pi@NanoPi:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: nanopi2audio [nanopi2-audio], device 0: c0055000.i2s-ES8316 HiFi ES8316 HiFi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: nanopi2audio [nanopi2-audio], device 1: c0059000.spdiftx-dit-hifi dit-hifi-1 [] Subdevices: 1/1 Subdevice #0: subdevice #0
可以看到,硬件上有如下声卡设备:
声卡设备 声卡序号 说明 nanopi2audio device 0 3.5mm耳机输出 nanopi2audio device 1 HDMI输出
要配置成将音频输出到3.5mm耳机接口,可修改配置文件/etc/asound.conf,修改成如下内容:
pcm.!default { type hw card 0 device 0 } ctl.!default { type hw card 0 }
要配置成将音频输出到HDMI,则将上面的device 0修改为device 1。
8.12 运行X11程序
FriendlyCore系统集成了轻量级的Xorg,虽然没有窗口管理器,但是你仍然可以运行单一的X-Windows程序,例如要运行的程序是~/YourX11App,使用以下命令:
. /usr/bin/setqt5env-xcb startx ~/YourX11App -geometry 1280x800
注意 “.” 与 /usr/bin/setqt5env-xcb 之间有一个空格,另外,-geometry后面的分辨率请更改为你的屏幕的实际分辨率。
8.13 运行 Qt 5.10.0 演示程序
FriendlyCore系统集成了Qt 5.10.0图形库,支持OpenGL硬件加速,在命令行输出以下命令,可预览Qt5演示程序,
Qt5演示程序的界面如下图所示,你可以使用触摸屏或者鼠标来操作,Qt5支持大部分FriendlyELEC在售的LCD触摸屏:
$ sudo qt5demo
8.14 运行 Qt5-OpenGL示例
Run the following command
. setqt5env cd $QTDIR cd /examples/opengl/qopenglwidget ./qopenglwidget
更多示例可以在这里找到:
cd $QTDIR/examples/
8.15 硬解播放高清视频
FriendlyCore系统集成支持VPU加速的GStreamer 1.0多媒体开发框架, 可在命令行输入以下命令,播放1080P的演示视频:
sudo gst-player /home/pi/demo.mp4
gst-player是一个GStreamer播放器的外壳程序,上面命令等效于Gsteamer的以下命令:
sudo gst-launch-1.0 filesrc location=/home/pi/demo.mp4 ! qtdemux name=demux demux. ! queue ! faad ! audioconvert ! audioresample ! alsasink device="hw:0,DEV=1" demux. ! queue ! h264parse ! nxvideodec ! nxvideosink dst-x=0 dst-y=93 dst-w=1280 dst-h=533
8.16 连接DVP摄像头模块(CAM500B)
CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B。
输入以下命令预览图像:
gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! nxvideosink
输入以下命令开始录像 (VPU硬编码):
gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! tee name=t t. \ ! queue ! nxvideosink t. ! queue ! nxvideoenc bitrate=12000000 ! mp4mux ! \ filesink location=result_720.mp4
8.17 电源管理: 关机和定时开机
“PMU Power Management” 特性支持 软件关机和定时开机功能.
使用方法如下:
设置100秒后自动开机 (设置的时间不得低于60秒):
$ sudo echo 100 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
设置了定时开机之后,就可以用 poweroff 关机了:
$ sudo poweroff
以下命令用于取消定时开机:
$ sudo echo 0 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
用以下命令查询当前的设置, 前面的是单片机当前时间,后面是定时开机时间,如果定时开机已禁止就是 disabled:
$ sudo cat /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
需要注意的是,旧版本的硬件由于没有集成PMU所以可能没有这个功能,如果你在文件系统里没有发现这个文件节点:
/sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
那就是说明你所用的硬件不支持这个特性。
8.18 安装与使用 OpenCV 4.1.2
在新版本的 FriendlyCore 中已经预装了 OpenCV 4.1.2,无需手动安装,如需手动安装到自已的系统中,可参考以下仓库:
https://github.com/friendlyarm/install-opencv-on-friendlycore/blob/s5pxx18/README.md
运行OpenCV示例:
. /usr/bin/cv-env.sh . /usr/bin/setqt5env-eglfs cd /usr/local/share/opencv4/samples/python python3 turing.py
8.19 安装与使用 Caffe
使用如下命令:
git clone https://github.com/friendlyarm/install-caffe-on-friendlycore cd install-caffe-on-friendlycore sudo ./install-caffe.sh
8.20 Docker在armhf系统下的安装与使用
8.20.1 安装 Docker
执行下列命令:
sudo apt-get update sudo apt-get install docker.io
8.20.2 测试 Docker
执行下列命令运行一个简单的docker image:
git clone https://github.com/friendlyarm/debian-jessie-arm-docker cd debian-jessie-arm-docker ./rebuild-image.sh ./run.sh
9 Android系统的使用
9.1 Android7 下使用4G模块EC20
9.1.1 连接方法
将EC20连接到底板的miniPCIe接口,以Smart4418底板为例,如下图所示:
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。
9.2 Android4.4 下使用4G模块华为ME909u-521
(注:该模块只支持 Android4.4)
- Smart4418使用Android4.4系统,假设你已经接好4G通信模块(4G Model:ME909u-521, 该模块支持联通FDD-LTE),进入系统后,可直接使用4G通信模块。
9.3 更换Android开机Logo
替换下面路径下的 logo.bmp:
/opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi3/boot/logo.bmp /opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi2/boot/logo.bmp
重新编译 Android 源代码。
9.4 使用fastboot命令烧写android固件
上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令:
fastboot 0
For S5P4418, PC端可使用以下命令来更新emmc:
fastboot flash partmap partmap.txt fastboot flash 2ndboot bl1-mmcboot.bin fastboot flash fip-loader loader-mmc.img fastboot flash fip-secure bl_mon.img fastboot flash fip-nonsecure bootloader.img fastboot flash boot boot.img fastboot flash system system.img fastboot flash cache cache.img fastboot flash userdata userdata.img
For S5P6818, PC端可使用以下命令来更新emmc:
fastboot flash partmap partmap.txt fastboot flash 2ndboot bl1-mmcboot.bin fastboot flash fip-loader fip-loader.img fastboot flash fip-secure fip-secure.img fastboot flash fip-nonsecure fip-nonsecure.img fastboot flash boot boot.img fastboot flash system system.img fastboot flash cache cache.img fastboot flash userdata userdata.img
9.5 Android证书
Android 5 我们缺省采用的是自己生成的证书,位于:
vendor/friendly-arm/nanopi3/security/
Android 7 缺省采用的是:
build/target/product/security/
9.6 Android7只连接HDMI的情况下性能优化
9.6.1 背景说明
默认情况下,驱动会初始化两个framebuffer,分别用于主显示LCD和HDMI,如果项目需求只需要使用HDMI,不需要用LCD,则可以根据本章节的步骤进行修改,修改后会将HDMI设置为主显示,这样驱动只会初始化一个framebuffer,节约资源,对UI性能和开机速度会有相应的提升。
本章节内容仅适用于 S5P6818 Android7, S5P4418修改方法类拟,只是需要调整一下相应的文件。
9.6.2 修改内核
需要修改内核dts,禁止dp_drm_lvds节点, 如下所示:
--- a/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi +++ b/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi @@ -810,6 +810,7 @@ plane-names = "video", "rgb", "primary"; }; port@1 { + status = "disabled"; reg = <1>; back_color = < 0x0 >; color_key = < 0x0 >; @@ -820,7 +821,7 @@ &dp_drm_lvds { remote-endpoint = <&lcd_panel>; - status = "ok"; + status = "disabled"; display-timing { clock-frequency = <50000000>;
编译后将获得新的 arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb。
测试阶段可直接通过adb 更新到板子,命令如下:
adb root; adb wait-for-device; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/ adb push arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb /storage/sdcard1/
完整的固件则需要替换android7源代码目录 device/friendlyelec/nanopi3/boot 下的文件
9.6.3 修改env.conf
修改 device/friendlyelec/nanopi3/boot/env.conf 增加一行:
lcdtype HDMI1080P60
此模式需要与android7启动后探测到的模式相同,否则会导致长时的黑屏状态,甚至无显示输出, 或者进入uboot命令行环境手工设置:
setenv lcdtype HDMI1080P60; saveenv; reset
9.6.4 修改system.prop
修改android7中 device/friendlyelec/nanopi3/system.prop
ro.sf.lcd_density=240
或其它自己认为更合适的值, 也可串口或adb环境下,wm density 240 来调整观察效果是否合适。
9.6.5 编译Android
根据wiki说明编译android 7并测试,遇到异常则请仔细检查前面的步骤
10 如何编译系统
10.1 安装交叉编译器
首先下载并解压编译器:
git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1 cd prebuilts/gcc-x64 cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH export GCC_COLORS=auto
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
. ~/.bashrc
这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:
arm-linux-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gcc COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper Target: arm-cortexa9-linux-gnueabihf Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3 --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++ --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard ... Thread model: posix gcc version 4.9.3 (ctng-1.21.0-229g-FA)
10.2 编译 FriendlyCore/Lubuntu/EFlasher的内核源代码
10.2.1 编译内核
- 下载内核源代码
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1 cd linux
Smart4418内核所属的分支是nanopi2-v4.4.y,在开始编译前先切换分支。
- 编译Ubuntu内核
touch .scmversion make ARCH=arm nanopi2_linux_defconfig make ARCH=arm
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb),用于替换掉SD卡boot分区下对应的文件。
10.2.2 Linux下使用新编译的内核
- 更新SD卡上的内核
如果您是使用SD卡启动Ubuntu系统,则在PC上复制编译生成的zImage和DTB文件到SD卡的boot分区(即分区1,设备是/dev/sdX1)即可。
- 更新eMMC系统上的内核
从eMMC启动时可通过以下方法来更新内核:
1) 启动完成后,系统通常会自动mount eMMC的boot分区(设备是/dev/mmcblk0p1), 可输入命令mount来查看;
2) 连接网络,使用scp/ftp等方式复制新编译的zImage和DTB文件并替换boot分区下的文件;
3) 也可以将编译好的内核复制到SD卡或U盘,然后到开发板上复制到boot分区下;
4) 更新完成后,输入 reboot 命令重启即可,注意不要直接断电或按Reset键,否则可能会损坏文件.
- 使用新的内核来生成boot.img
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_s5p4418
10.3 编译Android7的内核源代码
Android 7.1.2源代码已包含预先编译好的内核,如果需要进行定制,可根据以下方法编译内核。
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1 cd linux touch .scmversion make ARCH=arm nanopi2_nougat_defconfig make ARCH=arm
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb)。 如果只想调试内核,可通过 adb 来快速更新。
adb root; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/; adb push arch/arm/boot/zImage arch/arm/boot/dts/s5p4418-nanopi2-rev*.dtb /storage/sdcard1/
内核开发/调试完成后,如果想生成用于烧写的boot.img,可复制内核zImage和DTB文件到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
10.4 编译 Android7/FriendlyCore/Lubuntu/EFlasher的U-Boot源代码
下载U-Boot v2016.01源代码并编译,注意分支是nanopi2-v2016.01
git clone https://github.com/friendlyarm/u-boot.git cd u-boot git checkout nanopi2-v2016.01 make s5p4418_nanopi2_defconfig make CROSS_COMPILE=arm-linux-
编译成功结束后您将获得bootloader.img,可以通过fastboot、sd-fuse_s5p4418和eflasher来更新板上的U-Boot v2016.01。
For Android7: 可复制bootloader.img到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
需要特别注意的是,不同版本的U-Boot不能交叉更新,不能使用fastboot更新现在运行的U-Boot v2014.07,也不能使用bootloader.img去替换一个ROM中的u-boot.bin,否则会导致系统无法正常启动。
10.5 编译Android7.1.2
10.5.1 搭建编译环境
搭建用于编译Android的环境,建议使用64位的Ubuntu 16.04,需要安装如下软件包:
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zip sudo apt-get install flex curl libncurses5-dev libssl-dev zlib1g-dev gawk minicom sudo apt-get install openjdk-8-jdk sudo apt-get install exfat-fuse exfat-utils device-tree-compiler liblz4-tool
更多说明可查看 https://source.android.com/source/initializing.html;
10.5.2 下载Android7源代码
有以下两种途径获取 Android7 的源代码,都需要联网:
- 使用网盘里的git repo压缩包
网盘下载地址: 点击进入
文件位于网盘的以下路径:sources/s5pxx18-android-7.git-YYYYMMDD.tar (YYYYMMDD表示打包的日期)
从网盘中获取的压缩包在解压之后,需要执行一下 sync.sh 脚本,会从gitlab上拉取最新的代码:
tar xvf /path/to/netdisk/sources/s5pxx18-android-7.git-YYYYMMDD.tar cd s5pxx18-android-7 ./sync.sh
- 直接克隆git仓库
Smart4418 源代码托管在 gitlab 上,使用以下命令进行下载:
git clone https://gitlab.com/friendlyelec/s5pxx18-android-7.git -b master
由于Android7源代码较大(约8.2GB),下载可能需要较长时间且容易受网络环境的影响而中断,请耐心等待并重试。
10.5.3 开始编译
cd s5pxx18-android-7 source build/envsetup.sh lunch aosp_nanopi2-userdebug make -j8
编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。
filename partition Description bl1-mmcboot.bin raw boot firmware loader-mmc.img raw boot firmware bl_mon.img raw boot firmware bootloader.img raw uboot-v2016.01 env.conf - uboot环境变量,包含Android内核命令行参数 boot.img boot kernel zImage, DTBs; logo; Android ramdisk cache.img cache - userdata.img userdata - system.img system - partmap.txt - 分区描述文件
11 编译内核头文件安装包
以下操作在在开发板上进行:
11.1 本文适用于如下版本的固件
固件文件名: s5p4418-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img, s5p4418-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img 具体信息:
pi@NanoPC-T2:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial pi@NanoPC-T2:~$ cat /proc/version Linux version 4.4.172-s5p4418 (root@jensen) (gcc version 7.5.0 (ctng-1.24.0-108g-FA) ) #1 SMP PREEMPT Wed Mar 24 15:17:25 CST 2021
11.2 安装所需软件包
sudo apt-get update sudo apt-get install -y dpkg-dev bsdtar
11.3 制作内核头文件安装包
git clone https://github.com/friendlyarm/linux -b nanopi2-v4.4.y --depth 1 kernel-s5pxx18-arm cd kernel-s5pxx18-arm rm -rf .git make distclean touch .scmversion make CROSS_COMPILE= ARCH=arm nanopi2_linux_defconfig alias tar=bsdtar make CROSS_COMPILE= ARCH=arm bindeb-pkg -j4
显示如下信息表示成功:
dpkg-deb: building package 'linux-firmware-image-4.4.172-s5p4418' in '../linux-firmware-image-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf .deb'. dpkg-deb: building package 'linux-headers-4.4.172-s5p4418' in '../linux-headers-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb'. dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_4.4.172-s5p4418-1_armhf.deb'. dpkg-deb: building package 'linux-image-4.4.172-s5p4418' in '../linux-image-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb'. dpkg-genchanges: binary-only upload (no source code included)
11.4 安装
sudo rm -f /lib/modules/4.4.172-s5p4418/build sudo rm -f /lib/modules/4.4.172-s5p4418/source sudo dpkg -i ../linux-headers-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb
11.5 测试
以编译pf_ring模块为例, 参考文档 https://www.ntop.org/guides/pf_ring/get_started/git_installation.html.
git clone https://github.com/ntop/PF_RING.git cd PF_RING/kernel/ make CROSS_COMPILE=
编译完成后, 使用insmod尝试加载模块:
sudo insmod ./pf_ring.ko
12 扩展连接
12.1 Smart4418连接USB(FA-CAM202)200万摄像头模块
- Smart4418使用Debian系统,假设你已接好LCD屏或者HDMI,进入系统后,点击左下角的菜单键“Other”-->xawtv,打开USB Camera软件。进入“welcome to xawtv!”,选择OK即可进行拍照。
12.2 Smart4418连接CMOS 500万摄像头模块
CAM500A 500万摄像头模块的详情请查看[1]
- Android5.1系统,假设你已经接好LCD屏或者HDMI,进入系统后,直接点击“Camera”图标,即可打开摄像头进行拍照和录制视频。
- Debian系统集成了命令行的摄像头示例程序nanocams,登录后输入以下命令即可预览40桢然后拍照保存为指定的文件。
sudo nanocams -p 1 -n 40 -c 4 -o IMG001.jpg
更详细的命令行参数可执行命令“nanocams -h”。 如果要下载源代码,运行以下命令即可获得:
git clone https://github.com/friendlyarm/nexell_linux_platform.git
- FriendlyCore (4.4内核)可使用以下命令:
输入以下命令预览图像:
gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! nxvideosink
输入以下命令开始录像 (VPU硬编码):
gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! tee name=t t. \ ! queue ! nxvideosink t. ! queue ! nxvideoenc bitrate=12000000 ! mp4mux ! \ filesink location=result_720.mp4
12.3 Smart4418接USB摄像头使用OpenCV
- OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。
- Smart4418跑Debian系统时,接USB Camera,可直接使用官方的OpenCV。
1、以下介绍的是Smart4418用C++使用的OpenCV:
- 首先需要保证你的Smart4418能连外网,假如你有串口,直接串口登陆超级终端(或者ssh登陆)。进入系统后,输入用户名(root),密码(fa)登陆;
- 以下命令在超级终端执行:
apt-get update apt-get install libcv-dev libopencv-dev
2、Smart4418烧写Debian系统启动后,接上USB Camera,使用Debian系统自带的摄像头软件测试,确定摄像头能正常使用。
3、通过终端执行命令,查看你的摄像头设备:
ls /dev/video*
- 注:video0 是你的USB摄像头设备
4、opencv的测试代码(官方C++示例代码)在 /home/fa/Documents/opencv-demo, 使用以下命令即可编译:
cd /home/fa/Documents/opencv-demo make
编译成功后,得到可执行文件demo
5、以下步骤需要在Smart4418上接上键盘执行:
./demo
你便可以看到opencv已经用起来。
12.4 串口扩展GPS模块
- Matrix-GPS是一款体积小巧,性能优越的GPS定位模块,适用于导航仪、四轴飞行器定位等应用场景。
- Matrix-GPS模块采用串口通讯,Smart4418上电进入系统后,在终端命令行执行以下命令,或者点击图标“xgps”,即可进行搜星定位功能。
$su - fa -c "DISPLAY=:0 xgps 127.0.0.1:9999"
- 或者,在debian界面上打开终端 LXTerminal ,输入 xgps 回车也可以打开GPS功能。
串口扩展模块的详情请查看点击查看
参考下图连接模块Matrix-GPS和Smart4418:
连接说明:
Matrix-GPS | Smart4418 |
RXD | Pin11 |
TXD | Pin12 |
5V | Pin29 |
GND | Pin30 |
13 在Android下访问硬件资源
友善电子开发了一个名为libfriendlyarm-things.so的函数库,用于Android应用程序访问开发板上的硬件资源,该函数库基于Android-NDK技术开发,提供便利的硬件访问接口,开发者无需掌握过多的嵌入式知识便可使用,有效提高开发进度。
目前支持的硬件设备包括:
- Serial Port
- PWM
- EEPROM
- ADC
- LED
- LCD 1602 (I2C)
- OLED (SPI)
支持的接口包括:
- GPIO
- Serial Port
- I2C
- SPI
详情使用说明可参考以下网址:
- 硬件库主页: http://wiki.friendlyelec.com/wiki/index.php/FriendlyThings/zh
- 示例源代码仓库: https://github.com/friendlyarm/friendlythings-examples
- 中文API参考手册: http://wiki.friendlyelec.com/wiki/index.php/FriendlyThings_APIs/zh
14 支持LCD型号
- Android
Smart4418跑Android系统目前支持的LCD型号为友善出品的:S430、S700、S702、HD700、HD702、HD101、X710电容屏。
- FriendlyCore & Lubuntu Desktop
Smart4418目前支持的LCD型号为友善出品的:S430、S700、S702、HD700、HD702、HD101、X710电容屏;
支持的电阻屏为友善出品的:W35B、H43、P43、S70、Matrix - 2'8 SPI Key TFT 电阻屏。
以上所有LCD屏的详细资料均可在维基首页查看:LCDModules
15 原理图,Datasheet和尺寸图
- Smart4418 1512 原理图PDF
- Smart4418 1608 原理图PDF
- Smart4418 1711 原理图PDF
- 尺寸(Smart4418-1512-Dimension(dxf).zip)
- 尺寸(Smart4418-1608-Dimension(dxf).zip)
- 尺寸(Smart4418-1711-Drawing(dxf).zip)
- S5P4418 Datasheet (S5P4418_Datasheet_0.1.pdf)
16 资源链接
16.1 开发资料
- AXP228_Users_ManualAXP228_V1.1_20130106
- eMMCeMMC5.0_1xnm_based_e_MMC
- SEC_Users_Manual_S5P4418_Users_Manual_Preliminary[2]
16.2 创客秘籍及开发教程
- 《创客秘籍》创客秘籍
- 《创客秘籍-02》创客秘籍-02
- 《创客秘籍-03》创客秘籍-03
- 模块介绍以及开发文档:
- 按键模块
- LED模块
- 模数转换
- 继电器模块
- 三轴重力加速度模块
- 三轴数字指南针模块
- 温度传感器模块
- 温湿度传感器模块
- 蜂鸣器
- 摇杆模块(Joystick)
- I2C(PCF8574)+LCD1602
- 声音传感器
- 超声波模块
- GPS模块
- 迷你扩展板Matrix - Compact Kit
- 火焰传感器
- CAM500 500万像素摄像头
- 滚珠开关模块
- 2'8 SPI Key TFT 2.8寸spi液晶屏
- 红外计数模块
- 红外接收模块
- 电机驱动器模块
- MQ-2 烟雾传感器模块
- MQ-3 气体传感器
- 单点电容式数字触摸传感器模块
- 光敏电阻模块
- 电位器模块
- 压力传感器模块
- RGB LED
- RTC模块
- Rotary Encoder
- 土壤湿度检测传感器模块
- 热敏电阻模块
- USB WiFi
- 水位/水滴识别检测传感器模块
17 源代码和烧写文件的下载地址
- Image File: http://download.friendlyelec.com/Smart4418
- Source Code: https://github.com/friendlyarm
18 技术支持
If you have any further questions please visit our forum http://www.friendlyarm.com/Forum/ and post a message or email us at techsupport@friendlyarm.com. We will endeavor to get back to you as soon as possible.
19 更新日志
19.1 日期 2023-01-09
19.1.1 FriendlyCore更新说明:
- 优化了开机服务
19.2 日期 2020-10-26
- FriendlyCore, Lubuntu更新如下:
修正蓝牙稳定性问题
19.3 日期 2019-12-28
- eflasher更新如下:
1) 支持只烧写部分文件,例如仅更新emmc内的内核和uboot
2) 在界面上增加禁用overlay filesystem选项
3) 增加命令行参数,方便脚本调用,可以实现无交互的一键安装
4) 修正备份与恢复镜像后,不同设备会出现相同mac地址的问题
5) UI界面现在可以配置标题,隐藏界面菜单与按钮
19.4 日期 2019-11-26
- FriendlyCore:
预装 OpenCV 4.1.2
19.5 日期 2019-11-14
- 新系统 FriendlyWrt:
推出完全开源的FriendlyWrt路由器系统, 基于官方OpenWrt定制,详情可查看:http://wiki.friendlyelec.com/wiki/index.php/How_to_Build_FriendlyWrt
- FriendlyCore, Lubuntu更新如下:
1)增加了新的4.3寸屏YZ43的支持
2)编译bcmdhd为模块,方便加载模块时传递参数以及定制
- Android7更新如下:
1)增加了新的4.3寸屏YZ43的支持
2)优化Android 7系统下使用HD900屏幕与S702屏幕时的触摸与按键体验
19.6 日期 2019-10-18
- Android7 与 FriendlyCore, Lubuntu更新如下:
修正音频播放在某些情况下可能会出现杂音的问题。
19.7 日期 2019-09-30
- Android7 更新如下:
1)增加Android硬件访问库FriendlyThing的支持,支持GPIO、PWM、RTC、串口和看门狗等硬件资源的访问,提供开源demo
2) 增加摄像头 CAM500B (OV5640) 的支持
3) 增加 LCD-W500 (800x480) 的支持
4) 修正 LCD-S430 的兼容性问题
- FriendlyCore, Lubuntu 更新如下:
1) 内核版本更新到 v4.4.172,与Android 7内核保持一致
2) 增加Docker的支持, 支持32bit与64bit文件系统 (使用方法请在具体产品的wiki页面搜索docker)
3) 内核配置项进行了优化,启用更多特性与设备驱动
19.8 日期 2019-07-18
- 新系统 Android 7.1.2
1) 推出新的系统 Android 7.1.2, 特性与旧版本的Android 5基本保持一致,支持4G,WiFi,以太网,蓝牙等
2) 内核版本为 4.4.172
3) 已知问题:摄像头暂时还不能工作
- Android/FriendlyCore/Lubuntu 更新:
1) 修复某些情况下HD101B无法触摸的问题
2) 修复Power key的GPIO配置
3) 解决音量过小的问题:播放时DAC的音量由 -20dB 修改为 -6dB
4) 集成了驱动模块(rtl8821CU.ko, rtl88XXau.ko)以增加更多型号的USB Wi-Fi支持
- 仅适用于Lubuntu的更新:
1) 修改Lubuntu的Power key行为为(不弹出窗口)直接关机
2) 集成脚本xrotate.sh用于简化屏幕旋转设置 (注:屏幕旋转会损失性能)
- 仅适用于NanoPC T2,Smart4418的更新:
支持从板载EEPROM中读取以太网Mac地址,仅支持以下系统:FriendlyCore, Lubuntu, Android7
19.9 日期 2019-06-25
Linux(Ubuntu 16.04/18.04) 全面采用 OverlayFS,以增强文件系统的稳定性
19.10 日期 2019-06-03
1) 配置LED1为心跳模式
2) 修复HDMI 1080P可能在某些情况下无显示的问题
3)Linux下修复无法安装 mysql 的问题
4)修复lubuntu下1-wire触摸电阻屏无法使用的问题
19.11 日期 2019-01-24
1) 增加新的LCD型号HD702V的支持
2) 优化Linux下Qt5的字体
19.12 日期 2018-12-17
- Android5 更新如下:
1) 增加4G网络的支持,支持模块的型号为:Quectel EC20
2) 增加音频输出设置,可设置默认输出到耳机或者HDMI
3) 在系统Shutdown时,同步关闭一线触摸屏的背光
- FriendlyCore更新如下:
1) 增加OV5640摄像头支持
2) 更新BL1以提高系统启动的稳定性
- Lubuntu更新如下:
1) 增加chromium-browser浏览器,支持网页硬解播放, 支持WebGL
2) 将音频输出通道默认设置为HDMI (可通过/etc/asound.conf更改)
3) 更新BL1以提高系统启动的稳定性
4) 修正前一版本中存在的一些关于软件包报错的issue
5) 调整DPMS设置,默认关闭自动休眠
19.13 日期 2018-09-06
- 增加10.1寸屏 HD101B 的支持
- 提高一线屏识别的可靠性
19.14 日期 2018-08-11
FriendlyCore:
- 升级 Qt版本到 5.10,增加 xcb 插件
- 增加Qt在目标板的编译工具,可直接在开发板上编译Qt程序
- 预装最小版本的 xorg
- 增加 OpenCV 的安装支持,详请可查看:https://github.com/friendlyarm/install-opencv-in-friendlycore
Android5:
- 增加永不睡眠的设置选项
19.15 日期 2018-03-24
- 修正只连接HDMI的情况下开机没图像显示的问题
- 增加蓝牙的支持
以上更新适用于所有4.4内核的系统,包括FriendlyCore和Lubuntu。
19.16 日期 2017-06-13
Linux, Android系统:
- 改善了整体系统稳定性;
Android系统:
- 提升Android下ov5640拍照的稳定性;
19.17 日期 2017-04-18
Ubuntu-Core系统更新如下:
- 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
- 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
- 预装NetworkManager作为网络管理工具;
- 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;
19.18 日期 2017-03-08
1) 启用UART2
2) 增加HD101B屏幕的支持
3) Android4.4和Android5增加硬件访问库,具体可参考:[3]
4) 修正S430屏在Android4.4下的闪退问题
19.19 日期 2017-02-09
1) 在Ubuntu Core和Debian系统中 增加7寸电阻屏 S70B 的支持
2) 调整了 eFlasher Rom 的分区大小,将根分区调整为 1GB
19.20 日期 2016-11-17
增加H43屏的支持:
1) 支持s5p4418与s5p6818平台的开发板
2) OS方面仅支持Debian 和 Ubuntu Core系统,不支持Android
19.21 日期 2016-09-02
1) Debian 和 Ubuntu Core集成了CAM500A(ov5640)摄像头的demo程序(nanocams);
2) 更新了Android 串口访问的程序,下载源代码:
git clone https://github.com/friendlyarm/android_SerialPortDemo.git
以前下载过的,用git pull命令更新一下。
内有详细说明,包括eclipse编译、打包成apk,对apk重新签名以获取system权限、关闭selinux等说明文档: <<SerialPortDemo-manual.pdf>>;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
19.22 日期 2016-08-20
1) 推出Android4.4固件(s5p4418-kitkat-sd4g-20160803.img.zip) 和源码,Android4.4是专门为企业用户定制,并且支持4G通讯模块,即插即用;
2) 推出一键烧写系统的固件s5p4418-eflasher-sd8g-xxx-full.img,直接下载固件回来使用LCD即可一键烧写系统;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
19.23 日期 2016-07-01
1) 修复了Ubuntu Core下USB Wi-Fi无法加载固件的问题;
2) 更新了Bootloader,支持使用dd命令直接将RAW image写入eMMC并能正常启动;
3) 内核bug修正及提高稳定性;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
19.24 日期 2016-05-21
- Android
1) 增加以太网设置(支持静态IP和DHCP设置);
2) 增加硬件访问库 libfriendlyarm-things.so,可用于在Android下操作串口;
使用方法可参考此份文档:http://www.arm9home.net/read.php?tid-82748.html。
在 NanoPi2/NanoPi M2/NanoPi2 Fire/NanoPC-T2 上,串口对应的设备名称如下:
UART2 -> 未驱动
UART3 -> /dev/ttyAMA2
UART4 -> /dev/ttyAMA3
3) 增加iTest应用程序,内置串口助手功能;
注意:运行此串口程序,需要使用system权限。
- Debian
1)增强了内核稳定性;
- Ubuntu core with Qt-Embedded
1)开机后显示的界面由Qt Demo换成了一个由友善之臂开发的,开源的Qt程序 (源代码位于/opt
目录),该程序启动时显示系统状态信息,例如CPU和内存信息,工作温度和负载等信息,
系统同时集成了 qmake,uic 等Qt工具的arm版本,这样你 就可以在开发板上直接生成和编译Qt源代码。
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
19.25 日期 2016-04-19
1)增加Debian/Ubuntu第一次开机时自动扩展分区和根文件系统,第一次启动时间会稍长
2) 改善非正常关机/重启导致的根文件系统问题;
3) Debian/Ubuntu Core集成原厂开源硬解播放器NxPlayerConsole,须连LCD使用。(原厂库没有源代码)
4) Ubuntu Core集成了OpenGL的测试程序gltest1, 完全开源
5)Debian/Ubuntu Core增加了USB Wi-Fi - rtl8187的支持;
6) Debian/Ubuntu Core系统的USB摄像头的设备修改为 /dev/video0,方便opencv
7) 用wpa_supplicant代替wicd来管理无线网络,使得Console下和X下的网络配置接口上保持一致
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
19.26 日期 2016-04-01
- Debian:
1) Debian增加了常用USB Wi-Fi和USB串口的支持;
2) 修正了带声卡的板音频输出切换的问题;
3) 优化内核,改进稳定性;
4) 增加LVDS接口的支持(缺省未启用);
- Ubuntu core with Qt-Embedded系统
新增系统:Ubuntu Core with Qt-Embedded,这是一个没有X-windows环境,使用Qt-Embedded作为图形界面的轻量级Ubuntu系统,基于官方的Ubuntu core系统开发而成,非常适合于企业用户用作产品的基础OS。
本系统除了保留Ubuntu core的特性以外,还包括以下特性:
1) 支持电容和电阻触摸屏 (型号:S700, X710, S70)
2) 支持WiFi连接
3) 支持以太网连接
4) 支持蓝牙,已预装bluez等相关软件包
5) 支持音频播放
详细可参考WiKi页面:http://wiki.friendlyelec.com/wiki/index.php/Ubuntu_Core_with_Qt-Embedded/zh
19.27 日期 2016-02-29
- Kernel:
1) 增加了基于CPU ECID生成以太网MAC地址;
2) 修复了framebuffer console刷新不及时的问题;
3) 优化内核提升了系统运行的稳定性;
4) 修复了PWM LED的一个bug,基于PWM LED增加了呼吸灯效果的trigger;
- Debian:
1) 修复了hostname异常的bug;
2) 缺省启用framebuffer console, 可在LCD/HDMI看到启动信息;
3) 集成了设置uboot环境变量的工具fw_printenv;
- Android:
ROM缺省启用了ffmpeg, 可支持更多的视频格式.
19.28 日期 2015-12-01
- 推出新的Android 5.1.1_r6,源代码已推送到 https://github.com/friendlyarm 。
- 4.2.1 简易方法制作: 新的固件已支持LCD检测,因此原来分别支持LCD和HDMI的固件已合并为一个固件。
- 4.3 在电脑上修改SD卡上的系统: 部分内容只适应于旧版本固件,标记为删除状态。
- 6 如何编译系统: 编译时源代码分支更新为 nanopi2-lollipop-mr1。
- 6.4.2 编译内核模块: 增加了如何编译支持LCD显示的启动Debian的uImage。