I2C and SSD1289 Graphic Display

Hi!
With a couple of PCF8575 i make one I2C to parallel port for my SSD1289 i wrote the code and works ;D. But…the is a problem :’( :’( :’( i need the wait more then two minutes for clear the display , and for sure i have the same problem for show a photo o other things. Someone try to comunicate with this display in the same way ? and if yes work fast ? or have the same problem ? I use for my project the G30HDR 0.1

Thank you so much
Sergio

I don’t exactly get it, the problem is the speed until the photo is completely transfered to the display? Or can’t you communicate with the display for two minutes? Looking at the display I think it takes extremely much time to transfer anything to the display. Well I2C isn’t a very fast databus, you can only run it at 400kHz, it normaly isn’t a interface that’s made to transfer so much informations. There can be written about 400kbit per second over the bus.
Communicaton works like: (about)
one byte to select the destination-chip (and if you want to read or write)
one byte to select the location on the chip, where you want to read or write your data
then you can transfer your data
I don’t exactly know how you did your code but I assume you transfer two bytes (the 16 bit the display wants) to your PFC, tell the display its parallel-data is there, the transfer the next two bytes of data, and so on. If you look at the communication above, that wont be very efficent, so it takes extreme much time to transfer all 153k bytes (320x240x16 bits) to fill the screen once. Maybe you can get it done faster by using shift-registers via SPI (74HC595 for example, they are way faster). In SPI you just have to chipselect a chip viai a GPIO, then you can send your data (up to 30MHz on the G30 I think) so you just have to send two bytes, tell your display the data is there, send the next,… That will be way faster than via I2C.
I have a very small monochrome I2C display (128x64 px) with an I2C-interface, even there you can notice hat it takes a (very) little time until the screen is filled and there is only one bit per pixel. That works, but it’s not what the I2C-bus was made for…

First thank you sooo much. The problem is the speed until all data for the photo or just clear the display are send to the display. And yes i realize the I2C is slow i need the try with SPI . But it’s ok because this is my first project wrote in C# and i learn a lot of stuf and i ready to learn how the SPI work :wink: :wink: :wink: :wink:

[quote=“cyberh0me”]i2c works with 100kHz, 400kHz, 1MHz (Fast Mode Plus) and 5MHz (Ultra Fast Mode)
even if you will not find many devices with UFM support
[/quote]

That’s correct of course, I just didn’t mention the rest, because 400kHz is the fastest speed the PCF8575 supports :)…

If you want to use the 74HC595, you maybe take a look at the Gadgeteer MaxIO module (https://www.ghielectronics.com/catalog/product/361). There is even a Gadgeteer-Library included in the SDK that can be used (you just have to pass a byte[]). So that maybe even easier than the I2C option. To be true, I don’t know if the licence allowes to use the Gadgeteer-Libraries without the modules, so just on some bare 74HC595, but if it isn’t a commercial project I don’t think there’s a problem.
Nice thing for a first project by the way, you wrote a complete display-driver ;)…

Yes now i try to use the 74HC595 . Thank you i know i need the learn more and more things like in this case the best way for control one display like this in serial way , but step by step :wink:

Sometimes I like it to write code for such basic things instead of using a finished library. That’s the way you learn much about how the things you are using actually work :)…