├── .gitignore ├── ICN6211-Configurator.png ├── Properties ├── Settings.settings ├── Settings.Designer.cs ├── AssemblyInfo.cs ├── Resources.Designer.cs └── Resources.resx ├── App.config ├── README.md ├── Program.cs ├── ICN6211-Configurator.sln ├── app.manifest ├── ICN6211-Configurator.csproj ├── Form1.resx ├── Form1.cs └── Form1.Designer.cs /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /.vscode 3 | /bin 4 | /obj -------------------------------------------------------------------------------- /ICN6211-Configurator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdjastrzebski/ICN6211-Configurator/HEAD/ICN6211-Configurator.png -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ICN6211 Configurator 2 | This repo contains popular ICN6211 MIPI-DSI to DPI bridge configurator written in C#. 3 | Configurator has been written based on numerous forum discussions and blogs posts, mainly related to Linux kernel and drivers since detailed ICN6211 specification is not publicly available. 4 | 5 | Please do not hesitate to share your comments and suggest improvements. 6 | 7 | ![screenshot](ICN6211-Configurator.png) -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace ICN6211_Configurator 5 | { 6 | static class Program 7 | { 8 | /// 9 | /// The main entry point for the application. 10 | /// 11 | [STAThread] 12 | static void Main() 13 | { 14 | Application.EnableVisualStyles(); 15 | Application.SetCompatibleTextRenderingDefault(false); 16 | Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); 17 | Application.Run(new Form1()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ICN6211_Configurator.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ICN6211 Configurator")] 8 | [assembly: AssemblyDescription("ICN6211 Configurator")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCopyright("Copytight (c) Tomasz Jastrzebski 2020")] 11 | [assembly: AssemblyProduct("ICN6211 Configurator")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | // Setting ComVisible to false makes the types in this assembly not visible 15 | // to COM components. If you need to access a type in this assembly from 16 | // COM, set the ComVisible attribute to true on that type. 17 | [assembly: ComVisible(false)] 18 | 19 | // The following GUID is for the ID of the typelib if this project is exposed to COM 20 | [assembly: Guid("ad282788-8acd-470b-8d42-bca8039d3866")] 21 | 22 | // Version information for an assembly consists of the following four values: 23 | // 24 | // Major Version 25 | // Minor Version 26 | // Build Number 27 | // Revision 28 | // 29 | // You can specify all the values or you can default the Build and Revision Numbers 30 | // by using the '*' as shown below: 31 | // [assembly: AssemblyVersion("1.0.*")] 32 | [assembly: AssemblyVersion("1.0.0.0")] 33 | [assembly: AssemblyFileVersion("1.0.0.0")] 34 | -------------------------------------------------------------------------------- /ICN6211-Configurator.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29503.13 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICN6211-Configurator", "ICN6211-Configurator.csproj", "{AD282788-8ACD-470B-8D42-BCA8039D3866}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2DFA5E1E-B778-4609-B9CE-5276599DEF7B}" 9 | ProjectSection(SolutionItems) = preProject 10 | .gitignore = .gitignore 11 | ICN6211-Configurator.png = ICN6211-Configurator.png 12 | README.md = README.md 13 | EndProjectSection 14 | EndProject 15 | Global 16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 17 | Debug|Any CPU = Debug|Any CPU 18 | Release|Any CPU = Release|Any CPU 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {AD282788-8ACD-470B-8D42-BCA8039D3866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 22 | {AD282788-8ACD-470B-8D42-BCA8039D3866}.Debug|Any CPU.Build.0 = Debug|Any CPU 23 | {AD282788-8ACD-470B-8D42-BCA8039D3866}.Release|Any CPU.ActiveCfg = Release|Any CPU 24 | {AD282788-8ACD-470B-8D42-BCA8039D3866}.Release|Any CPU.Build.0 = Release|Any CPU 25 | EndGlobalSection 26 | GlobalSection(SolutionProperties) = preSolution 27 | HideSolutionNode = FALSE 28 | EndGlobalSection 29 | GlobalSection(ExtensibilityGlobals) = postSolution 30 | SolutionGuid = {47EACF55-045B-4F6D-944C-CF1564A90E6D} 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ICN6211_Configurator.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ICN6211_Configurator.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 52 | 59 | 60 | 61 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /ICN6211-Configurator.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {AD282788-8ACD-470B-8D42-BCA8039D3866} 8 | WinExe 9 | ICN6211_Configurator 10 | ICN6211_Configurator 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | app.manifest 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | Form 47 | 48 | 49 | Form1.cs 50 | 51 | 52 | 53 | 54 | Form1.cs 55 | 56 | 57 | ResXFileCodeGenerator 58 | Designer 59 | Resources.Designer.cs 60 | 61 | 62 | 63 | SettingsSingleFileGenerator 64 | Settings.Designer.cs 65 | 66 | 67 | True 68 | True 69 | Resources.resx 70 | 71 | 72 | True 73 | Settings.settings 74 | True 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Form1.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 162, 17 122 | 123 | 124 | 298, 17 125 | 126 | -------------------------------------------------------------------------------- /Form1.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Tomasz Jastrzebski 2020 2 | // This ICN6211 configurator has been written based on numerous forum discussions and blogs posts, 3 | // rather than on the manufacturer specs so settings may not be 100% accurate. 4 | // Any improvements and suggestions are appreciated. 5 | // https://github.com/tdjastrzebski/ICN6211-Configurator 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Windows.Forms; 11 | 12 | namespace ICN6211_Configurator 13 | { 14 | public partial class Form1 : Form 15 | { 16 | public Form1() 17 | { 18 | Application.ThreadException += Application_ThreadException; 19 | InitializeComponent(); 20 | 21 | var testModeItems = new[] { 22 | new { Text = "0 - disabled", Value = (byte)0 }, 23 | new { Text = "1 - monochrome", Value = (byte)1 }, 24 | new { Text = "2 - border", Value = (byte)2 }, 25 | new { Text = "3 - cheese board", Value = (byte)3 }, 26 | new { Text = "4 - color bar", Value = (byte)4 }, 27 | new { Text = "5 - color switching", Value = (byte)5 } 28 | }; 29 | this.TestModeComboBox.DataSource = testModeItems; 30 | 31 | var orderItems = new[] { 32 | new { Text = "RGB: Red(0) - Green(1) - Blue(2)", Value = (byte)0b_0000 }, 33 | new { Text = "RBG: Red(0) - Blue(1) - Green(2)", Value = (byte)0b_0001 }, 34 | new { Text = "GRB: Green(0) - Red(1) - Blue(2)", Value = (byte)0b_0010 }, 35 | new { Text = "GBR: Green(0) - Blue(1) - Red(2)", Value = (byte)0b_0011 }, 36 | new { Text = "BRG: Blue(0) - Red(1) - Green(2)", Value = (byte)0b_0100 }, 37 | new { Text = "BGR: Blue(0) - Green(1) - Red(2)", Value = (byte)0b_0101 }, 38 | }; 39 | this.OrderComboBox.DataSource = orderItems; 40 | 41 | var groupItems888 = new[] { 42 | new { Text = "GroupX[7:0] = Color[7:0]", Value = (byte)0b_0100 }, 43 | new { Text = "GroupX[7:0] = Color[0:7]", Value = (byte)0b_0101 }, 44 | }; 45 | Rgb888ComboBox.DataSource = groupItems888; 46 | 47 | var groupItems666 = new[] { 48 | new { Text = "GroupX[5:0] = Color[5:0]", Value = (byte)0b_0000 }, 49 | new { Text = "GroupX[5:0] = Color[0:5]", Value = (byte)0b_0001 }, 50 | new { Text = "GroupX[7:2] = Color[5:0]", Value = (byte)0b_0010 }, 51 | new { Text = "GroupX[7:2] = Color[0:5]", Value = (byte)0b_0011 }, 52 | }; 53 | Rgb666ComboBox.DataSource = groupItems666; 54 | 55 | var phaseAdjustItems = new[] { 56 | new { Text = "0", Value = (byte)0b_1000_1000 }, 57 | new { Text = "1/4", Value = (byte)0b_1001_1000 }, 58 | new { Text = "1/2", Value = (byte)0b_1010_1000 }, 59 | new { Text = "3/4", Value = (byte)0b_1011_1000 }, 60 | }; 61 | this.RgbClkPhaseAdjustComboBox.DataSource = phaseAdjustItems; 62 | } 63 | 64 | private void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) 65 | { 66 | if (e.Exception is ApplicationException) { 67 | MessageBox.Show(this, e.Exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 68 | } else { 69 | MessageBox.Show(this, "Fatal error. Terminating", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 70 | } 71 | } 72 | 73 | private void Settings2RegistryButton_Click(object sender, EventArgs e) 74 | { 75 | RegistersTextBox.Text = GetRegistrySettings(); 76 | } 77 | 78 | private void Registry2SettingsButton_Click(object sender, EventArgs e) 79 | { 80 | ParseRegistrySettings(RegistersTextBox.Text); 81 | } 82 | 83 | private void RefClkCheckBox_CheckedChanged(object sender, EventArgs e) 84 | { 85 | RefClkTextBox.Enabled = RefClkCheckBox.Checked; 86 | } 87 | 88 | private void TestModeCheckBox_CheckedChanged(object sender, EventArgs e) 89 | { 90 | TestModeComboBox.Enabled = TestModeCheckBox.Checked; 91 | } 92 | 93 | private void EnableSwapRadioButton_CheckedChanged(object sender, EventArgs e) 94 | { 95 | bool enabled = EnableSwapRadioButton.Checked; 96 | Lane0SwapCheckBox.Enabled = enabled; 97 | Lane1SwapCheckBox.Enabled = enabled; 98 | Lane2SwapCheckBox.Enabled = enabled; 99 | Lane3SwapCheckBox.Enabled = enabled; 100 | ClockCheckBox.Enabled = enabled; 101 | } 102 | 103 | private void TimerFps_Tick(object sender, EventArgs e) 104 | { 105 | try { 106 | double rgbClk = Double.Parse(RgbClkTextBox.Text); 107 | double hActivePixel = Double.Parse(HActivePixelTextBox.Text); 108 | double vActiveLine = Double.Parse(VActiveLineTextBox.Text); 109 | double hSync = Double.Parse(HSyncTextBox.Text); 110 | double vSync = Double.Parse(VSyncTextBox.Text); 111 | double hbp = Double.Parse(HbpTextBox.Text); 112 | double vbp = Double.Parse(VbpTextBox.Text); 113 | double hfp = Double.Parse(HfpTextBox.Text); 114 | double vfp = Double.Parse(VfpTextBox.Text); 115 | 116 | double fps = rgbClk * 1000000.0 / ((hActivePixel + hfp + hSync + hbp) * (vActiveLine + vfp + vSync + vbp)); 117 | 118 | FpsToolStripStatusLabel.Text = $"{fps:F2} fps"; 119 | } catch (FormatException) { 120 | FpsToolStripStatusLabel.Text = "fps?"; 121 | } 122 | } 123 | 124 | private string GetRegistrySettings() 125 | { 126 | List<(byte register, byte value)> settings = new List<(byte register, byte value)>(); 127 | 128 | if (MipiCommandModeRadioButton.Checked) settings.Add((0x7A, 0xC1)); // MIPI Command Mode (defalut mode is I2C) 129 | 130 | // HACTIVE[7:0] 131 | ushort hActivePixel = UInt16.Parse(HActivePixelTextBox.Text); 132 | if (hActivePixel > 4095) throw new ApplicationException("H Active Pixel > 4095"); 133 | settings.Add((0x20, (byte)(hActivePixel & 0xFF))); 134 | 135 | // VACTIVE[7:0] 136 | ushort vActiveLine = UInt16.Parse(VActiveLineTextBox.Text); 137 | if (vActiveLine > 4095) throw new ApplicationException("V Active Pixel > 4095"); 138 | settings.Add((0x21, (byte)(vActiveLine & 0xFF))); 139 | 140 | // VACTIVE[11:8] for bit 7-4, HACTIVE[11:8] for bit 3-0 141 | settings.Add((0x22, (byte)(((vActiveLine & 0xF00) >> 4) | ((hActivePixel & 0xF00) >> 8)))); 142 | 143 | ushort hfp = UInt16.Parse(HfpTextBox.Text); 144 | if (hfp > 4095) throw new ApplicationException("HFP > 1023"); 145 | settings.Add((0x23, (byte)(hfp & 0xFF))); // HFP 146 | 147 | ushort hSync = UInt16.Parse(HSyncTextBox.Text); 148 | if (hSync > 4095) throw new ApplicationException("H Sync > 1023"); 149 | settings.Add((0x24, (byte)(hSync & 0xFF))); // HSync 150 | 151 | ushort hbp = UInt16.Parse(HbpTextBox.Text); 152 | if (hbp > 4095) throw new ApplicationException("HBP > 1023"); 153 | settings.Add((0x25, (byte)(hbp & 0xFF))); // HBP 154 | 155 | // HFP[9:8] for bit 5-4, HSync[9:8] for 3-2, HBP[9:8] for bit 1-0 156 | settings.Add((0x26, (byte)(((hfp & 0x300) >> 4) | ((hSync & 0x300) >> 6) | ((hbp & 0x300) >> 8)))); 157 | 158 | ushort vfp = UInt16.Parse(VfpTextBox.Text); 159 | if (vfp > 255) throw new ApplicationException("VFP > 255"); 160 | settings.Add((0x27, (byte)vfp)); // VFP 161 | 162 | ushort vSync = UInt16.Parse(VSyncTextBox.Text); 163 | if (vSync > 255) throw new ApplicationException("V Sync > 255"); 164 | settings.Add((0x28, (byte)vSync)); // VSync 165 | 166 | ushort vbp = UInt16.Parse(VbpTextBox.Text); 167 | if (vbp > 255) throw new ApplicationException("VBP > 255"); 168 | settings.Add((0x29, (byte)vbp)); // VBP 169 | 170 | settings.Add((0x34, 0x80)); // SYNC_EVENT_DLY[7:0] 171 | 172 | // HSW_MIN 173 | if (hfp <= 255 && hfp != 0x80) { 174 | settings.Add((0x36, (byte)hfp)); 175 | } else { 176 | settings.Add((0x36, 0xFF)); 177 | } 178 | 179 | byte mipiLaneNo = Byte.Parse(MipiLaneNoComboBox.Text); 180 | if (mipiLaneNo < 1 | mipiLaneNo > 4) throw new ApplicationException("MIPI Lane No must be between 1 and 4."); 181 | byte x86 = (byte)(0b_0010_1000 | (--mipiLaneNo & 0x03)); 182 | if (x86 != 0x2B) settings.Add((0x86, x86)); // DSI_CTRL register (number of D-PHY lines) 183 | 184 | settings.Add((0xB5, 0xA0)); // MIPI_PD_CK_LANE register 185 | 186 | settings.Add((0x5C, 0xFF)); // PLL_WT_LOCK[7:0] 187 | 188 | int x87 = 0; 189 | 190 | if (EnableSwapRadioButton.Checked) { 191 | x87 |= ClockCheckBox.Checked ? 0b_0001_0000 : 0; 192 | x87 |= Lane3SwapCheckBox.Checked ? 0b_0000_1000 : 0; 193 | x87 |= Lane2SwapCheckBox.Checked ? 0b_0000_0100 : 0; 194 | x87 |= Lane1SwapCheckBox.Checked ? 0b_0000_0010 : 0; 195 | x87 |= Lane0SwapCheckBox.Checked ? 0b_0000_0001 : 0; 196 | } 197 | 198 | if (x87 != 0) settings.Add((0x87, (byte)x87)); // MIPI P/N Swap 199 | 200 | int x2A = 0; 201 | x2A |= DEPolarityCheckBox.Checked ? 1 : 0; 202 | x2A |= VSyncPolarityCheckBox.Checked ? 2 : 0; 203 | x2A |= HSyncPolarityCheckBox.Checked ? 4 : 0; 204 | x2A |= TestModeCheckBox.Checked ? 8 : 0; 205 | 206 | if (TestModeCheckBox.Checked) { 207 | byte testMode = (byte)TestModeComboBox.SelectedValue; 208 | if (testMode > 5) throw new ApplicationException("Test mode > 5"); 209 | x2A |= 8; 210 | x2A |= testMode << 4; 211 | settings.Add((0x14, 0x43)); // enable test mode 212 | } 213 | 214 | settings.Add((0x2A, (byte)x2A)); // H/V Sync, DE Polarity bits 0-2, BIST_GEN bit 3, BIST_MODE bits 4-7 215 | 216 | // Set to 0x93 for the internal clock, 0x92 when MIPI is used as the pixel clock, 0x90 when external clock is used 217 | settings.Add((0x56, (byte)(RefClkCheckBox.Checked ? 0x90 : 0x92))); 218 | 219 | double rgbClk = Double.Parse(RgbClkTextBox.Text); 220 | double mipiClk = Double.Parse(MipiClkTextBox.Text); 221 | double refClk = Double.Parse(RefClkTextBox.Text); 222 | double x69; 223 | byte x6B; 224 | 225 | if (RefClkCheckBox.Checked) { 226 | x69 = rgbClk / refClk; // rgbClk as multiplicity of refClk 227 | 228 | if (rgbClk >= 87.5) { 229 | x6B = 0b_0011_0001; 230 | x69 *= 8.0; 231 | } else if (rgbClk >= 43.75) { 232 | x6B = 0b_0101_0001; 233 | x69 *= 16.0; 234 | } else { 235 | x6B = 0b_0111_0001; 236 | x69 *= 32.0; 237 | } 238 | } else { 239 | x69 = rgbClk / mipiClk; // rgbClk as multiplicity of mipiClk 240 | 241 | if (rgbClk >= 87.5) { 242 | x6B = 0b_0010_0000; 243 | x69 *= 4; 244 | } else if (rgbClk >= 43.75) { 245 | x6B = 0b_0100_0000; 246 | x69 *= 8; 247 | } else { 248 | x6B = 0b_0110_0000; 249 | x69 *= 16; 250 | } 251 | 252 | if (mipiClk >= 320.0) { 253 | x6B |= 0b_1_0011; 254 | x69 *= 24.0; 255 | } else if (mipiClk >= 160.0) { 256 | x6B |= 0b_10010; 257 | x69 *= 16.0; 258 | } else if (mipiClk >= 80.0) { 259 | x6B |= 0b_1_0001; 260 | x69 *= 8.0; 261 | } else { 262 | x6B |= 0b_0_0001; 263 | x69 *= 4.0; 264 | } 265 | } 266 | 267 | settings.Add((0x6B, x6B)); // PLL_REF_DIV register (RGB clock) 268 | x69 = Math.Floor(Math.Floor(x69) == x69 ? x69 : Math.Floor(x69) + 1.0); 269 | settings.Add((0x69, (byte)x69)); // PLL_INT[7:0] (RGB clock) 270 | 271 | byte x10 = (byte)(RfcFunctionCheckBox.Checked ? 0b_1000_0000 : 0); 272 | 273 | if (Rgb888RadioButton.Checked) { 274 | x10 |= (byte)((byte)Rgb888ComboBox.SelectedValue << 4); 275 | } else if (Rgb666RadioButton.Checked) { 276 | x10 |= (byte)((byte)Rgb666ComboBox.SelectedValue << 4); 277 | } else { 278 | throw new ApplicationException("Unclear RGB 666/888 mode selection."); 279 | } 280 | 281 | x10 |= (byte)OrderComboBox.SelectedValue; 282 | settings.Add((0x10, x10)); // SYS_CTRL_0 register (RGB color mode, line swap & order) 283 | 284 | byte x11 = (byte)RgbClkPhaseAdjustComboBox.SelectedValue; 285 | settings.Add((0x11, x11)); // SYS_CTRL_1 register (phase adjust) 286 | settings.Add((0xB6, 0x20)); // MIPI_FORCE_0 register 287 | settings.Add((0x51, 0x20)); // PLL_CTRL_1 register 288 | settings.Add((0x09, 0x10)); // CONFIG_FINISH register, disply on 289 | //settings.Add((0x7A, 0x3E)); // MIPI Command Mode - set to 0x3E at the end (why?) 290 | 291 | string outputText = String.Join("\r\n", settings.Select(rv => $"0x{rv.register:X2} = 0x{rv.value:X2}")); 292 | return outputText; 293 | } 294 | 295 | private void ParseRegistrySettings(string registersAndValues) 296 | { 297 | registersAndValues = registersAndValues.Replace("\r\n", "\n").Trim(); 298 | var list = registersAndValues.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); 299 | var settings = new Dictionary(); 300 | 301 | foreach (var regValuePair in list) { 302 | var rv = regValuePair.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries); 303 | 304 | if (rv.Length != 2) { 305 | throw new ApplicationException($"Error parsing registry value: {regValuePair}."); 306 | } 307 | 308 | var register = rv[0].Trim(); 309 | var value = rv[1].Trim(); 310 | settings.Add(Convert.ToByte(register, 16), Convert.ToByte(value, 16)); 311 | } 312 | 313 | // hActivePixel 314 | if (settings.ContainsKey(0x20) && settings.ContainsKey(0x22)) { 315 | int hActivePixel = settings[0x20] | ((settings[0x22] & 0b_0000_1111) << 8); 316 | this.HActivePixelTextBox.Text = hActivePixel.ToString(); 317 | } else { 318 | this.HActivePixelTextBox.Text = ""; 319 | } 320 | 321 | // vActiveLine 322 | if (settings.ContainsKey(0x21) && settings.ContainsKey(0x22)) { 323 | int vActiveLine = settings[0x21] | ((settings[0x22] & 0b_1111_0000) << 4); 324 | this.VActiveLineTextBox.Text = vActiveLine.ToString(); 325 | } else { 326 | this.VActiveLineTextBox.Text = ""; 327 | } 328 | 329 | // HFP 330 | if (settings.ContainsKey(0x23) && settings.ContainsKey(0x26)) { 331 | int hfp = settings[0x23] | ((settings[0x26] & 0b_0011_0000) << 4); 332 | this.HfpTextBox.Text = hfp.ToString(); 333 | } else { 334 | this.HfpTextBox.Text = ""; 335 | } 336 | 337 | // hSync 338 | if (settings.ContainsKey(0x24) && settings.ContainsKey(0x26)) { 339 | int hSync = settings[0x24] | ((settings[0x26] & 0b_0000_1100) << 6); 340 | this.HSyncTextBox.Text = hSync.ToString(); 341 | } else { 342 | this.HSyncTextBox.Text = ""; 343 | } 344 | 345 | // HBP 346 | if (settings.ContainsKey(0x25) && settings.ContainsKey(0x26)) { 347 | int hbp = settings[0x25] | ((settings[0x26] & 0b_0000_0011) << 8); 348 | this.HbpTextBox.Text = hbp.ToString(); 349 | } else { 350 | this.HbpTextBox.Text = ""; 351 | } 352 | 353 | // VFP 354 | if (settings.ContainsKey(0x27)) { 355 | byte vfp = settings[0x27]; 356 | this.VfpTextBox.Text = vfp.ToString(); 357 | } else { 358 | this.VfpTextBox.Text = ""; 359 | } 360 | 361 | // vSync 362 | if (settings.ContainsKey(0x28)) { 363 | byte vfp = settings[0x28]; 364 | this.VSyncTextBox.Text = vfp.ToString(); 365 | } else { 366 | this.VSyncTextBox.Text = ""; 367 | } 368 | 369 | // VBP 370 | if (settings.ContainsKey(0x29)) { 371 | byte vbp = settings[0x29]; 372 | this.VbpTextBox.Text = vbp.ToString(); 373 | } else { 374 | this.VbpTextBox.Text = ""; 375 | } 376 | 377 | // MIPI Lane No 378 | if (settings.ContainsKey(0x86)) { 379 | byte mipiLaneNo = (byte)(settings[0x86] & 0b_0000_0011); 380 | mipiLaneNo += 1; 381 | this.MipiLaneNoComboBox.Text = mipiLaneNo.ToString(); 382 | } else { 383 | this.MipiLaneNoComboBox.Text = ""; 384 | } 385 | 386 | // MIPI P/N Swap 387 | if (settings.ContainsKey(0x87)) { 388 | int lineSwap = settings[0x87] & 0b_0001_1111; 389 | 390 | if (lineSwap == 0) { 391 | EnableSwapRadioButton.Checked = false; 392 | DisableSwapRadioButton.Checked = true; 393 | } else { 394 | EnableSwapRadioButton.Checked = true; 395 | DisableSwapRadioButton.Checked = false; 396 | } 397 | 398 | ClockCheckBox.Checked = (lineSwap & 0b_0001_0000) == 0b_0001_0000; 399 | Lane3SwapCheckBox.Checked = (lineSwap & 0b_0000_1000) == 0b_0000_1000; 400 | Lane2SwapCheckBox.Checked = (lineSwap & 0b_0000_0100) == 0b_0000_0100; 401 | Lane1SwapCheckBox.Checked = (lineSwap & 0b_0000_0010) == 0b_0000_0010; 402 | Lane0SwapCheckBox.Checked = (lineSwap & 0b_0000_0001) == 0b_0000_0001; 403 | 404 | } else { 405 | EnableSwapRadioButton.Checked = false; 406 | DisableSwapRadioButton.Checked = true; 407 | ClockCheckBox.Checked = false; 408 | Lane3SwapCheckBox.Checked = false; 409 | Lane2SwapCheckBox.Checked = false; 410 | Lane1SwapCheckBox.Checked = false; 411 | Lane0SwapCheckBox.Checked = false; 412 | } 413 | 414 | // Ref Clock 415 | if (settings.ContainsKey(0x56)) { 416 | byte refClk = settings[0x56]; 417 | RefClkCheckBox.Checked = refClk == 0x90; 418 | } else { 419 | RefClkCheckBox.Checked = false; 420 | } 421 | 422 | // RGB Clock 423 | if (settings.ContainsKey(0x69) && settings.ContainsKey(0x6B)) { 424 | double rgbClk = settings[0x69]; 425 | byte range = settings[0x6B]; 426 | 427 | if (RefClkCheckBox.Checked && Double.TryParse(RefClkTextBox.Text, out double refClk)) { 428 | switch (range) { 429 | case 0x71: rgbClk /= 32.0; break; // rgbClk < 43.75 430 | case 0x51: rgbClk /= 16.0; break; // 43.75 <= rgbClk < 87.5 431 | case 0x31: rgbClk /= 8.0; break; // rgbClk >= 87.5 432 | default: 433 | this.RgbClkTextBox.Text = "?"; 434 | throw new ApplicationException($"Unsupported RGB clock range value 0x6B = 0x{range:X2}."); 435 | } 436 | 437 | rgbClk *= refClk; 438 | this.RgbClkTextBox.Text = rgbClk.ToString(); 439 | } else { 440 | int rgbClkRange = range & 0b_0110_0000; 441 | int mipiClkRange = range & 0b_0001_1111; 442 | 443 | switch (rgbClkRange) { 444 | case 0b_0110_0000: rgbClk /= 16.0; break; // rgbClk < 43.75 445 | case 0b_0100_0000: rgbClk /= 8.0; break; // 43.75 <= rgbClk < 87.5 446 | case 0b_0010_0000: rgbClk /= 4.0; break; // rgbClk >= 87.5 447 | default: throw new ApplicationException($"Unsupported RGB clock range value 0x6B = 0x{range:X2}."); 448 | } 449 | 450 | switch (mipiClkRange) { 451 | case 0b_00001: rgbClk /= 4.0; break; // mipiClk < 80 452 | case 0b_10001: rgbClk /= 8.0; break; // 80 <= mipiClk < 160 453 | case 0b_10010: rgbClk /= 16.0; break; // 160 <= mipiClk < 320 454 | case 0b_10011: rgbClk /= 24.0; break; // mipiClk >= 320 455 | default: throw new ApplicationException($"Unsupported MIPI clock range value 0x6B = 0x{range:X2}."); 456 | } 457 | 458 | double mipiClk; 459 | 460 | if (String.IsNullOrWhiteSpace(MipiClkTextBox.Text)) { 461 | // propose mipiClk value within range 462 | switch (mipiClkRange) { 463 | case 0b_00001: mipiClk = 50; break; // mipiClk < 80 464 | case 0b_10001: mipiClk = 100; break; // 80 <= mipiClk < 160 465 | case 0b_10010: mipiClk = 250; break; // 160 <= mipiClk < 320 466 | case 0b_10011: mipiClk = 350; break; // mipiClk >= 320 467 | default: throw new Exception("This exception should not have happened, MIPI clock range checked before."); 468 | } 469 | } else { 470 | if (Double.TryParse(this.MipiClkTextBox.Text, out mipiClk)) { 471 | // validate mipiClk is within the specified range 472 | switch (mipiClkRange) { 473 | case 0b_00001: if (mipiClk > 80) throw new ApplicationException("MIPI CLK > 80"); break; 474 | case 0b_10001: if (80.0 > mipiClk || mipiClk >= 160.0) throw new ApplicationException("80 > MIPI CLK >= 160"); break; 475 | case 0b_10010: if (160.0 > mipiClk || mipiClk >= 320.0) throw new ApplicationException("160 > MIPI CLK >= 320"); break; 476 | case 0b_10011: if (mipiClk < 320) throw new ApplicationException("MIPI CLK < 320"); break; 477 | default: throw new Exception("This exception should not have happened, MIPI clock range checked before."); 478 | } 479 | } else { 480 | throw new ApplicationException("Error parsing MIPI Clock value."); 481 | } 482 | } 483 | 484 | rgbClk *= mipiClk; 485 | this.RgbClkTextBox.Text = rgbClk.ToString(); 486 | } 487 | } else { 488 | this.RgbClkTextBox.Text = "?"; 489 | } 490 | 491 | // Config 492 | if (settings.ContainsKey(0x10)) { 493 | byte config = settings[0x10]; 494 | RfcFunctionCheckBox.Checked = (config & 0b_1000_0000) == 0b_1000_0000; 495 | 496 | byte rgb = (byte)((config & 0b_0111_0000) >> 4); 497 | Rgb888RadioButton.Checked = (rgb == 0b_100 || rgb == 0b_101); 498 | Rgb666RadioButton.Checked = (rgb == 0b_000 || rgb == 0b_001 || rgb == 0b_010 || rgb == 0b_011); 499 | 500 | if (Rgb888RadioButton.Checked) { 501 | Rgb888ComboBox.SelectedValue = rgb; 502 | Rgb666ComboBox.SelectedIndex = 0; 503 | } else if (Rgb666RadioButton.Checked) { 504 | Rgb888ComboBox.SelectedIndex = 0; 505 | Rgb666ComboBox.SelectedValue = rgb; 506 | } else { 507 | Rgb888ComboBox.SelectedIndex = 0; 508 | Rgb666ComboBox.SelectedIndex = 0; 509 | } 510 | 511 | byte order = (byte)(config & 0b_0000_1111); 512 | OrderComboBox.SelectedValue = order; 513 | } else { 514 | RfcFunctionCheckBox.Checked = false; 515 | Rgb666ComboBox.SelectedItem = null; 516 | Rgb888ComboBox.SelectedItem = null; 517 | OrderComboBox.SelectedItem = null; 518 | } 519 | 520 | // Phase adjust 521 | if (settings.ContainsKey(0x11)) { 522 | byte phaseAdjust = settings[0x11]; 523 | RgbClkPhaseAdjustComboBox.SelectedValue = phaseAdjust; 524 | } else { 525 | RgbClkPhaseAdjustComboBox.SelectedItem = null; 526 | } 527 | 528 | // Polarity 529 | if (settings.ContainsKey(0x2A)) { 530 | byte polarity = settings[0x2A]; 531 | DEPolarityCheckBox.Checked = (polarity & 0x01) == 0x01; 532 | VSyncPolarityCheckBox.Checked = (polarity & 0x02) == 0x02; 533 | HSyncPolarityCheckBox.Checked = (polarity & 0x04) == 0x04; 534 | } else { 535 | DEPolarityCheckBox.Checked = true; 536 | VSyncPolarityCheckBox.Checked = false; 537 | HSyncPolarityCheckBox.Checked = false; 538 | } 539 | 540 | // Test Mode 541 | if (settings.ContainsKey(0x14) && settings[0x14] == 0x43 && settings.ContainsKey(0x2A) && (settings[0x2A] & 0x8) == 0x8) { 542 | TestModeCheckBox.Checked = true; 543 | byte testMode = (byte)(settings[0x2A] >> 4); 544 | TestModeComboBox.SelectedValue = testMode; 545 | } else { 546 | TestModeCheckBox.Checked = false; 547 | } 548 | 549 | // I2C 550 | if (settings.ContainsKey(0x7A)) { 551 | byte i2c = settings[0x7A]; 552 | MipiCommandModeRadioButton.Checked = (i2c == 0xC1); // default valuie is 0x3E (I2C command mode) 553 | } else { 554 | MipiCommandModeRadioButton.Checked = false; 555 | } 556 | I2CRadioButton.Checked = !MipiCommandModeRadioButton.Checked; 557 | } 558 | } 559 | } 560 | -------------------------------------------------------------------------------- /Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace ICN6211_Configurator 4 | { 5 | partial class Form1 6 | { 7 | /// 8 | /// Required designer variable. 9 | /// 10 | private System.ComponentModel.IContainer components = null; 11 | 12 | /// 13 | /// Clean up any resources being used. 14 | /// 15 | /// true if managed resources should be disposed; otherwise, false. 16 | protected override void Dispose(bool disposing) 17 | { 18 | if (disposing && (components != null)) { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Windows Form Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | this.components = new System.ComponentModel.Container(); 33 | this.RegistersTextBox = new System.Windows.Forms.TextBox(); 34 | this.TimerFps = new System.Windows.Forms.Timer(this.components); 35 | this.MipiPNSwapGroupBox = new System.Windows.Forms.GroupBox(); 36 | this.DisableSwapRadioButton = new System.Windows.Forms.RadioButton(); 37 | this.EnableSwapRadioButton = new System.Windows.Forms.RadioButton(); 38 | this.ClockCheckBox = new System.Windows.Forms.CheckBox(); 39 | this.Lane3SwapCheckBox = new System.Windows.Forms.CheckBox(); 40 | this.Lane2SwapCheckBox = new System.Windows.Forms.CheckBox(); 41 | this.Lane1SwapCheckBox = new System.Windows.Forms.CheckBox(); 42 | this.Lane0SwapCheckBox = new System.Windows.Forms.CheckBox(); 43 | this.RgbOutputGroupBox = new System.Windows.Forms.GroupBox(); 44 | this.OrderLabel = new System.Windows.Forms.Label(); 45 | this.Rgb666ComboBox = new System.Windows.Forms.ComboBox(); 46 | this.Rgb888RadioButton = new System.Windows.Forms.RadioButton(); 47 | this.Rgb888ComboBox = new System.Windows.Forms.ComboBox(); 48 | this.OrderComboBox = new System.Windows.Forms.ComboBox(); 49 | this.Rgb666RadioButton = new System.Windows.Forms.RadioButton(); 50 | this.NoteLabel = new System.Windows.Forms.Label(); 51 | this.Group0NoteLabel = new System.Windows.Forms.Label(); 52 | this.Group2NoteLabel = new System.Windows.Forms.Label(); 53 | this.Group1NoteLabel = new System.Windows.Forms.Label(); 54 | this.BasicSettingsGroupBox = new System.Windows.Forms.GroupBox(); 55 | this.DEPolarityCheckBox = new System.Windows.Forms.CheckBox(); 56 | this.VSyncPolarityCheckBox = new System.Windows.Forms.CheckBox(); 57 | this.HSyncPolarityCheckBox = new System.Windows.Forms.CheckBox(); 58 | this.RefClkTextBox = new System.Windows.Forms.TextBox(); 59 | this.RefClkCheckBox = new System.Windows.Forms.CheckBox(); 60 | this.RgbClkPhaseAdjustComboBox = new System.Windows.Forms.ComboBox(); 61 | this.RgbClkPhaseAdjustLabel = new System.Windows.Forms.Label(); 62 | this.MipiLaneNoComboBox = new System.Windows.Forms.ComboBox(); 63 | this.MipiClkTextBox = new System.Windows.Forms.TextBox(); 64 | this.MipiLaneNoLabel = new System.Windows.Forms.Label(); 65 | this.MipiClkLabel = new System.Windows.Forms.Label(); 66 | this.RgbClkLabel = new System.Windows.Forms.Label(); 67 | this.RgbClkTextBox = new System.Windows.Forms.TextBox(); 68 | this.VbpTextBox = new System.Windows.Forms.TextBox(); 69 | this.VSyncTextBox = new System.Windows.Forms.TextBox(); 70 | this.VfpTextBox = new System.Windows.Forms.TextBox(); 71 | this.HbpTextBox = new System.Windows.Forms.TextBox(); 72 | this.HSyncTextBox = new System.Windows.Forms.TextBox(); 73 | this.HfpTextBox = new System.Windows.Forms.TextBox(); 74 | this.VActiveLineTextBox = new System.Windows.Forms.TextBox(); 75 | this.VbpLabel = new System.Windows.Forms.Label(); 76 | this.VSyncLabel = new System.Windows.Forms.Label(); 77 | this.VfpLabel = new System.Windows.Forms.Label(); 78 | this.HbpLabel = new System.Windows.Forms.Label(); 79 | this.HSyncLabel = new System.Windows.Forms.Label(); 80 | this.HFpLabel = new System.Windows.Forms.Label(); 81 | this.VActiveLineLabel = new System.Windows.Forms.Label(); 82 | this.HActivePixelLabel = new System.Windows.Forms.Label(); 83 | this.HActivePixelTextBox = new System.Windows.Forms.TextBox(); 84 | this.RfcFunctionCheckBox = new System.Windows.Forms.CheckBox(); 85 | this.MipiCommandModeRadioButton = new System.Windows.Forms.RadioButton(); 86 | this.I2CRadioButton = new System.Windows.Forms.RadioButton(); 87 | this.TestModeCheckBox = new System.Windows.Forms.CheckBox(); 88 | this.Settings2RegistryButton = new System.Windows.Forms.Button(); 89 | this.Registry2SettingsButton = new System.Windows.Forms.Button(); 90 | this.statusStrip1 = new System.Windows.Forms.StatusStrip(); 91 | this.FpsToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); 92 | this.TestModeComboBox = new System.Windows.Forms.ComboBox(); 93 | this.MipiPNSwapGroupBox.SuspendLayout(); 94 | this.RgbOutputGroupBox.SuspendLayout(); 95 | this.BasicSettingsGroupBox.SuspendLayout(); 96 | this.statusStrip1.SuspendLayout(); 97 | this.SuspendLayout(); 98 | // 99 | // RegistersTextBox 100 | // 101 | this.RegistersTextBox.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 102 | this.RegistersTextBox.Location = new System.Drawing.Point(1064, 36); 103 | this.RegistersTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 104 | this.RegistersTextBox.Multiline = true; 105 | this.RegistersTextBox.Name = "RegistersTextBox"; 106 | this.RegistersTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; 107 | this.RegistersTextBox.Size = new System.Drawing.Size(192, 830); 108 | this.RegistersTextBox.TabIndex = 500; 109 | // 110 | // TimerFps 111 | // 112 | this.TimerFps.Enabled = true; 113 | this.TimerFps.Tick += new System.EventHandler(this.TimerFps_Tick); 114 | // 115 | // MipiPNSwapGroupBox 116 | // 117 | this.MipiPNSwapGroupBox.Controls.Add(this.DisableSwapRadioButton); 118 | this.MipiPNSwapGroupBox.Controls.Add(this.EnableSwapRadioButton); 119 | this.MipiPNSwapGroupBox.Controls.Add(this.ClockCheckBox); 120 | this.MipiPNSwapGroupBox.Controls.Add(this.Lane3SwapCheckBox); 121 | this.MipiPNSwapGroupBox.Controls.Add(this.Lane2SwapCheckBox); 122 | this.MipiPNSwapGroupBox.Controls.Add(this.Lane1SwapCheckBox); 123 | this.MipiPNSwapGroupBox.Controls.Add(this.Lane0SwapCheckBox); 124 | this.MipiPNSwapGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 125 | this.MipiPNSwapGroupBox.Location = new System.Drawing.Point(456, 25); 126 | this.MipiPNSwapGroupBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 127 | this.MipiPNSwapGroupBox.Name = "MipiPNSwapGroupBox"; 128 | this.MipiPNSwapGroupBox.Padding = new System.Windows.Forms.Padding(4, 6, 4, 6); 129 | this.MipiPNSwapGroupBox.Size = new System.Drawing.Size(473, 197); 130 | this.MipiPNSwapGroupBox.TabIndex = 200; 131 | this.MipiPNSwapGroupBox.TabStop = false; 132 | this.MipiPNSwapGroupBox.Text = "MIPI P/N Swap"; 133 | // 134 | // DisableSwapRadioButton 135 | // 136 | this.DisableSwapRadioButton.AutoSize = true; 137 | this.DisableSwapRadioButton.Checked = true; 138 | this.DisableSwapRadioButton.Location = new System.Drawing.Point(168, 53); 139 | this.DisableSwapRadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 140 | this.DisableSwapRadioButton.Name = "DisableSwapRadioButton"; 141 | this.DisableSwapRadioButton.Size = new System.Drawing.Size(95, 26); 142 | this.DisableSwapRadioButton.TabIndex = 202; 143 | this.DisableSwapRadioButton.TabStop = true; 144 | this.DisableSwapRadioButton.Text = "Disable"; 145 | this.DisableSwapRadioButton.UseVisualStyleBackColor = true; 146 | // 147 | // EnableSwapRadioButton 148 | // 149 | this.EnableSwapRadioButton.AutoSize = true; 150 | this.EnableSwapRadioButton.Location = new System.Drawing.Point(36, 53); 151 | this.EnableSwapRadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 152 | this.EnableSwapRadioButton.Name = "EnableSwapRadioButton"; 153 | this.EnableSwapRadioButton.Size = new System.Drawing.Size(91, 26); 154 | this.EnableSwapRadioButton.TabIndex = 201; 155 | this.EnableSwapRadioButton.Text = "Enable"; 156 | this.EnableSwapRadioButton.UseVisualStyleBackColor = true; 157 | this.EnableSwapRadioButton.CheckedChanged += new System.EventHandler(this.EnableSwapRadioButton_CheckedChanged); 158 | // 159 | // ClockCheckBox 160 | // 161 | this.ClockCheckBox.AutoSize = true; 162 | this.ClockCheckBox.Enabled = false; 163 | this.ClockCheckBox.Location = new System.Drawing.Point(289, 101); 164 | this.ClockCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 165 | this.ClockCheckBox.Name = "ClockCheckBox"; 166 | this.ClockCheckBox.Size = new System.Drawing.Size(81, 26); 167 | this.ClockCheckBox.TabIndex = 207; 168 | this.ClockCheckBox.Text = "Clock"; 169 | this.ClockCheckBox.UseVisualStyleBackColor = true; 170 | // 171 | // Lane3SwapCheckBox 172 | // 173 | this.Lane3SwapCheckBox.AutoSize = true; 174 | this.Lane3SwapCheckBox.Enabled = false; 175 | this.Lane3SwapCheckBox.Location = new System.Drawing.Point(168, 149); 176 | this.Lane3SwapCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 177 | this.Lane3SwapCheckBox.Name = "Lane3SwapCheckBox"; 178 | this.Lane3SwapCheckBox.Size = new System.Drawing.Size(86, 26); 179 | this.Lane3SwapCheckBox.TabIndex = 206; 180 | this.Lane3SwapCheckBox.Text = "Lane3"; 181 | this.Lane3SwapCheckBox.UseVisualStyleBackColor = true; 182 | // 183 | // Lane2SwapCheckBox 184 | // 185 | this.Lane2SwapCheckBox.AutoSize = true; 186 | this.Lane2SwapCheckBox.Enabled = false; 187 | this.Lane2SwapCheckBox.Location = new System.Drawing.Point(168, 101); 188 | this.Lane2SwapCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 189 | this.Lane2SwapCheckBox.Name = "Lane2SwapCheckBox"; 190 | this.Lane2SwapCheckBox.Size = new System.Drawing.Size(86, 26); 191 | this.Lane2SwapCheckBox.TabIndex = 205; 192 | this.Lane2SwapCheckBox.Text = "Lane2"; 193 | this.Lane2SwapCheckBox.UseVisualStyleBackColor = true; 194 | // 195 | // Lane1SwapCheckBox 196 | // 197 | this.Lane1SwapCheckBox.AutoSize = true; 198 | this.Lane1SwapCheckBox.Enabled = false; 199 | this.Lane1SwapCheckBox.Location = new System.Drawing.Point(36, 149); 200 | this.Lane1SwapCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 201 | this.Lane1SwapCheckBox.Name = "Lane1SwapCheckBox"; 202 | this.Lane1SwapCheckBox.Size = new System.Drawing.Size(86, 26); 203 | this.Lane1SwapCheckBox.TabIndex = 204; 204 | this.Lane1SwapCheckBox.Text = "Lane1"; 205 | this.Lane1SwapCheckBox.UseVisualStyleBackColor = true; 206 | // 207 | // Lane0SwapCheckBox 208 | // 209 | this.Lane0SwapCheckBox.AutoSize = true; 210 | this.Lane0SwapCheckBox.Enabled = false; 211 | this.Lane0SwapCheckBox.Location = new System.Drawing.Point(36, 101); 212 | this.Lane0SwapCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 213 | this.Lane0SwapCheckBox.Name = "Lane0SwapCheckBox"; 214 | this.Lane0SwapCheckBox.Size = new System.Drawing.Size(86, 26); 215 | this.Lane0SwapCheckBox.TabIndex = 203; 216 | this.Lane0SwapCheckBox.Text = "Lane0"; 217 | this.Lane0SwapCheckBox.UseVisualStyleBackColor = true; 218 | // 219 | // RgbOutputGroupBox 220 | // 221 | this.RgbOutputGroupBox.Controls.Add(this.OrderLabel); 222 | this.RgbOutputGroupBox.Controls.Add(this.Rgb666ComboBox); 223 | this.RgbOutputGroupBox.Controls.Add(this.Rgb888RadioButton); 224 | this.RgbOutputGroupBox.Controls.Add(this.Rgb888ComboBox); 225 | this.RgbOutputGroupBox.Controls.Add(this.OrderComboBox); 226 | this.RgbOutputGroupBox.Controls.Add(this.Rgb666RadioButton); 227 | this.RgbOutputGroupBox.Controls.Add(this.NoteLabel); 228 | this.RgbOutputGroupBox.Controls.Add(this.Group0NoteLabel); 229 | this.RgbOutputGroupBox.Controls.Add(this.Group2NoteLabel); 230 | this.RgbOutputGroupBox.Controls.Add(this.Group1NoteLabel); 231 | this.RgbOutputGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 232 | this.RgbOutputGroupBox.Location = new System.Drawing.Point(456, 234); 233 | this.RgbOutputGroupBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 234 | this.RgbOutputGroupBox.Name = "RgbOutputGroupBox"; 235 | this.RgbOutputGroupBox.Padding = new System.Windows.Forms.Padding(4, 6, 4, 6); 236 | this.RgbOutputGroupBox.Size = new System.Drawing.Size(473, 321); 237 | this.RgbOutputGroupBox.TabIndex = 300; 238 | this.RgbOutputGroupBox.TabStop = false; 239 | this.RgbOutputGroupBox.Text = "RGB Output"; 240 | // 241 | // OrderLabel 242 | // 243 | this.OrderLabel.AutoSize = true; 244 | this.OrderLabel.Location = new System.Drawing.Point(14, 35); 245 | this.OrderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 246 | this.OrderLabel.Name = "OrderLabel"; 247 | this.OrderLabel.Size = new System.Drawing.Size(119, 22); 248 | this.OrderLabel.TabIndex = 301; 249 | this.OrderLabel.Text = "Order (group)"; 250 | // 251 | // Rgb666ComboBox 252 | // 253 | this.Rgb666ComboBox.DisplayMember = "Text"; 254 | this.Rgb666ComboBox.FormattingEnabled = true; 255 | this.Rgb666ComboBox.Location = new System.Drawing.Point(144, 127); 256 | this.Rgb666ComboBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 257 | this.Rgb666ComboBox.Name = "Rgb666ComboBox"; 258 | this.Rgb666ComboBox.Size = new System.Drawing.Size(307, 30); 259 | this.Rgb666ComboBox.TabIndex = 310; 260 | this.Rgb666ComboBox.ValueMember = "Value"; 261 | // 262 | // Rgb888RadioButton 263 | // 264 | this.Rgb888RadioButton.AutoSize = true; 265 | this.Rgb888RadioButton.Checked = true; 266 | this.Rgb888RadioButton.Location = new System.Drawing.Point(18, 81); 267 | this.Rgb888RadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 268 | this.Rgb888RadioButton.Name = "Rgb888RadioButton"; 269 | this.Rgb888RadioButton.Size = new System.Drawing.Size(104, 26); 270 | this.Rgb888RadioButton.TabIndex = 307; 271 | this.Rgb888RadioButton.TabStop = true; 272 | this.Rgb888RadioButton.Text = "RGB888"; 273 | this.Rgb888RadioButton.UseVisualStyleBackColor = true; 274 | // 275 | // Rgb888ComboBox 276 | // 277 | this.Rgb888ComboBox.DisplayMember = "Text"; 278 | this.Rgb888ComboBox.FormattingEnabled = true; 279 | this.Rgb888ComboBox.Location = new System.Drawing.Point(144, 79); 280 | this.Rgb888ComboBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 281 | this.Rgb888ComboBox.Name = "Rgb888ComboBox"; 282 | this.Rgb888ComboBox.Size = new System.Drawing.Size(307, 30); 283 | this.Rgb888ComboBox.TabIndex = 308; 284 | this.Rgb888ComboBox.ValueMember = "Value"; 285 | // 286 | // OrderComboBox 287 | // 288 | this.OrderComboBox.DisplayMember = "Text"; 289 | this.OrderComboBox.FormattingEnabled = true; 290 | this.OrderComboBox.Location = new System.Drawing.Point(144, 33); 291 | this.OrderComboBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 292 | this.OrderComboBox.Name = "OrderComboBox"; 293 | this.OrderComboBox.Size = new System.Drawing.Size(307, 30); 294 | this.OrderComboBox.TabIndex = 302; 295 | this.OrderComboBox.ValueMember = "Value"; 296 | // 297 | // Rgb666RadioButton 298 | // 299 | this.Rgb666RadioButton.AutoSize = true; 300 | this.Rgb666RadioButton.Location = new System.Drawing.Point(18, 128); 301 | this.Rgb666RadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 302 | this.Rgb666RadioButton.Name = "Rgb666RadioButton"; 303 | this.Rgb666RadioButton.Size = new System.Drawing.Size(104, 26); 304 | this.Rgb666RadioButton.TabIndex = 309; 305 | this.Rgb666RadioButton.Text = "RGB666"; 306 | this.Rgb666RadioButton.UseVisualStyleBackColor = true; 307 | // 308 | // NoteLabel 309 | // 310 | this.NoteLabel.AutoSize = true; 311 | this.NoteLabel.Location = new System.Drawing.Point(14, 177); 312 | this.NoteLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 313 | this.NoteLabel.Name = "NoteLabel"; 314 | this.NoteLabel.Size = new System.Drawing.Size(53, 22); 315 | this.NoteLabel.TabIndex = 311; 316 | this.NoteLabel.Text = "Note:"; 317 | // 318 | // Group0NoteLabel 319 | // 320 | this.Group0NoteLabel.AutoSize = true; 321 | this.Group0NoteLabel.Location = new System.Drawing.Point(140, 177); 322 | this.Group0NoteLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 323 | this.Group0NoteLabel.Name = "Group0NoteLabel"; 324 | this.Group0NoteLabel.Size = new System.Drawing.Size(199, 22); 325 | this.Group0NoteLabel.TabIndex = 312; 326 | this.Group0NoteLabel.Text = "Group0[7:0] = Data[7:0]"; 327 | // 328 | // Group2NoteLabel 329 | // 330 | this.Group2NoteLabel.AutoSize = true; 331 | this.Group2NoteLabel.Location = new System.Drawing.Point(142, 271); 332 | this.Group2NoteLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 333 | this.Group2NoteLabel.Name = "Group2NoteLabel"; 334 | this.Group2NoteLabel.Size = new System.Drawing.Size(219, 22); 335 | this.Group2NoteLabel.TabIndex = 314; 336 | this.Group2NoteLabel.Text = "Group2[7:0] = Data[23:16]"; 337 | // 338 | // Group1NoteLabel 339 | // 340 | this.Group1NoteLabel.AutoSize = true; 341 | this.Group1NoteLabel.Location = new System.Drawing.Point(142, 224); 342 | this.Group1NoteLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 343 | this.Group1NoteLabel.Name = "Group1NoteLabel"; 344 | this.Group1NoteLabel.Size = new System.Drawing.Size(209, 22); 345 | this.Group1NoteLabel.TabIndex = 313; 346 | this.Group1NoteLabel.Text = "Group1[7:0] = Data[15:8]"; 347 | // 348 | // BasicSettingsGroupBox 349 | // 350 | this.BasicSettingsGroupBox.Controls.Add(this.DEPolarityCheckBox); 351 | this.BasicSettingsGroupBox.Controls.Add(this.VSyncPolarityCheckBox); 352 | this.BasicSettingsGroupBox.Controls.Add(this.HSyncPolarityCheckBox); 353 | this.BasicSettingsGroupBox.Controls.Add(this.RefClkTextBox); 354 | this.BasicSettingsGroupBox.Controls.Add(this.RefClkCheckBox); 355 | this.BasicSettingsGroupBox.Controls.Add(this.RgbClkPhaseAdjustComboBox); 356 | this.BasicSettingsGroupBox.Controls.Add(this.RgbClkPhaseAdjustLabel); 357 | this.BasicSettingsGroupBox.Controls.Add(this.MipiLaneNoComboBox); 358 | this.BasicSettingsGroupBox.Controls.Add(this.MipiClkTextBox); 359 | this.BasicSettingsGroupBox.Controls.Add(this.MipiLaneNoLabel); 360 | this.BasicSettingsGroupBox.Controls.Add(this.MipiClkLabel); 361 | this.BasicSettingsGroupBox.Controls.Add(this.RgbClkLabel); 362 | this.BasicSettingsGroupBox.Controls.Add(this.RgbClkTextBox); 363 | this.BasicSettingsGroupBox.Controls.Add(this.VbpTextBox); 364 | this.BasicSettingsGroupBox.Controls.Add(this.VSyncTextBox); 365 | this.BasicSettingsGroupBox.Controls.Add(this.VfpTextBox); 366 | this.BasicSettingsGroupBox.Controls.Add(this.HbpTextBox); 367 | this.BasicSettingsGroupBox.Controls.Add(this.HSyncTextBox); 368 | this.BasicSettingsGroupBox.Controls.Add(this.HfpTextBox); 369 | this.BasicSettingsGroupBox.Controls.Add(this.VActiveLineTextBox); 370 | this.BasicSettingsGroupBox.Controls.Add(this.VbpLabel); 371 | this.BasicSettingsGroupBox.Controls.Add(this.VSyncLabel); 372 | this.BasicSettingsGroupBox.Controls.Add(this.VfpLabel); 373 | this.BasicSettingsGroupBox.Controls.Add(this.HbpLabel); 374 | this.BasicSettingsGroupBox.Controls.Add(this.HSyncLabel); 375 | this.BasicSettingsGroupBox.Controls.Add(this.HFpLabel); 376 | this.BasicSettingsGroupBox.Controls.Add(this.VActiveLineLabel); 377 | this.BasicSettingsGroupBox.Controls.Add(this.HActivePixelLabel); 378 | this.BasicSettingsGroupBox.Controls.Add(this.HActivePixelTextBox); 379 | this.BasicSettingsGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 380 | this.BasicSettingsGroupBox.Location = new System.Drawing.Point(26, 25); 381 | this.BasicSettingsGroupBox.Name = "BasicSettingsGroupBox"; 382 | this.BasicSettingsGroupBox.Size = new System.Drawing.Size(406, 842); 383 | this.BasicSettingsGroupBox.TabIndex = 100; 384 | this.BasicSettingsGroupBox.TabStop = false; 385 | this.BasicSettingsGroupBox.Text = "Basic Settings"; 386 | // 387 | // DEPolarityCheckBox 388 | // 389 | this.DEPolarityCheckBox.AutoSize = true; 390 | this.DEPolarityCheckBox.Checked = true; 391 | this.DEPolarityCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; 392 | this.DEPolarityCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 393 | this.DEPolarityCheckBox.Location = new System.Drawing.Point(38, 528); 394 | this.DEPolarityCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 395 | this.DEPolarityCheckBox.Name = "DEPolarityCheckBox"; 396 | this.DEPolarityCheckBox.Size = new System.Drawing.Size(124, 26); 397 | this.DEPolarityCheckBox.TabIndex = 121; 398 | this.DEPolarityCheckBox.Text = "DE polarity"; 399 | this.DEPolarityCheckBox.UseVisualStyleBackColor = true; 400 | // 401 | // VSyncPolarityCheckBox 402 | // 403 | this.VSyncPolarityCheckBox.AutoSize = true; 404 | this.VSyncPolarityCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 405 | this.VSyncPolarityCheckBox.Location = new System.Drawing.Point(38, 631); 406 | this.VSyncPolarityCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 407 | this.VSyncPolarityCheckBox.Name = "VSyncPolarityCheckBox"; 408 | this.VSyncPolarityCheckBox.Size = new System.Drawing.Size(151, 26); 409 | this.VSyncPolarityCheckBox.TabIndex = 123; 410 | this.VSyncPolarityCheckBox.Text = "VSync polarity"; 411 | this.VSyncPolarityCheckBox.UseVisualStyleBackColor = true; 412 | // 413 | // HSyncPolarityCheckBox 414 | // 415 | this.HSyncPolarityCheckBox.AutoSize = true; 416 | this.HSyncPolarityCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 417 | this.HSyncPolarityCheckBox.Location = new System.Drawing.Point(38, 580); 418 | this.HSyncPolarityCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 419 | this.HSyncPolarityCheckBox.Name = "HSyncPolarityCheckBox"; 420 | this.HSyncPolarityCheckBox.Size = new System.Drawing.Size(152, 26); 421 | this.HSyncPolarityCheckBox.TabIndex = 122; 422 | this.HSyncPolarityCheckBox.Text = "HSync polarity"; 423 | this.HSyncPolarityCheckBox.UseVisualStyleBackColor = true; 424 | // 425 | // RefClkTextBox 426 | // 427 | this.RefClkTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 428 | this.RefClkTextBox.Location = new System.Drawing.Point(289, 776); 429 | this.RefClkTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 430 | this.RefClkTextBox.MaxLength = 3; 431 | this.RefClkTextBox.Name = "RefClkTextBox"; 432 | this.RefClkTextBox.Size = new System.Drawing.Size(80, 28); 433 | this.RefClkTextBox.TabIndex = 129; 434 | this.RefClkTextBox.Text = "26"; 435 | // 436 | // RefClkCheckBox 437 | // 438 | this.RefClkCheckBox.AutoSize = true; 439 | this.RefClkCheckBox.Checked = true; 440 | this.RefClkCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; 441 | this.RefClkCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 442 | this.RefClkCheckBox.Location = new System.Drawing.Point(40, 778); 443 | this.RefClkCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 444 | this.RefClkCheckBox.Name = "RefClkCheckBox"; 445 | this.RefClkCheckBox.Size = new System.Drawing.Size(162, 26); 446 | this.RefClkCheckBox.TabIndex = 128; 447 | this.RefClkCheckBox.Text = "Ref clock (MHz)"; 448 | this.RefClkCheckBox.UseVisualStyleBackColor = true; 449 | this.RefClkCheckBox.CheckedChanged += new System.EventHandler(this.RefClkCheckBox_CheckedChanged); 450 | // 451 | // RgbClkPhaseAdjustComboBox 452 | // 453 | this.RgbClkPhaseAdjustComboBox.DisplayMember = "Text"; 454 | this.RgbClkPhaseAdjustComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 455 | this.RgbClkPhaseAdjustComboBox.FormattingEnabled = true; 456 | this.RgbClkPhaseAdjustComboBox.Location = new System.Drawing.Point(289, 477); 457 | this.RgbClkPhaseAdjustComboBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 458 | this.RgbClkPhaseAdjustComboBox.Name = "RgbClkPhaseAdjustComboBox"; 459 | this.RgbClkPhaseAdjustComboBox.Size = new System.Drawing.Size(80, 30); 460 | this.RgbClkPhaseAdjustComboBox.TabIndex = 120; 461 | this.RgbClkPhaseAdjustComboBox.ValueMember = "Value"; 462 | // 463 | // RgbClkPhaseAdjustLabel 464 | // 465 | this.RgbClkPhaseAdjustLabel.AutoSize = true; 466 | this.RgbClkPhaseAdjustLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 467 | this.RgbClkPhaseAdjustLabel.Location = new System.Drawing.Point(40, 481); 468 | this.RgbClkPhaseAdjustLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 469 | this.RgbClkPhaseAdjustLabel.Name = "RgbClkPhaseAdjustLabel"; 470 | this.RgbClkPhaseAdjustLabel.Size = new System.Drawing.Size(202, 22); 471 | this.RgbClkPhaseAdjustLabel.TabIndex = 119; 472 | this.RgbClkPhaseAdjustLabel.Text = "RGB clock phase adjust"; 473 | // 474 | // MipiLaneNoComboBox 475 | // 476 | this.MipiLaneNoComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 477 | this.MipiLaneNoComboBox.FormattingEnabled = true; 478 | this.MipiLaneNoComboBox.Items.AddRange(new object[] { 479 | "1", 480 | "2", 481 | "3", 482 | "4"}); 483 | this.MipiLaneNoComboBox.Location = new System.Drawing.Point(289, 727); 484 | this.MipiLaneNoComboBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 485 | this.MipiLaneNoComboBox.Name = "MipiLaneNoComboBox"; 486 | this.MipiLaneNoComboBox.Size = new System.Drawing.Size(80, 30); 487 | this.MipiLaneNoComboBox.TabIndex = 127; 488 | this.MipiLaneNoComboBox.Text = "2"; 489 | // 490 | // MipiClkTextBox 491 | // 492 | this.MipiClkTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 493 | this.MipiClkTextBox.Location = new System.Drawing.Point(289, 680); 494 | this.MipiClkTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 495 | this.MipiClkTextBox.MaxLength = 3; 496 | this.MipiClkTextBox.Name = "MipiClkTextBox"; 497 | this.MipiClkTextBox.Size = new System.Drawing.Size(80, 28); 498 | this.MipiClkTextBox.TabIndex = 125; 499 | this.MipiClkTextBox.Text = "100"; 500 | // 501 | // MipiLaneNoLabel 502 | // 503 | this.MipiLaneNoLabel.AutoSize = true; 504 | this.MipiLaneNoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 505 | this.MipiLaneNoLabel.Location = new System.Drawing.Point(40, 730); 506 | this.MipiLaneNoLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 507 | this.MipiLaneNoLabel.Name = "MipiLaneNoLabel"; 508 | this.MipiLaneNoLabel.Size = new System.Drawing.Size(113, 22); 509 | this.MipiLaneNoLabel.TabIndex = 126; 510 | this.MipiLaneNoLabel.Text = "MIPI lane no."; 511 | // 512 | // MipiClkLabel 513 | // 514 | this.MipiClkLabel.AutoSize = true; 515 | this.MipiClkLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 516 | this.MipiClkLabel.Location = new System.Drawing.Point(40, 683); 517 | this.MipiClkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 518 | this.MipiClkLabel.Name = "MipiClkLabel"; 519 | this.MipiClkLabel.Size = new System.Drawing.Size(142, 22); 520 | this.MipiClkLabel.TabIndex = 124; 521 | this.MipiClkLabel.Text = "MIPI clock (MHz)"; 522 | // 523 | // RgbClkLabel 524 | // 525 | this.RgbClkLabel.AutoSize = true; 526 | this.RgbClkLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 527 | this.RgbClkLabel.Location = new System.Drawing.Point(40, 433); 528 | this.RgbClkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 529 | this.RgbClkLabel.Name = "RgbClkLabel"; 530 | this.RgbClkLabel.Size = new System.Drawing.Size(147, 22); 531 | this.RgbClkLabel.TabIndex = 117; 532 | this.RgbClkLabel.Text = "RGB clock (MHz)"; 533 | // 534 | // RgbClkTextBox 535 | // 536 | this.RgbClkTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 537 | this.RgbClkTextBox.Location = new System.Drawing.Point(289, 430); 538 | this.RgbClkTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 539 | this.RgbClkTextBox.MaxLength = 6; 540 | this.RgbClkTextBox.Name = "RgbClkTextBox"; 541 | this.RgbClkTextBox.Size = new System.Drawing.Size(80, 28); 542 | this.RgbClkTextBox.TabIndex = 118; 543 | this.RgbClkTextBox.Text = "34.125"; 544 | // 545 | // VbpTextBox 546 | // 547 | this.VbpTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 548 | this.VbpTextBox.Location = new System.Drawing.Point(289, 383); 549 | this.VbpTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 550 | this.VbpTextBox.MaxLength = 3; 551 | this.VbpTextBox.Name = "VbpTextBox"; 552 | this.VbpTextBox.Size = new System.Drawing.Size(80, 28); 553 | this.VbpTextBox.TabIndex = 116; 554 | this.VbpTextBox.Text = "32"; 555 | // 556 | // VSyncTextBox 557 | // 558 | this.VSyncTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 559 | this.VSyncTextBox.Location = new System.Drawing.Point(289, 336); 560 | this.VSyncTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 561 | this.VSyncTextBox.MaxLength = 3; 562 | this.VSyncTextBox.Name = "VSyncTextBox"; 563 | this.VSyncTextBox.Size = new System.Drawing.Size(80, 28); 564 | this.VSyncTextBox.TabIndex = 114; 565 | this.VSyncTextBox.Text = "3"; 566 | // 567 | // VfpTextBox 568 | // 569 | this.VfpTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 570 | this.VfpTextBox.Location = new System.Drawing.Point(289, 288); 571 | this.VfpTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 572 | this.VfpTextBox.MaxLength = 3; 573 | this.VfpTextBox.Name = "VfpTextBox"; 574 | this.VfpTextBox.Size = new System.Drawing.Size(80, 28); 575 | this.VfpTextBox.TabIndex = 112; 576 | this.VfpTextBox.Text = "13"; 577 | // 578 | // HbpTextBox 579 | // 580 | this.HbpTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 581 | this.HbpTextBox.Location = new System.Drawing.Point(289, 241); 582 | this.HbpTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 583 | this.HbpTextBox.MaxLength = 3; 584 | this.HbpTextBox.Name = "HbpTextBox"; 585 | this.HbpTextBox.Size = new System.Drawing.Size(80, 28); 586 | this.HbpTextBox.TabIndex = 110; 587 | this.HbpTextBox.Text = "88"; 588 | // 589 | // HSyncTextBox 590 | // 591 | this.HSyncTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 592 | this.HSyncTextBox.Location = new System.Drawing.Point(289, 194); 593 | this.HSyncTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 594 | this.HSyncTextBox.MaxLength = 3; 595 | this.HSyncTextBox.Name = "HSyncTextBox"; 596 | this.HSyncTextBox.Size = new System.Drawing.Size(80, 28); 597 | this.HSyncTextBox.TabIndex = 108; 598 | this.HSyncTextBox.Text = "48"; 599 | // 600 | // HfpTextBox 601 | // 602 | this.HfpTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 603 | this.HfpTextBox.Location = new System.Drawing.Point(289, 146); 604 | this.HfpTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 605 | this.HfpTextBox.MaxLength = 3; 606 | this.HfpTextBox.Name = "HfpTextBox"; 607 | this.HfpTextBox.Size = new System.Drawing.Size(80, 28); 608 | this.HfpTextBox.TabIndex = 106; 609 | this.HfpTextBox.Text = "40"; 610 | // 611 | // VActiveLineTextBox 612 | // 613 | this.VActiveLineTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 614 | this.VActiveLineTextBox.Location = new System.Drawing.Point(289, 99); 615 | this.VActiveLineTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 616 | this.VActiveLineTextBox.MaxLength = 4; 617 | this.VActiveLineTextBox.Name = "VActiveLineTextBox"; 618 | this.VActiveLineTextBox.Size = new System.Drawing.Size(80, 28); 619 | this.VActiveLineTextBox.TabIndex = 104; 620 | this.VActiveLineTextBox.Text = "480"; 621 | // 622 | // VbpLabel 623 | // 624 | this.VbpLabel.AutoSize = true; 625 | this.VbpLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 626 | this.VbpLabel.Location = new System.Drawing.Point(40, 386); 627 | this.VbpLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 628 | this.VbpLabel.Name = "VbpLabel"; 629 | this.VbpLabel.Size = new System.Drawing.Size(46, 22); 630 | this.VbpLabel.TabIndex = 115; 631 | this.VbpLabel.Text = "VBP"; 632 | // 633 | // VSyncLabel 634 | // 635 | this.VSyncLabel.AutoSize = true; 636 | this.VSyncLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 637 | this.VSyncLabel.Location = new System.Drawing.Point(40, 339); 638 | this.VSyncLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 639 | this.VSyncLabel.Name = "VSyncLabel"; 640 | this.VSyncLabel.Size = new System.Drawing.Size(72, 22); 641 | this.VSyncLabel.TabIndex = 113; 642 | this.VSyncLabel.Text = "VSYNC"; 643 | // 644 | // VfpLabel 645 | // 646 | this.VfpLabel.AutoSize = true; 647 | this.VfpLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 648 | this.VfpLabel.Location = new System.Drawing.Point(40, 292); 649 | this.VfpLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 650 | this.VfpLabel.Name = "VfpLabel"; 651 | this.VfpLabel.Size = new System.Drawing.Size(45, 22); 652 | this.VfpLabel.TabIndex = 111; 653 | this.VfpLabel.Text = "VFP"; 654 | // 655 | // HbpLabel 656 | // 657 | this.HbpLabel.AutoSize = true; 658 | this.HbpLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 659 | this.HbpLabel.Location = new System.Drawing.Point(40, 244); 660 | this.HbpLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 661 | this.HbpLabel.Name = "HbpLabel"; 662 | this.HbpLabel.Size = new System.Drawing.Size(47, 22); 663 | this.HbpLabel.TabIndex = 109; 664 | this.HbpLabel.Text = "HBP"; 665 | // 666 | // HSyncLabel 667 | // 668 | this.HSyncLabel.AutoSize = true; 669 | this.HSyncLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 670 | this.HSyncLabel.Location = new System.Drawing.Point(40, 197); 671 | this.HSyncLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 672 | this.HSyncLabel.Name = "HSyncLabel"; 673 | this.HSyncLabel.Size = new System.Drawing.Size(73, 22); 674 | this.HSyncLabel.TabIndex = 107; 675 | this.HSyncLabel.Text = "HSYNC"; 676 | // 677 | // HFpLabel 678 | // 679 | this.HFpLabel.AutoSize = true; 680 | this.HFpLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 681 | this.HFpLabel.Location = new System.Drawing.Point(40, 150); 682 | this.HFpLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 683 | this.HFpLabel.Name = "HFpLabel"; 684 | this.HFpLabel.Size = new System.Drawing.Size(46, 22); 685 | this.HFpLabel.TabIndex = 105; 686 | this.HFpLabel.Text = "HFP"; 687 | // 688 | // VActiveLineLabel 689 | // 690 | this.VActiveLineLabel.AutoSize = true; 691 | this.VActiveLineLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 692 | this.VActiveLineLabel.Location = new System.Drawing.Point(40, 102); 693 | this.VActiveLineLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 694 | this.VActiveLineLabel.Name = "VActiveLineLabel"; 695 | this.VActiveLineLabel.Size = new System.Drawing.Size(115, 22); 696 | this.VActiveLineLabel.TabIndex = 103; 697 | this.VActiveLineLabel.Text = "V Active Line"; 698 | // 699 | // HActivePixelLabel 700 | // 701 | this.HActivePixelLabel.AutoSize = true; 702 | this.HActivePixelLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 703 | this.HActivePixelLabel.Location = new System.Drawing.Point(40, 55); 704 | this.HActivePixelLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 705 | this.HActivePixelLabel.Name = "HActivePixelLabel"; 706 | this.HActivePixelLabel.Size = new System.Drawing.Size(121, 22); 707 | this.HActivePixelLabel.TabIndex = 101; 708 | this.HActivePixelLabel.Text = "H Active Pixel"; 709 | // 710 | // HActivePixelTextBox 711 | // 712 | this.HActivePixelTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 713 | this.HActivePixelTextBox.Location = new System.Drawing.Point(289, 52); 714 | this.HActivePixelTextBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 715 | this.HActivePixelTextBox.MaxLength = 4; 716 | this.HActivePixelTextBox.Name = "HActivePixelTextBox"; 717 | this.HActivePixelTextBox.Size = new System.Drawing.Size(80, 28); 718 | this.HActivePixelTextBox.TabIndex = 102; 719 | this.HActivePixelTextBox.Text = "800"; 720 | // 721 | // RfcFunctionCheckBox 722 | // 723 | this.RfcFunctionCheckBox.AutoSize = true; 724 | this.RfcFunctionCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 725 | this.RfcFunctionCheckBox.Location = new System.Drawing.Point(474, 658); 726 | this.RfcFunctionCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 727 | this.RfcFunctionCheckBox.Name = "RfcFunctionCheckBox"; 728 | this.RfcFunctionCheckBox.Size = new System.Drawing.Size(141, 26); 729 | this.RfcFunctionCheckBox.TabIndex = 403; 730 | this.RfcFunctionCheckBox.Text = "FRC function"; 731 | this.RfcFunctionCheckBox.UseVisualStyleBackColor = true; 732 | // 733 | // MipiCommandModeRadioButton 734 | // 735 | this.MipiCommandModeRadioButton.AutoSize = true; 736 | this.MipiCommandModeRadioButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 737 | this.MipiCommandModeRadioButton.Location = new System.Drawing.Point(474, 753); 738 | this.MipiCommandModeRadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 739 | this.MipiCommandModeRadioButton.Name = "MipiCommandModeRadioButton"; 740 | this.MipiCommandModeRadioButton.Size = new System.Drawing.Size(200, 26); 741 | this.MipiCommandModeRadioButton.TabIndex = 405; 742 | this.MipiCommandModeRadioButton.Text = "MIPI command mode"; 743 | this.MipiCommandModeRadioButton.UseVisualStyleBackColor = true; 744 | // 745 | // I2CRadioButton 746 | // 747 | this.I2CRadioButton.AutoSize = true; 748 | this.I2CRadioButton.Checked = true; 749 | this.I2CRadioButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 750 | this.I2CRadioButton.Location = new System.Drawing.Point(474, 703); 751 | this.I2CRadioButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 752 | this.I2CRadioButton.Name = "I2CRadioButton"; 753 | this.I2CRadioButton.Size = new System.Drawing.Size(62, 26); 754 | this.I2CRadioButton.TabIndex = 404; 755 | this.I2CRadioButton.TabStop = true; 756 | this.I2CRadioButton.Text = "I2C"; 757 | this.I2CRadioButton.UseVisualStyleBackColor = true; 758 | // 759 | // TestModeCheckBox 760 | // 761 | this.TestModeCheckBox.AutoSize = true; 762 | this.TestModeCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 763 | this.TestModeCheckBox.Location = new System.Drawing.Point(474, 605); 764 | this.TestModeCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 765 | this.TestModeCheckBox.Name = "TestModeCheckBox"; 766 | this.TestModeCheckBox.Size = new System.Drawing.Size(121, 26); 767 | this.TestModeCheckBox.TabIndex = 401; 768 | this.TestModeCheckBox.Text = "Test mode"; 769 | this.TestModeCheckBox.UseVisualStyleBackColor = true; 770 | this.TestModeCheckBox.CheckedChanged += new System.EventHandler(this.TestModeCheckBox_CheckedChanged); 771 | // 772 | // Settings2RegistryButton 773 | // 774 | this.Settings2RegistryButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 775 | this.Settings2RegistryButton.Font = new System.Drawing.Font("Wingdings", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); 776 | this.Settings2RegistryButton.Location = new System.Drawing.Point(958, 307); 777 | this.Settings2RegistryButton.Name = "Settings2RegistryButton"; 778 | this.Settings2RegistryButton.Size = new System.Drawing.Size(80, 57); 779 | this.Settings2RegistryButton.TabIndex = 501; 780 | this.Settings2RegistryButton.Text = ""; 781 | this.Settings2RegistryButton.UseVisualStyleBackColor = true; 782 | this.Settings2RegistryButton.Click += new System.EventHandler(this.Settings2RegistryButton_Click); 783 | // 784 | // Registry2SettingsButton 785 | // 786 | this.Registry2SettingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 787 | this.Registry2SettingsButton.Font = new System.Drawing.Font("Wingdings", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); 788 | this.Registry2SettingsButton.Location = new System.Drawing.Point(958, 402); 789 | this.Registry2SettingsButton.Name = "Registry2SettingsButton"; 790 | this.Registry2SettingsButton.Size = new System.Drawing.Size(80, 57); 791 | this.Registry2SettingsButton.TabIndex = 502; 792 | this.Registry2SettingsButton.Text = ""; 793 | this.Registry2SettingsButton.UseVisualStyleBackColor = true; 794 | this.Registry2SettingsButton.Click += new System.EventHandler(this.Registry2SettingsButton_Click); 795 | // 796 | // statusStrip1 797 | // 798 | this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24); 799 | this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 800 | this.FpsToolStripStatusLabel}); 801 | this.statusStrip1.Location = new System.Drawing.Point(0, 896); 802 | this.statusStrip1.Name = "statusStrip1"; 803 | this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 16, 0); 804 | this.statusStrip1.Size = new System.Drawing.Size(1281, 29); 805 | this.statusStrip1.TabIndex = 503; 806 | this.statusStrip1.Text = "statusStrip1"; 807 | // 808 | // FpsToolStripStatusLabel 809 | // 810 | this.FpsToolStripStatusLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 811 | this.FpsToolStripStatusLabel.Name = "FpsToolStripStatusLabel"; 812 | this.FpsToolStripStatusLabel.Size = new System.Drawing.Size(34, 22); 813 | this.FpsToolStripStatusLabel.Text = "fps"; 814 | // 815 | // TestModeComboBox 816 | // 817 | this.TestModeComboBox.DisplayMember = "Text"; 818 | this.TestModeComboBox.Enabled = false; 819 | this.TestModeComboBox.FormattingEnabled = true; 820 | this.TestModeComboBox.Location = new System.Drawing.Point(670, 603); 821 | this.TestModeComboBox.Name = "TestModeComboBox"; 822 | this.TestModeComboBox.Size = new System.Drawing.Size(237, 30); 823 | this.TestModeComboBox.TabIndex = 402; 824 | this.TestModeComboBox.ValueMember = "Value"; 825 | // 826 | // Form1 827 | // 828 | this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F); 829 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 830 | this.ClientSize = new System.Drawing.Size(1281, 925); 831 | this.Controls.Add(this.TestModeComboBox); 832 | this.Controls.Add(this.statusStrip1); 833 | this.Controls.Add(this.Registry2SettingsButton); 834 | this.Controls.Add(this.Settings2RegistryButton); 835 | this.Controls.Add(this.TestModeCheckBox); 836 | this.Controls.Add(this.MipiCommandModeRadioButton); 837 | this.Controls.Add(this.I2CRadioButton); 838 | this.Controls.Add(this.RfcFunctionCheckBox); 839 | this.Controls.Add(this.BasicSettingsGroupBox); 840 | this.Controls.Add(this.RgbOutputGroupBox); 841 | this.Controls.Add(this.MipiPNSwapGroupBox); 842 | this.Controls.Add(this.RegistersTextBox); 843 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 844 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 845 | this.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); 846 | this.Name = "Form1"; 847 | this.Text = "ICN6211 Configurator"; 848 | this.MipiPNSwapGroupBox.ResumeLayout(false); 849 | this.MipiPNSwapGroupBox.PerformLayout(); 850 | this.RgbOutputGroupBox.ResumeLayout(false); 851 | this.RgbOutputGroupBox.PerformLayout(); 852 | this.BasicSettingsGroupBox.ResumeLayout(false); 853 | this.BasicSettingsGroupBox.PerformLayout(); 854 | this.statusStrip1.ResumeLayout(false); 855 | this.statusStrip1.PerformLayout(); 856 | this.ResumeLayout(false); 857 | this.PerformLayout(); 858 | 859 | } 860 | 861 | #endregion 862 | private TextBox RegistersTextBox; 863 | private Timer TimerFps; 864 | private GroupBox MipiPNSwapGroupBox; 865 | private RadioButton DisableSwapRadioButton; 866 | private RadioButton EnableSwapRadioButton; 867 | private CheckBox ClockCheckBox; 868 | private CheckBox Lane3SwapCheckBox; 869 | private CheckBox Lane2SwapCheckBox; 870 | private CheckBox Lane1SwapCheckBox; 871 | private CheckBox Lane0SwapCheckBox; 872 | private GroupBox RgbOutputGroupBox; 873 | private Label OrderLabel; 874 | private ComboBox Rgb666ComboBox; 875 | private RadioButton Rgb888RadioButton; 876 | private ComboBox Rgb888ComboBox; 877 | private ComboBox OrderComboBox; 878 | private RadioButton Rgb666RadioButton; 879 | private Label NoteLabel; 880 | private Label Group0NoteLabel; 881 | private Label Group2NoteLabel; 882 | private Label Group1NoteLabel; 883 | private GroupBox BasicSettingsGroupBox; 884 | private CheckBox VSyncPolarityCheckBox; 885 | private CheckBox HSyncPolarityCheckBox; 886 | private TextBox RefClkTextBox; 887 | private CheckBox RefClkCheckBox; 888 | private ComboBox RgbClkPhaseAdjustComboBox; 889 | private Label RgbClkPhaseAdjustLabel; 890 | private ComboBox MipiLaneNoComboBox; 891 | private TextBox MipiClkTextBox; 892 | private Label MipiLaneNoLabel; 893 | private Label MipiClkLabel; 894 | private Label RgbClkLabel; 895 | private TextBox RgbClkTextBox; 896 | private TextBox VbpTextBox; 897 | private TextBox VSyncTextBox; 898 | private TextBox VfpTextBox; 899 | private TextBox HbpTextBox; 900 | private TextBox HSyncTextBox; 901 | private TextBox HfpTextBox; 902 | private TextBox VActiveLineTextBox; 903 | private Label VbpLabel; 904 | private Label VSyncLabel; 905 | private Label VfpLabel; 906 | private Label HbpLabel; 907 | private Label HSyncLabel; 908 | private Label HFpLabel; 909 | private Label VActiveLineLabel; 910 | private Label HActivePixelLabel; 911 | private TextBox HActivePixelTextBox; 912 | private CheckBox RfcFunctionCheckBox; 913 | private RadioButton MipiCommandModeRadioButton; 914 | private RadioButton I2CRadioButton; 915 | private CheckBox DEPolarityCheckBox; 916 | private CheckBox TestModeCheckBox; 917 | private Button Settings2RegistryButton; 918 | private Button Registry2SettingsButton; 919 | private StatusStrip statusStrip1; 920 | private ToolStripStatusLabel FpsToolStripStatusLabel; 921 | private ComboBox TestModeComboBox; 922 | } 923 | } 924 | --------------------------------------------------------------------------------