DS90UB983-Q1: 983 cs2.0的TI 芯片,patgen是否绑定固定寄存器地址屏参

Part Number: DS90UB983-Q1

我使用的是983 CS2.0串行器,

配置PATGEN的设置如下:
                    int serAddr = 0x0C;
                    WriteI2C2(serAddr, 0x40, 0x30);
                    WriteI2C2(serAddr, 0x41, 0x29);
                    WriteI2C2(serAddr, 0x42, 0x0C); // 设置PATGEN颜色深度为24bpp用于VP0
                    WriteI2C2(serAddr, 0x41, 0x28);
                    WriteI2C2(serAddr, 0x42, 0x95); // 启用VP0上的PATGEN - 注释掉此行以禁用PATGEN并启用端到端视频
                    WriteI2C2(serAddr, 0x43, 0x00);  //#Set number of VPs used = 1
                    WriteI2C2(serAddr, 0x44, 0x01);  //#disable video processors
配置VP0屏参如下:
                    
        WriteI2C(serAddr, 0x40, 0x32);
        WriteI2C(serAddr, 0x41, 0x01);
        WriteI2C(serAddr, 0x42, 0xa8); // 设置VP_SRC_SELECT为Stream 0以使用SST模式
        WriteI2C(serAddr, 0x41, 0x02);
        WriteI2C(serAddr, 0x42, 0x80); // VID H Active
        WriteI2C(serAddr, 0x42, 0x07); // VID H Active
        WriteI2C(serAddr, 0x41, 0x10);
        WriteI2C(serAddr, 0x42, 0x80); // Horizontal Active
        WriteI2C(serAddr, 0x42, 0x07); // Horizontal Active
        WriteI2C(serAddr, 0x42, 0x20); // Horizontal Back Porch
        WriteI2C(serAddr, 0x42, 0x00); // Horizontal Back Porch
        WriteI2C(serAddr, 0x42, 0x20); // Horizontal Sync
        WriteI2C(serAddr, 0x42, 0x00); // Horizontal Sync
        WriteI2C(serAddr, 0x42, 0x00); // Horizontal Total
        WriteI2C(serAddr, 0x42, 0x08); // Horizontal Total
        WriteI2C(serAddr, 0x42, 0xd0); // Vertical Active
        WriteI2C(serAddr, 0x42, 0x02); // Vertical Active
        WriteI2C(serAddr, 0x42, 0x08); // Vertical Back Porch
        WriteI2C(serAddr, 0x42, 0x00); // Vertical Back Porch
        WriteI2C(serAddr, 0x42, 0x08); // Vertical Sync
        WriteI2C(serAddr, 0x42, 0x00); // Vertical Sync
        WriteI2C(serAddr, 0x42, 0x2d); // Vertical Front Porch
        WriteI2C(serAddr, 0x42, 0x00); // Vertical Front Porch
        WriteI2C(serAddr, 0x41, 0x27);
        WriteI2C(serAddr, 0x42, 0x00); // HSYNC Polarity = +, VSYNC Polarity = +
 
问题是之前使用CS1.0的时候,配置PATGEN的WriteI2C2(serAddr, 0x42, 0x0C); 之前写的是WriteI2C2(serAddr, 0x42, 0x08);也查看寄存器手册FPD4_PGCFG_VP0 Register (Address = 0x29) ,差别是第三个bit,Timing Select Control: 1: The Pattern Generator creates its own video timing as configured in the Pattern Generator Total Frame Size, Active Frame Size, Horizontal Sync Width, Vertical Sync Width, Horizontal Back Porch, Vertical Back Porch, and Sync Configuration registers. 0: the Pattern Generator uses external video timing from the pixel clock, Data Enable, Horizontal Sync, and Vertical Sync signals. ,
所以
第一个问题:1.0和2.0中改动了什么,必须得用2.0得设置29寄存器0C才可以亮屏,
第二个问题:外部的Timing和内部的Timing设置有什么区别?
点三个问题:为什么2.0中还需要配置2b寄存器才可以,不配的话屏幕的状态看着不正常,
WriteI2C(serAddr,0x41,0x2a); //Set patgen address
            WriteI2C(serAddr,0x42,0x86); //Set patgen address auto increment
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //Set patgen THW 2048
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x8); //Set patgen THW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0D); //Set patgen TVW 781
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x03); //Set patgen TVW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x80); //Set patgen AHW 1920
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x7); //Set patgen AHW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0xd0); //Set patgen AVW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x2); //Set patgen AVW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x20); //Set patgen HSW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //Set patgen HSW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x8); //Set patgen VSW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //Set patgen VSW
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x20); //Set patgen HBP
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //Set patgen HBP
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x8); //Set patgen VBP
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //Set patgen VBP
            WriteI2C(serAddr,0x41,0x2a);
            WriteI2C(serAddr,0x42,0x96);
            WriteI2C(serAddr,0x41,0x2b);
            WriteI2C(serAddr,0x42,0x0); //HSYNC Polarity = +, VSYNC Polarity = +