Kākoʻo Python no nā polokalamu huahana FTDI

ʻO ke kumu o kēia ʻike loea e hōʻike i ka hoʻohana ʻana i ka polokalamu Python me nā huahana FTDI.

ʻO ka hoʻohana ʻana i nā hāmeʻa FTDI i ke kākoʻo ola a / a i ʻole nā ​​noi palekana e pili ana i ka pilikia o ka mea hoʻohana, a ua ʻae ka mea hoʻohana e pale, hoʻopaʻa, a paʻa ʻole i ka FTDI mai nā pōʻino a pau, nā koi, nā hoʻopiʻi, a me nā lilo i hopena mai ia hoʻohana.

Hoʻolauna

Hoʻohana maʻamau ʻia ʻo Python no ka hoʻomohala ʻana i nā polokalamu, ka automation hana, ka ʻikepili ʻikepili, a me nā mea ʻē aʻe.
Hōʻike kēia ʻatikala ʻenehana i nā ala e hiki ai ke hoʻohana ʻia ka polokalamu Python e nā huahana FTDI e hilinaʻi nei i ka maʻamau o FTDI Keaukaha VCP or Keaukaha D2xx.
Nui nō hoʻi nā hale waihona puke python ʻaoʻao ʻekolu e hōʻike ʻia ana a ua helu ʻia kēia ma aneʻi.
Loaʻa ke kākoʻo Python no FT600/1 ICs e hoʻohana ana i ka mea hoʻokele D3xx akā ʻaʻole i uhi ʻia i kēia palapala. E ʻoluʻolu e ʻike i nā ʻaoʻao huahana no kēia mau IC no ka ʻike hou aku.

He aha ka polokalamu Python?

Ke lilo nei ʻo Python i ʻōlelo papahana kaulana loa.
Hiki ke hoʻohana ʻia no ka prototyping wikiwiki, a i ʻole no ka hoʻomohala ʻana i ka lako polokalamu mākaukau.
Hana ʻia ia ma nā paepae like ʻole (e laʻa, Windows, MacOS, Linux, etc.) a he syntax maʻalahi e like me ka ʻōlelo Pelekania. Hāʻawi kēia syntax i nā mea hoʻomohala e kākau i nā papahana me nā laina liʻiliʻi ma mua o kekahi mau ʻōlelo papahana ʻē aʻe.
Holo ʻo Python ma kahi ʻōnaehana unuhi, ʻo ia hoʻi, hiki ke hoʻokō ʻia ke code i ka wā i kākau ʻia ai ʻo ia ka wikiwiki o ka prototyping.
Nui nā kumuwaiwai pūnaewele i loaʻa no Python me kēia ka mea nui webkahua: https://www.python.org/

Kākoʻo Keaukaha Python

Hōʻike kēia ʻāpana i ka hoʻohana ʻana i ka mea hoʻokele VCP a me D2xx o FTDI me ka polokalamu Python.

VCP

He ex maʻalahi kēia ʻāpanaampe wehe i kahi awa COM me ka hoʻohana ʻana i ka mea hoʻokele VCP, e hōʻike i ke awa COM i wehe ʻia i ka pale a laila e hoʻouna a loaʻa i kekahi mau huaʻōlelo i ke awa hāmama a hōʻike i nā mea ma ka pale. Hōʻike ʻia ka hopena mai ke code ma lalo nei. E hoʻomaopopo ua hoʻohana ʻia kahi kaula FTDI me TX i RX loopback no ka hoʻāʻo maʻalahi.

Loaʻa ka papa inoa code ma Pākuʻi C – Serialtest.py.
No ka holo ʻana i kēia code, pono ʻoe e hoʻokomo i ka waihona pyserial. Hiki iā ʻoe ke hana i kēia ma ka holo ʻana i kēia kauoha ma kāu kikowaena:
pip hoʻokomo i ka pyserial
Ke hoʻokomo ʻia ka waihona pyserial, hiki iā ʻoe ke holo i ke code ma ka mālama ʻana ma ke ʻano he .py file a laila holo i kēia kauoha ma kāu kikowaena:
kou_fileinoa.py

