@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.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/lib/consts.d.ts +33 -0
  4. package/lib/consts.d.ts.map +1 -0
  5. package/lib/consts.js +42 -0
  6. package/lib/consts.js.map +1 -0
  7. package/lib/eeprom.d.ts +129 -0
  8. package/lib/eeprom.d.ts.map +1 -0
  9. package/lib/eeprom.js +495 -0
  10. package/lib/eeprom.js.map +1 -0
  11. package/lib/ft232h.d.ts +37 -0
  12. package/lib/ft232h.d.ts.map +1 -0
  13. package/lib/ft232h.js +204 -0
  14. package/lib/ft232h.js.map +1 -0
  15. package/lib/ftdi.d.ts +37 -0
  16. package/lib/ftdi.d.ts.map +1 -0
  17. package/lib/ftdi.js +204 -0
  18. package/lib/ftdi.js.map +1 -0
  19. package/lib/i2c/i2c-template.d.ts +10 -0
  20. package/lib/i2c/i2c-template.d.ts.map +1 -0
  21. package/lib/i2c/i2c-template.js +122 -0
  22. package/lib/i2c/i2c-template.js.map +1 -0
  23. package/lib/i2c/i2c.d.ts +29 -0
  24. package/lib/i2c/i2c.d.ts.map +1 -0
  25. package/lib/i2c/i2c.js +169 -0
  26. package/lib/i2c/i2c.js.map +1 -0
  27. package/lib/i2c/index.d.ts +5 -0
  28. package/lib/i2c/index.d.ts.map +1 -0
  29. package/lib/i2c/index.js +5 -0
  30. package/lib/i2c/index.js.map +1 -0
  31. package/lib/i2c/range.d.ts +2 -0
  32. package/lib/i2c/range.d.ts.map +1 -0
  33. package/lib/i2c/range.js +6 -0
  34. package/lib/i2c/range.js.map +1 -0
  35. package/lib/index.d.ts +9 -0
  36. package/lib/index.d.ts.map +1 -0
  37. package/lib/index.js +9 -0
  38. package/lib/index.js.map +1 -0
  39. package/lib/mpsse/clock.d.ts +16 -0
  40. package/lib/mpsse/clock.d.ts.map +1 -0
  41. package/lib/mpsse/clock.js +34 -0
  42. package/lib/mpsse/clock.js.map +1 -0
  43. package/lib/mpsse/command.d.ts +66 -0
  44. package/lib/mpsse/command.d.ts.map +1 -0
  45. package/lib/mpsse/command.js +89 -0
  46. package/lib/mpsse/command.js.map +1 -0
  47. package/lib/mpsse/index.d.ts +7 -0
  48. package/lib/mpsse/index.d.ts.map +1 -0
  49. package/lib/mpsse/index.js +7 -0
  50. package/lib/mpsse/index.js.map +1 -0
  51. package/lib/mpsse/mpsse-template.d.ts +19 -0
  52. package/lib/mpsse/mpsse-template.d.ts.map +1 -0
  53. package/lib/mpsse/mpsse-template.js +81 -0
  54. package/lib/mpsse/mpsse-template.js.map +1 -0
  55. package/lib/mpsse/mpsse.d.ts +18 -0
  56. package/lib/mpsse/mpsse.d.ts.map +1 -0
  57. package/lib/mpsse/mpsse.js +77 -0
  58. package/lib/mpsse/mpsse.js.map +1 -0
  59. package/lib/status.d.ts +39 -0
  60. package/lib/status.d.ts.map +1 -0
  61. package/lib/status.js +62 -0
  62. package/lib/status.js.map +1 -0
  63. package/lib/util.d.ts +26 -0
  64. package/lib/util.d.ts.map +1 -0
  65. package/lib/util.js +57 -0
  66. package/lib/util.js.map +1 -0
  67. package/package.json +38 -0
  68. package/src/consts.ts +57 -0
  69. package/src/eeprom.ts +663 -0
  70. package/src/ftdi.ts +215 -0
  71. package/src/i2c/i2c-template.ts +156 -0
  72. package/src/i2c/i2c.ts +210 -0
  73. package/src/i2c/index.ts +4 -0
  74. package/src/i2c/range.ts +6 -0
  75. package/src/index.ts +8 -0
  76. package/src/mpsse/clock.ts +36 -0
  77. package/src/mpsse/command.ts +113 -0
  78. package/src/mpsse/index.ts +6 -0
  79. package/src/mpsse/mpsse-template.ts +96 -0
  80. package/src/mpsse/mpsse.ts +95 -0
  81. package/src/status.ts +94 -0
  82. package/src/util.ts +72 -0
