Python wrapper around libFT4222.
Project description
python-ft4222
The FT4222H is a High/Full Speed USB2.0-to-Quad SPI/I2C device controller. This project provides (incomplete) python binding to LibFT4222 (user guide). It provides a similar api than LibFT4222 does.
The complete documentation can be found here
Example
I2C Master
import ft4222
import ft4222.I2CMaster
# list devices
nbDev = ft4222.createDeviceInfoList()
for i in range(nbDev):
print(ft4222.getDeviceInfoDetail(i, False))
# open device with default description 'FT4222 A'
dev = ft4222.openByDescription('FT4222 A')
# init i2c master, clock speed 100kHz
dev.i2cMaster_Init(100000)
# do a i2c transfers where full control is required
slave = 1 # address
# read one byte, don't stop
data = dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.REPEATED_START, 1)[0]
# read another 5 bytes
data += dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.NONE, 5)
# another byte, than stop
data += dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.STOP, 1)
GPIO
import time
import ft4222
from ft4222.GPIO import Dir, Port, Output
# open device with default description 'FT4222 A'
dev = ft4222.openByDescription('FT4222 A')
# use GPIO2 as gpio (not suspend out)
dev.setSuspendOut(False)
# use GPIO3 as gpio (not wakeup)
dev.setWakeUpInterrupt(False)
# init GPIO2 as output
dev.gpio_Init(gpio2 = Dir.OUTPUT)
# generate a square wave signal with GPIO2
while True:
dev.gpio_Write(Port.P2, output)
output = not output
time.sleep(0.1)
SPI Master and GPIO
The gpio used in this example indicate the duration of the whole spi transfer and is not used as chip/slave select.
import ft4222
from ft4222.SPI import Cpha, Cpol
from ft4222.SPIMaster import Mode, Clock, SlaveSelect
from ft4222.GPIO import Port, Dir
from time import sleep
# open 'device' with default description 'FT4222 A'
devA = ft4222.openByDescription('FT4222 A')
# and the second 'device' on the same chip
devB = ft4222.openByDescription('FT4222 B')
# init spi master
devA.spiMaster_Init(Mode.SINGLE, Clock.DIV_8, Cpol.IDLE_LOW, Cpha.CLK_LEADING, SlaveSelect.SS0)
# also use gpio
devB.gpio_Init(gpio0 = Dir.OUTPUT)
# generate data to send
data = bytes([x for x in range(256)]*4)
# set port0 1 (-> note this is *not* the spi chip select, the chip select (SS0) is generated by the spi core)
devB.gpio_Write(Port.P0, 1)
for _ in range(3):
# write data in a single write
devA.spiMaster_SingleWrite(data, True)
# wait a short while
sleep(0.5)
# set port0 0
devB.gpio_Write(Port.P0, 1)
Accessrights
Under Linux, the usb device is normally not accessibly by a normal user, therefor
a udev rule is required. Create or extend /etc/udev/rules.d/99-ftdi.rules
to
contain the following text:
# FTDI's ft4222 USB-I2C Adapter
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="601c", GROUP="plugdev", MODE="0666"
Requirements
Windows
MSVCR100.dll/MSVCP100.dll from Microsoft Visual C++ 2010 Redistributable Package need to be installed. Today, on most systems, these DLLs (or the package) should already be installed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ft4222-1.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7af52e4d61e2bcaa10b802e6f1af29823da12a27f520c799823490e6fd9ebb19 |
|
MD5 | aee3a5746bc2a019edd8ecc180714552 |
|
BLAKE2b-256 | 63b357a45f9ceab8c1051a8503f3fad457c9f35cea4443f7baa6c2087e5d317e |
Hashes for ft4222-1.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 834b9e549d66f3cc0bbe75983b32e756258523b70363bb67970a7be21c9e3d8f |
|
MD5 | 0d2f6b275b5da8b5f9c996731e190212 |
|
BLAKE2b-256 | bd99216a21f7086a26810512baee35c05fe520fc9e52380fba8b76c3850db1b8 |
Hashes for ft4222-1.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d00b36bdac3960c377f3a625fc352eca20e36825ddff178feaae97c2d9a8846c |
|
MD5 | 2b77bde50b9b2b030e94574788e34ee7 |
|
BLAKE2b-256 | 90f3fead2ea1591d61d0a02756808eceafcb344911d87706df5fb24f6f72443b |
Hashes for ft4222-1.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99ef3c412017a85ef9f90d8fc884ba66dae71e85433c8890da6aec38eb0288ab |
|
MD5 | f4d80360f428998a3e20f7dc5ddad2ba |
|
BLAKE2b-256 | dca15dc0e7bf5352529f432da1da5cc3d83b2500116c54ffe9bc619f0818cb45 |
Hashes for ft4222-1.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2df65d174200c1451f5646a109e683aada9d7a076bf5f7ce682145d10725445a |
|
MD5 | e27780244bd1733763b54fde797faa98 |
|
BLAKE2b-256 | 2396e62a0d368b330baf209b2770ba074378209d52bf21d5dd85899735157697 |
Hashes for ft4222-1.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 035ea7fc9ad627b44be57c31e87bc8d445ebd7cf6ac991d750fedc999683d64e |
|
MD5 | 624be3b8a372cf4e510d979b2f539cbc |
|
BLAKE2b-256 | a7b54ea2cfcd404f6d7ba1c71213b6fc3ca15f748461d3746623e815e3a67f2e |
Hashes for ft4222-1.10.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 755a70ab2c5d3fd94030e51fd82c332bc2463c6c455adf093d12e2f3803ea207 |
|
MD5 | d9d29ab054bc86de7767634beca61034 |
|
BLAKE2b-256 | b2da17eb6f0fe5a4f607887602bf3542522737762a70d30a2c49827a13f0f40b |
Hashes for ft4222-1.10.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca8c5aff74e213d8b658e7cdd8df3012e55023a2d379b5074628f6bb8947359a |
|
MD5 | 94712124c81d371a7d0485ae540ec46d |
|
BLAKE2b-256 | 563179207854a8b00bb5e0c57379ff4599d135c6d9b97a93209c665017f44482 |
Hashes for ft4222-1.10.0-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d7a49febc2b96ebed4b843262ab1f00843d158d6f4877c8ee19219f1c41f0da |
|
MD5 | ab9efa713769ff601e9d649d40db1dd8 |
|
BLAKE2b-256 | 94b1602c377ae5783ee0eb3b6208582e1937489755c4ac68a3d0e65a935b2fe5 |
Hashes for ft4222-1.10.0-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe668caa43bcacfbf3287cff8b4b11bb586a71d4722307e574f60180bb4a351e |
|
MD5 | 7d2cf48b738a31da35238ded652a39e9 |
|
BLAKE2b-256 | f1c0e63810a5fba4a7966fd9b2cb3a851e0341c2f2a7be87b8758ab1d4be6ba2 |
Hashes for ft4222-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8c2655fe7192eb80ef25ab750123139f591e0f079fe2a5e6f31b7cd6f015a9f |
|
MD5 | 5b6f24cd54035da992e42eaede2f5d27 |
|
BLAKE2b-256 | 93013c6244da3459f9930fac4c2b2c320a8cee6c40be4b50a48c0cf1acc603a3 |
Hashes for ft4222-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ecaae4e5ec3bedcdbe04a5792bf08119040669cf58c02df947395e6a96bd18c |
|
MD5 | 5f079f9a1ac6d74e4080521ac5c6ca8e |
|
BLAKE2b-256 | 5c2d5ae560be3acb0586c1f4af5dfd0e8a543397964a8dfc7e4c918a85810ed6 |
Hashes for ft4222-1.10.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad626507e9b1520f2f3b6f98ddca0d257c93b844824a1ab7cbb58759b0fbca84 |
|
MD5 | 7503d440baf7097daf61367f0be291fb |
|
BLAKE2b-256 | 72e1de68a59f97d0ce3292e7ae513a277eadcb6c61ea5f168b133b5d6e1fc139 |
Hashes for ft4222-1.10.0-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 806d4117d0814c390c7f280345aa99168ec989ca49b20259ce593ea79bcd246f |
|
MD5 | b416ae39f98c5147ccadd2e41601c4ab |
|
BLAKE2b-256 | 6d9f5a819d36f96ed1705405f5213390df5b97b91a333d13c557c4526d17a8b1 |
Hashes for ft4222-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20f2cb89e63ea755d69a4d41c2dcba94d2f720b6e736ea51bdf681f1e809763c |
|
MD5 | 20e62b2f709a66ceace3bfee6a0ed811 |
|
BLAKE2b-256 | 216355652855c9e2b735b718d854bffe710ce9815b770b17971c9b2393f11679 |
Hashes for ft4222-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df9da4d5575d51511ba58e73ee434061dc709ce69491656ec109d995ce304167 |
|
MD5 | e39134d5982444c9cc9eea3f0d3e7377 |
|
BLAKE2b-256 | b3694d4cd4d320bcf2c4fdff267dab7902616d8b0b45fea56d5059049b0678c9 |
Hashes for ft4222-1.10.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b05e499fd3f1baef225671f3afd25bf93e1f287fa17326c90c1f8db70abb3e89 |
|
MD5 | bcee5cadbbda5a386e5a51c0f93b14fe |
|
BLAKE2b-256 | 09d977858518c53ea74e6cfb62afff179a3ec7a0786aa661b6e6569447d592f5 |
Hashes for ft4222-1.10.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a039d4230926fa9b600baa12903843c53d6b238eb93e99ae68eeeb450d6f4bdc |
|
MD5 | c433c48dd973bdce63ebfeabb575e5c1 |
|
BLAKE2b-256 | d8a13d54acbe198a6102b5b9f0aac9c263e0471c76359a2937189c2838f5c982 |
Hashes for ft4222-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cedabcd6c554e78f3479350153c5a347355ccc977ceeb24726edc37d3e7edb7 |
|
MD5 | 3ab3eff02a3da8edbb0364185b909ece |
|
BLAKE2b-256 | 33c23acec76ee02e4b8fa8abd018f3523e0ff7d698aaa4b6a819f86cc535c3b1 |
Hashes for ft4222-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd003a91ecaf20bc4d4ce8f0aea4a5ecfbc17a3840d41b0ce27410e027530cd0 |
|
MD5 | 0b73db57f03da20192e470b3f3b35007 |
|
BLAKE2b-256 | 5422a771e4f8158832b91cbe828079ce11054aefe5a2fcc4cc3e42d4c7779cea |
Hashes for ft4222-1.10.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 875478f2c8c0fa128037c389969375ede546dde8cf7a5ae796421832aa6dd634 |
|
MD5 | e1f54123218bbf3f63be4c1aff9c3806 |
|
BLAKE2b-256 | 55e3fa207d4016a9df941a3f76402e97f1e0f2e10396f1ecacbeda4edef99c26 |
Hashes for ft4222-1.10.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eb40e86fd43ab8d12b33d092369419e275292a6d57f1ef7de30e63cd8dc9bd5 |
|
MD5 | 77b84375dd14ed36f89f8569effafde4 |
|
BLAKE2b-256 | 9890f6e87e96434d85fc4663c8c1e7790707d4d927f7a6b6b24e26c3980e72ea |
Hashes for ft4222-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69fa55d8b5bc7da5a20254d480d4764dbcaa1ca74cd2d10bbc0ce39d39891f2a |
|
MD5 | e17b13b54916f79efd7af0027f318f6f |
|
BLAKE2b-256 | e201b90e88f6fcef90bf8f0096f52dca930f46dad42702b246827bbbd997adc8 |
Hashes for ft4222-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88170a0aaa321ae8c974a664b2316fab00f86dd8249ff5927ea4d58a2ed7fa23 |
|
MD5 | 73ef348b781545ab7dae0ba95802a420 |
|
BLAKE2b-256 | 26ce0cb1d47db4d2f2d2987f5574da0c0f872b7a9eb36b779f94b8ed1b377c8d |
Hashes for ft4222-1.10.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 648a739bb5c0ca53b5cb0698e0ebb54ddaea090878a02cbe9039b3d80cf818ba |
|
MD5 | 35bd45200bef75619efe0ea137d447b8 |
|
BLAKE2b-256 | b5a168737fb3dfadbda91851839044fca145bec20c9da28db04a0c0fe48d7d44 |
Hashes for ft4222-1.10.0-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 057c88eaa2db14a05163b90a7ba2938c0aa6e3870fec31c70051fb791cfbbc22 |
|
MD5 | 166820d78fc9506f6ae1b77fa7bac694 |
|
BLAKE2b-256 | e3f009cdfaf7e9e26b94d070910a2bdf241f4cf54443762bda40e7c65874340e |
Hashes for ft4222-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0bd0632063b0e4bb2852ccde3fb95252ea7f0a0bfd3e4c3ee677f4ec63c2520 |
|
MD5 | 019f242080c2fb4d3983d061508793b3 |
|
BLAKE2b-256 | 8fd01f1b4c9170e27091b156de15c983c0bbadefda6bd7c3f5774775b7c40c82 |
Hashes for ft4222-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db4b489cd434b92748e45695c1313716db4e00bdda4f70b6bcf99cdc042a34d8 |
|
MD5 | d732d936dafe6f694a4ca172a4a6623d |
|
BLAKE2b-256 | 22b5061a4437650501948d522324f6a1b90bc370e62e8d2113cd82fc5545947d |
Hashes for ft4222-1.10.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f2458e6c62d251b6219cfa0fbcfb9ccfa22854c5d7463b862f11b268019ec66 |
|
MD5 | 2096874c4c5c0beaca00a6ba4b087938 |
|
BLAKE2b-256 | 2466e57df3bde2b0e98f584c79deb9ce4cfb01faaf931898571bd87b179d7d77 |
Hashes for ft4222-1.10.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 713ed85fbb8f11755ae7ed932302192a34d2aa8834ffa45a7c345d3a5ba8f67b |
|
MD5 | b8cf6094af6f6d33ecf45544ee5f5361 |
|
BLAKE2b-256 | 9c0638bfaabc46dd5528f787be7f7dd51d63f7d4a7b5ab4c105b5ff76aef4994 |
Hashes for ft4222-1.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cae991a917602635238c144395bb59a516b7684b6599da251a88cfe37a5ed8f |
|
MD5 | cb30dcd596ce20b0423ccada29d42a94 |
|
BLAKE2b-256 | 39546ff73f75ed224c21cb6d7fe7cce6968a49169c3fee5b247ecbe697cea066 |
Hashes for ft4222-1.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e051c89cb45f964640e355506efa74b41c424e9ea9046367534180075be0a95c |
|
MD5 | b281e382ec43a2dae3753bcba29f172d |
|
BLAKE2b-256 | 4bc9d972a05d72e368fab2f0b481c0f85fc82babba2ecbcf3476627a52f3cc94 |
Hashes for ft4222-1.10.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83efcb50649a7ab4c7e045467357029f16ef0be064d46ffe7ea1e06eb9ad85f8 |
|
MD5 | 7862707c142de79a2296c7bb7b3818ab |
|
BLAKE2b-256 | 74de1b23b6fd8e9d7eeac82945672686ccc6b418604eb36f60978d02c4afef76 |
Hashes for ft4222-1.10.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18a6f99e31c767b6ccb7e2f0e7f6cc51d15c9b685e2b81fd12ab08cac0924289 |
|
MD5 | 74675df0dff6a5fec2e54d346b50faa5 |
|
BLAKE2b-256 | c7e9e333d5140509b3b7159e19ed8478b638a8e4d9108f04fa29e9739e803830 |