D2xx

He ʻelua ex maʻalahi kēia ʻāpanaampnā mea hoʻohana i nā API D2xx kumu.

  • E kiʻi i ka helu Port COM
  •  E kiʻi i ka ʻike kikoʻī o ka hāmeʻa

Nānā i ka Ke alakaʻi o ka mea papahana D2XX no ka 'ike hou aku no keia mau API.

Loaʻa iā COM Port Number

ʻO kēia ex maʻalahiampHoʻouka ʻo ia i ka waihona d2xx, wehe i ka mea FTDI mua i loaʻa, loaʻa ka COM Port
helu me FT_GetComPortNumber a laila pani ia.
Loaʻa ka papa inoa code ma Pākuʻi D– GetComPortNumber.py.
Ke hoʻokō ʻia ka mea hoʻopuka e like me kēia:

E kiʻi i ka ʻike kikoʻī o ka hāmeʻa
ʻO kēia ex maʻalahiampHoʻouka ʻo ia i ka waihona d2xx a hoʻohana iā FT_Create Device Info List a me FT_Get Device Info Detail no ka loaʻa ʻana o nā kikoʻī hāmeʻa FTDI a papa inoa iā lākou.
Loaʻa ka papa inoa code ma Pākuʻi E – GetDeviceInfoDetail.py.
Ke hoʻokō ʻia ka mea hoʻopuka e like me kēia:

ʻEkolu ʻaoʻao Python Examples

Nui nā hale waihona puke ʻaoʻao ʻekolu a me exampke ʻike ʻia nei i ka hoʻonui ʻia ʻana o ka ʻōlelo papahana, ua helu ʻia kekahi ma ʻaneʻi akā ʻoi aku ka nui o ka loaʻa.

PyUSB

Hāʻawi ʻo PyUSB i ke ala maʻalahi i ka ʻōnaehana Universal Serial Bus (USB) o ka mīkini hoʻokipa no Python 3.
ʻO PyUSB kahi mea waiwai API, backend neutral Python USB module maʻalahi e hoʻohana. https://pyusb.github.io/pyusb/

pylibftdi

E ʻoluʻolu e hoʻohana kēia libftdi ʻAʻole ia he mea hoʻokele FTDI i kākoʻo ʻia akā hiki ke hoʻohana ʻia e hoʻokele i nā polokalamu FTDI.
ʻO pylibftdi kahi liʻiliʻi Pythonic liʻiliʻi i nā polokalamu FTDI. https://pypi.org/project/pylibftdi/

PyFtdi

Manaʻo ʻo PyFtdi i ka hāʻawi ʻana i kahi mea hoʻohana-space no nā polokalamu FTDI kaulana, i hoʻokō ʻia ma ka ʻōlelo Python maʻemaʻe.
https://pypi.org/project/pyftdi/

ʻAdafruit

Ua hana ʻo Adafruit i alakaʻi e hōʻike i ke ʻano o ka hoʻohana ʻana i kahi FT232H e hoʻopili ai i nā mea ʻike I2C a me SPI a me nā breakouts mai kāu PC desktop e holo ana i Windows, Mac OSX, a i ʻole Linux.
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h

ftdi-python

ʻO kēia examphōʻike ʻo ia i kahi ʻanuʻu aʻe i ka hoʻokele FTDI IC mai Python e aʻo e pili ana i kā lākou hana.
https://iosoft.blog/ftdi-python/

ftd2xx ctypes Wrapper

ʻO ka ftd2xx kahi kāpili python maʻalahi a puni ka D2XX DLL mai FTDI me ka hoʻohana ʻana i nā ctypes. https://pypi.org/project/ftd2xx/

python-ft4222

ʻO kēia exampHāʻawi ka python i ka LibFT4222 pono e hoʻohana me FT4222H IC a hāʻawi i kahi API like me LibFT4222. https://pypi.org/project/ft4222/

