跳到主要内容

配置电压域

电脑硬件配置

每个项目都必须填写这个表格确定实际硬件接法和电脑软件配置是否匹配,务必匹配后再编译固件:

IO domain实际使用电压可配置电压电压来源备注
PMUIO13.3VFixedPMU所在组
PMUIO23.3V1.8/3.3LDO6
VCCIO13.3V1.8/3.3LDO4/VCCIO_ACODEC809Codec所在组
VCCIO21.8V1.8/3.3BUCK5EMMC所在组
VCCIO33.3V1.8/3.3LDO5/VCCIO_SDSD卡所在组
VCCIO41.8V1.8/3.3BUCK5BT/WIFI所在组
VCCIO53.3V1.8/3.3VCC3V3_SYSPCIE所在组
VCCIO61.8V1.8/3.3BUCK5GMAC所在组
VCCIO73.3V1.8/3.3VCC3V3_SYS

第一次编译会提示配置电压域,选项如下:

  • PMUIO2:3.3V

  • VCCIO1:3.3V

  • VCCIO3:3.3V

  • VCCIO4:1.8V

  • VCCIO5:3.3V

  • VCCIO6:1.8V

  • VCCIO7:3.3V

DTS配置

文件路径kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi

&pmu_io_domains {
status = "okay";
pmuio2-supply = <&vcc3v3_pmu>;
vccio1-supply = <&vccio_acodec>;
vccio3-supply = <&vccio_sd>;
vccio4-supply = <&vcc_1v8>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc_1v8>;
vccio7-supply = <&vcc_3v3>;
};

VCCIO说明

VCCIO供电

  • VCCIO2供电1.8V时,则FLASH_VOL_SEL管脚必须保持为高电平,芯片会根据FLASH_VOL_SEL=Logic high,VCCIO2自动配置为1.8V mode;
  • VCCIO2供电3.3V时,则FLASH_VOL_SEL管脚必须保持为低电平,芯片会根据FLASH_VOL_SEL=Logic low,VCCIO2自动配置为3.3V mode。
  • VCCIO2供电电电压和FLASH_VOL_SEL未满足以上关系,功能会异常(比如无法正常开机)或IO损坏。

软件电压配置

  • 当硬件IO电平接1.8V,软件电压配置也要相应配成1.8V,如果误配置为3.3V,这个电源域的IO功能会异常;
  • 当硬件IO电平接3.3V,软件电压配置也要相应配成3.3V,如果误配置为1.8V,会使得这个电源域IO处于过压状态,长期工作IO会损坏。

代码中配置

  • RK3568_AIoT_REF_SCH参考图VCCIO3电源域IO默认分配为SD Card功能, SD Card工作模式有:SD2.0模式SD3.0模式SD2.0模式的IO电平为3.3VSD3.0模式的IO电平为1.8V
  • 实际工作时,默认工作在SD2.0模式,即3.3V IO,如果插入的卡支持SD3.0,会协商后,IO电平切成1.8V IO,再切成运行SD3.0的速率;
  • 参考图VCCIO3 IO电源由RK809-5 LDO5供电(网络名为VCCIO_SD),默认3.3V,根据SD Card工作模式,RK3568会通过I2C0配置RK809-5 LDO5输出电压。
  • 举例《rk3568-evb.dtsi》IO domain默认配置为 vccio3-supply = <&vccio_sd>;
  • sdmmc0 相关配置如下:
&sdmmc0 {
max-frequency = <150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
status = "okay";
};
  • 要支持完整的SD Card功能,按这个配置即可,软件会根据SD Card模式自动切IO电压以及对应的IO domain电压模式。
  • 若不需要工作在SD3.0模式,只需要固定在SD2.0模式SD3.0卡也只工作在SD2.0模式),比如采用分立电源时,要省掉3.3V切换成1.8V的电路,硬件上VCCIO3 IO电源供电会修改成VCC_3V3,软件需要做以下改动: IO domain配置改为 vccio3-supply = <&vcc_3v3>;
  • sdmmc0 相关配置修改成如下:
&sdmmc0 {
max-frequency = <150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vcc_3v3>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
status = "okay";
};
  • 需要去掉sd-uhs-sdr104,如果没去掉,会跑SD3.0模式,高速卡会读失败。
  • 如果VCCIO3电源域IO分配成其它功能,比如UART5UART6功能,那么遵守注软件电压配置