Rockchip · AI & Linux Hub

Linux и загрузка

Полное описание журналов RK818/RK816: зарядное устройство, OTG и батарея

Полное описание журналов RK818/RK816: зарядное устройство, OTG и батарея — V1.1.0

· ArmSoM Editorial · Rockchip source documentation · 5 мин чтения

Китайский оригинал V1.1.0; ядра 4.4 / 4.19. Сохранена область технического предисловия: понятия, функции, конфигурация и диагностика модулей. Английского PDF во входных материалах нет; четыре языка полностью основаны на китайском оригинале и используют его технические рисунки, если они есть. Только платформенный справочник ArmSoM: сверяйте PMIC, SoC, SDK/BSP, ядро, питание и батарею конкретной платы. Аппаратных испытаний не было; поддержка всех плат не заявляется.

Код, параметры и журналы — примеры производителя, не измерения ArmSoM. Изменение питания, зарядного тока, напряжения или тепловой защиты может вызвать отключение, повреждение или опасность батареи. Не копируйте настройки вслепую; не отключайте тепловую защиту при обычной работе. Противоречия сохранены без угадывания констант; см. запись сверки. Журналы — примеры; значения разных этапов не доказывают единый тест или реальное состояние батареи.

ArmSoM Docs · Rockchip kernel

Техническое предисловие: RK818/RK816 сходно реализуют измерение заряда и управление зарядкой. По RK818 объясняются важные журналы этапов; RK816 использует те же пояснения.

1. Обнаружение зарядного устройства/OTG

1.1 Файлы драйвера

drivers/power/rk818_charger.c

Драйвер обнаруживает подключение/отключение зарядного устройства и OTG и настраивает ток зарядки. Префикс сообщений — “rk818-charger: “. “ac”, “usb”, “dc”, “otg” обозначают устройства: 1 — подключено, 0 — отключено. Сам PMIC не обнаруживает события подключения зарядного устройства/OTG; определение типа зарядки зависит от сообщений цепочки уведомлений USB.

1.2 probe этап

Регистрация зарядного устройства DC:

rk818-charger: support dc
rk818-charger: not support dc

Регистрация цепочки уведомлений зарядного устройства Type-C:

rk818-charger: register typec extcon evt notifier

Регистрация цепочки уведомлений обычного USB-зарядного устройства:

rk818-charger: register bc evt notifier

Подключения устройств к завершению probe:

rk818-charger: ac=1, usb=0, dc=0, otg=0

Версия драйвера:

rk818-charger: driver version: 2.0

1.3 running этап

События подключения/отключения зарядного устройства и OTG от цепочки USB:

rk818-charger: receive bc notifier event: DISCNT    // 充电器拔出
rk818-charger: receive bc notifier event: USB       // 电脑充电插⼊
rk818-charger: receive bc notifier event: AC        // 标准充电器插⼊
rk818-charger: receive bc notifier event: CDP1.5A   // CDP类型充电器插⼊
rk818-charger: receive bc notifier event: UNKNOWN   // 不识别的充电器插⼊
rk818-charger: receive bc notifier event: OTG ON    // OTG插⼊
rk818-charger: receive bc notifier event: OTG OFF   // OTG拔出
rk818-charger: detect dc charger in                 // DC插⼊
rk818-charger: detect dc charger out                // DC拔出

PMIC не определяет тип зарядного устройства, но обнаруживает наличие подключённого зарядного оборудования:

rk818-charger: pmic: plug out
rk818-charger: pmic: plug in

Изменения питания 5V при подключении/отключении OTG:

rk818-charger: disable otg5v
rk818-charger: enable otg5v

После каждого подключения/отключения зарядного устройства или OTG обновляются сведения об устройствах и токе:

rk818-charger: ac=1 usb=0 dc=0 otg=0 v=4200 chrg=1000 input=1800 virt=0

1.4 suspend этап

Изменение питания OTG 5V при suspend:

rk818-charger: suspend: otg 5v on
rk818-charger: suspend: otg 5v off

1.5 shutdown этап

Текущие подключения устройств при shutdown:

rk818-charger: shutdown: ac=1 usb=0 dc=0 otg=0

2. Измерение заряда батареи

2.1 Файлы драйвера

drivers/power/rk818_battery.c
drivers/power/rk818_battery.h

Драйвер реализует измеритель заряда и учёт заряда батареи. Для распознавания сообщения имеют префикс “rk818-bat: “.

2.2 probe этап

При первом включении после подключения батареи выводится “first on”:

rk818-bat: first on: dsoc=24, rsoc=24 cap=960, fcc=4000, ov=3840

Если аварийное выключение, например продолжающийся расход после зависания, нарушает состояние счётчика кулонов, при следующем запуске выполняется принудительная коррекция:

rk818-bat: system halt last time... cap: pre=2400, now=120

Если U-Boot уже инициализировал измеритель заряда, драйвер ядра может пропустить часть инициализации, чтобы не повторять её:

rk818-bat: initialized yet..

Начальное состояние счётчика кулонов при probe:

rk818-bat: dsoc=32 cap=1000 v=3780 ov=3900 rv=3890 min=25 psoc=32 pcap=1000

Версия измерителя заряда:

rk818-bat: driver version 7.1

2.3 running этап

При каждом изменении заряда и передаче его драйвером в framework выводятся следующие сообщения. Первое содержит текущие параметры, второе — параметры при начальной инициализации загрузки, в основном для отладки.

rk818-bat: changed: dsoc=22, rsoc=24, v=3820, ov=3770 c=1018, cap=960, f=4000,
st=cc cv, hotdie=0
rk818-bat: dl=10, rl=12, v=3670, halt=0, halt_n=0, max=0, init=0, sw=0, calib=0,
below0=0, force=0

2.4 suspend этап

После перехода в глубокий сон длительное ожидание может снизить напряжение батареи ниже порога выключения. Тогда PMIC выдаёт прерывание пробуждения, после которого система выключается:

rk818-bat: lower power yet, power off system! v=3350, c=-125, dsoc=0

2.5 shutdown этап

Важная информация при shutdown:

rk818-bat: shutdown: dl=0 rl=2 c=-1220 v=3460 cap=88 f=4000 ch=1 n=0 mode=1
rest=128

Значения по порядку: <отображаемый SOC> <реальный SOC> <ток> <напряжение> <остаточная ёмкость> <ёмкость полного заряда> <есть зарядное устройство?> <остальное игнорировать…>.

3. Об измерителе RK816

Реализация измерителя заряда RK816 в основном сходна с RK818. Обнаружение зарядного устройства и изменения измерителя объединены в:

drivers/power/rk816_battery.c

Содержание сообщений очень похоже на RK818, но для распознавания используется префикс “rk816-bat:”. Для RK816 используйте приведённые выше пояснения RK818.

Другие статьи по теме → · Учебные маршруты →