Jump to content

NTSC/PAL video text display for Lauchpad and Fraunchpad

Recommended Posts

The latest rev 1.5 Launchpad comes with a G2553 chip that has enough RAM and Flash to do a 24 x 16 text display using NTSC or PAL video. There is enough flash for a 8x12 font and SPI is used to offload video generation so the MPU has time to do font data lookup. The sync generation is the same as used on the older chips.


The Fraunchpad can do video, but there are some problems. The FRAM speed is only 8 MHz, so caching is used to allow the MPU to run at up to 24 MHz. The cache misses that occur make video generation a challenge. It can be made to work as the demo video shows, but other F5000 series chips would be a better choice.


Here is a demo of the code that is using the Launchpad as a simple video terminal to show closed caption data. The decoded closed caption data is sent from the decoder to both the Launchpad and the computer's serial port. Top right is Hyperterminal showing the closed caption data, below that is picture-in-picture of the NTSC video from the Launchpad, to the left is VLC showing the live video.



Here is a demo of the Fraunchpad showing MIDI data in one of three selectable formats. The Fraunchpad has more RAM, so the text resolution is 32 x 16.



Link to post
Share on other sites

Maybe - I will give it a try when I have some time. It will be 192 x 192 resolution like the NTSC/PAL, but using 640 x 480 sync timing.


Doing VGA properly requires a 25.175 MHz xtal clock and the Launchpad can't do that. Not sure how the monitor will react to less than perfect timing with some jitter.

Link to post
Share on other sites
  • 1 month later...

I am getting an error in CCS v. when trying to compile main.c for debug on launchpad (using g2553):


"../lnk_msp430g2452.cmd", line 56: error: run placement fails for object

".bss", size 0x198 (page 0). Available ranges:

RAM size: 0x100 unused: 0xb0 max hole: 0xb0


undefined first referenced

symbol in file

--------- ----------------

IFG2 ./video.obj

UCA0BR0 ./main.obj

UCA0BR1 ./main.obj

UCA0CTL0 ./main.obj

UCA0CTL1 ./main.obj

UCA0MCTL ./main.obj

UCA0RXBUF ./main.obj

UCA0TXBUF ./main.obj

UCB0BR0 ./video.obj

UCB0BR1 ./video.obj

UCB0CTL0 ./video.obj

UCB0CTL1 ./video.obj

UCB0TXBUF ./video.obj


error: unresolved symbols remain

error: errors encountered during linking; "vout_test_3.out" not built


Am I missing something in my compiler settings?




Link to post
Share on other sites

Make sure you select MSP430G2553 when creating the project.


It looks like you selected an different chip with 256 bytes of RAM (G2553 has 512) and USI rather than USCI.


The linker error suggest the different RAM size, and the undefined symbols suggest a different serial peripheral.

Link to post
Share on other sites

Oh, wow, it's right there! I chose to start with the chip I was using on another project... it compiled just fine after changing the target to the MSP430G2553 that is actually populated on the board... I am testing my attempts at getting this code running on the LP because I have seen many requests for Pong on the tv-out for the launchpad, but haven't seen it implemented... thinking about lowering the resolution and saving some flash space to implement a little more code. Any suggestions? How much code space could we save my rewriting straight into assembly?

Link to post
Share on other sites
  • 2 weeks later...
  • 1 month later...
  • 3 months later...

If you take a look into the video.asm, you see that you get the sync signal from P1.6 and the video from P1.7

Just Connect P1.6 to a 470 Ohm resistor and P1.7 to a 220 Ohm resistor.

Then connect both outputs, put them on the video line [ the one in the middle] and connect the outer layer of the cable to gnd.

Link to post
Share on other sites

Hey, i really like this project and wanted to know if someone is experiencing the same issue with the serial interface as i do. i cannot seem to transmit data to the serial port, the last few times i either got weird controll chars or nothing at all.

another question might be if it would be possible to write code for the msp430g2553 that allows a simple pixel matrix with the largest possible size and a buiffer for it.


thanks in advance :)



Link to post
Share on other sites
  • 6 months later...

Another note.  The video was terribly jittery and I assumed this was because the DCO calibration values were off, as I have noticed the factory calibration values put most 2553s at about 15.7 MHz.  I modified the code to change the clock frequency on the fly to see if this helped with the video.  I soon realized the serial port is far more sensitive to clock timing, and moved the "hardware" over to another LaunchPad with an xtal soldered in to drive the serial port while I mucked with the DCO.  Turns out this second LaunchPad produced *far* better video than the first -- at the full range that the TV could sync to.


I'm really at a loss as to how the video quality could be so different between two different LaunchPads.  Particularly since they are both rev 1.5s from the same order.

Link to post
Share on other sites

Join the conversation

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

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...