├── .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 | 
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------