Jump to content
43oh

2.2" 320x240 Color LCD Booster Pack


Recommended Posts

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Say hello to the new member of my Color LCD Booster Pack family, 2.2" LCD with 320x240 pixel resolution. Current version is v3. Board options include backlight transistor and microSD (TransFlash) so

Back in stock (revision 2.)      

Those pins are used by default: P1.0, P1.4, P1.5, P1.6, P1.7

Posted Images

Thanks for the great response!

 

Also, which memory would be a good fit? I've got a bunch of CAT25C256 and CAT24C256 (also have the 128k versions) parts in stock. I also have a a coiuple of 23A1024s in stock. Will any of those work? I saw the schematic, but it didn't really specify what kind of memory would work, or if there was a size you had in mind. If there's a specific chip you designed for, I can probably sample that next month, if I don't already have it.

 

Thanks again!

 

Have a great holiday. :smile:

Link to post
Share on other sites

Thanks for the great response!

 

Also, which memory would be a good fit? I've got a bunch of CAT25C256 and CAT24C256 (also have the 128k versions) parts in stock. I also have a a coiuple of 23A1024s in stock. Will any of those work? I saw the schematic, but it didn't really specify what kind of memory would work, or if there was a size you had in mind. If there's a specific chip you designed for, I can probably sample that next month, if I don't already have it.

 

Thanks again!

 

Have a great holiday. :smile:

Rob's design is around a 23K256SN, it appears. The 25c256 might work but pin 3 on that chip is !WP (Write Protect), and pin 3 on the 23K256 is "No Connection" so that could cause an issue.
Link to post
Share on other sites

Rob's design is around a 23K256SN, it appears. The 25c256 might work but pin 3 on that chip is !WP (Write Protect), and pin 3 on the 23K256 is "No Connection" so that could cause an issue.

@@draconisys, as @@abecedarian already wrote, my board was designed to work with 23Kxxx and 25AAxxx. If pin 3 is used for !WP function, you can solder a jumper to Vcc (pin 3 is NC.)

Link to post
Share on other sites
  • 2 weeks later...

Probably it's a noob question:

 

Why is not necessary to use current limiting resistors(R2..R5) to limit the LEDs' currents?

(Your circuit uses shorts by default)

I know it works, because i have test it, but the TM022HDH26 datasheet shows the maximum forward current is 25mA@3.4V for each LED,

and the MSP-EXP430G2 LaunchPad's Vcc can be slightly above 3.4V

 

Thanks in advance

Link to post
Share on other sites

Any chance of finding a faster display? I've optimized everything I can in code, and due to the blocking nature of the serial calls into the display's internal controller, the fastest I can repaint the display is twice per second. That's with a simple repaint, a clearScreen(1) followed by a single pixel paint per X (X is on the 320-pixel axis, Y is on the 240-pixel axis).

 

-- Tim --

Link to post
Share on other sites

Why is not necessary to use current limiting resistors(R2..R5) to limit the LEDs' currents?

(Your circuit uses shorts by default)

I know it works, because i have test it, but the TM022HDH26 datasheet shows the maximum forward current is 25mA@3.4V for each LED,

and the MSP-EXP430G2 LaunchPad's Vcc can be slightly above 3.4V

 

 

From my experience, If does not approach it's max value in those displays, so I do not use resistors (I only had to do it for some 5110 LCDs.)

@3.6V, all LEDs consume about 40mA, so it's 10mA per LED.

Link to post
Share on other sites

Any chance of finding a faster display? I've optimized everything I can in code, and due to the blocking nature of the serial calls into the display's internal controller, the fastest I can repaint the display is twice per second. That's with a simple repaint, a clearScreen(1) followed by a single pixel paint per X (X is on the 320-pixel axis, Y is on the 240-pixel axis).

 

-- Tim --

 

In theory, you should be able to get up to 13fps when drawing full screen.

The only possible way to speed things up is to redraw your shapes with background color instead of using clearScreen.

 

If you want faster display, you should look for LCD with parallel connection, there are few of them available.

Link to post
Share on other sites

In theory, you should be able to get up to 13fps when drawing full screen.

The only possible way to speed things up is to redraw your shapes with background color instead of using clearScreen.

 

If you want faster display, you should look for LCD with parallel connection, there are few of them available.

Unfortunately, the shape data is random on every screen refresh, so I really need to wipe ahead of myself to eliminate any artifacts from the previous frame.

 

Now... would it help to install the LaunchPad's 32KHz crystal? I've read (but can't verify) that doing so would bump up the MSP430's clock rate, which might get me into the ballpark I'm shooting for. Have you tried running one of these displays on a crystal-installed LaunchPad? If installing the crystal WOULD bump up the LaunchPad's execution rate, I'm all for it. After all, clearing (or washing with some color) the screen does involve pushing 153,600 bytes across the serial bus to the display - a pretty heavy workload.

 

Thinking...

 

Lessee if I can find speed up the library code, optimizing strictly for this application.

 

Oh, and... lest I forget or neglect... thanks, Rob! These little displays are VERY NEAT.    8)

Link to post
Share on other sites

Yep, definitely set to 16MHz (G2553); CCS recognizes the #define.

 

EDIT: There's an improvement - I modified your clearScreen() a little, and got some better performance:

void clearScreen(u_char blackWhite) {
    setArea(0, 0, getScreenWidth() - 1, getScreenHeight() - 1);
    setBackgroundColor(blackWhite ? 0x0000 : 0xFFFF);
    u_int w = getScreenWidth();
    u_int h = getScreenHeight();
    u_int Y = w;
    while (h != 0) {
        Y = w;
        while (Y != 0) {
            writeData(bgColorHighByte);
            writeData(bgColorLowByte);
            Y--;
        }
        h--;
    }
}

Note that I'm not calling getScreenWidth() on each h; instead, I'm using a single stored value.

 

EDIT II: It's a very SLIGHT improvement - all it's doing is eliminating one call (which eliminates some stack activity), but it's an improvement.

 

EDIT III: Got it. Your code is pretty tight, Rob... so I changed things a little by using only the upper 180 (of 240) pixel rows, wiping it with fillRect instead of clearScreen. Now I'm barely within my 150fpm (2.5fps) frame rate design limit. Now it's time to do the COOL stuff.    8)

 

I can use the lower 60 rows for other stuff, like a once-per-frame textual display.

Link to post
Share on other sites
  • 2 weeks later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...