| | |
| | | |
| | |  |
| | | |
| | | 我们需要将这个镜像文件烧录到开发板中 |
| | | 我们需要将linaro-rootfs.img 这个镜像文件烧录到开发板中 |
| | | |
| | |  |
| | | |
| | | 我们将烧录的rootfs文件替换成linaro-rootfs.img即可 |
| | | |
| | | 烧录完成后启动开发板,会提示输入用户名和密码,这里的用户名和密码在编译脚本里写好了的均为linaro |
| | | 烧录完成后启动开发板,会提示输入用户名和密码,**这里的用户名和密码在编译脚本里写好了的均为linaro** |
| | | |
| | | 登录后切换su用户`sudo su`,进入根目录下展示的就是Debian的根文件系统 |
| | | |
| | |  |
| | | |
| | | |
| | | |
| | | 如果使用sdkv1.4.0_linux5.10 的SDK编译debian,步骤如下 |
| | | |
| | | 先装依赖环境 |
| | | |
| | | ``` |
| | | sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev \ |
| | | liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath \ |
| | | diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \ |
| | | cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev \ |
| | | libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \ |
| | | libmpc-dev bc python-is-python3 python2 |
| | | |
| | | sudo dpkg -i debian/ubuntu-build-service/packages/* |
| | | |
| | | sudo apt-get install -f |
| | | ``` |
| | | |
| | | 进入sdk根目录,运行./build.sh debian 会出现如下错误,我们只需要按照他推荐的更新一些工具就可以运行了。 |
| | | |
| | |  |
| | | |
| | | ``` |
| | | sudo update-binfmts --unimport qemu-aarch64 2>/dev/null |
| | | sudo update-binfmts --disable qemu-aarch64 2>/dev/null |
| | | sudo rm -f /usr/bin/qemu-aarch64-static |
| | | sudo cp /home/android/rk3568/sdkv1.4.0_linux5.10/device/rockchip/common/data/qemu-aarch64-static /usr/bin/ |
| | | sudo update-binfmts --enable qemu-aarch64 2>/dev/null |
| | | sudo update-binfmts --import qemu-aarch64 2>/dev/null |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## 1.5 Linux SDK源码编译 |
| | | |
| | |
| | | |
| | | ## 3.4 RS232和RS485 |
| | | |
| | | ### 3.4.1 硬件原理图说明 |
| | | |
| | |  |
| | | |
| | | ### 3.4.1 内核修改支持 |
| | |  |
| | | |
| | |  |
| | | |
| | | ### 3.4.2 内核修改支持 |
| | | |
| | | RS232 DTS文件修改 |
| | | |
| | |
| | | }; |
| | | ``` |
| | | |
| | | 因为RS485是半双工的,所以要么先测接收功能要么测发送功能,从原理图上可以看到,接受与发送功能的切换是GPIO4_D2来控制的,默认情况是接收功能,我们可以利用gpioset命令拉高该gpio让其工作在发送模式 |
| | | 因为RS485是半双工的,所以要么先测接收功能要么测发送功能,从原理图上可以看到,接受与发送功能的切换是GPIO4_D2来控制的,默认情况是发送功能,我们可以利用gpioset命令拉高该gpio让其工作在接受模式 |
| | | |
| | | ### 3.4.2 应用程序测试 |
| | | ### 3.4.3 应用程序测试 |
| | | |
| | | RS232测试 |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ## 3.5 CAN总线 |
| | | |
| | | |
| | |
| | | DTS文件修改 |
| | | |
| | | ```c |
| | | #Linux 4.19 |
| | | |
| | | &can0 { |
| | | compatible = "rockchip,can-1.0"; |
| | | assigned-clocks = <&cru CLK_CAN0>; |
| | |
| | | pinctrl-0 = <&can1m1_pins>; |
| | | status = "okay"; |
| | | }; |
| | | |
| | | #Linux 5.10 |
| | | &can0 { |
| | | compatible = "rockchip,rk3568-can-2.0"; |
| | | assigned-clocks = <&cru CLK_CAN0>; |
| | | assigned-clock-rates = <150000000>; |
| | | pinctrl-names = "default"; |
| | | pinctrl-0 = <&can0m1_pins>; |
| | | status = "okay"; |
| | | }; |
| | | |
| | | &can1 { |
| | | compatible = "rockchip,rk3568-can-2.0"; |
| | | assigned-clocks = <&cru CLK_CAN1>; |
| | | assigned-clock-rates = <150000000>; |
| | | pinctrl-names = "default"; |
| | | pinctrl-0 = <&can1m1_pins>; |
| | | status = "okay"; |
| | | }; |
| | | |
| | | ``` |
| | | |
| | | |
| | |
| | | Networking support -> |
| | | CAN bus subsystem support -> |
| | | CAN Device Drivers -> |
| | | Platform CAN drivers with Netlink support -> |
| | | <*>Platform CAN drivers with Netlink support |
| | | <*>Rockchip CAN controller |
| | | <*>Rockchip CANFD controller |
| | | ``` |
| | | |
| | | ### 3.5.2 应用程序测试 |
| | |
| | |  |
| | | |
| | | |
| | | |
| | | **CAN单板回环测试** |
| | | |
| | | 将板子的CAN0_H和CAN1_H连接 CAN0_L和CAN1_L连接 |
| | | |
| | | 依次输入以下命令 |
| | | |
| | | ``` |
| | | ip link set can0 down |
| | | ip link set can0 type can bitrate 500000 |
| | | ip link set can0 up |
| | | |
| | | ip link set can1 down |
| | | ip link set can1 type can bitrate 500000 |
| | | ip link set can1 up |
| | | |
| | | candump can0 & |
| | | cansend can1 123#01020304050607 |
| | | ``` |
| | | |
| | | 通过CAN1发送后,CAN0会打印收到的信息 |
| | | |
| | |  |
| | | |
| | | ## 3.6 声卡Codec |
| | | |
| | |
| | | |
| | | 使用amixer设置声卡 |
| | | |
| | | 通过`amixer -c 0 contents`可以查看音频硬件的当前状态和可能的设置 |
| | | |
| | |  |
| | | |
| | | 这里的 1 和 2 对应于 `Main Mic` 和 `SPK` 在各自列表中的索引。根据需要调整命令中的索引以设置所需的选项。 |
| | | |
| | | 可以使用如下命令切换至SPK输出 |
| | | |
| | | ``` |
| | | amixer cset name='Master Playback Volume' 'on','on' |
| | | amixer cset name='Master Playback Volume' '30','30' |
| | | amixer -c 0 cset numid=2 2 |
| | | |
| | | //linux5.10 |
| | | amixer -c 0 cset numid=12 3 //HP输出 |
| | | ``` |
| | | |
| | |  |
| | | |
| | | 使用aplay播放WAV格式音乐 |
| | | |
| | |
| | | |
| | | ppp拨号方式需要编写三个脚本文件存放在/etc/ppp/peers下 |
| | | |
| | | 默认是没有这些文件夹的,所以需要去创建ppp和peer文件夹,创建好后在peers下创建如下三个脚本文件 |
| | | 默认是没有这些文件夹的,所以需要去创建ppp和peers文件夹,创建好后在peers下创建如下三个脚本文件 |
| | | |
| | | **rasppp.sh** |
| | | |
| | |
| | | |
| | |  |
| | | |
| | | |
| | | |
| | | **如果使用Linux5.10内核版本,默认内核是没有开启cdc_ether模块即ECM模式,所以要配置内核驱动ECM模式** |
| | | |
| | | `cdc_ether`是Linux操作系统中的一个内核模块,用于支持USB CDC(Communications Device Class)以太网设备。这个模块允许系统将某些USB设备(例如4G/5G调制解调器、智能手机、USB以太网适配器)识别和配置为网络接口,使其能够像传统的以太网设备一样进行网络通信。 |
| | | |
| | | 当切换到ECM模式后,cdc_ether模块会自动加载,加载`cdc_ether`模块后,系统会创建一个新的网络接口(例如`usb0`),用户可以通过该接口进行网络配置和通信。 |
| | | |
| | | 内核配置如下 |
| | | |
| | | ``` |
| | | Device Drivers -> |
| | | [*] Network device support -> |
| | | <*> USB Network Adapters ---> |
| | | <*> Multi-purpose USB Networking Framework ----> |
| | | -*- CDC Ethernet support (smart devices such as cable modems) |
| | | ``` |
| | | |
| | | |
| | | |
| | | ## 3.11 RK3568自带的NPU |
| | | |
| | | ### 3.11.1 应用程序测试 |
| | |
| | | 输入`gpioset 0 4=0` `gpioget 3 3`,显示Din-0的电平应为0 |
| | | |
| | | 输入`gpioset 0 4=1` `gpioget 3 3`,显示Din-0的电平应为1 |
| | | |
| | | |
| | | |
| | | ## 3.13 AIN 电流电压测试 |
| | | |
| | | ### 3.13.1 硬件原理图说明 |
| | | |
| | |  |
| | | |
| | |  |
| | | |
| | | ### 3.13.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.12.3 AIN 电压测试 |
| | | |
| | | 准备工作和AIN电流测试一样,不再赘述 |
| | | |
| | |  |
| | | |
| | | 运行comport程序让rk3568输出读取电压的指令给mcu |
| | | |
| | | 同样在XCOM上也能看到MCU的采样调试信息,旋转电位器旋钮至最左或最右分别测量最小电流和最大电流,量程约为0.017V~5.882V |
| | | |
| | |  |