I had attempted previously to try and identify the values for each pin manually with a logic analyzer and colour bands same as Mr.Taka has attempted previously, but as we both suspect this leaves room for error. Additionally the assignments can change based on XR values for colour width and other settings so this makes documenting even harder when it is not certain which mode is active sometimes.
I tried another approach which maybe was already tried. I attempted to work backwards from the OEM display Citizen pin-out comparing the recommended connections with C&T for similar screens and take those as the assumed pins and then move forward to the TFT15 values.
On PCB V1 only line line for sure was bad. I noticed that usually RED was showing as Yellow, and Red+Green=Yellow, so I realized that one of the RED pins on PC110 has to be connecting to Green pin on VGA. Identified it as PC110#21 to VGA#25 (G2). I cut the trace on the PCB and I now had no cross mixing of colours, but they were still very wrong, likely because if misorder MSB to LSB as well as missing lines.
My approach purely from documentation and not practical testing leads me to believe that PC110#21 is RED2, which is consistent with the issue I was having.
The only immediate issue was that I forgot to connect VCOM pin 46, so I had to put a jumper on. Pin6 VCOM was okay. Based on previous issues I believe each one supports alternating lines.
As expected there are some issues with the colour, it seems that it may be specific to red but requires some more investigation. I consider the test successful though in that I did not see any “noise”, the picture was perfectly stable with no flicker.
The physical fitment was also good, however I wrecked my last 30pin connector so I had to use one salvaged from the old CSTN which is why I have the screen positioned strangley.
I got the correct adapter in and I have successfully dumped the contents of the flash. As expected the video bios is there. I am certain I could modify the XR registers in the vbios binary just like C&T BMP and it would work. The challenge now is how to flash from software.
Analyzing the contents of the flash should help me confirm I am reading it correctly through the flash chips CUI (Command User Interface), which is something I am still working on, based on the dissassembly of xpatch.exe
I did not get the [email protected] from this yet, it had a sticker that said REV0.33
To make the TFT conversion complete, we need to modify the ROM bios to have the correct configuration values for the new display.
After some research I learned of the BMP (Bios Modification Program) provided to OEM’s by Chips&Technology for customizing the CT65535 video bios. It is simply a program that allows you to customize the bios binary. I was not able to find the BMP file for a CT65535 only a CT65545, however it was easy to see what it was doing and confirm that I had located the correct bytes within the video bios I had dumped from C000h.
I am expecting to find a copy of this video rom on the intel flash chip. I do not have the correct TSOP-40 for my ChipProg-40, however I will receive it next week and will dump the contents of the flash to confirm its contents and locations.
For my purposes I am fairly confident I will be able to edit the values, reprogram and put the chip back on. This is not ideal though so the goal is to flash/patch it with a program. I have been reviewing the xpatch.exe to understand how this is possible. I will not attempt anything until I have verified I can backup and program the chips off the board.
This is a disassembled version generated by Sourcer. This is VERY preliminary. I am also investigating with IDAPro 5.0 Free, which properly opens a MZ executable.
As I have previously mentioned, at times I was having what I suspect were signal integrity issues due to the messy wiring through the adapters, wires, breadboard etc running at 25mhz. I wanted to get a proper connection in place and know the signal quality is okay before investing time in trying to perfect the image on the display.
I am inexperienced with PCB design, and I was being impatient and wanted to get SOMETHING quickly so I was certainly sloppy with this layout and made a gamble on the colour wiring. I am fairly confident the MSB’s are correct, so at a minimum I can cut the other traces to at least use it to see if signal quality has improved and work on physical placement. The pin header is to power the led backlight and tft gate drivers (vcom/vgl/vgh) externally until I can verify what we need to put on the PCB itself. The boards are on the way and will be delivered in a couple days.
Some progress with connecting the AT050TN22 v1. As with previous tests, this only has the MSB for each colour connected. I will be sending out for a pcb prototype this week to test further. It looks quite good in person, and there is no flickering.
The style is very sloppy, this was put together in a rush very late to debug the chip. I may improve it later on as it did prove helpful. The assembly version written at https://garakutaen.sakura.ne.jp/ is excellent, however my assembly knowledge is not strong enough to make some of the changes I needed so it was easier to write in C.
The current values configured are for the AT050TN22 V.1 but are not confirmed to be correct.
You can use this program at your own risk. If you have any questions leave a comment.
UPDATE 2020/07/18: I have found some of the original OEM tools for debugging so the need for these custom programs for debugging may be no longer. I am going to maintain a page of all the tools I can find HERE.
So progress has been made with the electrical interface, there is still some work to do but I am at the stage of producing the PCB to connect the lines and generate the voltages. This brought the issue of, how much space do I have? and it turns out not really any.
The original Citizen is about 6mm thick except for the driver end where it requires about 9.5mm clearance due to capacitors. For this reason the rear body of the PC110 is expanded out to accomodate.
The AT050TN22 is also about 6mm thick, except where the driver board is attached which I believe is 6.2mm.
The AT050TN022 a useful feature of allowing us to select the horizontal and vertical scanning direction, Pin 39 Left/Right and Pin 40 Up/Down. This allows us to orientate the module in whatever way we need.
So my thought is to fold the ribbon cable so it comes out at the edge where we have additional clearance. the 30pin FPC connector would be on the bottom layer and the 50pin FPC on top layer. With some good planning the required components for generating the driver voltages and controlling backlight could also fit here, but if not there is lots of space on the other side where the old inveter was.
I am unsure if these folds in the ribbon cable may cause signal integrity issues with the 25MHz clock line zigzagging. Some testing will be needed.
With different folding we can position it to accommodate any layout restrictions on the PCB.
I ordered a VGA driver/controller board that is sold with/for the AT050TN22 v1 so I could verify how they are generating the timing and maybe learn an easier way to generate the needed voltages.
PIN37 (DCLK) is measured at 39.4042 MHz PIN9 (DE) is measured at 33.6341 KHz PIN8 (MODE) is pulled high PIN10 (VS) is is measured at 37.9157 KHz but ignored by display PIN11 (HS) is measured at 70 Hz but is ignored by display
Full length of DE pulse is around 16us (very lazy I eye-balled cursors)
I got the AT050TN22 V.1 in the mail finally from Aliexpress. I wanted to do some testing straight away so I quickly put together an adapter board for the 30pin to 50pin. I only connected the MSB for the colours as my main immediate concern is timing.
Downside of this unit vs the WVGA unit is we need to provide the voltages to drive the tft externally VCOM, VGH(+15V),VHL(-10V),AVDD, etc. This will need to be integrated into the adapter board, along with the +10V for the backlight which ideally will be powered and controlled by the inverter supply to maintain Fn- control of the brightness/contrast (vcom a/c)
I am currently playing with a TI TPS65100 for voltages, however most likely will implement something similar using passives if I can learn enough to cobble together something.
For timing in my initial tests I seemed to need to meet a minimum pixel clock of 25MHz to get an image but this was very preliminary. I also experimented with DE modem vs HV mode. It is not the easiest as we only have access to the pins from the CT65535 that were brought out for the original CSTN display.