Dell Power Supply Fault

The Power Supply on my Dell 8500 laptop suddenly died one day. For no reason the laptop was reporting that the adapter could not be determined. The error displayed was

“The AC power adapter type cannot be determined. This will prevent optimal system performance.”

The laptop worked fine on another Dell power supply – so I know it was a supply fault.

A google search for this revealed that it was a very common problem. More searching showed that the center pin on the Dell Adapter is used to determine the power supply type. The center pin is connected to a Dallas one wire chip inside the Dell Adapter. So the laptop could not read the adapter type using this center pin. This was either due to the wire connecting the center pin to the Dallas chip was broken or the Dallas chip has blown.

The options were to
1. Buy a new power supply
2. Open up the power supply and replace the Dallas chip
3. Insert a new Dallas chip into the cable or insert some sort of adapter

Rather than fork out the cash I though I would try and solve this one myself and learn something along the way. It seemed silly to throw out a power supply that could still deliver the power.

I tried to open the power supply case but it was not going to easy and would have probably damaged the case too much.

A search showed that the power supply uses a Dallas DS2502 (now Maxim) – this is a one time programmable device. I had a look what was available at Farnell – the DS2502 was quite expensive and the DS2431 was lots cheaper plus it was reprogrammable which I figured was a bonus as this was going to be a trial and error thing.

I figured that I would need something to read a good power supply and program the replacement chip that I brought. We has some PIC prototype boards hanging around at work so I decided to use this as a programmer. The PIC board was a Olimex fitted with a PIC 18F2420. At work we use the Microchip MPLAB IDE with the CCS C compiler. The CCS complier comes with source code driver for a DS2432. I changed this code to work with a DS2502 and a DS2431 and wrote code to display the contents of a working Dell power supply. The idea was to read a good one and then program the contents into the DS2431 and wire this into the power supply cable.

This is the data for a 65W Power Supply
00: 44 45 4C 4C 30 30 41 43 – DELL00AC
08: 30 36 35 31 39 35 30 33 – 06519503
10: 33 43 4E 30 35 55 30 39 – 3CN05U09
18: 32 37 31 36 31 35 35 32 – 27161552
20: 46 33 31 42 38 41 30 33 – F31B8A03
28: BC 8F FF FF FF FF FF FF – ……..

This is the data for a 90W Power Supply
00: 44 45 4C 4C 30 30 41 43 DELL00AC
08: 30 39 30 31 39 35 30 34 09019504
10: 36 43 4E 30 43 38 30 32 6CN0C802
18: 33 34 38 36 36 31 36 31 34866161
20: 52 32 33 48 38 41 30 33 R23H8A03
28: 4D 7C FF FF FF FF FF FF M|……

It came unstuck when I found a difference between the DS2502 and the DS2431. The DS2502 has an additional cycle during a read operation where the slave transmits a CRC after the read command and the two address bytes are written. The DS2431 does not do this. I thought I could add the CRC as data and it would be read when the actual data was read. To know if this would work I needed see what the Laptop was actually reading from the DS2502. To see this I wrote a sniffer that displayed what was happening.

It turned out that the laptop only read a very small part of the data and read it only once which was good for me. It only read from address 0x08 for 3 bytes. This turns out to be the power supply wattage.
So I inserted the CRC checksum of the command and address in the address 0x08 and shifted the real data along so it was now was

0x08: 0xfb, 0x30, 0x36, 0x35

I dissected a small part of the power supply cable and inserted the DS2431 and hey presto it worked.

Some other links on the subject
http://newsgroups.derkeiler.com/Archive/Alt/alt.sys.pc-clone.dell/2007-12/msg00300.html
http://www.laptop-junction.com/toast/content/dell-ac-power-adapter-not-recognized


 

Here is a dump of one of the websites above

I’ve been looking around a lot to see if anyone had any information about this but came up with nill…So I investigated it myself for anyone out there that may be interested in what that center pin really does. For those of you that think I don’t know my *** from a hole in the ground and feel like leaving any messages against what I did I’m not asking for pointless opinions here so take them elsewhere. There was a need for it to be reverse engineered and I did it. Enough ranting lets get on to the beef of the post.

