VGA controller (MC9S12XEP100)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VGA controller (MC9S12XEP100)

1,563 Views
ernestsnaith
Contributor I
I am attempting to use the MC9S12XEP100 to control a VGA monitor as part of a university project. I need to shift out bytes of data (through a port in parallel) at a frequency of 3.15 MHz. I have set the bus frequency to 50 MHz giving me 16 cycles per byte.
 
In that 16 cycles I need to increment a couple of counter variables, perform a couple of logical tests and shift a byte of data out. In addition I would either have to use an interrupt or at least check for a timer flag.
 
My question is, does this sound at all possible using the main CPU. From reading the CPU RM i found that many simple assembly instructions require at least a couple of bus cycles. Therefore it doesnt sound likely to me.
 
An alternative would be to use the XGATE. Would this be benefitial? My guess is that many cycles would be required to deal with the interrupt epilogue/prologue and the gained cycles could be lost.
 
How do XGATE instruction compare in execution time to CPU ones with regards to the simple tasks above.
 
Many Thanks for any help
Labels (1)
0 Kudos
1 Reply

580 Views
Steve
NXP Employee
NXP Employee
XGATE is likely a good choice for this application but it depends on your software architecture.
XGATE performs most arithmetic (shift, add, parity) functions much more quickly than the CPU when executing from RAM and has much shorter event prolog/epilog times. However, it has the same overhead when writing to the I/O because that timing is fixed to the CPU bs speed.
Have a look at AN3493 which performs a similar task.
You can write the application task in C and then run it on each core in turn to see which is the more efficient.
0 Kudos