Hlavní navigace

Banana Pi R1: sériová konzole a power management unit AXP209

Josef Jebavý 15. 4. 2015

Banana Pi R1 je počítač, který bude nejspíše provozován bez klávesnice a monitoru. Ale i bez toho a bez sítě se dá k počítači přihlásit a opravovat konfiguraci nebo sledovat průběh bootování. Informace o napájení lze z PMU čipu AXP209 vyčítat a získat obdobné informace jako o baterce u notebooku.

Sériová konzole

Pokud budete upravovat konfiguraci bootování, systém přesouvat na SATA disk, složitěji konfigurovat síť, mohou nastat případy, kdy systém nenaběhne nebo nebude fungovat síť. V takové chvíli se hodí sériová systémová konzole. Protože aniž by jste museli k Banana Pi R1 připojovat klávesnici a monitor, můžete upravovat konfiguraci nebo vidět výpis zavádění operačního systému.

Banana Pi R1 obsahuje několik hardwarových sériových linek. V Bananian Linuxu je již při bootu nastaven výstup konzole na sériový port ttyS0. Systém ttyS0 mapuje na UART0 ten je vyveden na malý pouze dvou-pinový konektor označený jako GPIJ13, je hned vedle konektoru baterie. Pin vlevo je RX a vpravo TX (viz obrázek). Pro propojení je ideální USB-UART převodník, protože u takového není potřeba konvertor úrovní. Sériové linka na B-Pi má logickou úroveň TTL 3,3V, stejně jako USB-UART převodník. (Sériová linka na počítačích s konektorem Cannon 9pin nejde použít bez převodníku napěťových úrovní.)

V Linuxu bez problémů fungují USB-UART převodníky například s čipem CP2102 a FT232RL. Na převodníku by měla být nastavena logická úroveň 3.3V. Konektor převodníku a počítače je potřeba propojit kříženým kabelem a lepší je i propojit země. Na B-Pi-R1 je zem hned na obou vedlejších pinech vedlejšího konektoru.

Na desktopu pro práci se sériovou konzolí slouží konzolový program minicom nebo grafický program GTKterm. V konfiguraci GTKtermu je potřeba vybrat sériový port, který se objevil v systému po přípojení USB převodníku, obvykle to bude /dev/ttyUSB0. Přesné označení lze zjistit po připojení převodníku příkazem  dmesg |tail.

Konfigurace sériové konzole je následující:

  • Speed (baud rate): 115200
  • Bits: 8
  • Parity: None
  • Stop Bits: 1
  • Flow Control: None

AXP209 PMU

Čip Power Management Unit AXP209 je buzz word u Banana Pi. Tento čip byl pravděpodobně primárně vyvíjen pro zařízení jako mobilní telefony a podobné embedded mobilní zařízení. I proto se asi objevují problémy s napájením při použití SATA disku. Dokumentace k čipu AXP209 je na webu výrobce a ke stažení je i PDF datasheet v anglickém jazyce.

AXP209 je 48-pinový čip o velikosti 6mm x 6mm vyráběný v pouzdře QFN. V čipu je integrováno:

  • PWM nabíječka
  • Dvoucestný napěťový převodník
  • Pětikanálový lineární regulátor napětí/proud/teplota
  • GPIO
  • Ochrana proti přepětí a podpětí, teplotní ochranu a ochranu proti zkratu
  • Hodiny reálného času RTC

Vlastnosti

Výtah nejdůležitějších a zajímavých parametrů čipu AXP209:

  • Inteligentní volba napájecího zdroje
  • Napájecí napětí: 2,9 V – 6.3V
  • Připustitelné USB nebo AC napájení
  • Maximální nabíjecí proud je nastavitelný až na 1,8 A
  • Plná podpora USB kompatibilních nabíječek včetně USB 3.0
  • Rozsah napětí baterie: 4.1V / 4.15V / 4.2V / 4.36V
  • Monitorování teploty baterie
  • Automatické řízení nabíjecího procesu
  • Přímé ovládání LED pro indikaci stavu nabíjení
  • Možnost připojení záložní napájecí baterie a baterie pro zálohování napájení RTC modulu
  • Vestavěný 12 bit ADC
  • Coulomb Counter – poskytuje informace přesné informace o spotřebě energie, zbývající kapacitě baterie, stavu nabití, a zbývajícím čas běhu na baterii.
  • Vnitřní teplotní čidlo
  • I2C
  • 4 konfigurovatelné GPIO
  • Konfigurovatelné časovače
  • K dispozici 12 registrů pro trvalé uložení dat i po vypnutí systému
  • Detekce externího napájení
  • Napěťová reference
  • Dešifrování modul

Blokové schéma zapojení regulátorů napětí čipu AXP209 na Banana Pi R1 je vyobrazeno na obrázku v článku článku o napájení Banana Pi R1.

Baterie

Čip AXP209 má vývody pro dvě baterie. Baterie pro RTC, prou kterou jsou pájecí plošky na spodní straně plošného spoje počítače Banana Pi R1. Napájecí baterie, pro kterou je na počítači konektor, který má rozteč rozteč 2,5 mm. Mínus konektoru je na vývodu blíže okraji.