I too was wondering what this third center pin is about. No voltage present to it, no resistance, no capacitance; got me wondering what kinda surprise did Dell put in the power supply that they don’t want us to know about. So curiosity got the best of me and I very carefully pried the glued case apart.

Standard switching power supply, but then near where the wire enters the case and is soldered to the circuit board resides a small TO-92 device. First thought was maybe a transistor that sinks a certain current upon attachment but after further inquiry, only two leads were connected. This led me to reverse engineering this small circuit. It turns out theres a 131 ohm resistor in series with the center pin wire of the DC connecter and one pin of the ‘mystery device’ and then there is a reverse biased diode going to ground. The other pin that is connected of said device is also connected to ground (by reverse biased I mean that the diode will only conduct if a positive voltage were applied to the ground connection of the power supply and a negative (ground) were connected to the center pin of the DC power connector. This lead me to deducing, because of the series resistor, that this diode was a zener of currently unknown breakdown voltage.

The next step was to determine the true identity of the ‘mystery device.’ The part number read “Dallas 2501 (then a date code).” Dallas being dallas semiconductor (aka Maxim IC). A search yielded only a very incomplete data*** refering me to the DS2502 which is a 1kbit one-wire EPROM version. The “2501” was a DS2501 of 512 bit data space. The data*** gives specifications to a max programming voltage after EPROM write instruction of 12V. This means to protect the device from overvoltage this zener diode connected to the pins must be a 12V zener and the sereis resistor being a current limiter protecting the diode in the event that the inner barrel and center pin were to come into contact.

The DS2502 and 2501 (1kbit and 512 bit respectively) use Dallas Semi. 1-Wire (R) communication protocol. It gets its power from the data line and when the data line is low a diode protected capacitor supplys power for its logic circuits, Parasite Power. This means that to communicate with the DS2502/1 one only needs two lines, a data line (logic high idle state) and ground. The power to the data/power line is supplied by the master through a 5k ohm resistor for short cable lengths.

Hope anyone reading this that wants to make his/her own power converter finds this information usefull (insert disclaimer here; ie. use this information at your own risk, I am not to be held responsible if someone else’s equipment gets fried b/c of poor design, I only
described how it works and make no claims to it being my own design giving rights of design and operation to Dell and/or LiteOn (written on power brick) and any other engineering firm/company/manufacturer that was involved in the design of the motherboard, power brick and any other associated equipment, etc.)

New update….since my last post on this subject I’ve written a firmware for a microcontroller to read the memory chip in these power supplies…this is the eeprom dump from it

002100: 11 17 E1 6C 02 00 00 C2 …l….
002110: 44 45 4C 4C 30 30 41 43 DELL00AC
002118: 30 39 30 31 39 35 30 34 09019504
002120: 36 43 4E 30 44 46 32 36 6CN0DF26
002128: 36 37 31 36 31 35 36 32 67161562
002130: D0 FF FF FF FF FF FF FF ……..
002138: 41 30 30 85 90 FF FF FF A00…..
002140: FF FF FF FF FF FF FF FF ……..
002148: FF FF FF FF FF FF FF FF ……..
002150: FF FF FF FF EA FF FF FF ……..
002158: FF

at memory address 2130, D0, is a CRC (8-bit, x^8+x^5+x^4+1 polynomial) of address locations 2110 – 212F that was calculated by the DS2501 as the data was read in by the bus master.
I was unable to get any useful data after 213C but then it read a byte at location 2155. The cause of this is unknown and there was no valid CRC calculated…this is still under investigation.
As far as the memory dump….Dell (manu.), 00 I’m guessing is an identifier, AC describing what type of adapter, 0 another identifier, 195046 being 19.5 volts and 4.6 amps. From CN to 62 this is the product identification number found on the barcode and A00 is the revision code 00 being the important part b/c I obtained a second 90 watt power supply and it too and an ‘A’ appended before the numerical portion of the revision number.

Hope anyone reading this finds the information useful.

(Same as before insert disclaimer here….)
After doing some detective work and general head scratching I rewrote the firmware to read the whole memory space instead of a page at a time, this let me gain access to all the information (consecutive addresses throughout) allowing me to find that the whole barcode number is stored on the DS2501 followed by the revision number. The following is the memory dump from the 12F683’s internal EEPROM….

002100: 11 36 14 6D 02 00 00 B8 .6.m…. = ROM
002108: F3 FF FF FF FF FF FF 00 …….. = STATUS
002110: C3 FF FF FF FF FF FF FF …….. = STATUS CRC (=C3)

002118: 44 45 4C 4C 30 30 41 43 DELL00AC = Start of page 0
002120: 30 39 30 31 39 35 30 34 09019504
002128: 36 43 4E 30 43 38 30 32 6CN0C802
002130: 33 34 38 36 36 31 36 31 34866161 = End of page 0
002138: 52 32 33 48 38 41 30 33 R23H8A03 = Start of page 1
002140: 4D 7C FF FF FF FF FF FF M|……
002148: FF FF FF FF FF FF FF FF ……..
002150: FF FF FF FF FF FF FF FF …….. = End of page 1
002158: FF FF FF FF FF FF FF FF ……..

So here we have the first line being the ROM. 11 is the family code, the serial number is: 0000026D1436 and B8 is the hardcoded CRC reality check byte The next line is the EPROM status register. The first byte is the code protection bits (bits 0-3) and memory usage map (bits 4-7, reserved for TMEX) the next 4 are page redirection bytes, bytes 6 and 7 are maintained clear/unprogrammed and byte 8 is programmed to 00 at the factory. C3 is the CRC computed by the DS2501, this was checked by using the program I wrote in windows for computing the CRC (x^8+x^5+x^4+1), and was determined to be valid. The next five lines
are the actual data space information. Dell is the manufacturer, 0 is a field identifier, AC is the type of adapter, 090 is the wattage rating (my thought is that it allows for 99+ watt power adapters), 195046 is the nominal voltage rating (19.5 Volts) followed by the nominal current rating adjusted to one decimal place (4.6 Amps). From C to H8 is the barcode number of the power adapter and A03 is the revision of the power adapter. 4D7C is an end of information
identifier as I have found this on another adapter I own. The one thing I was unsuccessful in acquiring was the computed CRC at the end of the data space that the memory chip is supposed to send as a 65th byte (which is sent at the end of the data space, this was assumed to be the same communication protocol as is used for the DS2502).

Again I hope this helps answer any inquiries anyone may have as to the actual data stored in the memory chip. I’ll be happy to answer any technical questions anyone may have about this. Please only technical questions, I am not offering design services and any inquiries of that type will be immediately ignored and any additional blocked permanetly if I so deem them to be a nuisance.

Contents

00: 44 45 4C 4C 30 30 41 43 – DELL00AC
08: 30 36 35 31 39 35 30 33 – 06519503
10: 33 43 4E 30 35 55 30 39 – 3CN05U09
18: 32 37 31 36 31 35 35 32 – 27161552
20: 46 33 31 42 38 41 30 33 – F31B8A03
28: BC 8F FF FF FF FF FF FF – ……..
30: FF FF FF FF FF FF FF FF – ……..
38: FF FF FF FF FF FF FF FF – ……..

 

 

 

Advertisements

One thought on “Dell Power Supply Fault

  1. Manea Constantin Ciprian

    Hello,
    My name is Ciprian and I want to do the same thing: replace a DS2501 with DS2431 in a DELL PA-10 Charger, but I’m not so good in programing….so the questions is <> can you explain more detailed please how did you calculate this CRC checksum of the command and address in the address 0x08.

    To be more precisely can you write here full eprom code for DS2431 / DELL – 90W please!
    Thank you in advance!

    Yours sincerely,
    Ciprian MANEA

    Reply

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s