Project

General

Profile

#include "pll.h"
#include "regs.h"
#include "integer.h"

void setVideoPLL(uint32_t m,uint32_t c0,uint32_t c1,uint32_t c2,uint32_t c3,uint32_t cp,uint32_t bw,uint32_t mfr)
{
*pll_m = m;
*pll_c = c0;
*pll_c = c1;
*pll_c = c2;
*pll_c = c3;
*pll_chargePump = cp;
*pll_bandwidth = bw;
*pll_mFrac = mfr;
*pll_go = 1;
}


void set_pll(video_pll_mode mode)
{
switch (mode)
{
case MODE_NTSC_ORIG:
//ntsc_svideo
setVideoPLL(0x909,0x404,0x40404,0x80808,0xc1010,0x2,0x7,0x53c7fe31);
break;

case MODE_NTSC_5994:
//ntsc_5994
//5994! Should be 2700000/525/858 (60/1001)
//setVideoPLL(0x20f0e,0x20706,0x60706,0x80d0d,0xc1a1a,0x2,0x7,0xca571058);
//RAM fails!M=29?? Too high FVCO? setVideoPLL(0x20f0e,0x20706,0x60706,0x80d0d,0xc1a1a,0x2,0x7,0xca590425);
setVideoPLL(0xa0a,0x20504,0x60504,0x80909,0xc1212,0x2,0x7,0x9fc77906);
break;

case MODE_NTSC_60:
// ntsc_6000 (for 720p)
setVideoPLL(0xa0a,0x20504,0x60504,0x80909,0xc1212,0x2,0x7,0xA50F18A2);
break;
case MODE_PAL_ORIG:
//pal_svideo
//RAM fails!!M=29?? Too high FVCO? setVideoPLL(0x20f0e,0x20706,0x60706,0x80d0d,0xc1a1a,0x2,0x7,0x829a43e4);
//Works, but less accurate setVideoPLL(0x20504,0x202,0x40202,0x80404,0xc0808,0x2,0x7,0x147e3bf0);
setVideoPLL(0xa0a,0x20504,0x60504,0x80909,0xc1212,0x2,0x7,0x6e1c079e);
break;

case MODE_PAL_50:
//pal_50
setVideoPLL(0x20605,0x20302,0x60302,0x80505,0xc0a0a,0x3,0x8,0x61bb05fb);
break;

}
}

//// TODO - menu - need to output. Need to output 'hdmi_activate','vga','scanlines','pal','svideo'
//video settings ->
//svideo,rgb,vga,hdmi (2 bits)
//pal/ntsc (1 bit)
//scanlines on/off (1 bit)
//composite on hsync on/off (1 bit)
//apply...

// flags:
// svideo
// scandouble
// hdmi
// composite_on_hsync
// pal
// scanlines

// realistic modes:
// 00:HDMI 576p(PAL) scanlines off
// 01:HDMI 576p(PAL) scanlines on
// 02:HDMI 480p(NTSC) scanlines off
// 03:HDMI 480p(NTSC) scanlines on
// 04:VGAHV 31Khz PAL scanlines off
// 05:VGAHV 31Khz PAL scanlines on
// 06:VGAC 31Khz PAL scanlines off
// 07:VGAC 31Khz PAL scanlines on
// 08:VGAHV 31Khz NTSC scanlines off
// 09:VGAHV 31Khz NTSC scanlines on
// 10:VGAC 31Khz NTSC scanlines off
// 11:VGAC 31Khz NTSC scanlines on
// 12:VGAHV 15Khz PAL
// 13:VGAC 15Khz PAL
// 14:VGAHV 15Khz NTSC
// 15:VGAC 15Khz NTSC
// 16:SVIDEO 15Khz PAL
// 17:SVIDEO 15Khz NTSC


(1-1/2)