Ka hopena

Hōʻike kēia ʻatikala ʻenehana pehea e hoʻohana ai i ka polokalamu Python me nā huahana FTDI me ka mea hoʻokele VCP a me D2xx a ua papa inoa i kekahi mau ʻaoʻao ʻekolu.amples.

ʻIke pili

Keʻena poʻo - Glasgow, UK
Nā Manaʻo ʻenehana Future International Limited (UK)
Unit 1, 2 Seaward Place, Centurion Business Park Glasgow G41 1HH United Kingdom
Tel: +44 (0) 141 429 2777
Fax: +44 (0) 141 429 2758

leka uila (kuai) kūʻai1@ftdihip.com
E-mail (Kokoko) kākoʻo1@ftdihip.com
E-mail (Nīnau Nui) admin1@ftdihip.com

Keena Lala – Taipei, Taiwan

Nā Manaʻo ʻenehana Future International Limited (Taiwan)
2F, Helu 516, Sec. 1, Alanui NeiHu
Taipei 114
Taiwan, ROC
Tel: +886 (0) 2 8797 1330
Fax: +886 (0) 2 8751 9737

leka uila (kuai) tw.sales1@ftdihip.com
E-mail (Kokoko) tw.support1@ftdihip.com
E-mail (Nīnau Nui) tw.admin1@ftdihip.com

Keena Laa – Tigard, Oregon, USA
Nā Manaʻo ʻenehana Future International Limited (USA)
7130 SW Loop Fir
Tigard, OR 97223-8160
USA
Tel: +1 (503) 547 0988
Fax: +1 (503) 547 098

E-Mail (Kuai) us.sales@ftdihip.com
E-Mail (Kokoko) us.support@ftdihip.com
E-Mail (Nīnau Nui) us.admin@ftdihip.com

Keena Lala – Shanghai, Kina

Nā Manaʻo ʻenehana Future International Limited (Kina)
Room 1103, No. 666 West Huaihai Road, Shanghai, 200052 Kina
Tel: +86 (21) 62351596
Fax: +86 (21) 62351595
leka uila (kuai) cn.sales@ftdihip.com
E-mail (Kokoko) cn.support@ftdihip.com
E-mail (Nīnau Nui) cn.admin@ftdihip.c

Web Paena http://ftdichip.com

Mea Hoolaha a me na Lunamakaainana kuai
E ʻoluʻolu e kipa i ka ʻaoʻao Sales Network o ka FTDI Web paena no nā kikoʻī pili o kā mākou mea hoʻolaha a me nā mea kūʻai aku ma kou ʻāina.

ʻO nā mea hana a me nā mea hoʻolālā pūnaewele ke kuleana e hōʻoia i kā lākou mau ʻōnaehana, a me nā mea hana Future Technology Devices International Ltd (FTDI) i hoʻokomo ʻia i loko o kā lākou mau ʻōnaehana, e hoʻokō pono i nā pono palekana, hoʻoponopono a me nā ʻōnaehana pae. Hāʻawi ʻia nā ʻike a pau e pili ana i ka noi ma kēia palapala (me nā wehewehe noiʻi, nā polokalamu FTDI i manaʻo ʻia a me nā mea ʻē aʻe) no ke kuhikuhi wale ʻana. ʻOiai ua mālama ʻo FTDI e hōʻoiaʻiʻo i ka pololei, aia kēia ʻike i ka hōʻoia ʻana o ka mea kūʻai aku, a hōʻole ʻo FTDI i nā kuleana āpau no nā hoʻolālā ʻōnaehana a no nā kōkua noi i hāʻawi ʻia e FTDI. ʻO ka hoʻohana ʻana i nā hāmeʻa FTDI i ke kākoʻo ola a / a i ʻole nā ​​noi palekana e pili ana i ka pilikia o ka mea hoʻohana, a ʻae ka mea hoʻohana e pale, hoʻopaʻa, a paʻa ʻole i ka FTDI mai nā pōʻino, nā koi, nā hoʻopiʻi, a i ʻole nā ​​​​uku i hoʻohana ʻia. Hiki ke loli kēia palapala me ka ʻole o ka hoʻolaha. ʻAʻohe kūʻokoʻa e hoʻohana i nā patent a i ʻole nā ​​​​kuleana waiwai naʻauao ʻē aʻe i hōʻike ʻia e ka paʻi ʻana o kēia palapala. ʻAʻole hiki ke hoʻololi ʻia ka ʻike holoʻokoʻa a i ʻole kekahi ʻāpana o ka ʻike i loko, a i ʻole ka huahana i wehewehe ʻia i loko o kēia palapala, a hana hou ʻia ma kekahi ʻano mea a i ʻole ka uila me ka ʻole o ka ʻae mua ʻana o ka mea nona ke kuleana kope. Nā Manaʻo ʻenehana Future International Ltd, Unit 1, 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, United Kingdom. Helu Hui Pū ʻIa ʻo Scotland: SC136640.

