Let's try to bring this topic alive. I was very busy (unfortunately started too many projects
) so this was on hold for a while. But today I found some more time and I think I made some progress.
It has a protocol almost identical as a
Mitsubishi M66004SP. Looking at the data that I sniffed, it looks almost the same with the only difference being that mine sets CLK to low while device is busy, and the Mitsubishi one sets it to high. The rest looks the same.
So it mostly uses a 2 byte sequences when sending, the first one probably being the command, and the second one the character code. This happens between the two changes of CE from low to high and then back to low. Also, a longer period of CLK set to down can be seen between the bytes which is probably a busy time, the time the driver needs to process the received command. On one of the sniffings there's also a much longer busy time than on others, probably indicating a command that needs a lot of time to process.
Next, if you want to set the character RAM data on the Mitsubishi, you need to send 7 bytes at once, between two CE changes. I think I also captured this on my device, as you can see on the third picture, but mine sends 6 bytes instead.
So I think we know a little bit more now. And yes, you're probably right, I should now try to connect the Arduino there and start sending those same commands out. I know the data, I know the timing. But I'm worried if this display needs some initialization first. Unfortunately, I was not able to capture the startup of the device, which would eventually showed me the initialization commands. So I'm worried that, even if I manage to successfuly send the command, it might not work if the display is eg. disabled.
So I would still like to find which IC is this and have a datasheet for it so that I know all the commands. Do you have any idea how I can look for the IC with all the data I have? Can I conclude that it might be a Mitsubishi one or this is just a gold standard protocol? So far we know:
- 5x7 segments, 18 or more digits
- 8-bit serial data (probably MSB first)
- similar to Mitsubishi M66004FP
- 2-byte sequences mostly
- CLK to low for tbusy
- 6-byte sequence for writting to register/RAM
- CS, CP and DATA pins
- CS set to low while transmitting data
- there are 10 CLK rising edges in 10 us period, so clock is 1 us which would give 1 MHz?
PS. I have one more idea: connect Arduino to input from MCU and record the data it receives from the MCU. I can detect CE set to low and then detect rising edges of CLK and store bits. That way maybe I can capture startup commands.
EDIT: might it be
Mitsubishi M66003 ? This one is 18 digits 5x7! But the datasheet doesn't contain anything about the serial interface. Also, it seems that I'm not the only one with such ideas:
https://github.com/siorpaes/DisplayAdapter/blob/master/notes.txt but this guy mentions that M66003 is similar to M66004, although it isn't because I checked a few commands that I extracted from my sniffs and compared to the list of available commands for M66004 and those don't match.
EDIT 2: According to
https://www.elektroda.pl/rtvforum/topic4071924.html, Yamaha HTR-4065 AVR also uses M66003 and it's display looks rather similar to the Denon in mine.