-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathft2232h.html
71 lines (71 loc) · 3.51 KB
/
ft2232h.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Using FT2232H | SHIEN LONG</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1><a href="index.html">SHIEN LONG</a></h1>
<hr>
<h2>USING FT2232H AS SYNCHRONOUS DIGITAL OUTPUT</h2>
<p>
I was looking for a solution that could generate digital outputs meeting below conditions:
</p>
<ul>
<li>Pins that are synchronous</li>
<li>At least 4 IO pins</li>
<li>Built in USB</li>
<li>Have Python wrappers or packages</li>
</ul>
<p>
Having a USB connection from the computer to the board would be convenient.
USB cables are relatively easy and cheap to buy.
Also having a built in USB protocol makes it so much easier to work with.
<p>
I do not need a powerful board or solution.
Therefore, there is no need for dedicated IDE which would increase my cost considerably.
Something with free drivers and DLLs that has a Python wrapper would help alot.
<p>
A minimum of 4 IO pins for what I need.
Of course, more is better.
<p>
The IO pins has to be synchronous.
It means that the bit stream coming out of each pin is in sync.
Similar to protocols like JTAG, SPI or I2C...there is a clock pin and having a clock pin means other pins are sync'ed to the clock pin.
My application is a custom protocol, therefore will not be able to use JTAG, SPI or I2C, but would need synchronous outputs to work.
<p>
Speed is not a big issue at the moment. If it is, then will come back and update this paragraph.
<p>
The FT2232H from FTDI has 2 channels (Port A and Port B).
There are 8 pins available on each port while in synchronous mode.
It has a max clock of 30MHz, although I am not sure if I can get that speed on the hardware (DLP-2232H) I am using.
The MPSSE (Multi-Protocol Synchronous Serial Engine) as the name suggest, is able to handle multiple synchronous protocols such as (JTAG, SPI, I2C and bitbang mode).
FTDI provides the <a href="https://ftdichip.com/drivers/d2xx-drivers/">driver</a> software and <a href="https://ftdichip.com/wp-content/uploads/2022/05/AN_396-FTDI-Drivers-Installation-Guide-for-Windows-10_11.pdf">
install guides</a>.
</p>
<h3>HARDWARE/DONGLE WITH FT2232H</h3>
<p>
<a href="https://www.dlpdesign.com/usb/2232h.php">DLP-2232H</a> from DLP Design.
<p>
Add a jumper or short pin 19 and 20 to enable the dongle to power up using USB supplied power.
This will route power from PORTVCC to EXTVCC which supplies to VCCUSB.
There are other power up methods.
I have not tried out the other methods, so will not discuss it here.
<p>
The header pins on the DLP-2232H dongle looks small but they are spaced 2.50mm apart.
I have placed it on breadboards and general purpose IDC sockets and it works well.
</p>
<h3>INSTALLING D2XX DRIVER</h3>
<p>
Before installing the driver, open Device Manager on Windows, look at Ports (COM & LPT), observe how many COM ports are available.
Do not connect the hardware dongle yet. Install the <a href="https://ftdichip.com/drivers/d2xx-drivers/">driver</a> first.
After install, connect the hardware/dongle, then it should load the "ftd2xx.dll" file.
You can check the Device Manager again, and observe any new or additional COM port.
Then in Device Manager, look at Universal Serial Bus Controllers, you should see an additional USB Serial Converter.
That would indicate a successful installation.
"ftd2xx.dll" file should be located in path "C:\Windows\system32".
</p>
</body>
</html>