Wednesday, January 15, 2020

DIY Laptop: LCD backlight

The only remaining LCD-related problem in this project is the backlight. Having previously bought a complete A1707 display assembly with a cracked LCD (only $90, basement bargain price!) I tested it with the interposer PCB. In newer MBPs the "apple" on the back of the display assembly is not translucent, so I had to look for the image in reflected light (not very convenient). To test the assembly's backlight, I needed 50-60V for LCDBKLT. Cheap bench power supplies don't go that high, so I made me a boost converter with an LM2577. Initially, I hoped that just connecting LCDBKLT would do the trick, as I had connected PWM and BKLT_EN inputs, but the screen obstinately stayed dark. I surmised that the LCD controller doesn't want to turn on the backlight because it can't talk to the LP8548 boost converter, which A170x and later MBPs use to generate the LCDBKLT voltage, and which resides on the main board. However, a comparison of A1398 and A1707 schematics and display connector pinouts led me to suspect that I could work around this behavior by connecting to the LED strings directly.

                       [J0803]
    G  ?? K1 K2 K3 K4 K5 K6 ??  G
    N                           N
    D  ?? ?? AA AA AA AA ?? ??  D
              (LCDBKLT)
Backlight connector pinout

I probed the pins of the LED connector (a custom 16-pin variant of JAE WP25D) on a busted LCD controller board and sure enough, four pins are directly connected to LCDBKLT, and six others behave as if they are connected to ground through MOSFETs (body diodes conduct when applying reverse voltage, i.e. when GND is more positive than Kn). I soldered a wire to K6, connected it to ground through a large 30k potentiometer and an ampermeter, powered up, and was greeted with this:

The breadboard with the big fat capacitors is the boost converter. The interposer PCB is sticking out of the motherboard.

Success! Varying the potentiometer resistance and LCDBKLT voltage, the current and voltage on the K6 pin, and the brightness of the screen, behaved exactly as one would expect from LED I-V curve, so Kn pins are almost certainly individual strings' cathodes. On the left-hand photo I have about 1mA flowing through 2 out of 6 strings (it turned out I'd accidentally made a solder bridge between K5 and K6) and the right-hand photo has 100mA. It is clear how much brighter the screen is with the larger current. Incidentally, this is about 2x more current than is indicated on the schematic, but I observed no ill effects other than a nasty buzzing noise from my boost converter: LM2577's working frequency is only 52kHz.

With these results in hand, I can design the backlight power supply and the display and keyboard PCBs. I plan to use the same LP8545 LED driver used in A1398, because in contrast to LP8548 it has datasheets available and is carried by the usual distributors. I'll run DP data lanes through a micro-coax cable, and route the rest of the signals and power through a FPC, so that my display PCB will have only a handful of components: basically connectors, status LEDs, and whatever I need for the lid sensor. All the heavy lifting will be done by an STM32F0 MCU on the "keyboard" PCB, which besides the keyboard and trackpad connectors will also carry the backlight power supply, the card-edge eDP connector, and maybe a SATA connector for the 2.5" HDD: I'd rather plug it into something solid than have a mess of cables in the case. I'll break out pads for the SMBus connection to the power PCB, but I can proceed with the former two PCBs, the case, heatsink etc., without touching the power.