Pākuʻi A – Nā kuhikuhi

Na Palapala Palapala

Keaukaha D2xx
Keaukaha VCP
https://www.python.org/
Ke alakaʻi o ka mea papahana D2XX
https://pyusb.github.io/pyusb/
https://pypi.org/project/pylibftdi/
https://pypi.org/project/pyftdi/
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h
https://iosoft.blog/ftdi-python/
https://pypi.org/project/ftd2xx/
https://pypi.org/project/ft4222/
libftdi

Nā Koiua a me nā Hoʻolaha

ʻŌlelo wehewehe
API ʻAno polokalamu polokalamu
IC Kaapuni Hui
USB Universal Se
VCP Awa COM Virtual

Pākuʻi B - Papa inoa o nā Papa a me nā Kiʻi

Papa papa

N/A

Papa inoa o na Kii

Kiʻi 1 – Logo Python……………………………………………………………………………………………….. 5

Pākuʻi C – Serialtest.py

hoʻokomo i ka serial
manawa lawe mai
# E hoʻonoho i ka helu port COM
portName = 'COM7'
# Hoʻonohonoho i ka helu baud
baudRate = 115200
# Wehe i ke awa serial
ho'āʻo:
ser = serial.Serial(portName, baudRate)
paʻi ('Wehe ʻia ke awa COM: ' + portName)
koe:
print("Ua loaʻa kahi ʻokoʻa")

# Hoʻouna 'Aloha' e hoʻomaka i ka papahana
ser.write(b'Aloha')
hiamoe (1)
# Heluhelu laina
heluhelu_ʻikepili = ser.read(5)
print("ʻIke i loaʻa: " + str (heluhelu_data))
# E pani i ke awa serial
ser.close

Pākuʻi D– GetComPortNumber.py

#!/usr/bin/env python
lawe mai os
hoʻokomo sys
lawe mai i nā ctypes
################################################################################
# D2XX wehewehe
def check(f):
ina f != 0:
inoa = [
“FT_OK”,
“FT_INVALID_HANDLE”,
“FT_DEVICE_NOT_FOUND”,
“FT_DEVICE_NOT_OPENED”,
“FT_IO_ERROR”,
“FT_INSUFFICIENT_RESOURCES”,
“FT_INVALID_PARAMETER”,
“FT_INVALID_BAUD_RATE”,
“FT_DEVICE_NOT_OPENED_FOR_ERASE”,
“FT_DEVICE_NOT_OPENED_FOR_WRITE”,
“FT_FAILED_TO_WRITE_DEVICE”,
“FT_EEPROM_READ_FAILED”,
“FT_EEPROM_WRITE_FAILED”,
“FT_EEPROM_ERASE_FAILED”,
“FT_EEPROM_NOT_PRESENT”,
“FT_EEPROM_NOT_PROGRAMMED”,
“FT_INVALID_ARGS”,
“FT_NOT_SUPPORTED”,
“FT_OTHER_ERROR”] e hoʻonui i ka IOError(“Error: (status %d: %s)” % (f, names[f]))
################################################################################
# Papahana Nui
#
# Hoʻokō maʻalahi GetComPortNumber example mai D2XX alakaʻi papahana.

