From 6f64ba1b35e7e0c76732ce601d63f7282bab1e28 Mon Sep 17 00:00:00 2001
From: android <android@lingyun.com>
Date: Fri, 12 Jul 2024 14:19:09 +0800
Subject: [PATCH] Update config.json file:
---
documents/docs/RK3568_Android_SDK开发文档/RK3568_Android_SDK开发文档.md | 458 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 458 insertions(+), 0 deletions(-)
diff --git "a/documents/docs/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md" "b/documents/docs/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md"
index 4dd2c8b..db19c6c 100644
--- "a/documents/docs/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md"
+++ "b/documents/docs/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Android_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md"
@@ -743,6 +743,464 @@
+## 3.9 AIN 电流电压测试
+
+### 3.9.1 硬件原理图说明
+
+
+
+
+
+### 3.9.2 AIN 电流测试
+
+首先我们需要将ADC采样程序烧录到开发板上的单片机中
+
+连接J6000 TTL下载调试串口 Debug_RXD_CN连接串口的TXD Debug_TXD_CN连接串口的RXD GND相连
+
+
+
+
+
+
+
+**打开FlyMcu.exe烧录工具,选择准备好的.hex 的单片机程序**
+
+
+
+
+
+**点击开始编程后就开始烧录程序,烧录成功如下图,并且可以看到单片机的LED灯在闪烁绿光**
+
+
+
+
+
+单片机程序烧录好后,我们需要使能RK3568的UART6,根据原理图可以看到,RK3568和MCU通信串口为UART6,所以需要在设备树中设置UART6设备节点
+
+打开`~/rk3568/sdkv1.4.0_linux5.10/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux.dts`
+
+加入URAT6节点
+
+```
+&uart6{
+ dma-names = "tx", "rx";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart6m1_xfer>;
+ status = "okay";
+};
+```
+
+
+
+重新编译设备树后烧录到开发板中启动开发板,在/dev下看看是否有ttyS6
+
+
+
+
+
+
+
+
+
+按照上图连接电路后,用XCOM软件打开单片机的调试串口,配置如下图所示
+
+
+
+
+
+在RK3568上运行comport程序,此程序可以配置串口的波特率,停止位,数据位,奇偶校验以及指定使用哪个串口设备
+
+源代码在[framwork.git - Gitblit (iot-yun.club)](http://main.iot-yun.club:8088/tree/framwork.git/master/booster)
+
+但是这个代码需要做一定的修改,因为这个程序只能让串口输出字符串数据,但是我们在测试中需要发送十六进制数据给单片机。
+
+
+
+此时就需要了解ADC串口协议,RK3568发送读指令给MCU,MCU会响应RK3568返回ADC采样数据
+
+
+
+示例如下:
+
+示例:
+
+1、读第0通道电压:
+
+AA 55 02 00 30 8C //CRC:0x8C30
+
+AA 55 02 00 EE 0D 99 C0 //0D EE -> 3566mv, CRC:0x0C99
+
+2、读第1路通道电压:
+
+AA 55 02 01 F1 4C
+
+AA 55 02 01 06 00 47 C5 //00 06 -> 6mv
+
+3、读第2路通道电压:
+
+AA 55 02 02 B1 4D
+
+AA 55 02 02 06 00 B7 C5 //6mv
+
+4、读第3路通道电压:
+
+AA 55 02 03 70 8D
+
+AA 55 02 03 06 00 E6 05 //6mv
+
+5、读第0路电流
+
+AA 55 01 00 30 7C
+
+AA 55 01 00 95 01 BB 71 //01 95 -> 405 单位0.01mA,即4.05mA, CRC:0x71BB
+
+6、读第1路电流
+
+AA 55 01 01 F1 BC
+
+AA 55 01 01 95 01 EA B1
+
+7、读第2路电流
+
+AA 55 01 02 B1 BD
+
+AA 55 01 02 95 01 1A B1
+
+8、读第3路电流
+
+AA 55 01 03 70 7D
+
+AA 55 01 03 95 01 4B 71
+
+
+
+以下AIN电流测试以测试第0路电流为例
+
+在RK3568上输入`./comport -d /dev/ttyS6 -b 115200 -s 8N1N -x`
+
+在XCOM上可以看到MCU的调试信息,旋转电位器旋钮至最左或最右分别测量最小电流和最大电流,量程约为1.22mA~22.79mA(测试其他三路电流时最小电流约为0.006mA)
+
+
+
+
+
+### 3.9.3 AIN 电压测试
+
+准备工作和AIN电流测试一样,不再赘述
+
+
+
+运行comport程序让rk3568输出读取电压的指令给mcu
+
+同样在XCOM上也能看到MCU的采样调试信息,旋转电位器旋钮至最左或最右分别测量最小电流和最大电流,量程约为0.017V~5.882V
+
+
+
+
+
+## 3.10 MIPI DSI 测试
+
+### 3.10.1 独立TP的屏幕
+
+在rk3568-evb1-ddr4-v10.dtsi中确认一下节点是否打开
+
+```
+&dsi0 {
+ status = "okay";
+};
+
+&dsi0_in_vp1 {
+ status = "okay";
+};
+
+&dsi1_panel {
+ power-supply = <&vcc3v3_lcd1_n>;
+};
+
+&route_dsi0 {
+ status = "okay";
+ connect = <&vp1_out_dsi0>;
+};
+```
+
+在rk3568-evb.dtsi中设置屏参,这里的屏参需要根据实际的屏幕手册里给的数据计算得出,不同屏幕参数大不相同
+
+```
+disp_timings0: display-timings {
+ native-mode = <&dsi0_timing0>;
+ dsi0_timing0: timing0 {
+ clock-frequency = <149600000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hfront-porch = <48>;
+ hsync-len = <32>;
+ hback-porch = <147>;
+ vfront-porch = <3>;
+ vsync-len = <6>;
+ vback-porch = <51>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <0>;
+ pixelclk-active = <1>;
+ };
+};
+
+```
+
+
+
+**接线如下图所示**
+
+
+
+
+
+
+
+### 3.10.2 自带TP的屏幕
+
+在rk3568-evb1-ddr4-v10.dtsi中确认一下节点是否打开
+
+```
+&dsi0 {
+ status = "okay";
+};
+
+&dsi0_in_vp1 {
+ status = "okay";
+};
+
+&dsi1_panel {
+ power-supply = <&vcc3v3_lcd1_n>;
+};
+
+&route_dsi0 {
+ status = "okay";
+ connect = <&vp1_out_dsi0>;
+};
+```
+
+在rk3568-evb.dtsi中设置屏参,这里的屏参需要根据实际的屏幕手册里给的数据计算得出,不同屏幕参数大不相同
+
+```
+disp_timings0: display-timings {
+ native-mode = <&dsi0_timing0>;
+ dsi0_timing0: timing0 {
+ clock-frequency = <149600000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hfront-porch = <48>;
+ hsync-len = <32>;
+ hback-porch = <147>;
+ vfront-porch = <3>;
+ vsync-len = <6>;
+ vback-porch = <51>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <0>;
+ pixelclk-active = <1>;
+ };
+};
+
+```
+
+
+
+**接线如下图所示**
+
+
+
+
+
+## 3.11 LVDS 测试
+
+首先在rk3568-evb1-ddr4-v10.dts 中添加lvds相关节点
+
+```
++ #include <dt-bindings/display/media-bus-format.h>
+#include "rk3568-evb1-ddr4-v10.dtsi"
+#include "rk3568-android.dtsi"
++ #include <dt-bindings/display/rockchip_vop.h>
+
+/ {
+ panel-lvds {
+ compatible = "simple-panel";
+ power-supply = <&vcc3v3_lcd0_n>;
+ enable-delay-ms = <20>;
+ prepare-delay-ms = <20>;
+ unprepare-delay-ms = <20>;
+ disable-delay-ms = <20>;
+ bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;
+ width-mm = <217>;
+ height-mm = <136>;
+
+ display-timings {
+ native-mode = <&timing0>;
+ timing0: timing0 {
+ clock-frequency = <73400000>;
+ hactive = <1280>;
+ vactive = <800>;
+ hback-porch = <40>;
+ hfront-porch = <80>;
+ vback-porch = <9>;
+ vfront-porch = <9>;
+ hsync-len = <40>;
+ vsync-len = <5>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <0>;
+ pixelclk-active = <0>;
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port@0 {
+ reg = <0>;
+ panel_in_lvds: endpoint {
+ remote-endpoint = <&lvds_out_panel>;
+ };
+ };
+ };
+ };
+
+};
+
+&vp0 {
+ cursor-win-id = <ROCKCHIP_VOP2_CLUSTER0>;
+};
+
+&vp1 {
+ cursor-win-id = <ROCKCHIP_VOP2_CLUSTER1>;
+};
+
+&lvds {
+ status = "okay";
+ ports {
+ port@1 {
+ reg = <1>;
+ lvds_out_panel: endpoint {
+ remote-endpoint = <&panel_in_lvds>;
+ };
+ };
+ };
+};
+
+&lvds_in_vp1 {
+ status = "okay";
+};
+
+&route_lvds{
+ status = "okay";
+ connect = <&vp1_out_lvds>;
+};
+
+```
+
+
+
+**因为这个lvds屏幕不支持更改屏幕亮度,所以他不是通过pwm来控制背光的,而是通过gpio控制,只能保证亮屏和灭屏,所以只需要控制gpio电平即可实现**
+
+
+
+第一种方法 在rk3568-evb1-ddr4-v10.dtsi更改vcc3v3_lcd0_n
+
+```
+&vcc3v3_lcd0_n {
+ gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
+// enable-active-high;
+};
+```
+
+第二种方法 更改panel-lvds节点
+
+```
+panel-lvds {
+ compatible = "simple-panel";
+// power-supply = <&vcc3v3_lcd0_n>;
+ enable-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
+ enable-delay-ms = <20>;
+ prepare-delay-ms = <20>;
+ unprepare-delay-ms = <20>;
+ disable-delay-ms = <20>;
+ bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;
+ width-mm = <217>;
+ height-mm = <136>;
+ ......
+};
+```
+
+
+
+最后由于mipi dsi也用到了vp1这个端口所以禁掉mipi dsi相关节点,mipi_dsi相关节点参考3.10.1,提到的节点全部禁掉就可以了
+
+
+
+**接线如下图所示**
+
+
+
+
+
+
+
+## 3.12 wifi模块测试
+
+**选用联发科的mt7601u的USB wifi模块**
+
+1. 首先获取mt7601u的wifi固件,mt7601u.bin
+
+2. 修改内核使能wifi设备节点
+
+ ```
+ &wireless_wlan {
+ status = "okay";
+ };
+ ```
+
+3. 在内核中使能mt7601的驱动,mt7601的驱动位置在drivers/net/wireless/mediatek/mt7601u
+
+ 内核make menuconfig配置
+
+ ```
+ Device Drivers -->
+ [*] Network device support --->
+ [*] Wireless LAN --->
+ [*] MediaTek devices --->
+ <*> MediaTek MT7601U (USB) support
+ ```
+
+4. **重新编译整个sdk**
+
+5. 启动开发板后将wifi模块的bin文件拷贝到/vendor/etc/firewarm下
+
+ 这个步骤只是第一次测试用的方法,更加完整的方法是将固件放进android镜像中让其自带这个固件
+
+ 方法如下:
+
+ 在vendor/rockchip/common/wifi/firmware中添加mt7601.bin固件
+
+ 可以看到在上一层的wifi.mk中已经明确指出了会将firmware目录下的所有bin文件都拷贝到编译产物中的vendor/etc/firmware下,然后随着andorid的编译系统一起编译生成.img文件,这样的镜像烧录后就会自带我们得mt7601固件。
+
+ 
+
+6. 插入wifi模块可以看到如下信息
+
+ 
+
+ 通过ifconfig -a 能查看到此时多了一个网卡设备wlan0,这个时候表示wifi模块的驱动加载完成,加载完成后系统会自动的去/vendor/etc/firewarm下找相应的固件。
+
+7. 此时我们就可以在android界面操作wifi按钮打开wifi搜索功能,正常连接wifi了
+
+ 点击打开wifi之后会出现如下信息,大致的意思就是系统在后台会开启wpa_supplicant的服务用来连接wifi的,并且创建了一个wpa_wlan0的socket设备用于通信,当连接上wifi后,会自动分配一个ip地址。
+
+ 
+
+ 
+
+ 
+
# 4. ADB调试工具
1. 下载解压platform-tools-latest-windows.zip
--
Gitblit v1.9.1