Pages: [1] 2   Go Down
Author Topic: SSD1289 : question about the RD pin  (Read 6659 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Edison Member
*
Karma: 38
Posts: 1012
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, I have Sainsmart's 3.2" TFT display and adapter shield for Arduino Mega

I need to read data from GDDRAM, (to retrieve pixel color), in order to do that, I need to use the RD (Data Read) pin..which unfortunately isn't useable, look this picture:




The white line is the RD pin, and it's connected to Arduino's 3.3V through a 10k ohm resistor (I think it's a resistor)...

1) Any reason for it being connected to 3.3V? My guess is that it's connected here so the pin is always HIGH..am I right? (but then, why it's not connected to 5V?)

2) Can I use this RD pin if I solder a wire from it to an unused Arduino pin (such as D42 for example) ?


I hope someone can answer this!

Thanks in advance smiley
« Last Edit: December 05, 2012, 06:07:20 pm by guix » Logged

Offline Offline
Edison Member
*
Karma: 116
Posts: 2205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
2) Can I use this RD pin if I solder a wire from it to an unused Arduino pin (such as #44 for example) ?

Yes.
Logged

France
Offline Offline
Edison Member
*
Karma: 38
Posts: 1012
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok I ask this because if they haven't connected it to a useable pin when designing that shield, that's probably for a good reason no?
Logged

Offline Offline
Edison Member
*
Karma: 116
Posts: 2205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very rarely you read it back from a serial lcd; Most serial lcds don't allow you to read data back.
Logged

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 47
Posts: 2927
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

There is also the thought that the 'pixel' data being 'recovered' didn't get there by accident. What of the command to write the pixel and the data structure that held the information?.
It would appear to me that you are trying to use the display for additional storage, I wouldn't but that is more a matter of programming style and personal choice than some 'programming' guide or rule.
Where is the 'Tipping Point"?, where storing the data in the program or in processor ram is more difficult that re-reading the graphics device ram?.
Whatever it is, if not a local or program variable, the process will require the data to have local (non CG ram) storage... So now we have the additional code to read the graphics ram, the place to store it temporarily and the time to read, store and process the 'recovered' data.
In my rather simplistic manner of thinking your method requires more storage and processor use than if you had used the processor ram or flash area for the data storage initially.
Or is there an outstanding reason why your only access to the data if by reading the display ram?
Whatever, it kind of goes against my initial training and it seems like a great deal of trouble. IMO, a poor method. Do-Able... but certainly "my last choice"

Bob
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Western New York, USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 4395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ok I ask this because if they haven't connected it to a useable pin when designing that shield, that's probably for a good reason no?
To avoid unnecessarily tying up an Arduino I/O pin for a capability that is rarely used. 

Don
Logged

France
Offline Offline
Edison Member
*
Karma: 38
Posts: 1012
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Docedison I don't want to use that RAM as additional memory. I've though about doing this but then it will draw weird things on the display smiley

Indeed I could store in variables what I write to the display, but then it require up to 320*240*16 bits, that is 150 kB... Hence my need to read data back. Hopefully, I won't constantly read from that RAM, only when needed.

And I already have code to read GDDRAM, thanks to the ArduCam library author(s), the only thing missing is an useable RD pin smiley


To avoid unnecessarily tying up an Arduino I/O pin for a capability that is rarely used.

I could agree but that shield is blocking like 6 unused pins on Arduino's 36 pins connector, so they could have used them anyway, also they wasted Arduino's pins 0 and 1, the F_* pins of that shield exists just in case I want to solder a tiny additional Flash chip on the display board. Confusion again, because they wired only 2 of those F_* pins, the 3rd one isn't wired anywhere -_-
Logged

Offline Offline
Edison Member
*
Karma: 116
Posts: 2205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
they could have used them anyway

Not a whole lot of thoughts went into designing those products.
Logged

Western New York, USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 4395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Not a whole lot of thoughts went into designing those products.
Well we can be pretty sure that SainSmart is not the party to blame.

Don

Logged

North Queensland, Australia
Offline Offline
Edison Member
*
Karma: 74
Posts: 2224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi guix, just wondering how it went, did you manage to use the RD pin on the shield?
I have made a simple oscilloscope using the screen and I want to save some screen shots.

Also, is there a link to the specs of the tiny flash chip you mention. This display is pretty impressive, nice gaming potential.
Logged


France
Offline Offline
Edison Member
*
Karma: 38
Posts: 1012
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello pYro, I am lazy! No I didn't do it yet, because I still haven't bought a soldering iron... smiley

But, I'm almost sure it will work, because the guys who did the ArduCam use it to save a .bmp file from the display's GDDRAM (using a very similar display)

As for the Flash chip, I believe we need a SST25VF chip, especially the 16 Mbits version, SST25VF016B (also exist 32 and 64 Mbits versions of this chip, so in theory it could work too!), can be found on ebay for not much smiley I would like to try, but I'm affraid I have no idea how to make it work, I can't really understand datasheets timings etc..

Edit: changed "MB" to "Mbits"..I have misread smiley

* SST25VF016B.pdf (351.25 KB - downloaded 38 times.)
« Last Edit: December 15, 2012, 08:23:29 pm by guix » Logged

North Queensland, Australia
Offline Offline
Edison Member
*
Karma: 74
Posts: 2224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Those flash chips look nice and easy to use. They are fast, with an auto address counter, could be very useful in a separate circuit to speed up sprite drawing. They would be nice on the shield for simple storage also. As I'm writing an 'animation capable' library for the screen, I will definitely look into testing one out.

Regarding the RD pin:
How would you connect the pins? Would you connect a digital pin on the 3.3v side or RD side of the resistor? Or maybe disconnect RD completely from 3.3v?
I'm thinking maybe an NPN on the RD side to pull RD low, the 3.3v sets the high.



Logged


0
Offline Offline
Shannon Member
****
Karma: 215
Posts: 12516
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, I have Sainsmart's 3.2" TFT display and adapter shield for Arduino Mega

I need to read data from GDDRAM, (to retrieve pixel color), in order to do that, I need to use the RD (Data Read) pin..which unfortunately isn't useable, look this picture:


Yes that's correct - the RD line must be wired high in serial mode (SPI) - you can't read except in one of the parallel modes.  This is
explained in the datasheet in "Table 2 Pin Function Description".

From what I can see of that adapter it uses the SPI bus - if so then you can't read the graphics memory.
Logged

[ I won't respond to messages, use the forum please ]

France
Offline Offline
Edison Member
*
Karma: 38
Posts: 1012
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That resistor is only used by the RD pin, so yes I would remove it, and then 2 choices:

1- (Yellow line) Solder a wire from RD pin to pin D42 or whatever (pins D42 to D49 are unused).
2 - (Red line) Solder a wire from the pad of the (now removed) resistor to pin D42 or whatever.



I prefer the second solution smiley

But will it work... What I don't understand is, why is there a 10kohm resistor here? And why on 3.3V and not 5V? Maybe the RD pin will not support 5V from D42? I can't find anything about this in SSD1289 datasheet...

Is a pin in HIGH state as soon as it receive voltage (or current?) that is greater than 0 ?



Yes that's correct - the RD line must be wired high in serial mode (SPI) - you can't read except in one of the parallel modes.  This is
explained in the datasheet in "Table 2 Pin Function Description".

From what I can see of that adapter it uses the SPI bus - if so then you can't read the graphics memory.

The SPI pins are used only by the SD card reader (on the back of the display, it's completely unrelated to the SSD1289). I believe the display use the mode "MPU Parallel 8080-series Interface" so I think no problem to use the RD pin smiley
« Last Edit: December 16, 2012, 07:41:09 pm by guix » Logged

0
Offline Offline
Shannon Member
****
Karma: 215
Posts: 12516
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah good - the 4 highlight traces suggested SPI to me on a quick glance.   If the board supports both SPI and parallel modes that
could explain the decision to hard-wire the RD line (requirement for serial). 
Logged

[ I won't respond to messages, use the forum please ]

Pages: [1] 2   Go Up
Jump to: