1) Do u see checkpoint not complete in alert files, that means checkpoint is happening very fast , increase the size of redo log files .
If you see in v$sysstat, that background checkpoints completed do not match with background checkpoints started, tune your DBWR.
2) How often you want checkpoint to occur, how large is your redo log file, how large is your db_block_buffers, depending on that you can tune your checkpoint.
You can set this with two parameters one is 1.LOG_CHECKPOINT_INTERVAL and 2.LOG_CHECKPOINT_TIMEOUT.
Second one works depending on the number of seconds that u set to checkpoint to occur,u set this in the parameter file.
First one specifies that many number of filled OS blocks to be written to the database
I would like to point it out that as per Oracle Documentation The check point value should be such that it is larger than the largest redo log file. This is due to the fact that occuring of checkpoint will cause some performance problems. Frequent checkpoints reduce the performance of the database. So u should have the checkpoint interval as stated above.