20250912在榮品RD-RK3588-MID開發板的Android13系統下在接電腦的時候禁止充電
2025/9/12 10:21
緣起:某人的電腦接榮品RD-RK3588-MID開發板的時候做APK開發板的時候,通過Android Studio連接榮品RD-RK3588-MID開發板。
經常斷聯/時斷時續。投訴了/抱怨了好久。
我司APK應用開發的電腦的USB口的電壓不穩,每次 接他的電腦,android13 的LCD屏就不停的出現 水波紋。這個時候他的電腦ADB會斷掉
這時候 我只能 給 bq25703配置成為 80度,禁止充電。
請問 如何 在RD-RK3588-MID為device 的時候禁止充電。
或者 是 +5V輸入的時候 禁止充電??@DreamSky
在dts配置25703里有PD配置,把5V配置為0mA或注釋掉。
請問是這里吧:
ti,otg-current = <3000000>;//<6350000>;
不是,我記錯了,在fusb302那里
5000
搜索到2個5000
這次應該找對地方了。
5V/9V/12V/20V?
就是這里了
對
這里有2個5000,改哪個?
我改了上面面哪一個。還是顯示 滿速充電?
注釋掉type-c里的5000
Z:\rk-android13-20250818RD-RK3588-MID\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rp-usb-typec-rk3588.dtsi
根據 名字,只有 rp-usb-typec-rk3588.dtsi 這個 DTSI文件 是 配置 type-C的。
查找 之后,根據csdn博文。注釋了一個。但是 出現 慢速充電/未在充電支架反復橫跳。
不知道 是 現實問題?還是沒有配置好。【ADB可用】
你最終是需要使用5V充電的,當前只是為是適配ADB,ADB處理好了就可以開放5V充電。
我們的板子連電腦USB,ADB是不會斷開或反復充電的。
我司 APK應用開發的電腦 只有他的電腦有問題。
估計是 USB的電壓不穩。
請問 我改哪一個5000?我找到4個5000了
目前只是開發應用的電腦處理好了就行了,加上其他電腦是正常的,你不應該為了一些不正常的東西去浪費時間,PD就是配置充電電壓與充電過流,去掉5V就可以了。
很多電腦也會這樣
不止是一臺電腦
上次不是給你看了嗎?有三臺電腦也會這樣
這樣可以改充電電流,之前針對這個問題說明了,檢測到是ADB狀態,設置充電電流為0。
Y:\MID_MX_RK3588_android13-20250818\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rp-usb-typec-rk3588.dtsi
Z:\rk-android13-20250818RD-RK3588-MID\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rp-usb-typec-rk3588.dtsi
#ifdef RD_RK3588_MID
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2m0_xfer>;
#else
&i2c4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c4m1_xfer>;
#endif
usbc0: fusb302@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
#ifdef RD_RK3588_MID
interrupt-parent = <&gpio4>;
interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
#else
interrupt-parent = <&gpio0>;
interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
#endif ? ? ? ?
pinctrl-names = "default";
pinctrl-0 = <&usbc0_int>;
vbus-supply = <&vbus5v0_typec>;
status = "okay";
? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_role_sw: endpoint@0 {
remote-endpoint = <&dwc3_0_role_switch>;
};
};
};
? ? ? ? usb_con: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
? ? ? ? ? ? sink-pdos =
<PDO_FIXED(5000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(9000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(12000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(20000, 6000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
? ? ? ? ? ? altmodes {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? altmode@0 {
reg = <0>;
svid = <0xff01>;
vdo = <0xffffffff>;
};
};
? ? ? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_orien_sw: endpoint {
remote-endpoint = <&usbdp_phy0_orientation_switch>;
};
};
? ? ? ? ? ? ? ? port@1 {
reg = <1>;
dp_altmode_mux: endpoint {
remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
};
};
};
};
};
};
修改為:
#ifdef RD_RK3588_MID
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2m0_xfer>;
#else
&i2c4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c4m1_xfer>;
#endif
usbc0: fusb302@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
#ifdef RD_RK3588_MID
interrupt-parent = <&gpio4>;
interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
#else
interrupt-parent = <&gpio0>;
interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
#endif ? ? ? ?
pinctrl-names = "default";
pinctrl-0 = <&usbc0_int>;
vbus-supply = <&vbus5v0_typec>;
status = "okay";
? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_role_sw: endpoint@0 {
remote-endpoint = <&dwc3_0_role_switch>;
};
};
};
? ? ? ? usb_con: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
? ? ? ? ? ? sink-pdos =
<PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)
PDO_FIXED(9000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(12000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(20000, 6000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
? ? ? ? ? ? altmodes {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? altmode@0 {
reg = <0>;
svid = <0xff01>;
vdo = <0xffffffff>;
};
};
? ? ? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_orien_sw: endpoint {
remote-endpoint = <&usbdp_phy0_orientation_switch>;
};
};
? ? ? ? ? ? ? ? port@1 {
reg = <1>;
dp_altmode_mux: endpoint {
remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
};
};
};
};
};
};
注釋掉異常:【這么做就異常了,不能這樣干的!】
#ifdef RD_RK3588_MID
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2m0_xfer>;
#else
&i2c4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c4m1_xfer>;
#endif
usbc0: fusb302@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
#ifdef RD_RK3588_MID
interrupt-parent = <&gpio4>;
interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
#else
interrupt-parent = <&gpio0>;
interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
#endif ? ? ? ?
pinctrl-names = "default";
pinctrl-0 = <&usbc0_int>;
vbus-supply = <&vbus5v0_typec>;
status = "okay";
? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_role_sw: endpoint@0 {
remote-endpoint = <&dwc3_0_role_switch>;
};
};
};
? ? ? ? usb_con: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
? ? ? ? ? ? sink-pdos =
//<PDO_FIXED(5000, 6000, PDO_FIXED_USB_COMM)
<PDO_FIXED(9000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(12000, 6000, PDO_FIXED_USB_COMM)
PDO_FIXED(20000, 6000, PDO_FIXED_USB_COMM)>;
//source-pdos =
// ? ?<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
? ? ? ? ? ? altmodes {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? altmode@0 {
reg = <0>;
svid = <0xff01>;
vdo = <0xffffffff>;
};
};
? ? ? ? ? ? ports {
#address-cells = <1>;
#size-cells = <0>;
? ? ? ? ? ? ? ? port@0 {
reg = <0>;
usbc0_orien_sw: endpoint {
remote-endpoint = <&usbdp_phy0_orientation_switch>;
};
};
? ? ? ? ? ? ? ? port@1 {
reg = <1>;
dp_altmode_mux: endpoint {
remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
};
};
};
};
};
};
參考資料:
百度:PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)
https://blog.csdn.net/junwua/article/details/126381554
PD充電調試問題解析(一)
三、代碼跟蹤的過程
3-1、DTS配置及修改
Dsti修改電流電壓
sink-pdos =
<PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
PDO_FIXED(9000, 2000, PDO_FIXED_USB_COMM)>;
//PDO_FIXED(12000, 2000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos是指我們做sink(耗電方,即外接充電器)時候的充電能力,一般包括電壓和電流。
source-pods是指我們做充電方對外充電的時候支持的pd充電能力,這個5000和1000是代表5v-1a。
https://blog.csdn.net/hezhensheng007/article/details/148220745
RK3562 Linux-5.10 內核HUSB311 Type-C 控制器芯片調試記錄