Go Down

Topic: Help with doubling frequency. (Read 1 time) previous topic - next topic


The 'Write Data Setup Time' is 2.5 ns

What's the minimum pulse width?

hopefully I can squeeze many toggles into the 62.5ns pulse

Not with a 16MHz AVR, that's the cycle time so the best you can do is double it, at least with that circuit. BUT you can't update the data in anything like that sort of time plus presumably the code has to do other stuff, so surely this pulse width is only a small part of the overall job.

I guess though that if the data remains the same, say when clearing the display, doubling the clock will help.

Rob Gray aka the GRAYnomad www.robgray.com


The correct value is 5ns.

The LCD runs off 16-bit parallel with 16-bit colour so for lines or filled squares where the colour information is static, all that needs to change is the clock write cycle. The screen supports windowing so X and Y address counters are maintained by the LCD.

My plan is to combine a variable frequency multiplier with a duffs-device style rendering loop to limit the number of iterations used in each loop. For now a 2x multiplier will buy me enough CPU time to start testing other features.

The system is intended to drive vector animations for a game.


Nov 29, 2012, 03:44 pm Last Edit: Nov 29, 2012, 03:45 pm by Graynomad Reason: 1

Speedy little fellow eh?

How much hardware do you want to throw at this? You could rig up a counter to do 256, 4096 or 65k pulses at say 100Mhz. That's still only 3-5 chips.

Rob Gray aka the GRAYnomad www.robgray.com


I'm pretty sure the 5ns is the correct value, it was the tDHW ( Data hold time ) value.
The display controller is SSD1289 and its the 3.2" touch panel from sainsmart running on a mega via a level shifting shield.

The code I'm writing I plan to release to the forum, which will hopefully raise the bar a little bit for Arduino's gaming capacity. The code is tied to the controller, but from browsing the 'display & LCD' forum it seems many people are using the same kit I bought.

I want the hardware support to be modular so its not required for use, but a complex counter like what you describe would be amazing for parallel processing, even if it is only used to clear the screen. As most designs may only need 1 or 2 pwm for sound there are many pins left over for all sorts of fun things.

I have had all sorts of ideas brewing, I was inspired when I saw it was quicker to control than the B/W ST7920 I was using for ages.


The data hold time is how long the databus has to be stable before a write-strobe, its nothing to do with write cycle-time. 
The write-cycle time is listed as a minimum of 100ns,
Looking at other similar device's datasheets suggests the minimum nWR low time is 50ns, minimum nWR high time is 50ns.
[ i.e. 10MHz max strobe rate ]

My practical experience with other similar TFT driver chips suggests that clocking at 10MHz is quite do-able and stable.  That's 130
fps for a screen-fill at 320x240 pixels BTW.

[ The SSD1289 datasheet seems to be bogus and suggests 8080 mode write cycles are strobed using nCS, whereas the standard
8080 interface uses nWR as the strobe - I suspect a bug in the datasheet as the UTFT library assumes nWR and clearly works ]
[ I won't respond to messages, use the forum please ]

Go Up