Monday, April 18, 2011

Easier method of color generation for NTSC Television

 Please read this and this (optional) for better understanding before you read this post.

Few popular methods used to generate different colors for NTSC are
1. using AD725 IC for RGB values to NTSC color conversion
2. using a standard 3.579545MHz as the color carrier and producing different delays to get different phase and in-turn different colors in NTSC. This can be done by using a number of buffers to create delays and selecting the required color among these delayed signals by the use of a multiplexer.


Tuesday, January 25, 2011

DMA in LPC17xx

Direct Memory Access is a feature which allows the peripherals to access the memory directly or to transfer data to other peripherals without the help of CPU. So whenever we are using DMA, we can be doing computations on the CPU while the data transfer is taking place. Effectively the microcontroller is multitasking.

LPC17xx has a General Purpose DMA (GPDMA) which has 8 channels of which each can perform unidirectional data transfer. All types of data transfers like memory-memory, memory-peripheral, peripheral-peripheral are supported. And we can prioritize the DMA transfers as we wish. It can also perform 8-bit, 16-bit and 32-bit wide transactions. If we want to transfer a stream of data that is not stored in contiguous manner, then we can use the scatter and gather feature of the DMA which uses linked list. There are many many more features available with the GPDMA out of which I will be explaining some basic features in this post. I will talk about other advanced features as and when it is required.

Monday, January 24, 2011

Using PWM on LPC17xx

PWM can be used for generating analog signals of frequency very much lower than that of the PWM frequency. LPC1768 has one PWM with six channels. There will be one timer for each PWM and this timer will be used by all channels of that PWM. Configuring the PWM is similar to that of configuring a timer. The only difference is that we also need to specify the location of rising and falling edges for each channel that we use.

Monday, January 17, 2011

Why is NTSC color carrier frequency 3.57954545 MHz and not some other number that can be remembered easily?

Hello guys. I am back after a long break. Now I will continue to tell a little more about NTSC before I start writing blogs on the actual Game Console implementation on LPC1768. I would suggest you to read the previous post before reading this one for better understanding.

I mentioned that the NTSC color carrier frequency is 3.57954545 MHz. If I want to create a game console for NTSC TV then I need to generate this frequency and use it as the color carrier. But why is 3.57954545 MHz chosen as the carrier and not some other frequency which can be easily remembered or generated?

Friday, November 19, 2010

Understanding the basic requirements to display video on a CRT TV

The basic thing that attracted me towards ARM was the idea of creating a Game Console for NTSC TV. I previously made a game console for VGA monitor using AVR. But now the desire to make it better, to get greater resolution video, good quality audio and also huge number of sprite support made me start working with ARM. The basic reason for choosing LPC1768 over hundreds of microcontrollers available in the market was that this controller seems appropriate for video graphics generation purpose. The basic architecture of it is such that it makes our job simple.

Wednesday, November 17, 2010

Configuring and playing with Timer of LPC1768

After saying Hello to LPC1768 and blinking an LED using delay through GPIO, it is time to use the timer for blinking the LED. First let us just get the timer running and then with the help of interrupts we shall blink the LED. For all the register description we require LPC17xx manual.

Thursday, October 21, 2010

Software tools required to work with ARM

To work with any microcontroller you will require an IDE, a compiler, and a flasher or code burning program (if you are not using a bootloader). Today I will talk about the basic software requirements to start working with an ARM cored microcontroller.