summaryrefslogtreecommitdiff
path: root/include/qhy/qhyccdhex2cam.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/qhy/qhyccdhex2cam.h')
-rw-r--r--include/qhy/qhyccdhex2cam.h292
1 files changed, 292 insertions, 0 deletions
diff --git a/include/qhy/qhyccdhex2cam.h b/include/qhy/qhyccdhex2cam.h
new file mode 100644
index 0000000..c64d506
--- /dev/null
+++ b/include/qhy/qhyccdhex2cam.h
@@ -0,0 +1,292 @@
+/*
+ QHYCCD SDK
+
+ Copyright (c) 2014 QHYCCD.
+ All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+ */
+
+/*!
+ * @file qhyccdhex2cam.h
+ * @brief QHYCCD SDK struct define
+ */
+
+#ifndef __QHYCCDHEX2CAMDEF_H__
+#define __QHYCCDHEX2CAMDEF_H__
+
+#define FX2_CPUCS_ADDR (0xE600)
+#define FX2_INT_RAMSIZE (0x4000)
+
+#define VENDORCMD_TIMEOUT (5000)
+#define MAX_LINE_LENGTH (512)
+#define MAX_BYTES_PER_LINE (256)
+#define EEPROM_WRITE_SIZE (1024)
+
+#define ROUND_UP(n,v) ((((n) + ((v) - 1)) / (v)) * (v))
+#define CHAR_TO_HEXVAL(c) ((((c) >= '0') && ((c) <= '9')) ? ((c) - '0') : ((((c) - 'A') & 0x0F) + 10))
+#define GET_HEX_BYTE(char_p) (((CHAR_TO_HEXVAL((char_p)[0])) << 4) | (CHAR_TO_HEXVAL((char_p)[1])))
+#define GET_HEX_WORD(char_p) (((CHAR_TO_HEXVAL((char_p)[0])) << 12) | ((CHAR_TO_HEXVAL((char_p)[1])) << 8) | \
+((CHAR_TO_HEXVAL((char_p)[2])) << 4) | (CHAR_TO_HEXVAL((char_p)[3])))
+
+/* List of supported programming targets */
+typedef enum {
+ FW_TARGET_NONE = 0, // Invalid target
+ FW_TARGET_RAM, // Program firmware (hex) to RAM
+ FW_TARGET_SM_I2C, // Program VID and PID to Small I2C EEPROM
+ FW_TARGET_LR_I2C // Program VID and PID to Large I2C EEPROM
+} fx2_fw_tgt_p;
+
+/*
+static char fx2_vendax[][256] = {
+ ":0a0d3e0000010202030304040505",
+ ":10064d00E4F52CF52BF52AF529C203C200C202C2",
+ ":10065d0001120C6C7E0A7F008E0A8F0B75120A75",
+ ":10066d00131275080A75091C75100A75114A7514",
+ ":10067d000A751578EE54C07003020752752D0075",
+ ":10068d002E808E2F8F30C3749A9FFF740A9ECF24",
+ ":10069d0002CF3400FEE48F288E27F526F525F524",
+ ":1006ad00F523F522F521AF28AE27AD26AC25AB24",
+ ":1006bd00AA23A922A821C3120D035037E5302524",
+ ":1006cd00F582E52F3523F583E0FFE52E2524F582",
+ ":1006dd00E52D3523F583EFF0E4FAF9F8E5242401",
+ ":1006ed00F524EA3523F523E93522F522E83521F5",
+ ":1006fd002180B3852D0A852E0B74002480FF740A",
+ ":10070d0034FFFEC3E5139FF513E5129EF512C3E5",
+ ":10071d000D9FF50DE50C9EF50CC3E50F9FF50FE5",
+ ":10072d000E9EF50EC3E5099FF509E5089EF508C3",
+ ":10073d00E5119FF511E5109EF510C3E5159FF515",
+ ":10074d00E5149EF514D2E843D82090E668E04409",
+ ":10075d00F090E65CE0443DF0D2AF90E680E054F7",
+ ":10076d00F0538EF8C2031207FF30010512039AC2",
+ ":10077d00013003F2120D6450EDC203120C0D2000",
+ ":10078d001690E682E030E704E020E1EF90E682E0",
+ ":10079d0030E604E020E0E4120BB6120D6680C722",
+ ":0b0d330090E50DE030E402C322D322",
+ ":10039a0090E6B9E0700302048514700302052E24",
+ ":1003aa00FE70030205C424FB700302047F147003",
+ ":1003ba0002047914700302046D14700302047324",
+ ":1003ca00056003020639120D68400302064590E6",
+ ":1003da00BBE024FE603B14605624FD6016146040",
+ ":1003ea0024067075E50A90E6B3F0E50B90E6B4F0",
+ ":1003fa00020645120D33500FE51290E6B3F0E513",
+ ":10040a0090E6B4F002064590E6A0E04401F00206",
+ ":10041a0045E50C90E6B3F0E50D90E6B4F0020645",
+ ":10042a00E50E90E6B3F0E50F90E6B4F002064590",
+ ":10043a00E6BAE0FF120BE2AA06A9077B01EA494B",
+ ":10044a00600DEE90E6B3F0EF90E6B4F002064590",
+ ":10045a00E6A0E04401F002064590E6A0E04401F0",
+ ":10046a00020645120CF1020645120D5002064512",
+ ":10047a000D48020645120CDF020645120D6A4003",
+ ":10048a0002064590E6B8E0247F602B14603C2402",
+ ":10049a006003020524A200E433FF25E0FFA202E4",
+ ":1004aa00334F90E740F0E4A3F090E68AF090E68B",
+ ":1004ba007402F0020645E490E740F0A3F090E68A",
+ ":1004ca00F090E68B7402F002064590E6BCE0547E",
+ ":1004da00FF7E00E0D3948040067C007D0180047C",
+ ":1004ea00007D00EC4EFEED4F243EF582740D3EF5",
+ ":1004fa0083E493FF3395E0FEEF24A1FFEE34E68F",
+ ":10050a0082F583E0540190E740F0E4A3F090E68A",
+ ":10051a00F090E68B7402F002064590E6A0E04401",
+ ":10052a00F0020645120D6C400302064590E6B8E0",
+ ":10053a0024FE601D2402600302064590E6BAE0B4",
+ ":10054a000105C20002064590E6A0E04401F00206",
+ ":10055a004590E6BAE0705990E6BCE0547EFF7E00",
+ ":10056a00E0D3948040067C007D0180047C007D00",
+ ":10057a00EC4EFEED4F243EF582740D3EF583E493",
+ ":10058a00FF3395E0FEEF24A1FFEE34E68F82F583",
+ ":10059a00E054FEF090E6BCE05480FF131313541F",
+ ":1005aa00FFE0540F2F90E683F0E04420F0020645",
+ ":1005ba0090E6A0E04401F0020645120D6E507C90",
+ ":1005ca00E6B8E024FE60202402705B90E6BAE0B4",
+ ":1005da000104D200806590E6BAE06402605D90E6",
+ ":1005ea00A0E04401F0805490E6BCE0547EFF7E00",
+ ":1005fa00E0D3948040067C007D0180047C007D00",
+ ":10060a00EC4EFEED4F243EF582740D3EF583E493",
+ ":10061a00FF3395E0FEEF24A1FFEE34E68F82F583",
+ ":10062a00E04401F0801590E6A0E04401F0800C12",
+ ":10063a000080500790E6A0E04401F090E6A0E044",
+ ":03064a0080F022",
+ ":03003300020D60",
+ ":040d600053D8EF32",
+ ":100c6c00D200E4F51A90E678E05410FFC4540F44",
+ ":090c7c0050F51713E433F51922",
+ ":0107ff0022",
+ ":060d6400D322D322D322",
+ ":080d480090E6BAE0F518D322",
+ ":100cdf0090E740E518F0E490E68AF090E68B04F0",
+ ":020cef00D322",
+ ":080d500090E6BAE0F516D322",
+ ":100cf10090E740E516F0E490E68AF090E68B04F0",
+ ":020d0100D322",
+ ":060d6a00D322D322D322",
+ ":1000800090E6B9E0245EB40B0040030203989000",
+ ":100090009C75F003A4C58325F0C5837302019202",
+ ":1000a000019202010D0200BD0200D70200F30201",
+ ":1000b0003C02018C02011602012902016290E740",
+ ":1000c000E519F0E490E68AF090E68B04F090E6A0",
+ ":1000d000E04480F002039890E60AE090E740F0E4",
+ ":1000e00090E68AF090E68B04F090E6A0E04480F0",
+ ":1000f00002039890E740740FF0E490E68AF090E6",
+ ":100100008B04F090E6A0E04480F002039890E6BA",
+ ":10011000E0F51702039890E67AE054FEF0E490E6",
+ ":100120008AF090E68BF002039890E67AE04401F0",
+ ":10013000E490E68AF090E68BF002039890E74074",
+ ":1001400007F0E490E68AF090E68B04F090E6A0E0",
+ ":100150004480F07FE87E031207ADD204120B8702",
+ ":10016000039890E6B5E054FEF090E6BFE090E68A",
+ ":10017000F090E6BEE090E68BF090E6BBE090E6B3",
+ ":10018000F090E6BAE090E6B4F002039875190143",
+ ":10019000170190E6BAE0753100F532A3E0FEE4EE",
+ ":1001a000423190E6BEE0753300F534A3E0FEE4EE",
+ ":1001b000423390E6B8E064C06003020282E53445",
+ ":1001c00033700302039890E6A0E020E1F9C3E534",
+ ":1001d0009440E533940050088533358534368006",
+ ":1001e00075350075364090E6B9E0B4A335E4F537",
+ ":1001f000F538C3E5389536E53795355060E53225",
+ ":1002000038F582E5313537F583E0FF74402538F5",
+ ":1002100082E434E7F583EFF00538E53870020537",
+ ":1002200080D0E4F537F538C3E5389536E5379535",
+ ":10023000501874402538F582E434E7F58374CDF0",
+ ":100240000538E5387002053780DDAD367AE77940",
+ ":100250007EE77F40AB07AF32AE311208B8E490E6",
+ ":100260008AF090E68BE536F02532F532E5353531",
+ ":10027000F531C3E5349536F534E5339535F53302",
+ ":1002800001BD90E6B8E064406003020398E51A70",
+ ":10029000051209678F1AE53445337003020398E4",
+ ":1002a00090E68AF090E68BF090E6A0E020E1F990",
+ ":1002b000E68BE0753500F53690E6B9E0B4A338E4",
+ ":1002c000F537F538C3E5389536E5379535400302",
+ ":1002d000037C74402538F582E434E7F583E0FFE5",
+ ":1002e000322538F582E5313537F583EFF00538E5",
+ ":1002f000387002053780CDE4F537F538C3E53895",
+ ":1003000036E53795355075851A39E51A64016044",
+ ":10031000E5322538FFE5313537FEE51A24FFFDE4",
+ ":1003200034FF5EFEEF5D4E6010E5322538FFE51A",
+ ":10033000145FFFC3E51A9FF539C3E5369538FFE5",
+ ":10034000359537FEC3EF9539EE94005007C3E536",
+ ":100350009538F539E5322538FFE5313537FE7440",
+ ":100360002538F582E434E7AD82FCAB39120A9CE5",
+ ":10037000392538F538E43537F5378080E5362532",
+ ":10038000F532E5353531F531C3E5349536F534E5",
+ ":0a039000339535F533020296C322",
+ ":100c3200C0E0C083C08290E6B5E04401F0D20153",
+ ":0f0c420091EF90E65D7401F0D082D083D0E032",
+ ":100c9d00C0E0C083C0825391EF90E65D7404F0D0",
+ ":100cad0082D083D0E032C0E0C083C0825391EF90",
+ ":0c0cbd00E65D7402F0D082D083D0E032",
+ ":100b1900C0E0C083C08290E680E030E70E85080C",
+ ":100b290085090D85100E85110F800C85100C8511",
+ ":100b39000D85080E85090F5391EF90E65D7410F0",
+ ":070b4900D082D083D0E032",
+ ":100c8500C0E0C083C082D2035391EF90E65D7408",
+ ":080c9500F0D082D083D0E032",
+ ":100b5000C0E0C083C08290E680E030E70E85080C",
+ ":100b600085090D85100E85110F800C85100C8511",
+ ":100b70000D85080E85090F5391EF90E65D7420F0",
+ ":070b8000D082D083D0E032",
+ ":0109ff0032",
+ ":100d700032323232323232323232323232323232",
+ ":100d800032323232323232323232323232323232",
+ ":030d9000323232",
+ ":100a00001201000200000040B404041000000102",
+ ":100a100000010A06000200000040010009022E00",
+ ":100a200001010080320904000004FF0000000705",
+ ":100a300002020002000705040200020007058602",
+ ":100a40000002000705880200020009022E000101",
+ ":100a50000080320904000004FF00000007050202",
+ ":100a600040000007050402400000070586024000",
+ ":100a700000070588024000000403090410034300",
+ ":100a80007900700072006500730073000E034500",
+ ":0c0a90005A002D005500530042000000",
+ ":100bb60090E682E030E004E020E60B90E682E030",
+ ":100bc600E119E030E71590E680E04401F07F147E",
+ ":0c0bd600001207AD90E680E054FEF022",
+ ":100b870030040990E680E0440AF0800790E680E0",
+ ":100b97004408F07FDC7E051207AD90E65D74FFF0",
+ ":0f0ba70090E65FF05391EF90E680E054F7F022",
+ ":1007ad008E3A8F3B90E600E054187012E53B2401",
+ ":1007bd00FFE4353AC313F53AEF13F53B801590E6",
+ ":1007cd0000E05418FFBF100BE53B25E0F53BE53A",
+ ":1007dd0033F53AE53B153BAE3A7002153A4E6005",
+ ":0607ed00120C2180EE22",
+ ":100be200A907AE14AF158F828E83A3E064037017",
+ ":100bf200AD0119ED7001228F828E83E07C002FFD",
+ ":100c0200EC3EFEAF0580DFE4FEFF2290E682E044",
+ ":100c1200C0F090E681F043870100000000002274",
+ ":100c220000F58690FDA57C05A3E582458370F922",
+ ":03004300020800",
+ ":03005300020800",
+ ":10080000020C3200020CB300020C9D00020C8500",
+ ":10081000020B1900020B50000209FF00020D7000",
+ ":10082000020D7100020D7200020D7300020D7400",
+ ":10083000020D7500020D7600020D7700020D7800",
+ ":10084000020D7900020D7000020D7A00020D7B00",
+ ":10085000020D7C00020D7D00020D7E00020D7F00",
+ ":10086000020D8000020D7000020D7000020D7000",
+ ":10087000020D8100020D8200020D8300020D8400",
+ ":10088000020D8500020D8600020D8700020D8800",
+ ":10089000020D8900020D8A00020D8B00020D8C00",
+ ":1008a000020D8D00020D8E00020D8F00020D9000",
+ ":0808b000020D9100020D9200",
+ ":100a9c008E3C8F3D8C3E8D3F8B40C28743B28012",
+ ":100aac000D58120D24120CC95004D2048059E519",
+ ":100abc00600FE53C90E679F0120CC95004D20480",
+ ":100acc0046E53D90E679F0120CC95004D2048037",
+ ":100adc00E4F541E541C395405021053FE53FAE3E",
+ ":100aec007002053E14F5828E83E090E679F0120D",
+ ":100afc00145004D2048010054180D890E678E044",
+ ":0d0b0c0040F0120C51C20453B27FA20422",
+ ":0f0d240090E6787480F0E51725E090E679F022",
+ ":100c5100120D58120D24120D1490E678E04440F0",
+ ":0b0c6100120D5890E678E030E1E922",
+ ":080d580090E678E020E6F922",
+ ":1008b8008E3C8F3D8D3E8A3F8B40120D58120D24",
+ ":1008c800120CC9500122E519600CE53C90E679F0",
+ ":1008d800120CC9500122E53D90E679F0120CC950",
+ ":1008e800012290E6787480F0E51725E0440190E6",
+ ":1008f80079F0120D1450012290E679E0F541120D",
+ ":1009080014500122E4F541E53E14FFE541C39F50",
+ ":100918001C90E679E0FFE5402541F582E4353FF5",
+ ":1009280083EFF0120D14500122054180DA90E678",
+ ":100938007420F0120D1450012290E679E0FFE540",
+ ":100948002541F582E4353FF583EFF0120D145001",
+ ":0f0958002290E6787440F090E679E0F541C322",
+ ":100d140090E678E0FF30E0F8EF30E202D322C322",
+ ":100cc90090E678E0FF30E0F8EF30E202D322EF20",
+ ":060cd900E102D322C322",
+ ":10096700E51970037F01227A107B407D40E4FFFE",
+ ":100977001208B8E4F53A7400253AF582E43410F5",
+ ":1009870083E53AF0053AE53AB440EB7C107D007B",
+ ":1009970040E4FFFE120A9CE4F53AE53AF4FF7400",
+ ":1009a700253AF582E43410F583EFF0053AE53AB4",
+ ":1009b70040E87A107B007D40E4FFFE1208B89010",
+ ":1009c70000E0F53AE53A30E005753B018008633A",
+ ":1009d7003F053A853A3BE4F53AE53AC394405015",
+ ":1009e700AF3A7E007C107D40AB3B120A9CE53B25",
+ ":0809f7003AF53A80E4AF3B22",
+ ":030000000207F3",
+ ":0c07f300787FE4F6D8FD75814102064D",
+ ":100d0300EB9FF5F0EA9E42F0E99D42F0E89C45F0",
+ ":010d130022",
+ ":00000001FF"
+};
+#define FX2_VENDAX_SIZE (sizeof (fx2_vendax) / (256 * sizeof(char)))
+*/
+
+#endif \ No newline at end of file