Ticket #2310 (assigned defect)

Opened 5 years ago

Last modified 3 years ago

charging N900 with gta02 causes the gta02 to overheat

Reported by: lindi Owned by: joerg
Priority: normal Milestone:
Component: hardware Version:
Severity: major Keywords: usb hostmode U4904 L4901 hw heat USB_FLT
Cc: Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: no PatchReviewResult:
Reproducible:

Description

Steps to reproduce:
1) modprobe ochi-hcd
2) echo host > /sys/devices/platform/s3c-ohci/usb_mode
3) echo 1 > /sys/class/i2c-adapter/i2c-0/0-0073/neo1973-pm-host.0/hostmode
4) connect nokia N900 and openmoko with usb cable

Expected results:
4) N900 charges from openmoko

Actual results:
4) N900 charges from openmoko. However, the openmoko heats considerably up and you notice the smell of burning components. The current_now sysfs node shows a current of 2000 mA.

More info:
1)

Qi 9ef7754b8243457c
linux andy-tracking 9ecc089861ab238e
kernel cmdline: loglevel=4 console=tty0 console=ttySAC2,115200 init=/sbin/init ro mtdparts=physmap-flash:-(nor);neo1973-nand:0x00040000(qi),0x00040000(depr-ub-env),0x00800000(kernel),0x000a0000(depr),0x00040000(identity-ext2),0x0f6a0000(rootfs) g_ether.host_addr=00:1F:11:01:1F:6B g_ether.dev_addr=00:1F:11:01:1F:6B root=/dev/mmcblk0p1 rootdelay=1 rootdelay=1 panic=20 mem=127M root=/dev/mmcblk0p2 loglevel=8
distro: debian gnu/linux unstable
hardware revision: 24420350
gta02v5 with buzz fix

Attachments

syslog1.txt (101.2 KB) - added by lindi 5 years ago.
syslog output

Change History

comment:1 Changed 5 years ago by lindi

This was version 'F4 37-1' of N900.

comment:2 Changed 5 years ago by lindi

AAT1275 specs say that 16.9K resistor equals 500mA output current limit. We have 14K resistor there so shouldn't this still be strictly less than 1000 mA? (40K R_SET resistor means 100mA and I assume this is linear).

Changed 5 years ago by lindi

syslog output

comment:3 Changed 5 years ago by lindi

Here's syslog output I recovered from the SD card. Here's what I remember:

1) I stopped gprs, put phone to hostmode and connected it to nokia
2) I was watching current_now and got really nervous when it showed values around 2000 mA
3) I disconnected nokia from the phone and was really worried since the current_now values seemed to stay high
4) I did a few suspend/resume cycles but that did not help, current_now still showed pretty high values. You can see this if you grep for 'consumption' from the syslog output:

Sep 10 19:11:24 ginger logger: resuming (reason EINT09_PMU:button) (temperature 31.1) (consumption 19875) (energy 98)
Sep 10 19:19:49 ginger logger: resuming (reason EINT09_PMU:button) (temperature 31.1) (consumption 18000) (energy 97)
Sep 10 19:38:07 ginger logger: resuming (reason EINT09_PMU:button) (temperature 30.8) (consumption 13500) (energy 93)
Sep 10 19:55:16 ginger logger: resuming (reason EINT09_PMU:button) (temperature 55.6) (consumption 1812187) (energy 0)
Sep 10 19:57:01 ginger logger: resuming (reason EINT09_PMU:button) (temperature 58.6) (consumption 1757437) (energy 0)

comment:4 Changed 5 years ago by lindi

The kernel version was actually andy-tracking 4e418ad2a6bae968

comment:5 follow-up: ↓ 6 Changed 5 years ago by lindi

Some comments from IRC:

< DocScrutinizer?> lindi-: could you check USB_FLT aka GPM5 GPIO

< DocScrutinizer?> maybe AAT1276 does no current limiting but simply triggers USB_FLT. Maybe we have a short on datalines. Maybe we have massive drop of efficiency on choke getting satturated and thus all the current runs into that choke and heats it up (i prefer that idea for now)

< PaulFertser?> DocScrutinizer?-8: btw, i would be amazed to know N900 actually can draw more than 500mA without negotiating.

I have not removed the main can yet so I can not investigate what damage might have occured to the components. I also can not measure USB_FLT since I don't have the N900 anymore to test with.

