认识RK3568嵌入式智能设备—【万物智能之开源鸿蒙 OpenHarmony 系统实战开发系列教程】
对照表看过了。今天认硬件。核心板负责计算和存储,底板把脚引出来。后面写屏、写网、写传感器,其实都是在这张图上圈一块,再对到 /dev 或 /sys 上的一个名字。


核心板负责计算和存储:RK3568、DDR、eMMC、电源和音频那颗 RK809。底板把脚引出来:网口 PHY、USB HUB、串口转 USB、各种屏的座子、扩展排针。后面写芯片,其实就是在这张图上圈一块,再对到 /dev 或 /sys 上的一个名字。
HDMI MIPI屏 LVDS RGB eDP CSI
USB Host × N USB OTG(接电脑) SD
双 RJ45 UART2 调试口 1500000
耳机 / MIC 风扇座 看门狗拨码
排针:I2C / SPI / UART / GPIO / PWM
显示口物理上可以很多,VOP2 分完 plane,同一时刻只能有一个主屏好好出桌面。HDMI 还开着的时候去点 MIPI,背光亮、桌面不来,是这个原因。启动介质有两份:SD 是 mmcblk1,eMMC 是 mmcblk0。U-Boot 经常去 eMMC 找 boot_linux 和 resource,哪怕你以为自己在从 SD 起。刷分区前看:
hdc shell cat /proc/partitions
hdc shell mount | grep " on / "

外设按总线认,不要死记插槽丝印
底板上的排针丝印可能是 J13、J14 这种。换一块底板号码会变。认总线更稳。
GPIO:灯、继电器、蜂鸣器、电机方向、人体感应、避障。软件上是 /sys/class/gpio、/sys/class/leds,或者一个字符设备。同一组脚被两个模块用,是排针就那些脚,不是软件 bug。设备树里只能 okay 一组,要两套功能就两份 dtb。
I2C:RTC、触摸、相机、温度、光感、血氧。认地址。i2cdetect -y -r 1 是听诊器。树上有节点不代表芯片 ACK,还要看 /sys/bus/i2c/devices/ 下面有没有 driver 软链接。
SPI:RFID、有的波形芯片、点阵。波形芯片有时是 GPIO 位拍,因为时钟和数据不在同一组复用,硬件 SPI 控制器带不齐。
UART:uartN 映射成 ttySN。调试口是 ttyS2,应用不要占。GPS、BLE、LoRa 这类模块一次占用一颗 UART,拔了再插下一个。
USB:键鼠、U 盘、UVC、Wi-Fi 网卡、蜂窝模组。4G 和 5G 若共用一个 M.2,物理上插一个。
模拟:SARADC、PWM、外部看门狗。SARADC 在 IIO 里的编号不一定是 device0,板上若还有波形芯片,它可能先抢走 0 号。读电压读错设备,会表现为「按键没反应、波形芯片的通道却在跳」。
高速:CSI、PCIe 上的 NVMe、RGMII 千兆 PHY。
共脚用设备树表达,不是用拔插头表达
显示五选一,设备树只 okay 一路。
电机和超声波若共用 GPIO3 那一组,两份镜像切换,拔掉超声波模块,电机节点也不会自己长出来。
CAN 的脚若和 I2C1 是同一组,开 CAN,I2C 上的温度芯片就没了。
应用里最常见的误解是:「我把模块拔了,为啥节点还在 / 为啥另一个模块还是没有节点」。节点跟着 dtb 走,不跟着塑料外壳走。
软件怎么称呼这块板
构建入口:
./build.sh --product-name rk3568_evb --ccache
起来以后:
hdc shell param get ohos.boot.hardware
常见结果是 rk30board。这是这份 BSP 里 init 选配置的钥匙,不是芯片名写错。对应的 fstab、init 配置带这个后缀才生效。
分区可以先记五个:p4 resource(开机用的 dtb 和 logo),p5 boot_linux(内核),p7 system,p8 vendor,p15 userdata。SD 和 eMMC 只是 mmcblk1 和 mmcblk0 的差别,分区号一样。
正常上电:串口有 U-Boot 和内核,回车出 #;屏从 logo 到桌面;OTG 插着时 hdc 能列出设备。只亮背光去显示那篇;卡在 logo 去图形和系统应用那篇;hdc 没有设备先查口和 hdcd。
下一篇把 Windows 的 DevEco 和 hdc 装到能编空工程、能 list targets。
系列第 3 篇 · 芯片:瑞芯微 RK3568 · OpenHarmony 4.1(API 11) · Linux 5.10
更多推荐


所有评论(0)