papa D2XXTest(mea):
def __init __ (iho):
# Hoʻouka i nā binaries mea hoʻokele
inā sys.platform.startswith('linux'):
self.d2xx = ctypes.cdll.LoadLibrary(“libftd2xx.so”)
elif sys.platform.startswith('darwin'):
self.d2xx = ctypes.cdll.LoadLibrary(“libftd2xx.1.1.0.dylib”)
ʻē aʻe:
self.d2xx = ctypes.windll.LoadLibrary(“ftd2xx”)
paʻi 'Ua hoʻouka ʻia ka waihona D2XX OK'
paʻi
sys.stdout.flush()
self.getCom()
def getCom(self):
#hoʻololi FT Handle
self.ftHandle = ctypes.c_void_p()
#Wehe i ka mea mua ma ka ʻōnaehana
nānā(self.d2xx.FT_Open(0, ctypes.byref(self.ftHandle)))
Hoʻololi helu awa #com
lComPortNumber = ctypes.c_long()
#retrieve com # me FT_GetComPortNumber
nānā(self.d2xx.FT_GetComPortNumber(self.ftHandle,
ctypes.byref(lComPortNumber)))
inā lComPortNumber.value == -1:
paʻi "ʻAʻohe Com Port Assigned"
ʻē aʻe:
paʻi “Helu Port Com: %d” % (lComPortNumber.value)
#kahea iā FT_Close e pani i ka pilina
nānā(self.d2xx.FT_Close(self.ftHandle))
inā __name__ == '__main__':
paʻi "===== Python D2XX Loaʻa i Com Port ====="
paʻi
app = D2XXTest()

Pākuʻi E – GetDeviceInfoDetail.py

#!/usr/bin/env python
lawe mai os
hoʻokomo sys
lawe mai i nā ctypes
################################################################################
# D2XX wehewehe
def check(f):
ina f != 0:
inoa = [
“FT_OK”,
“FT_INVALID_HANDLE”,
“FT_DEVICE_NOT_FOUND”,
“FT_DEVICE_NOT_OPENED”,
“FT_IO_ERROR”,
“FT_INSUFFICIENT_RESOURCES”,
“FT_INVALID_PARAMETER”,
“FT_INVALID_BAUD_RATE”,
“FT_DEVICE_NOT_OPENED_FOR_ERASE”,
“FT_DEVICE_NOT_OPENED_FOR_WRITE”,
“FT_FAILED_TO_WRITE_DEVICE”,
“FT_EEPROM_READ_FAILED”,
“FT_EEPROM_WRITE_FAILED”,
“FT_EEPROM_ERASE_FAILED”,
“FT_EEPROM_NOT_PRESENT”,
“FT_EEPROM_NOT_PROGRAMMED”,
“FT_INVALID_ARGS”,
“FT_NOT_SUPPORTED”,
“FT_OTHER_ERROR”] e hoʻonui i ka IOError(“Error: (status %d: %s)” % (f, names[f]))
################################################################################
# Papahana Nui

