搜索

[其它] RK3399高性能主板方案介绍-使用说明

[复制链接]
3429|24
 楼主 | 2019-8-1 11:44 | 显示全部楼层 |阅读模式
本帖最后由 qq7643066 于 2019-8-1 11:45 编辑

该平台是基于Big.Little大小核架构的低功耗高性能处理器,它包括双核Cortex-A72、 4核Cortex-A53以及独立的NEON协处理器,可应用于计算机手机、个人移动互联网,数字多媒体设备。RK3399内置多种功能强大的嵌入式硬件引擎,为高端应用提供了优异的性能。 支持多格式视频。
新创云智能科技公司推出了基于RK3399处理器的XCY-3399主板,RK3399作为RK3288的升级版,XCY-3399主板引出了RK3399的绝大部分功能,并支持包括Android、Linux、ChromiumOS等多款操作系统,性能优越。
框架.jpg

1、图纸设计

原厂的demo板采用cadence画原理图,我们一般在此基础上进行增减即可。
sch1.jpg



2、layout部分采用allegro设计


pcb.jpg

3、软件调式
3.2 SDK编译
3.2.1 JDK安装
Android7.1 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。
安装命令如下:
sudo apt-get install openjdk-8-jdk
配置 JAVA 环境变量,例如,安装路径为/usr/lib/jvm/java-8-openjdk-amd64,可在终端
执行如下命令配置环境变量:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
SDK 带有 Open JDK8 的配置脚本,在工程根目录下,命名为 javaenv.sh。
可直接执行以下命令,配置 JDK:
source javaenv.sh  
uboot 编译:
cd u-boot
make rk3399_defconfig
make ARCHV=aarch64
kernel 编译:
cd kernel
make ARCH=ARM64 rockchip_defconfig -j8
make ARCH=arm64 rk3399-xinchuangyun-lvds.img -j12
android 编译:
source build/envsetup.sh
lunch rk3399_all-userdebug
make -j12
./mkimage.sh  
编译完成
3.3 LVDS调式
1、先看lvds线路设计
lvds.jpg

实际上是MIPI转LVDS的过程,加了tc358775这颗芯片实现
我们已经拿到了该芯片补丁,直接手动打上
8775.jpg

然后进入dts配置控制引脚
<span]        status = "okay";
<span]        panel@0 {
<span]                compatible ="simple-panel-dsi";
<span]               
<span]                //power-supply = <&vcc_lcd>;
<span]                //enable-gpios = <&gpio2 9  GPIO_ACTIVE_HIGH>; // tc35 stby 2_b1
<span]                dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
<span]                dsi,format = <MIPI_DSI_FMT_RGB888>;
<span]
<span]        prepare-delay-ms = <6>;
               
<span]        delay,power = <10>;
<span]
<span]        disable-delay-ms = <20>;
               
<span]        size,width = <120>;
<span]
        status = "okay";
