I’ve been working with a couple of the engineers at
FTDI trying to isolate the issue of inconsistent clocking in BitBang mode when writing
data. After a couple of months of back and forth I finally received a response
that there is a known hardware bug in the chips. The information was
located in the FTDI internal knowledge base. Here is the KB snippet from
“Many users complain that
using the devices in BitBang mode does not produce consistent pulse widths.
This is true in 'BM, 'R and FT2232 devices. The reason is related to how
the clock is generated when it is divided down. It is not correctly synced to
the USB clock and therefore the pulse width can vary. A workaround to ensure a
consistent pulse width is to set the baud rate for 3,000,000 (divisor = 1).
With this rate a consistent pulse width is produced. By padding the data stream
you can then create wider pulses, albeit at the expense of extra data traffic.
It is anticipated this feature will be resolved in future devices starting with
FT2232H / FT4232H.”
The work around will not work because it would require a USB
speed of 384 Mbits/sec to keep up with the BitBang write tick (baud rate * 16)
and all of the identified chips only support 12 Mbits/sec. I was told it was
fixed in the FT2232H, which I am going to try in the coming weeks. If
this can keep someone from beating their head against the wall when getting inconsistent
clocking while writing out in BitBang mode, then I have accomplished my goal.