Foto konektoru pro baterie:

Konkrétní baterii je třeba vybírat podle potřeb a konkrétní konfiguraci celého zařízení. Je třeba vzít v úvahu odběr zařízení a požadovanou záložní dobu běhu zařízení na baterii. A podle toho volit baterii s možným maximálním odběrem a kapacitou. Také je potřeba vzít v úvahu větší zátěž napájecího zdroje během nabíjení baterie.

Já jsem počítač Banana Pi R1 zkoušel s Li-Pol bateriemi z Touchbooku o kapacitě 6000 mAh a 12 000 mAh.

Vyčtení dat z AXP209

S čipem AXP209 lze komunikovat přes I2C sběrnici a posílat mu tak příkazy a zpětně přijímat data. Komunikaci po sériové sběrnici I2C lze v Linuxu realizovat v různých programovacích jazycích.

Po nainstalovaní balíčků i2c-tools, bc, lze použít Bash skripty battery_info.sh a po­wer_status.sh.

Výstup programů při připojeném napájení a nabíjení baterie:

root@bananapi:~# sh power_status.sh
AC_STATUS=1

root@bananapi:~# sh battery_info.sh
BAT_STATUS=0
CHARG_IND=1
BAT_EXIST=1
CHARGE_CTL=0xd0
CHARGE_CTL2=0x47
Battery voltage = 4012.8mV
Battery discharge current = 392.0mA
Battery charge current = 0mA

Výstup programů při odpojeném napájení:

root@bananapi:~$ sh power_status.sh
AC_STATUS=0

root@bananapi:~# sh battery_info.sh
BAT_STATUS=0
CHARG_IND=0
BAT_EXIST=1
CHARGE_CTL=0xd0
CHARGE_CTL2=0x47
Battery voltage = 3784.0mV
Battery discharge current = 0mA
Battery charge current = 320.0mA

Výstup programů při připojeném napájení, ale když se baterie nenabíjí

AC_STATUS=1

BAT_STATUS=0
CHARG_IND=0
BAT_EXIST=1
CHARGE_CTL=0xd0
CHARGE_CTL2=0x47
Battery voltage = 4176.7mV
Battery discharge current = 0mA
Battery charge current = 0mA

Názvy parametrů jsou dostatečně výstižné. Pozor však na hodnotu vybíjení/nabíjení, tyto parametry jsou přehozené.

Kód převzat z webu hardware-libre.fr, původní zdroj skriptu je pro počítač pcDuino3 s AXP209.

Na Banana Pi s Banananian Linuxem lze tyto informace vyčíst i jednodušeji. K veškerým hodnotám jde přistupovat přes virtuální soubory mapované do adresáře  /sys/bus/i2c/devices/0-0034/.

Například zjištění, zda je připojena baterie a napájení.

cat /sys/class/power_supply/battery/present
cat /sys/class/power_supply/ac/present

Jednoduše lze vytvořit i programy na čtení dat přes I2C nebo z virtuálních souboru v jazyce Python.

Po naprogramování daemona, který bude tyto informace vyčítat a vyhodnocovat, tak bude možno zajistit standardní funkčnost jako s UPS. Po odpojení/připojení napájení počítač stále běží dál.

Teploty

Počítač obsahuje i teplotní čidla, nejdůležitější je teplota CPU a PMU.

Zobrazení teploty PMU čipu

awk '{printf ("%0.1f",$1/1000); }' </sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_input

Pro zobrazení teploty CPU a PMU jsou již připravené hotové programy soctemppmutemp.

# soctemp
approx. 43.0°C
# pmutemp
approx. 41.0°C

Použít lze i program sensors z balíku lm-sensors.

axp20_mfd-i2c-0-34
Adapter: sunxi-i2c.0
temp1:        +39.4°C  (low  = -144.7°C, high = +264.8°C)

Ti, kdo mají rádi grafické vyjádření, mohou použít pro zobrazení teplot, vytížení periférií atd. RPi-Monitor. Program je schopen informace o systému včetně data z čipu AXP209 vykreslovat do grafů. Lze tak vidět například změny proudu v závislosti na zátěžích systému.

Nyní, když je zprovozněna sériová konzole a seznámili jste se s PMU čipem AXP209, je možno přistoupit k opravě napájení SATA a migraci systému na disk.

Našli jste v článku chybu?

2. 6. 2015 23:35

Martin (neregistrovaný)

Jako autor řešení a daného webu si dovolím odporovat. Zdroj sice má dvě větve, ale jenom jedna je určena pro zařízení. Je třeba upřesnit, že větev 0.5A se používá pouze pro nabíjení olověné baterie

22. 4. 2015 8:49

multi (neregistrovaný)

Je to v datasheetu.
Zdroj má sice 35W, ale tento výkon se dělí mezi svě větve.
Takže tam nemůžes připojit jedno zařízení s maximálním uváděným odběrem ale dvě "vhodná". Kde jedno bere max 2A a druhé 0.5A.



120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU