@johntalton/ftdi 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +89 -0
- package/lib/consts.d.ts +33 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/consts.js +42 -0
- package/lib/consts.js.map +1 -0
- package/lib/eeprom.d.ts +129 -0
- package/lib/eeprom.d.ts.map +1 -0
- package/lib/eeprom.js +495 -0
- package/lib/eeprom.js.map +1 -0
- package/lib/ft232h.d.ts +37 -0
- package/lib/ft232h.d.ts.map +1 -0
- package/lib/ft232h.js +204 -0
- package/lib/ft232h.js.map +1 -0
- package/lib/ftdi.d.ts +37 -0
- package/lib/ftdi.d.ts.map +1 -0
- package/lib/ftdi.js +204 -0
- package/lib/ftdi.js.map +1 -0
- package/lib/i2c/i2c-template.d.ts +10 -0
- package/lib/i2c/i2c-template.d.ts.map +1 -0
- package/lib/i2c/i2c-template.js +122 -0
- package/lib/i2c/i2c-template.js.map +1 -0
- package/lib/i2c/i2c.d.ts +29 -0
- package/lib/i2c/i2c.d.ts.map +1 -0
- package/lib/i2c/i2c.js +169 -0
- package/lib/i2c/i2c.js.map +1 -0
- package/lib/i2c/index.d.ts +5 -0
- package/lib/i2c/index.d.ts.map +1 -0
- package/lib/i2c/index.js +5 -0
- package/lib/i2c/index.js.map +1 -0
- package/lib/i2c/range.d.ts +2 -0
- package/lib/i2c/range.d.ts.map +1 -0
- package/lib/i2c/range.js +6 -0
- package/lib/i2c/range.js.map +1 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -0
- package/lib/mpsse/clock.d.ts +16 -0
- package/lib/mpsse/clock.d.ts.map +1 -0
- package/lib/mpsse/clock.js +34 -0
- package/lib/mpsse/clock.js.map +1 -0
- package/lib/mpsse/command.d.ts +66 -0
- package/lib/mpsse/command.d.ts.map +1 -0
- package/lib/mpsse/command.js +89 -0
- package/lib/mpsse/command.js.map +1 -0
- package/lib/mpsse/index.d.ts +7 -0
- package/lib/mpsse/index.d.ts.map +1 -0
- package/lib/mpsse/index.js +7 -0
- package/lib/mpsse/index.js.map +1 -0
- package/lib/mpsse/mpsse-template.d.ts +19 -0
- package/lib/mpsse/mpsse-template.d.ts.map +1 -0
- package/lib/mpsse/mpsse-template.js +81 -0
- package/lib/mpsse/mpsse-template.js.map +1 -0
- package/lib/mpsse/mpsse.d.ts +18 -0
- package/lib/mpsse/mpsse.d.ts.map +1 -0
- package/lib/mpsse/mpsse.js +77 -0
- package/lib/mpsse/mpsse.js.map +1 -0
- package/lib/status.d.ts +39 -0
- package/lib/status.d.ts.map +1 -0
- package/lib/status.js +62 -0
- package/lib/status.js.map +1 -0
- package/lib/util.d.ts +26 -0
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +57 -0
- package/lib/util.js.map +1 -0
- package/package.json +38 -0
- package/src/consts.ts +57 -0
- package/src/eeprom.ts +663 -0
- package/src/ftdi.ts +215 -0
- package/src/i2c/i2c-template.ts +156 -0
- package/src/i2c/i2c.ts +210 -0
- package/src/i2c/index.ts +4 -0
- package/src/i2c/range.ts +6 -0
- package/src/index.ts +8 -0
- package/src/mpsse/clock.ts +36 -0
- package/src/mpsse/command.ts +113 -0
- package/src/mpsse/index.ts +6 -0
- package/src/mpsse/mpsse-template.ts +96 -0
- package/src/mpsse/mpsse.ts +95 -0
- package/src/status.ts +94 -0
- package/src/util.ts +72 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 John
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# FTDI
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@johntalton/ftdi)
|
|
4
|
+

|
|
5
|
+
[](https://github.com/johntalton/ftdi/actions/workflows/CI.yml)
|
|
6
|
+

|
|
7
|
+
[](https://www.npmjs.com/package/@johntalton/ftdi)
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
WebUSB based driver for FTDI's chip
|
|
11
|
+
|
|
12
|
+
Intended to provide I²C abstraction for compatibility with [I2CBus](https://github.com/johntalton/and-other-delights)
|
|
13
|
+
|
|
14
|
+
The FT232H and FT232R chips have been used during testing, and while other chips should work, access to others is limited (if you wish to help support please consider device donations 🎁)
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
Standard setup
|
|
19
|
+
|
|
20
|
+
```js
|
|
21
|
+
import { FTDIDevice, BIT_MODE } from '@johntalton/ftdi'
|
|
22
|
+
|
|
23
|
+
const usbDevice = // via navigator.usb.requestDevice
|
|
24
|
+
|
|
25
|
+
// open usb
|
|
26
|
+
await usbDevice.open()
|
|
27
|
+
|
|
28
|
+
// chip form usb device
|
|
29
|
+
const ftDevice = await FTDIDevice.from(usbDevice)
|
|
30
|
+
|
|
31
|
+
// using MPSSE
|
|
32
|
+
await ftDevice.setBitMode(BIT_MODE.MPSSE)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Blink LED via GPIO
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
import { PIN_STATE_COMMANDS } from '@johntalton/ftdi'
|
|
39
|
+
|
|
40
|
+
// ...
|
|
41
|
+
export const delayMs = ms => new Promise(resolve => setTimeout(resolve, ms))
|
|
42
|
+
|
|
43
|
+
// LED on
|
|
44
|
+
await ftDevice.sendData(Uint8Array.from([
|
|
45
|
+
PIN_STATE_COMMANDS.SET_DATA_BITS_HIGH_BYTE,
|
|
46
|
+
0b1000_0000, // gpio to set (HIGH)
|
|
47
|
+
0b1000_0000
|
|
48
|
+
]))
|
|
49
|
+
|
|
50
|
+
await delayMs(500)
|
|
51
|
+
|
|
52
|
+
// LED off
|
|
53
|
+
await ftDevice.sendData(Uint8Array.from([
|
|
54
|
+
PIN_STATE_COMMANDS.SET_DATA_BITS_HIGH_BYTE,
|
|
55
|
+
0b0000_0000, // gpio to set (LOW)
|
|
56
|
+
0b1000_0000 // direction (output)
|
|
57
|
+
]))
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
Using it as a I²C bus.
|
|
64
|
+
This uses the FT232H specific implementation as it support Drive Zero only and 3-Phase clocking that significantly reduces implementation complexity.
|
|
65
|
+
|
|
66
|
+
```js
|
|
67
|
+
import { FT232HBus } from '@johntalton/ftdi/i2c'
|
|
68
|
+
import { I2CAddressedBus } from '@johntalton/and-other-delights'
|
|
69
|
+
import { ADT7410 } from '@johntalton/adt7410'
|
|
70
|
+
|
|
71
|
+
// ...
|
|
72
|
+
|
|
73
|
+
// init sets the chip into mode compatible for I2C communication
|
|
74
|
+
// this is required prior to any I2C interactions
|
|
75
|
+
// any other command that alter the chips configuration will
|
|
76
|
+
// invalidate the bus
|
|
77
|
+
await FT232HBus.init(ftDevice)
|
|
78
|
+
const bus = new FT232HBus(ftDevice)
|
|
79
|
+
|
|
80
|
+
// but can now be used as part of any I2CBus sensor
|
|
81
|
+
// following example for ADT7410
|
|
82
|
+
const DEFAULT_ADDR = 0x48
|
|
83
|
+
const sensor = ADT7410.from(new I2CAddressedBus(DEFAULT_ADDR, bus))
|
|
84
|
+
|
|
85
|
+
// get temperature
|
|
86
|
+
const { temperatureC } = await sensor.getTemperature()
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
|
package/lib/consts.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const DEFAULT_FT4232H_PRODUCT_ID = 24593;
|
|
2
|
+
export declare const DEFAULT_FT2232H_PRODUCT_ID = 24592;
|
|
3
|
+
export declare const DEFAULT_FT232H_PRODUCT_ID = 24596;
|
|
4
|
+
export declare const DEFAULT_FT232R_PRODUCT_ID = 24577;
|
|
5
|
+
export declare const DEFAULT_FTDI_VENDOR_ID = 1027;
|
|
6
|
+
export declare const _REQUESTS: {
|
|
7
|
+
readonly RESET: 0;
|
|
8
|
+
readonly SET_MODEM_CTRL: 1;
|
|
9
|
+
readonly POLL_MODEM_STATUS: 5;
|
|
10
|
+
readonly SET_EVENT_CHAR: 6;
|
|
11
|
+
readonly SET_ERROR_CHAR: 7;
|
|
12
|
+
readonly SET_LATENCY_TIMER: 9;
|
|
13
|
+
readonly GET_LATENCY_TIMER: 10;
|
|
14
|
+
readonly SET_BITMODE: 11;
|
|
15
|
+
readonly READ_PINS: 12;
|
|
16
|
+
readonly READ_EEPROM: 144;
|
|
17
|
+
readonly WRITE_EEPROM: 145;
|
|
18
|
+
};
|
|
19
|
+
export type RequestKeys = keyof typeof _REQUESTS;
|
|
20
|
+
export type RequestType = typeof _REQUESTS[keyof typeof _REQUESTS];
|
|
21
|
+
export declare const REQUESTS: Record<RequestKeys, RequestType>;
|
|
22
|
+
export type BitMode = number;
|
|
23
|
+
export declare const BIT_MODE: Record<string, BitMode>;
|
|
24
|
+
export declare const RESET_USB: {
|
|
25
|
+
RESET: number;
|
|
26
|
+
RX: number;
|
|
27
|
+
TX: number;
|
|
28
|
+
};
|
|
29
|
+
export interface ModemControl {
|
|
30
|
+
DataTerminalReady?: boolean;
|
|
31
|
+
RequestToSend?: boolean;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,0BAA0B,QAAU,CAAA;AACjD,eAAO,MAAM,0BAA0B,QAAU,CAAA;AACjD,eAAO,MAAM,yBAAyB,QAAU,CAAA;AAChD,eAAO,MAAM,yBAAyB,QAAU,CAAA;AAChD,eAAO,MAAM,sBAAsB,OAAU,CAAA;AAI7C,eAAO,MAAM,SAAS;aACrB,KAAK,EAAE,CAAC;aACR,cAAc,EAAE,CAAC;aAIjB,iBAAiB,EAAE,CAAI;aACvB,cAAc,EAAE,CAAI;aACpB,cAAc,EAAE,CAAI;aACpB,iBAAiB,EAAE,CAAI;aACvB,iBAAiB,EAAE,EAAI;aACvB,WAAW,EAAE,EAAI;aACjB,SAAS,EAAE,EAAI;aACf,WAAW,EAAE,GAAI;aACjB,YAAY,EAAE,GAAI;CAET,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,SAAS,CAAA;AAChD,MAAM,MAAM,WAAW,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAA;AAClE,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAa,CAAA;AAGnE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAG5B,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAU5C,CAAA;AAED,eAAO,MAAM,SAAS;IACrB,KAAK;IACL,EAAE;IACF,EAAE;CACF,CAAA;AAED,MAAM,WAAW,YAAY;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB"}
|
package/lib/consts.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const DEFAULT_FT4232H_PRODUCT_ID = 0x60_11;
|
|
2
|
+
export const DEFAULT_FT2232H_PRODUCT_ID = 0x60_10;
|
|
3
|
+
export const DEFAULT_FT232H_PRODUCT_ID = 0x60_14;
|
|
4
|
+
export const DEFAULT_FT232R_PRODUCT_ID = 0x60_01;
|
|
5
|
+
export const DEFAULT_FTDI_VENDOR_ID = 0x04_03;
|
|
6
|
+
//
|
|
7
|
+
export const _REQUESTS = {
|
|
8
|
+
RESET: 0,
|
|
9
|
+
SET_MODEM_CTRL: 1,
|
|
10
|
+
// SET_FLOW_CTRL: 2,
|
|
11
|
+
// SET_BAUDRATE: 3,
|
|
12
|
+
// SET_DATA: 4,
|
|
13
|
+
POLL_MODEM_STATUS: 0x05,
|
|
14
|
+
SET_EVENT_CHAR: 0x06,
|
|
15
|
+
SET_ERROR_CHAR: 0x07,
|
|
16
|
+
SET_LATENCY_TIMER: 0x09,
|
|
17
|
+
GET_LATENCY_TIMER: 0x0A,
|
|
18
|
+
SET_BITMODE: 0x0B,
|
|
19
|
+
READ_PINS: 0x0C,
|
|
20
|
+
READ_EEPROM: 0x90,
|
|
21
|
+
WRITE_EEPROM: 0x91,
|
|
22
|
+
// ERASE_EEPROM: 0x92,
|
|
23
|
+
};
|
|
24
|
+
export const REQUESTS = _REQUESTS;
|
|
25
|
+
// specified in 16bit-little-endian
|
|
26
|
+
export const BIT_MODE = {
|
|
27
|
+
RESET: 0x00_00, // bitbang OFF / regular serial/FIFO
|
|
28
|
+
// BITBANG: 0x01, // async bitbang (classic)
|
|
29
|
+
MPSSE: 0x02_00, // MPSSE mode
|
|
30
|
+
// SYNCBB: 0x04, // synchronous bitbang
|
|
31
|
+
// MCU: 0x08, // MCU Host Bus Emulation
|
|
32
|
+
// OPTO: 0x10, // Opto-Isolated Serial Interface Mode
|
|
33
|
+
// CBUS: 0x20, // Bitbang on CBUS
|
|
34
|
+
// SYNCFF: 0x40, // Single Channel Synchronous FIFO mode,
|
|
35
|
+
// FT1284: 0x80, // FT1284
|
|
36
|
+
};
|
|
37
|
+
export const RESET_USB = {
|
|
38
|
+
RESET: 0,
|
|
39
|
+
RX: 1,
|
|
40
|
+
TX: 2
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAA;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAA;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAA;AAG7C,EAAE;AACF,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,KAAK,EAAE,CAAC;IACR,cAAc,EAAE,CAAC;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;IACf,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,sBAAsB;CACb,CAAA;AAIV,MAAM,CAAC,MAAM,QAAQ,GAAqC,SAAS,CAAA;AAKnE,mCAAmC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAA4B;IAC/C,KAAK,EAAE,OAAO,EAAE,oCAAoC;IACpD,4CAA4C;IAC5C,KAAK,EAAE,OAAO,EAAE,aAAa;IAC7B,uCAAuC;IACvC,uCAAuC;IACvC,qDAAqD;IACrD,iCAAiC;IACjC,yDAAyD;IACzD,0BAA0B;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,KAAK,EAAE,CAAC;IACR,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACL,CAAA"}
|
package/lib/eeprom.d.ts
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/** biome-ignore-all lint/performance/noAwaitInLoops: <explanation> */
|
|
2
|
+
/** biome-ignore-all lint/nursery/noMisleadingReturnType: <explanation> */
|
|
3
|
+
/** biome-ignore-all lint/style/useConsistentArrayType: <explanation> */
|
|
4
|
+
/** biome-ignore-all lint/style/noExcessiveLinesPerFile: <explanation> */
|
|
5
|
+
/** biome-ignore-all lint/style/useDestructuring: <explanation> */
|
|
6
|
+
import type { FTDIDevice } from './ftdi.ts';
|
|
7
|
+
import { type ChipInfo } from './util.ts';
|
|
8
|
+
export declare const MASK_16 = 65535;
|
|
9
|
+
export declare const MASK_8 = 255;
|
|
10
|
+
export declare const MASK_4 = 15;
|
|
11
|
+
export declare const MASK_3 = 7;
|
|
12
|
+
export declare const MAX_POWER_MILLIAMP_PER_UNIT = 2;
|
|
13
|
+
export declare const USB_DESCRIPTOR_TYPE_STRING = 3;
|
|
14
|
+
export declare const CONFIG_RESERVED_MASK = 128;
|
|
15
|
+
export declare const CONFIG_SELF_POWERED_MASK = 64;
|
|
16
|
+
export declare const CONFIG_REMOTE_WAKE_MASK = 32;
|
|
17
|
+
export declare const CONFIG_IN_ISOCHRONOUS_MASK = 1;
|
|
18
|
+
export declare const CONFIG_OUT_ISOCHRONOUS_MASK = 2;
|
|
19
|
+
export declare const CONFIG_SUSPEND_PULL_DOWN = 4;
|
|
20
|
+
export declare const CONFIG_USE_SERIAL = 8;
|
|
21
|
+
export declare const CONFIG_USE_USB_VERSION = 16;
|
|
22
|
+
export declare const CHANNEL_TYPE: Record<number, string>;
|
|
23
|
+
export declare const GROUP_DRIVE: Record<number, GroupDriveInfo>;
|
|
24
|
+
export declare const CBUS_FUNC_NAME_H: Record<number, string>;
|
|
25
|
+
export declare const CBUS_FUNC_NAME_R: Record<number, string>;
|
|
26
|
+
export declare const GROUP_DRIVE_MASK = 3;
|
|
27
|
+
export declare const SLOW_SLEW_MASK = 4;
|
|
28
|
+
export declare const IS_SCHMITT_MASK = 8;
|
|
29
|
+
export declare const EEPROM_CHIP_TYPE_ID: {
|
|
30
|
+
readonly LC_46: 70;
|
|
31
|
+
readonly LC_56: 86;
|
|
32
|
+
readonly LC_66: 102;
|
|
33
|
+
};
|
|
34
|
+
export type EEPROMChipType = typeof EEPROM_CHIP_TYPE_ID[keyof typeof EEPROM_CHIP_TYPE_ID];
|
|
35
|
+
export interface EEPROMChipInfo {
|
|
36
|
+
id: EEPROMChipType | 0;
|
|
37
|
+
name: string;
|
|
38
|
+
byteLength: number;
|
|
39
|
+
}
|
|
40
|
+
export declare const EEPROM_CHIP_TYPE_INFO: Record<string, EEPROMChipInfo>;
|
|
41
|
+
export declare function eepromTypeFromValue(chipInfo: ChipInfo, value: number | undefined): EEPROMChipInfo | undefined;
|
|
42
|
+
export interface EEPROMInfo {
|
|
43
|
+
vendorId: number;
|
|
44
|
+
productId: number;
|
|
45
|
+
chipVersion: {
|
|
46
|
+
chipMajor: number;
|
|
47
|
+
chipMinor: number;
|
|
48
|
+
};
|
|
49
|
+
chipInfo: ChipInfo;
|
|
50
|
+
eepromType: EEPROMChipInfo | undefined;
|
|
51
|
+
config: {
|
|
52
|
+
_reservedHigh: boolean;
|
|
53
|
+
selfPowered: boolean;
|
|
54
|
+
remoteWake: boolean;
|
|
55
|
+
maxPower: number;
|
|
56
|
+
};
|
|
57
|
+
chipConfig: {
|
|
58
|
+
isInIsochronous: boolean;
|
|
59
|
+
isOutIsochronous: boolean;
|
|
60
|
+
suspendPullDowns: boolean;
|
|
61
|
+
useSerial: boolean;
|
|
62
|
+
useUSBVersion: boolean;
|
|
63
|
+
};
|
|
64
|
+
manufacture: string | undefined;
|
|
65
|
+
product: string | undefined;
|
|
66
|
+
serial: string | undefined;
|
|
67
|
+
checksumCalculated: number;
|
|
68
|
+
checksum: number | undefined;
|
|
69
|
+
}
|
|
70
|
+
export interface GroupDriveInfo {
|
|
71
|
+
name: string;
|
|
72
|
+
mA: number;
|
|
73
|
+
}
|
|
74
|
+
export interface GroupItem {
|
|
75
|
+
name: string;
|
|
76
|
+
drive: GroupDriveInfo | undefined;
|
|
77
|
+
isSchmitt: boolean;
|
|
78
|
+
slowSlew: boolean;
|
|
79
|
+
}
|
|
80
|
+
export declare const CHANNEL_DRIVE_D2XX = "D2xx";
|
|
81
|
+
export declare const CHANNEL_DRIVE_VCP = "VCP";
|
|
82
|
+
export type ChannelDrive = typeof CHANNEL_DRIVE_D2XX | typeof CHANNEL_DRIVE_VCP;
|
|
83
|
+
export interface EEPROMInfo2232H {
|
|
84
|
+
channelADrive: ChannelDrive;
|
|
85
|
+
channelAType: string | undefined;
|
|
86
|
+
channelBDrive: ChannelDrive;
|
|
87
|
+
channelBType: string | undefined;
|
|
88
|
+
suspendDBUS7: boolean;
|
|
89
|
+
group: [GroupItem, GroupItem, GroupItem, GroupItem];
|
|
90
|
+
}
|
|
91
|
+
export interface EEPROMInfo232H {
|
|
92
|
+
channelADrive: ChannelDrive;
|
|
93
|
+
channelAType: string | undefined;
|
|
94
|
+
clockPolarityHigh: boolean;
|
|
95
|
+
lsbData: boolean;
|
|
96
|
+
flowcontrol: boolean;
|
|
97
|
+
powersave: boolean;
|
|
98
|
+
group: [GroupItem, GroupItem];
|
|
99
|
+
cbusFunction: Array<string | undefined>;
|
|
100
|
+
}
|
|
101
|
+
export interface EEPROMInfo232R {
|
|
102
|
+
channelADrive: ChannelDrive;
|
|
103
|
+
highCurrent: boolean;
|
|
104
|
+
externalOscillator: boolean;
|
|
105
|
+
invert: {
|
|
106
|
+
TXD: boolean;
|
|
107
|
+
RXD: boolean;
|
|
108
|
+
RTS: boolean;
|
|
109
|
+
CTS: boolean;
|
|
110
|
+
DTR: boolean;
|
|
111
|
+
DSR: boolean;
|
|
112
|
+
DCD: boolean;
|
|
113
|
+
RI: boolean;
|
|
114
|
+
};
|
|
115
|
+
cbusFunction: Array<string | undefined>;
|
|
116
|
+
}
|
|
117
|
+
export type ChipSpecificInfo = EEPROMInfo2232H | EEPROMInfo232H | EEPROMInfo232R | undefined;
|
|
118
|
+
export declare function eepromTypeOffset(chipInfo: ChipInfo): number | undefined;
|
|
119
|
+
export declare class FTDIEEPROM {
|
|
120
|
+
static readEEPROMBulk(device: FTDIDevice, eepromSize16: number): Promise<ArrayBufferView<ArrayBuffer>>;
|
|
121
|
+
static calculateChecksum(buffer16: Uint16Array, size16: number): number;
|
|
122
|
+
static parseEEPROMDescriptorString(info: number, buffer16: Uint16Array, eepromSize16: number, decoder?: TextDecoder): string | undefined;
|
|
123
|
+
static parseEEPROM_FT2232H(buffer: ArrayBufferView<ArrayBuffer> | ArrayBuffer, _chipInfo: ChipInfo): EEPROMInfo2232H | undefined;
|
|
124
|
+
static parseEEPROM_232H(buffer: ArrayBufferView<ArrayBuffer> | ArrayBuffer, _chipInfo: ChipInfo): EEPROMInfo232H | undefined;
|
|
125
|
+
static parseEEPROM_232R(buffer: ArrayBufferView<ArrayBuffer> | ArrayBuffer, _chipInfo: ChipInfo): EEPROMInfo232R | undefined;
|
|
126
|
+
static parseEEPROM_ChipSpecific(buffer: ArrayBufferView<ArrayBuffer | ArrayBuffer>, chipInfo: ChipInfo): ChipSpecificInfo;
|
|
127
|
+
static parseEEPROM(buffer: ArrayBufferView<ArrayBuffer | ArrayBuffer>, chipInfo: ChipInfo): EEPROMInfo | undefined;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=eeprom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eeprom.d.ts","sourceRoot":"","sources":["../src/eeprom.ts"],"names":[],"mappings":"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"}
|