<span]
[size=14.6667px]                display-timings {
[size=14.6667px]                        native-mode = <&timing1>;
[size=14.6667px]
[size=14.6667px]                        timing0: timing0 {
[size=14.6667px]                                clock-frequency = <141000000>;
[size=14.6667px]                                hactive = <1920>; //<1080>;
[size=14.6667px]                                vactive = <1080>; //<1920>;
[size=14.6667px]                                //hback-porch = <118>;
[size=14.6667px]                                //hfront-porch = <118>;
[size=14.6667px]                                hback-porch = <18>;
[size=14.6667px]                                hfront-porch = <18>;
[size=14.6667px]                                vback-porch = <2>;
[size=14.6667px]                                vfront-porch = <12>;
[size=14.6667px]                                hsync-len = <4>;
[size=14.6667px]                                vsync-len = <4>;
[size=14.6667px]                                hsync-active = <0>;
[size=14.6667px]                                vsync-active = <0>;
[size=14.6667px]                                de-active = <0>;

[size=14.6667px]                                pixelclk-active = <0>;
[size=14.6667px]配置屏的参数
[size=14.6667px]修改完成后编译,生成img固件
[size=14.6667px]
[size=14.6667px]2、烧录
[size=14.6667px]下图蓝线为USB升级口
usb.jpg

[size=14.6667px]下图xcy-3399主板有recover、reset按键,按住recover键不放 同时按一下reset,系统进入升级模式
key.jpg

当由于某种原因比如烧录错误固件导致uboot引导失败的时候,需要强行进入升级模式,需要把下面2个测试点镊子短接在一起,然后插入12V电源
mac.jpg


LVDS完美显示
lvdsok.jpg

更多精彩教程可以进入www.sunychip.com的开发教程版块进行了解

0eeb26b96c0e4d486eaf962b3242340.jpg
565cf574cf3349f7ab50d0b4ad01f0f.jpg

使用特权

评论回复
 楼主 | 2019-11-5 19:33 | 显示全部楼层
RK3399完整原理图 RK3399_BOX_REF_V12_20171218.pdf (1.15 MB, 下载次数: 24)

使用特权

评论回复
 楼主 | 2019-8-1 11:46 | 显示全部楼层

使用特权

评论回复
 楼主 | 2019-8-1 11:47 | 显示全部楼层
Rockchip RK3399 Datasheet V1.7-20170601.pdf (1.42 MB, 下载次数: 27)

使用特权

评论回复

评论

qq7643066 2019-8-1 11:48 回复TA
rk3399 芯片规格书,完整版 
| 2019-8-5 14:29 | 显示全部楼层
这种板子市场价多少啊

使用特权

评论回复
 楼主 | 2019-8-11 18:16 | 显示全部楼层
eddy2019 发表于 2019-8-5 14:29
这种板子市场价多少啊

要看配置了,最近ddr行情变化大

使用特权

评论回复
 楼主 | 2019-8-11 18:22 | 显示全部楼层
RK3399_IO_LIST_V14_for EVB&amp;REF&amp;Excavator-20170905.pdf (247.25 KB, 下载次数: 14)

使用特权

评论回复
| 2019-8-13 11:30 | 显示全部楼层
rk3399 那个开发板 编译不通过,怎么搞

使用特权

评论回复
| 2019-8-13 11:31 | 显示全部楼层
发下rk3399 软件开发指南

使用特权

评论回复
 楼主 | 2019-9-14 20:46 | 显示全部楼层
上传一份rk3399主板规格书
RK3399规格书V1.0.pdf (2.87 MB, 下载次数: 19)

使用特权

评论回复
| 2019-9-27 14:47 | 显示全部楼层
你们是做方案的公司吗?

使用特权

评论回复
 楼主 | 2019-10-15 14:01 | 显示全部楼层
幽魂 发表于 2019-8-13 11:31
发下rk3399 软件开发指南

加我发给你啊

使用特权

评论回复
| 2019-10-16 14:28 | 显示全部楼层
支持

使用特权

评论回复
| 2020-2-1 15:25 | 显示全部楼层
资料拿到了

使用特权

评论回复
 楼主 | 2020-2-2 19:22 | 显示全部楼层
RK3399 板卡调试4G模块的资料分享
android 7.1 "移动网络" 选项 不存在问题。
1、celluar networks 字符串定义
首先在设置APK的资源文件去找到这一串字符
      
Mobile networks  
2、network_settings_title引用
packages/apps/Settings/src/com/android/settings/WirelessSettings.;" /> private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";   
把 network_settings_title赋值给 KEY_MOBILE_NETWORK_SETTINGS,再跟进一下 KEY_MOBILE_NETWORK_SETTINGS这个变量吧。

在相同的文件中我们找到:
RemovMobile Network Settings if it's a wifi-only device.   
if (Utils.isWifiOnly(getActivity())) {   
getPreferenceScreen().removePreference(findPreference(KEY_MOBILE_NETWORK_SETTINGS));   
}   
getSystemService(Context.CONNECTIVITY_SERVICE);获得网络连接服务,然后判断是否支持TYPE_MOBILE,现在判断应该是不支持,也就是if判断中:Utils.isWifiOnly(getActivity())=1

所以把“移动网络”的选项移除,现在我们就重点去分析Utils.isWifiOnly(getActivity()),找到不显示的原因,也就是if()中的判断条件,跟进这段代码
3、我们去看下ifWifiOnly()是何方神圣?
packages/apps/Settings/src/com/android/settings/Utils.;" /> .import android.net.ConnectivityManager;  
   
.public static boolean isWifiOnly(Context context) {  
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(  
Context.CONNECTIVITY_SERVICE);  
return (cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false);  
.}  
Utils.isWifiOnly(getActivity())=1也就是

cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) = false,可是我们现在要的值是true,为什么会出现false呢,我们继续往下看cm.isNetworkSupported
4、 再分析isNetworkSupported
frameworks/base/core/java/android/net/ ConnectivityManager.java
.public boolean isNetworkSupported(int networkType) {  
.try {  
.return mService.isNetworkSupported(networkType);  
.} catch (RemoteException e) {}  
.return false;  
.}  
07.}  

继续跟进 mService.isNetworkSupported这个函数的实现
5、 mService.isNetworkSupported的实现
\frameworks\base\core\java\android\net

     public boolean isNetworkSupported(int networkType) {
         try {
             return mService.isNetworkSupported(networkType);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
     }

6、到最后是device\rockchip\common\overlay\frameworks\base\core\res\res\values\config.xml

      
     
         "wifi,1,1,2,-1,true"
         "mobile,0,0,0,-1,true"
         "mobile_mms,2,0,2,60000,true"
         "mobile_supl,3,0,2,60000,true"
         "mobile_dun,4,0,2,60000,true"
         "mobile_hipri,5,0,3,60000,true"
         "mobile_fota,10,0,2,60000,true"
         "mobile_ims,11,0,2,60000,true"
         "mobile_cbs,12,0,2,60000,true"
         
         "bluetooth,7,7,0,-1,true"
         
         "ethernet,9,9,9,-1,true"  要注意这里
   

      
      
     
         "0,1"
         "1,1"
         "7,1"
         "9,1" 注意这里
   
7、最好要开启rild相关的资源,这是4G模块就可以加载成功。
在boardconfig.mk文件增加此功能
BOARD_HAVE_DONGLE:=true
在android7.1可以成功利用4G模块上网

使用特权

评论回复
| 2020-2-10 21:05 | 显示全部楼层
加油 加油 加油

使用特权

评论回复
 楼主 | 2020-5-5 18:41 | 显示全部楼层
rk3399编译
kernel
make ARCH=arm64 rockchip_defconfig
make -j8 ARCH=arm64 rk3399-firefly-android-sunchip.img

android
source build/envsetup.sh
lunch rk3399_all-userdebug
make -j32
./mkimage.sh

使用特权

评论回复
 楼主 | 2020-5-6 11:14 | 显示全部楼层
uboot
make rk3399_box_defconfig
make ARCHV=aarch64 -j8

使用特权

评论回复
| 2020-5-7 09:50 | 显示全部楼层
开发定制需要多久 开发费用多少呢

使用特权

评论回复
 楼主 | 2020-6-9 08:55 | 显示全部楼层
sw10086 发表于 2020-5-7 09:50
开发定制需要多久 开发费用多少呢

28天出样品

使用特权

评论回复

评论

dufanghua 2020-8-6 14:14 回复TA
厉害了 
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /6 下一条

在线客服 快速回复 返回顶部 返回列表