comment:6 in reply to: ↑ 5 Changed 5 years ago by joerg

  • Keywords usb hostmode U4904 L4901 hw heat USB_FLT added; battery pmu charging removed
  • Status changed from new to assigned
  • Version unspecified deleted
  • Severity changed from normal to major
  • Owner changed from openmoko-kernel to joerg

Replying to lindi:

Some comments from IRC:

< DocScrutinizer?> lindi-: could you check USB_FLT aka GPM5 GPIO

oops, that's GPG10 of course, and /USB_FLT, so low/0 should indicate a usb current of >500mA (the limit set by R4918=14k).

From AAT1275 datasheet:

Operation in Current Limit
When a heavy load is applied to OUT2 of the
AAT1275, the load current is limited to the value of
ILIM (determined by RSET) causing a drop in the
output voltage. This increases the AAT1275 power
dissipation and die temperature. When the die tem-
perature exceeds the over-temperature limit, the
AAT1275 shuts down until it has cooled sufficiently,
at which point it will start up again. The AAT1275
will continue to cycle on and off until the load is
removed, power is removed, or until a logic low
level is applied to the EN pin.
A fault flag indicates when the OUT2 pin load cur-
rent has exceeded the current limit level set by
RSET. The fault flag is an active low, open-drain pin
<<

So that suggests the normal way for U4904 to handle overload on USB output is to heat up to a temp that easily might make the device emit smell.

For sake of component stress kernel should disable EN_USBHOST on detection of /USB_FLT, as well as raise some warning signal, both in syslog and events/sysfs

Nevertheless for L4901 the BOM says:

INDUCTOR 2.2uH 10% 7.96MHZ 800mA SMT0805 PLL201212F2R2K SUBARU FOR GSM LR

it seems this maybe doesn't exactly match the considerations for inductor component selection as found in "Selecting the Boost Inductor" (AAT1275.pdf, p.11 + p.15) regarding Ipp and saturation.
Alas I wasn't able to find any datasheet for this inductor :-/
So the jury is still out on that one. If the inductor gets saturated on high loads, this might easily result in massive increase of input current and heating up of the inductor itself.

A final note on current_now: this is the total of current taken from the battery cell, including CPU, backlight, and GSM modem. The function of AAT1275 is to take a low voltage/high current on input, and convert this to a higher voltage at lower current at output. So even the consumption of AAT1275 is far beyond the 500mA it can provide for output -> Iin = Iout * Vout / Vin / Const(efficiency) [0.5 * 5 / 3.6 / 0.8(guess) = 0.87A]

comment:7 Changed 5 years ago by lindi

It seems that the phone survived the overheating. I was able to charge the battery over usb and also use my huawei usb 3G dongle successfully so also usb power output should work.

comment:8 Changed 5 years ago by joerg

[2009-09-13 17:58:40] <timeless_mbp> DocScrutinizer?: do note that lindi was warned in advance that the device was not conforming to standards
[2009-09-13 17:58:40] <timeless_mbp> it was a plug-in to my device at your own risk

Setting this one on "need info" until effect can be reproduced with other means than N900. Those guys are "not asking for any help" and don't want to cooperate to find the true nature of this issue.

/j

comment:9 Changed 4 years ago by lindi

I can reproduce this with

USB 10/100 RJ45 Ethernet Network Adapter Dongle

from

http://www.dealextreme.com/details.dx/sku.2797

comment:10 Changed 4 years ago by lindi

This also happens with

Bus 001 Device 005: ID 0b95:1780 ASIX Electronics Corp. AX88178

that is "A-LINK gigabit usb 2.0 ethernet adapter".

comment:11 Changed 4 years ago by joerg

  • Component changed from System Software to hardware

could you by any means (powered hub, cut cable, whatever) check the actual current consumed by above listed devices?

comment:12 Changed 3 years ago by lindi

I finally managed to build a cable to measure the consumption. I connected

Bus 002 Device 094: ID 0fe6:8101 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter

to my PC and put a 0.1 ohm resistor in series. I then measured the voltage over the resistor:

after plugging in: 19.0 mV
after ip link set eth3 up: 19.2 mV
after connecting to a switch: 21.8 mV
Note: See TracTickets for help on using tickets.