###***** paha e hoʻohui i nā boole no ka ʻōnaehana hana no laila ke hoʻāʻo ʻoe a wehe i kahi hāmeʻa hiki iā ʻoe ke hana pololei no ka OS kūpono. ʻAʻole hiki iā Linux ke hoʻohana i nā kuhikuhi e wehe (?) nānā i ka linux examples paha?
papa D2XXTest(mea):
def __init __ (iho):
# Hoʻouka i nā binaries mea hoʻokele
inā sys.platform.startswith('linux'):
self.d2xx = ctypes.cdll.LoadLibrary(“libftd2xx.so”)
elif sys.platform.startswith('darwin'):
self.d2xx = ctypes.cdll.LoadLibrary(“libftd2xx.1.1.0.dylib”)
ʻē aʻe:
self.d2xx = ctypes.windll.LoadLibrary(“ftd2xx”)
paʻi "Ua hoʻouka ʻia ka waihona D2XX OK\n"
sys.stdout.flush()
#kahea exampka hana
self.getDevInfoList()
def getDevInfoList(self):
#declare vairables pono i ka hana
numDevs = ctypes.c_long()
nānā(self.d2xx.FT_CreateDeviceInfoList(ctypes.byref(numDevs)))
paʻi "ʻO ka helu o nā mea hana: %d" % (numDevs.value)
# inā hoʻopili ʻia kahi mea liʻiliʻi
inā numDevs.value > 0:
#loaʻa ka ʻike mea hana no nā mea hana a pau ma ka ʻōnaehana
no i i loko o ka laulā (numDevs.value):
#hoʻololi FT Handle
ftHandleTemp = ctypes.c_long()
Nā hae = ctypes.c_long()
ID = ctypes.c_long()
ʻAno = ctypes.c_long()
LocId = ctypes.c_long()
SerialNumber = ctypes.create_string_buffer(16)
Wehewehe = ctypes.create_string_buffer(64)

#Kahea i ka hana GetDeviceInfoDetail e kiʻi i ka hāmeʻa

kikoʻī
nānā(self.d2xx.FT_GetDeviceInfoDetail(i,
ctypes.byref(Flags),ctypes.byref(Type), ctypes.byref(ID), ctypes.byref(LocId),
ctypes.byref(SerialNumber), ctypes.byref(Description), ctypes.byref(ftHandleTemp)))
#paʻi i nā kikoʻī o ka hāmeʻa
self.printDetails(i,Flags.value, Type.value, ID.value,
LocId.value, SerialNumber.value, Description.value, ftHandleTemp.value)
ʻē aʻe:
#inā ʻaʻohe mea i haʻalele i ka papahana
sys.exit()
def printDetails(self, dev, flags, ty, i_d, locid, serial, desc, handle):
paʻi “Dev: %d” % (dev)
paʻi "Hae=0x%x" % (nā hae)
paʻi ” Type=0x%x” % (ty)
paʻi "ID=0x%x" % (i_d)
paʻi ” LocId=0x%x” % (locid)
paʻi ” SerialNumber=%s” % (serial)
paʻi ” Hōʻike =%s” % (desc)
paʻi ” ftHandle=0x%s” % (lima)
inā __name__ == '__main__':
paʻi "===== Python D2XX E kiʻi i ka ʻike kikoʻī o ka hāmeʻa =====\n"
app = D2XXTest()

Pākuʻi F – Moʻolelo Hoʻoponopono

Poʻo Palapala: Kākoʻo TN_187 Python no nā huahana FTDI
Helu Palapala Palapala: FT_001561
Helu hoʻomaʻemaʻe: FTDI#590
ʻAoʻao huahana: https://ftdichip.com/product-category/products/ic/
Manaʻo Palapala: Hoʻouna Manaʻo

NA LUNA KUAI

ʻAoʻao Huahana
Manaʻo Palapala
Kuleana kope © Future Technology Devices International Limited Future Technology Devices International Limited (FTDI) Unit 1, 2 Seaward Place, Glasgow G41 1HH, United Kingdom
Tel.: +44 (0) 141 429 2777 Fax: + 44 (0) 141 429 2758
Web Paena: http://ftdichip.com
Kuleana kope © Future Technology Devices International Limited

Palapala / Punawai

Kākoʻo FTDI Python no FTDI Products Software [pdf] Ke alakaʻi hoʻohana
FT4222H, Kākoʻo Python no FTDI Products Software, Kākoʻo no FTDI Products Software, FTDI Products Software, Software

Nā kuhikuhi

Waiho i kahi manaʻo

ʻAʻole e paʻi ʻia kāu leka uila. Hōʻailona ʻia nā kahua i makemake ʻia *