package/lib/eeprom.js ADDED
@@ -0,0 +1,495 @@
1
+ import { USB_MAJOR_TYPE_232H, USB_MAJOR_TYPE_2232H, USB_MAJOR_TYPE_R, } from './util.js';
2
+ export const MASK_16 = 0xFF_FF;
3
+ export const MASK_8 = 0xFF;
4
+ export const MASK_4 = 0x0F;
5
+ export const MASK_3 = 0b0111;
6
+ export const MAX_POWER_MILLIAMP_PER_UNIT = 2;
7
+ export const USB_DESCRIPTOR_TYPE_STRING = 0x03;
8
+ export const CONFIG_RESERVED_MASK = 0b1000_0000;
9
+ export const CONFIG_SELF_POWERED_MASK = 0b0100_0000;
10
+ export const CONFIG_REMOTE_WAKE_MASK = 0b0010_0000;
11
+ export const CONFIG_IN_ISOCHRONOUS_MASK = 0b0000_0001;
12
+ export const CONFIG_OUT_ISOCHRONOUS_MASK = 0b0000_0010;
13
+ export const CONFIG_SUSPEND_PULL_DOWN = 0b0000_0100;
14
+ export const CONFIG_USE_SERIAL = 0b0000_1000;
15
+ export const CONFIG_USE_USB_VERSION = 0b0001_0000;
16
+ export const CHANNEL_TYPE = {
17
+ 0: 'UART',
18
+ 1: 'FIFO',
19
+ 2: 'OPTO',
20
+ 4: 'CPU',
21
+ 8: 'FT1284'
22
+ };
23
+ export const GROUP_DRIVE = {
24
+ 0: { name: '4mA', mA: 4 },
25
+ 1: { name: '8mA', mA: 8 },
26
+ 2: { name: '12mA', mA: 12 },
27
+ 3: { name: '16mA', mA: 16 }
28
+ };
29
+ export const CBUS_FUNC_NAME_H = {
30
+ 0: 'TRISTATE',
31
+ 1: 'TXLED',
32
+ 2: 'RXLED',
33
+ 3: 'TXRXLED',
34
+ 4: 'PWREN',
35
+ 5: 'SLEEP',
36
+ 6: 'DRIVE0',
37
+ 7: 'DRIVE1',
38
+ 8: 'GPIO',
39
+ 9: 'TXDEN',
40
+ 10: 'CLK30',
41
+ 11: 'CLK15',
42
+ 12: 'CLK7_5'
43
+ };
44
+ export const CBUS_FUNC_NAME_R = {
45
+ 0: 'TXDEN',
46
+ 1: 'PWREN',
47
+ 2: 'RXLED',
48
+ 3: 'TXLED',
49
+ 4: 'TX+RXLED',
50
+ 5: 'SLEEP',
51
+ 6: 'CLK48',
52
+ 7: 'CLK24',
53
+ 8: 'CLK12',
54
+ 9: 'CLK6',
55
+ 10: 'IOMODE',
56
+ 11: 'BB_WR',
57
+ 12: 'BB_RD"'
58
+ };
59
+ export const GROUP_DRIVE_MASK = 0b0000_0011;
60
+ export const SLOW_SLEW_MASK = 0b0000_0100;
61
+ export const IS_SCHMITT_MASK = 0b0000_1000;
62
+ export const EEPROM_CHIP_TYPE_ID = {
63
+ LC_46: 0x46, // 64 x 16-bit
64
+ LC_56: 0x56, // 128 x 16-bit
65
+ LC_66: 0x66 // 256 x 16-bit
66
+ };
67
+ export const EEPROM_CHIP_TYPE_INFO = {
68
+ [EEPROM_CHIP_TYPE_ID.LC_46]: { id: EEPROM_CHIP_TYPE_ID.LC_46, name: '93LC46 64 x 16-bit', byteLength: 128 },
69
+ [EEPROM_CHIP_TYPE_ID.LC_56]: { id: EEPROM_CHIP_TYPE_ID.LC_56, name: '93LC56 128 x 16-bit', byteLength: 256 },
70
+ [EEPROM_CHIP_TYPE_ID.LC_66]: { id: EEPROM_CHIP_TYPE_ID.LC_66, name: '93LC66 256 x 16-bit', byteLength: 512 }
71
+ };
72
+ export function eepromTypeFromValue(chipInfo, value) {
73
+ if (chipInfo.major === USB_MAJOR_TYPE_R) {
74
+ return { id: 0, name: 'Built-in 64 x 16-bit', byteLength: 128 };
75
+ }
76
+ if (value === undefined) {
77
+ return undefined;
78
+ }
79
+ return EEPROM_CHIP_TYPE_INFO[value];
80
+ }
81
+ export const CHANNEL_DRIVE_D2XX = 'D2xx';
82
+ export const CHANNEL_DRIVE_VCP = 'VCP';
83
+ export function eepromTypeOffset(chipInfo) {
84
+ // if(chipInfo.major === USB_MAJOR_TYPE_2232C) { return 10 }// 2232C 0x14 -> 10
85
+ // this is wrong? if(major === USB_MAJOR_TYPE_R) { return 11 } // R 0x16 -> 11
86
+ if (chipInfo.major === USB_MAJOR_TYPE_2232H) {
87
+ return 12;
88
+ } // 2232H / 4232H 0x18 -> 12
89
+ // if(chipInfo.major === USB_MAJOR_TYPE_4232H) { return 12 } // 2232H / 4232H 0x18 -> 12
90
+ if (chipInfo.major === USB_MAJOR_TYPE_232H) {
91
+ return 15;
92
+ } // 232H 0x1e -> 15
93
+ return undefined;
94
+ }
95
+ export class FTDIEEPROM {
96
+ static async readEEPROMBulk(device, eepromSize16) {
97
+ const result16 = new Uint16Array(eepromSize16);
98
+ for (let i = 0; i < eepromSize16; i += 1) {
99
+ const result = await device.readEEPROM(i, 2);
100
+ result16.set([result.getUint16(0, true)], i);
101
+ }
102
+ // const buf = Uint16Array.from([
103
+ // 0x03_12,
104
+ // ...('🧟 ❤️ 🧠'.split('').map(c => c.charCodeAt(0)))
105
+ // ])
106
+ // result16.set(buf, 80)
107
+ // checksum
108
+ // const csbuf = Uint16Array.from([ 42791 ])
109
+ // result16.set(csbuf, eepromSize16 - 1)
110
+ // console.log('read eeprom result', result16)
111
+ return result16;
112
+ }
113
+ static calculateChecksum(buffer16, size16) {
114
+ const CHECKSUM_INITIAL_VALUE = 0xAA_AA;
115
+ let checksum = CHECKSUM_INITIAL_VALUE;
116
+ for (let i = 0; i < (size16 - 1); i += 1) {
117
+ const value = buffer16[i];
118
+ checksum ^= value ?? 0;
119
+ checksum = ((checksum << 1) | (checksum >>> (16 - 1))) & MASK_16; // rotate16
120
+ }
121
+ return checksum;
122
+ }
123
+ static parseEEPROMDescriptorString(info, buffer16, eepromSize16, decoder = new TextDecoder('utf-16LE')) {
124
+ // info offset suffer from wrap-around indexing
125
+ // mask off the bits of the size to make sure index
126
+ // is withing the size.
127
+ const DESCRIPTOR_OFFSET_MASK = (eepromSize16 * 2) - 1;
128
+ // info contains offset/length to the descriptor
129
+ const offset16 = (info & DESCRIPTOR_OFFSET_MASK) / 2;
130
+ const length = (info >> 8) / 2;
131
+ //
132
+ const prefix = buffer16[offset16];
133
+ if (prefix === undefined) {
134
+ console.warn('undefined prefix value', offset16);
135
+ return undefined;
136
+ }
137
+ // descriptors have length and USB descriptor type (length includes prefix)
138
+ const prefixLength = (prefix & MASK_8) / 2;
139
+ const prefixDescriptorType = prefix >> 8;
140
+ if (length !== prefixLength) {
141
+ console.warn('prefix length disagrees with info length', prefixLength, length);
142
+ return undefined;
143
+ }
144
+ if (prefixDescriptorType !== USB_DESCRIPTOR_TYPE_STRING) {
145
+ console.warn('USB Descriptor type is not String', prefixDescriptorType);
146
+ return undefined;
147
+ }
148
+ // skip the string prefix (reduce size by one)
149
+ const begin = offset16 + 1;
150
+ const end = begin + length - 1;
151
+ const buffer = buffer16.subarray(begin, end);
152
+ // decode utf-16le
153
+ return decoder.decode(buffer);
154
+ }
155
+ static parseEEPROM_FT2232H(buffer, _chipInfo) {
156
+ const u16 = ArrayBuffer.isView(buffer) ?
157
+ new Uint16Array(buffer.buffer, buffer.byteOffset) :
158
+ new Uint16Array(buffer);
159
+ const DRIVE_MASK = 0b0000_1000;
160
+ const SUSPEND_DBUS_7_MASK = 0b1000_0000;
161
+ const control = u16[0];
162
+ const groupConfig = u16[6];
163
+ if (control === undefined) {
164
+ return undefined;
165
+ }
166
+ if (groupConfig === undefined) {
167
+ return undefined;
168
+ }
169
+ const controlH = (control >> 8) & MASK_8; // 1
170
+ const controlL = control & MASK_8; // 0
171
+ const channelAType = CHANNEL_TYPE[controlL & MASK_3];
172
+ const channelBType = CHANNEL_TYPE[controlH & MASK_3];
173
+ const channelADrive = ((controlL & DRIVE_MASK) === DRIVE_MASK) ? CHANNEL_DRIVE_VCP : CHANNEL_DRIVE_D2XX;
174
+ const channelBDrive = ((controlH & DRIVE_MASK) === DRIVE_MASK) ? CHANNEL_DRIVE_VCP : CHANNEL_DRIVE_D2XX;
175
+ const suspendDBUS7 = (controlH & SUSPEND_DBUS_7_MASK) === SUSPEND_DBUS_7_MASK;
176
+ const groupConfigH = (groupConfig >> 8) & MASK_8; // d
177
+ const groupConfigL = groupConfig & MASK_8; // c
178
+ const groupConfigHH = (groupConfigH >> 4) & MASK_4; // 3
179
+ const groupConfigHL = groupConfigH & MASK_4; // 2
180
+ const groupConfigLH = (groupConfigL >> 4) & MASK_4; // 1
181
+ const groupConfigLL = groupConfigL & MASK_4; // 0
182
+ const group = [
183
+ {
184
+ name: 'AL',
185
+ drive: GROUP_DRIVE[(groupConfigLL & GROUP_DRIVE_MASK)],
186
+ isSchmitt: (groupConfigLL & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
187
+ slowSlew: (groupConfigLL & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
188
+ },
189
+ {
190
+ name: 'AH',
191
+ drive: GROUP_DRIVE[(groupConfigLH & GROUP_DRIVE_MASK)],
192
+ isSchmitt: (groupConfigLH & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
193
+ slowSlew: (groupConfigLH & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
194
+ },
195
+ {
196
+ name: 'BL',
197
+ drive: GROUP_DRIVE[(groupConfigHL & GROUP_DRIVE_MASK)],
198
+ isSchmitt: (groupConfigHL & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
199
+ slowSlew: (groupConfigHL & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
200
+ },
201
+ {
202
+ name: 'BH',
203
+ drive: GROUP_DRIVE[(groupConfigHH & GROUP_DRIVE_MASK)],
204
+ isSchmitt: (groupConfigHH & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
205
+ slowSlew: (groupConfigHH & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
206
+ }
207
+ ];
208
+ return {
209
+ channelAType,
210
+ channelBType,
211
+ channelADrive,
212
+ channelBDrive,
213
+ suspendDBUS7,
214
+ group
215
+ };
216
+ }
217
+ static parseEEPROM_232H(buffer, _chipInfo) {
218
+ const u16 = ArrayBuffer.isView(buffer) ?
219
+ new Uint16Array(buffer.buffer, buffer.byteOffset) :
220
+ new Uint16Array(buffer);
221
+ const DRIVE_H_MASK = 0b0001_0000;
222
+ const FT1284_CLOCK_STATE_MASK = 0b0000_0001;
223
+ const FT1284_DATA_LSB_MASK = 0b0000_0010;
224
+ const FT1284_FLOW_CONTROL_MASK = 0b0000_0100;
225
+ const POWER_SAVE_DISABLE_H_MASK = 0b0000_1000;
226
+ const control = u16[0];
227
+ const groupConfig = u16[6];
228
+ const cbusFunction0123 = u16[12]; // 3 2 1 0
229
+ const cbusFunction4567 = u16[13]; // 7 6 5 4
230
+ const cbusFunction89 = u16[14]; // x x 9 8
231
+ if (control === undefined) {
232
+ return undefined;
233
+ }
234
+ if (groupConfig === undefined) {
235
+ return undefined;
236
+ }
237
+ if (cbusFunction0123 === undefined) {
238
+ return undefined;
239
+ }
240
+ if (cbusFunction4567 === undefined) {
241
+ return undefined;
242
+ }
243
+ if (cbusFunction89 === undefined) {
244
+ return undefined;
245
+ }
246
+ const controlH = (control >> 8) & MASK_8; // 1
247
+ const controlL = control & MASK_8; // 0
248
+ const channelADrive = ((controlL & DRIVE_H_MASK) === DRIVE_H_MASK) ? CHANNEL_DRIVE_VCP : CHANNEL_DRIVE_D2XX;
249
+ const channelAType = CHANNEL_TYPE[controlL & MASK_4];
250
+ const clockPolarityHigh = (controlH & FT1284_CLOCK_STATE_MASK) === FT1284_CLOCK_STATE_MASK;
251
+ const lsbData = (controlH & FT1284_DATA_LSB_MASK) === FT1284_DATA_LSB_MASK;
252
+ const flowcontrol = (controlH & FT1284_FLOW_CONTROL_MASK) === FT1284_FLOW_CONTROL_MASK;
253
+ const powersave = (controlH & POWER_SAVE_DISABLE_H_MASK) === POWER_SAVE_DISABLE_H_MASK;
254
+ const groupConfigH = (groupConfig >> 8) & MASK_8; // d
255
+ const groupConfigL = groupConfig & MASK_8; // c
256
+ const group = [
257
+ {
258
+ name: 'ACBUS',
259
+ drive: GROUP_DRIVE[(groupConfigL & GROUP_DRIVE_MASK)],
260
+ isSchmitt: (groupConfigL & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
261
+ slowSlew: (groupConfigL & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
262
+ },
263
+ {
264
+ name: 'ADBUS',
265
+ drive: GROUP_DRIVE[(groupConfigH & GROUP_DRIVE_MASK)],
266
+ isSchmitt: (groupConfigH & IS_SCHMITT_MASK) === IS_SCHMITT_MASK,
267
+ slowSlew: (groupConfigH & SLOW_SLEW_MASK) === SLOW_SLEW_MASK
268
+ }
269
+ ];
270
+ const cbusFunc0 = (cbusFunction0123 >> 0) & MASK_4;
271
+ const cbusFunc1 = (cbusFunction0123 >> 4) & MASK_4;
272
+ const cbusFunc2 = (cbusFunction0123 >> 8) & MASK_4;
273
+ const cbusFunc3 = (cbusFunction0123 >> 12) & MASK_4;
274
+ const cbusFunc4 = (cbusFunction4567 >> 0) & MASK_4;
275
+ const cbusFunc5 = (cbusFunction4567 >> 4) & MASK_4;
276
+ const cbusFunc6 = (cbusFunction4567 >> 8) & MASK_4;
277
+ const cbusFunc7 = (cbusFunction4567 >> 12) & MASK_4;
278
+ const cbusFunc8 = (cbusFunction89 >> 0) & MASK_4;
279
+ const cbusFunc9 = (cbusFunction89 >> 4) & MASK_4;
280
+ return {
281
+ channelADrive,
282
+ channelAType,
283
+ clockPolarityHigh,
284
+ lsbData,
285
+ flowcontrol,
286
+ powersave,
287
+ group,
288
+ cbusFunction: [
289
+ CBUS_FUNC_NAME_H[cbusFunc0],
290
+ CBUS_FUNC_NAME_H[cbusFunc1],
291
+ CBUS_FUNC_NAME_H[cbusFunc2],
292
+ CBUS_FUNC_NAME_H[cbusFunc3],
293
+ CBUS_FUNC_NAME_H[cbusFunc4],
294
+ CBUS_FUNC_NAME_H[cbusFunc5],
295
+ CBUS_FUNC_NAME_H[cbusFunc6],
296
+ CBUS_FUNC_NAME_H[cbusFunc7],
297
+ CBUS_FUNC_NAME_H[cbusFunc8],
298
+ CBUS_FUNC_NAME_H[cbusFunc9]
299
+ ]
300
+ };
301
+ }
302
+ static parseEEPROM_232R(buffer, _chipInfo) {
303
+ const u16 = ArrayBuffer.isView(buffer) ?
304
+ new Uint16Array(buffer.buffer, buffer.byteOffset) :
305
+ new Uint16Array(buffer);
306
+ const DRIVE_MASK = 0b0000_1000;
307
+ const HIGH_CURRENT_MASK = 0b0000_0100;
308
+ const EXTERNAL_OSCILLATOR_MASK = 0b0000_0010;
309
+ // const ENDPOINT_SIZE_MASK = 0b0100_0000
310
+ const INVERT_TXD_MASK = 0b0000_0001;
311
+ const INVERT_RXD_MASK = 0b0000_0010;
312
+ const INVERT_RTS_MASK = 0b0000_0100;
313
+ const INVERT_CTS_MASK = 0b0000_1000;
314
+ const INVERT_DTR_MASK = 0b0001_0000;
315
+ const INVERT_DSR_MASK = 0b0010_0000;
316
+ const INVERT_DCD_MASK = 0b0100_0000;
317
+ const INVERT_RI_MASK = 0b1000_0000;
318
+ const control = u16[0];
319
+ const config = u16[5];
320
+ const cbusFunction0123 = u16[10]; // 3 2 1 0
321
+ const cbusFunction4 = u16[11]; // x x x 4
322
+ if (control === undefined) {
323
+ return undefined;
324
+ }
325
+ if (config === undefined) {
326
+ return undefined;
327
+ }
328
+ if (cbusFunction0123 === undefined) {
329
+ return undefined;
330
+ }
331
+ if (cbusFunction4 === undefined) {
332
+ return undefined;
333
+ }
334
+ const controlH = (control >> 8) & MASK_8; // 1
335
+ const controlL = control & MASK_8; // 0
336
+ const invertH = (config >> 8) & MASK_8; // 11
337
+ const channelADrive = ((controlL & DRIVE_MASK) === DRIVE_MASK) ? CHANNEL_DRIVE_D2XX : CHANNEL_DRIVE_VCP;
338
+ const highCurrent = (controlH & HIGH_CURRENT_MASK) === HIGH_CURRENT_MASK;
339
+ const externalOscillator = (controlH & EXTERNAL_OSCILLATOR_MASK) === EXTERNAL_OSCILLATOR_MASK;
340
+ // const endpointSize = (controlL & ENDPOINT_SIZE_MASK) === ENDPOINT_SIZE_MASK
341
+ const invert = {
342
+ TXD: (invertH & INVERT_TXD_MASK) === INVERT_TXD_MASK,
343
+ RXD: (invertH & INVERT_RXD_MASK) === INVERT_RXD_MASK,
344
+ RTS: (invertH & INVERT_RTS_MASK) === INVERT_RTS_MASK,
345
+ CTS: (invertH & INVERT_CTS_MASK) === INVERT_CTS_MASK,
346
+ DTR: (invertH & INVERT_DTR_MASK) === INVERT_DTR_MASK,
347
+ DSR: (invertH & INVERT_DSR_MASK) === INVERT_DSR_MASK,
348
+ DCD: (invertH & INVERT_DCD_MASK) === INVERT_DCD_MASK,
349
+ RI: (invertH & INVERT_RI_MASK) === INVERT_RI_MASK
350
+ };
351
+ const cbusFunc0 = (cbusFunction0123 >> 0) & MASK_4;
352
+ const cbusFunc1 = (cbusFunction0123 >> 4) & MASK_4;
353
+ const cbusFunc2 = (cbusFunction0123 >> 8) & MASK_4;
354
+ const cbusFunc3 = (cbusFunction0123 >> 12) & MASK_4;
355
+ const cbusFunc4 = (cbusFunction4 >> 0) & MASK_4;
356
+ return {
357
+ channelADrive,
358
+ highCurrent,
359
+ externalOscillator,
360
+ invert,
361
+ cbusFunction: [
362
+ CBUS_FUNC_NAME_R[cbusFunc0],
363
+ CBUS_FUNC_NAME_R[cbusFunc1],
364
+ CBUS_FUNC_NAME_R[cbusFunc2],
365
+ CBUS_FUNC_NAME_R[cbusFunc3],
366
+ CBUS_FUNC_NAME_R[cbusFunc4]
367
+ ]
368
+ };
369
+ }
370
+ static parseEEPROM_ChipSpecific(buffer, chipInfo) {
371
+ // if(chipInfo.major === USB_MAJOR_TYPE_BM) { return FTDIEEPROM.parseEEPROM_FT2232BM(buffer, chipInfo) }
372
+ if (chipInfo.major === USB_MAJOR_TYPE_R) {
373
+ return FTDIEEPROM.parseEEPROM_232R(buffer, chipInfo);
374
+ }
375
+ if (chipInfo.major === USB_MAJOR_TYPE_2232H) {
376
+ return FTDIEEPROM.parseEEPROM_FT2232H(buffer, chipInfo);
377
+ }
378
+ if (chipInfo.major === USB_MAJOR_TYPE_232H) {
379
+ return FTDIEEPROM.parseEEPROM_232H(buffer, chipInfo);
380
+ }
381
+ return undefined;
382
+ }
383
+ static parseEEPROM(buffer, chipInfo) {
384
+ const u16 = ArrayBuffer.isView(buffer) ?
385
+ new Uint16Array(buffer.buffer, buffer.byteOffset) :
386
+ new Uint16Array(buffer);
387
+ // cache the chip info as it will be updated
388
+ // to reflect the values used when parsing
389
+ const usedChipInfo = { ...chipInfo };
390
+ usedChipInfo.eepromSize = chipInfo.eepromSize ?? u16.length;
391
+ console.log('using eepromSize16', usedChipInfo.eepromSize);
392
+ console.log('with u16 array length', u16.length);
393
+ const checksumCalculated = FTDIEEPROM.calculateChecksum(u16, usedChipInfo.eepromSize);
394
+ const checksum = u16[usedChipInfo.eepromSize - 1];
395
+ // const header = u16[0]
396
+ const vendorId = u16[1];
397
+ const productId = u16[2];
398
+ const type = u16[3];
399
+ const config = u16[4];
400
+ const chipConfig = u16[5];
401
+ // const _groupConfig = u16[6]
402
+ const manufactureInfo = u16[7];
403
+ const productInfo = u16[8];
404
+ const serialInfo = u16[9];
405
+ //
406
+ if (type === undefined) {
407
+ return undefined;
408
+ }
409
+ const chipMajor = type >> 8; // 7
410
+ const chipMinor = type & MASK_8; // 6
411
+ //
412
+ usedChipInfo.major = usedChipInfo.major ?? chipMajor;
413
+ usedChipInfo.minor = usedChipInfo.minor ?? chipMinor;
414
+ //
415
+ const chipOffset = eepromTypeOffset(usedChipInfo);
416
+ const eepromType = eepromTypeFromValue(usedChipInfo, chipOffset ? u16[chipOffset] : undefined);
417
+ if (eepromType !== undefined && ((eepromType.byteLength / 2) !== usedChipInfo.eepromSize)) {
418
+ console.log('Used ChipInfo byteLength does not match Detected EEPROM byteLength', eepromType.byteLength / 2, usedChipInfo.eepromSize);
419
+ }
420
+ //
421
+ if (vendorId === undefined) {
422
+ return undefined;
423
+ }
424
+ if (productId === undefined) {
425
+ return undefined;
426
+ }
427
+ if (config === undefined) {
428
+ return undefined;
429
+ }
430
+ if (chipConfig === undefined) {
431
+ return undefined;
432
+ }
433
+ if (manufactureInfo === undefined) {
434
+ return undefined;
435
+ }
436
+ if (productInfo === undefined) {
437
+ return undefined;
438
+ }
439
+ if (serialInfo === undefined) {
440
+ return undefined;
441
+ }
442
+ //
443
+ const configH = config >> 8; // 9
444
+ const configL = config & MASK_8; // 8
445
+ const _reservedHigh = (configL & CONFIG_RESERVED_MASK) === CONFIG_RESERVED_MASK;
446
+ const selfPowered = (configL & CONFIG_SELF_POWERED_MASK) === CONFIG_SELF_POWERED_MASK;
447
+ const remoteWake = (configL & CONFIG_REMOTE_WAKE_MASK) === CONFIG_REMOTE_WAKE_MASK;
448
+ const maxPower = configH * MAX_POWER_MILLIAMP_PER_UNIT;
449
+ //
450
+ // const chipConfigH = chipConfig >> 8 // 11
451
+ const chipConfigL = chipConfig & MASK_8; // 10
452
+ const isInIsochronous = (chipConfigL & CONFIG_IN_ISOCHRONOUS_MASK) === CONFIG_IN_ISOCHRONOUS_MASK;
453
+ const isOutIsochronous = (chipConfigL & CONFIG_OUT_ISOCHRONOUS_MASK) === CONFIG_OUT_ISOCHRONOUS_MASK;
454
+ const suspendPullDowns = (chipConfigL & CONFIG_SUSPEND_PULL_DOWN) === CONFIG_SUSPEND_PULL_DOWN;
455
+ const useSerial = (chipConfigL & CONFIG_USE_SERIAL) === CONFIG_USE_SERIAL;
456
+ const useUSBVersion = (chipConfigL & CONFIG_USE_USB_VERSION) === CONFIG_USE_USB_VERSION;
457
+ //
458
+ const decoder = new TextDecoder('utf-16le'); // per-USB descriptor spec
459
+ const manufactureStr = FTDIEEPROM.parseEEPROMDescriptorString(manufactureInfo, u16, usedChipInfo.eepromSize, decoder);
460
+ const productStr = FTDIEEPROM.parseEEPROMDescriptorString(productInfo, u16, usedChipInfo.eepromSize, decoder);
461
+ const serialStr = FTDIEEPROM.parseEEPROMDescriptorString(serialInfo, u16, usedChipInfo.eepromSize, decoder);
462
+ //
463
+ const chipSpecificInfo = FTDIEEPROM.parseEEPROM_ChipSpecific(buffer, usedChipInfo) ?? {};
464
+ return {
465
+ vendorId,
466
+ productId,
467
+ chipVersion: {
468
+ chipMajor,
469
+ chipMinor,
470
+ },
471
+ chipInfo: usedChipInfo,
472
+ eepromType,
473
+ config: {
474
+ _reservedHigh,
475
+ selfPowered,
476
+ remoteWake,
477
+ maxPower
478
+ },
479
+ chipConfig: {
480
+ isInIsochronous,
481
+ isOutIsochronous,
482
+ suspendPullDowns,
483
+ useSerial,
484
+ useUSBVersion
485
+ },
486
+ manufacture: manufactureStr,
487
+ product: productStr,
488
+ serial: serialStr,
489
+ ...chipSpecificInfo,
490
+ checksumCalculated,
491
+ checksum
492
+ };
493
+ }
494
+ }
495
+ //# sourceMappingURL=eeprom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eeprom.js","sourceRoot":"","sources":["../src/eeprom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** biome-ignore-all lint/style/noNestedTernary: <explanation> */
2
+ import type { BitMode, ModemControl } from './consts.ts';
3
+ import { MPSSE } from './mpsse/mpsse.ts';
4
+ import { type DeviceStatusInfo } from './status.ts';
5
+ export declare const USB_TRANSFER_OK: USBTransferStatus;
6
+ export declare const USB_TRANSFER_STALL: USBTransferStatus;
7
+ export declare const USB_TRANSFER_BABBLE: USBTransferStatus;
8
+ export declare const REQUEST_TYPE_VENDOR = "vendor";
9
+ export declare const RECIPIENT_DEVICE = "device";
10
+ export declare const INTERFACE_DIRECTION_IN = "in";
11
+ export declare const INTERFACE_DIRECTION_OUT = "out";
12
+ export declare const INTERFACE_TYPE_BULK = "bulk";
13
+ export declare const DEFAULT_CONFIGURATION_NUMBER = 1;
14
+ export declare const DEFAULT_INTERFACE_NUMBER = 0;
15
+ export declare function assertDataViewNotShared(view: DataView): asserts view is DataView & {
16
+ buffer: ArrayBuffer;
17
+ };
18
+ export declare class FT232H {
19
+ #private;
20
+ static from(device: USBDevice): Promise<FT232H>;
21
+ constructor(device: USBDevice, interfaceNumber: number, epIn: number, epOut: number);
22
+ get mpsse(): MPSSE;
23
+ reset(kind?: number): Promise<void>;
24
+ setBitMode(mode: BitMode): Promise<void>;
25
+ getModemStatus(): Promise<DeviceStatusInfo | undefined>;
26
+ getLatencyTimer(): Promise<number>;
27
+ setLatencyTimer(latency: number): Promise<void>;
28
+ readPins(): Promise<number>;
29
+ setModemControl(control: ModemControl): Promise<void>;
30
+ setEventChar(data: number, enable?: boolean): Promise<void>;
31
+ setErrorChar(data: number, enable?: boolean): Promise<void>;
32
+ sendData(data: BufferSource): Promise<number>;
33
+ readData(length: number): Promise<DataView<ArrayBuffer>>;
34
+ readEEPROM(address: number, length: number): Promise<DataView<ArrayBuffer>>;
35
+ writeEEPROM(address: number, value: number): Promise<number>;
36
+ }
37
+ //# sourceMappingURL=ft232h.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft232h.d.ts","sourceRoot":"","sources":["../src/ft232h.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAEN,KAAK,gBAAgB,EAErB,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,eAAe,EAAE,iBAAwB,CAAA;AACtD,eAAO,MAAM,kBAAkB,EAAE,iBAA2B,CAAA;AAC5D,eAAO,MAAM,mBAAmB,EAAE,iBAA4B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,WAAW,CAAA;AAC3C,eAAO,MAAM,gBAAgB,WAAW,CAAA;AAExC,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAC1C,eAAO,MAAM,uBAAuB,QAAQ,CAAA;AAC5C,eAAO,MAAM,mBAAmB,SAAS,CAAA;AAEzC,eAAO,MAAM,4BAA4B,IAAI,CAAA;AAC7C,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAGzC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAI1G;AAED,qBAAa,MAAM;;IAOlB,OAAa,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpD;IAED,YAAY,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAMlF;IAED,IAAI,KAAK,IAAI,KAAK,CAAuB;IAmDnC,KAAK,CAAC,IAAI,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;IAEK,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7C;IAEK,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAC,SAAS,CAAC,CAM1D;IAEK,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAOvC;IAEK,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpD;IAEK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAKhC;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1D;IAEK,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7D;IAEK,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7D;IAGM,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAIlD;IAEI,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAM7D;IAEK,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAOhF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIjE;CAKD"}