Podpora Pythonu pro software produktů FTDI

Účelem této technické poznámky je ukázat, jak používat programování v Pythonu s produkty FTDI.

Použití zařízení FTDI v aplikacích na podporu života a/nebo bezpečnostních aplikacích je zcela na riziko uživatele a uživatel souhlasí s tím, že bude FTDI bránit, odškodnit a chránit před všemi škodami, nároky, žalobami nebo výdaji vyplývajícími z takového použití.

Zavedení

Python se běžně používá pro vývoj softwaru, automatizaci úloh, analýzu dat atd. Protože je relativně snadné se naučit, jeho popularita roste.
Tato technická poznámka ukazuje způsoby, jak lze programování v Pythonu používat produkty FTDI, které se spoléhají na standard FTDI. Ovladač VCP or D2xx ovladač.
Objevuje se také mnoho pythonových knihoven třetích stran a ty jsou zde také uvedeny.
Podpora Pythonu je k dispozici také pro FT600/1 IC, které používají ovladač D3xx, ale není zahrnuta v tomto dokumentu. Další informace naleznete na produktových stránkách těchto integrovaných obvodů.

Co je programování v Pythonu?

Python se stává velmi oblíbeným programovacím jazykem.
Může být použit pro rychlé prototypování nebo pro vývoj softwaru připraveného pro výrobu.
Funguje na různých platformách (např. Windows, MacOS, Linux atd.) a má jednoduchou syntaxi jako anglický jazyk. Tato syntaxe umožňuje vývojářům psát programy s méně řádky než některé jiné programovací jazyky.
Python běží na interpretačním systému, což znamená, že kód může být spuštěn, jakmile je napsán, což znamená, že prototypování může být velmi rychlé.
Existuje mnoho zdrojů online dostupných pro Python, přičemž toto je hlavní webmísto: https://www.python.org/

Podpora ovladače Python

Tato část podrobně popisuje, jak používat ovladač VCP a D2xx FTDI s programováním v Pythonu.

VCP

Tato sekce má jednoduchý exampChcete-li otevřít port COM pomocí ovladače VCP, zobrazte otevřený port COM na obrazovce a poté odešlete a přijměte několik znaků na otevřený port a zobrazte je na obrazovce. Výstup z kódu je uveden níže. Všimněte si, že pro jednoduchý test byl použit kabel FTDI se zpětnou vazbou TX na RX.

Seznam kódů najdete v Příloha C – Serialtest.py.
Chcete-li spustit tento kód, budete muset nainstalovat knihovnu pyserial. Můžete to provést spuštěním následujícího příkazu v terminálu:
pip install pyserial
Jakmile je knihovna pyserial nainstalována, můžete spustit kód uložením jako .py file a poté spusťte ve svém terminálu následující příkaz:
tvůj_filejméno.py

D2xx

Tato sekce má dva jednoduché exampsoubory, které používají základní D2xx API.

  • Získejte číslo portu COM
  •  Získejte podrobnosti o zařízení

Viz D2XX Programátorská příručka pro více informací o těchto API.

Získejte COM Port Numbe

Tento jednoduchý example načte knihovnu d2xx, otevře první nalezené zařízení FTDI, najde COM port
číslo pomocí FT_GetComPortNumber a poté jej zavře.
Seznam kódů najdete v Dodatek D – GetComPortNumber.py.
Po spuštění vypadá výstup takto:

Získejte podrobnosti o zařízení
Tento jednoduchý example načte knihovnu d2xx a použije FT_Create Device Info List a FT_Get Device Info Detail k získání podrobností o FTDI zařízení a jejich seznamu.
Seznam kódů najdete v Dodatek E – GetDeviceInfoDetail.py.
Po spuštění vypadá výstup takto:

Python od třetí strany Examples

Existuje mnoho knihoven třetích stran a exampsoubory objevující se s rostoucí popularitou programovacího jazyka, některé jsou uvedeny zde, ale lze jich nalézt více.

PyUSB

PyUSB poskytuje snadný přístup k systému Universal Serial Bus (USB) hostitelského počítače pro Python 3.
PyUSB je API bohatý, backend neutrální Python USB modul snadno použitelný. https://pyusb.github.io/pyusb/

pylibftdi

Vezměte prosím na vědomí, že toto používá libftdi který není ovladačem podporovaným FTDI, lze jej však použít k ovládání zařízení FTDI.
pylibftdi je minimální rozhraní Pythonic pro zařízení FTDI. https://pypi.org/project/pylibftdi/

PyFtdi

PyFtdi se zaměřuje na poskytování ovladače uživatelského prostoru pro oblíbená zařízení FTDI, implementovaný v čistém jazyce Python.
https://pypi.org/project/pyftdi/

Adafruit

Adafruit vytvořil průvodce, který ukazuje, jak používat FT232H pro připojení k I2C a SPI senzorům a breakoutům z vašeho stolního PC se systémem Windows, Mac OSX nebo Linux.
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h

ftdi-python

Tento example demonstruje krok za krokem přístup k řízení FTDI IC z Pythonu, aby se dozvěděl o jejich funkčnosti.
https://iosoft.blog/ftdi-python/

ftd2xx ctypes Wrapper

ftd2xx je jednoduchý pythonový obal kolem D2XX DLL od FTDI pomocí ctypes. https://pypi.org/project/ftd2xx/

python-ft4222

Tento example poskytuje vazbu pythonu na LibFT4222, která musí být použita s FT4222H IC a poskytuje podobné API jako LibFT4222. https://pypi.org/project/ft4222/

Závěr

Tato technická poznámka ukazuje, jak používat programování v Pythonu s produkty FTDI s ovladačem VCP a D2xx, a uvádí některé příklady třetích stranamples.

Kontaktní informace

Sídlo společnosti – Glasgow, Spojené království
Future Technology Devices International Limited (UK)
Unit 1, 2 Seaward Place, Centurion Business Park Glasgow G41 1HH Spojené království
Tel: +44 (0) 141 429 2777
Fax: +44 (0) 141 429 2758

E-mail (prodej) sales1@ftdichip.com
E-mail (podpora) support1@ftdichip.com
E-mail (obecné dotazy) admin1@ftdichip.com

Pobočka – Taipei, Taiwan

Future Technology Devices International Limited (Tchaj-wan)
2F, č. 516, odd. 1, NeiHu Road
Tchaj-pej 114
Tchaj-wan, ROC
tel: +886 (0) 2 8797 1330
Fax: +886 (0) 2 8751 9737

E-mail (prodej) tw.sales1@ftdichip.com
E-mail (podpora) tw.support1@ftdichip.com
E-mail (obecné dotazy) tw.admin1@ftdichip.com

Pobočka – Tigard, Oregon, USA
Future Technology Devices International Limited (USA)
7130 SW Fir Loop
Tigard, OR 97223-8160
USA
tel: +1 (503) 547 0988
Fax: +1 (503) 547 098

E-mail (prodej) us.sales@ftdichip.com
E-mail (podpora) us.support@ftdichip.com
E-mail (obecné dotazy) us.admin@ftdichip.com

Pobočka – Šanghaj, Čína

Future Technology Devices International Limited (Čína)
Pokoj 1103, č. 666 West Huaihai Road, Shanghai, 200052 Čína
tel: +86 (21) 62351596
Fax: +86 (21) 62351595
E-mail (prodej) cn.sales@ftdichip.com
E-mail (podpora) cn.support@ftdichip.com
E-mail (obecné dotazy) cn.admin@ftdichip.c

Web místo http://ftdichip.com

Distributor a obchodní zástupci
Navštivte prosím stránku prodejní sítě FTDI Web místo pro kontaktní údaje našeho distributora (distributorů) a obchodního zástupce (zástupců) ve vaší zemi.

Výrobci a návrháři systémů a zařízení jsou odpovědní za to, že jejich systémy a všechna zařízení Future Technology Devices International Ltd (FTDI) začleněná do jejich systémů splňují všechny příslušné bezpečnostní, regulační a systémové požadavky na výkon. Všechny informace týkající se aplikace v tomto dokumentu (včetně popisů aplikací, navrhovaných zařízení FTDI a dalších materiálů) jsou poskytovány pouze pro informaci. I když se FTDI postaralo o to, aby byly přesné, tyto informace podléhají potvrzení zákazníkem a FTDI se zříká veškeré odpovědnosti za návrhy systémů a za jakoukoli aplikační asistenci poskytovanou FTDI. Použití zařízení FTDI v aplikacích pro podporu života a/nebo bezpečnostních aplikacích je zcela na riziko uživatele a uživatel souhlasí s tím, že bude FTDI bránit, odškodnit a chránit před všemi škodami, nároky, žalobami nebo náklady vyplývajícími z takového použití. Tento dokument se může bez upozornění změnit. Z zveřejnění tohoto dokumentu nevyplývá žádná svoboda použití patentů nebo jiných práv duševního vlastnictví. Ani celé, ani žádná část informací obsažených v tomto dokumentu nebo produktu popsaného v tomto dokumentu nesmí být upravovány nebo reprodukovány v žádné hmotné nebo elektronické podobě bez předchozího písemného souhlasu držitele autorských práv. Future Technology Devices International Ltd, Unit 1, 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, Spojené království. Registrované číslo společnosti ve Skotsku: SC136640.

Příloha A – Reference

Reference dokumentu

D2xx ovladač
Ovladač VCP
https://www.python.org/
D2XX Programátorská příručka
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

Zkratky a zkratky

Podmínky Popis
API Aplikační programovací rozhraní
IC Integrovaný obvod
USB Univerzální Se
VCP Virtuální COM port

Příloha B – Seznam tabulek a obrázků

Seznam tabulek

N/A

Seznam obrázků

Obrázek 1 – Logo Pythonu……………………………………………………………………………………………………….. 5

Příloha C – Serialtest.py

import seriálu
čas importu
# Nastavte číslo portu COM
portName = 'COM7'
# Nastavte přenosovou rychlost
přenosová rychlost = 115200
# Otevřete sériový port
pokus:
ser = serial.Serial(název portu, přenosová rychlost)
print('Otevřený COM port: ' + název portu)
kromě:
print("Došlo k výjimce")

# Odesláním 'Ahoj' spustíte program
ser.write(b'Ahoj')
time.sleep (1)
# Přečíst řádek
read_data = ser.read(5)
print("Data přijata: " + str(přečíst_data))
# Zavřete sériový port
ser.zavřít

Dodatek D – GetComPortNumber.py

#!/usr/bin/env python
import os
import sys
importovat ctypes
################################################## #######################
# Definice D2XX
def check(f):
pokud f != 0:
jména = [
"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“] zvýšit IOError („Chyba: (stav %d: %s)“ % (f, jména[f]))
################################################## #######################
# Hlavní program
#
# Implementuje jednoduchý GetComPortNumber example z průvodce programátory D2XX.

třída D2XXTest(objekt):
def __init __ (vlastní):
#Načtěte binární soubory ovladače
if 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”)
jiný:
self.d2xx = ctypes.windll.LoadLibrary(“ftd2xx”)
vytisknout 'Knihovna D2XX načtena OK'
vytisknout
sys.stdout.flush()
self.getCom()
def getCom(self):
#create FT Handle proměnná
self.ftHandle = ctypes.c_void_p()
#Otevřete první zařízení v systému
check(self.d2xx.FT_Open(0, ctypes.byref(self.ftHandle)))
#com proměnná čísla portu
lComPortNumber = ctypes.c_long()
#retrieve com # s FT_GetComPortNumber
check(self.d2xx.FT_GetComPortNumber(self.ftHandle,
ctypes.byref(lComPortNumber)))
if lComPortNumber.value == -1:
vytisknout „No Com Port Assigned“
jiný:
vytisknout „Číslo portu Com: %d“ % (lComPortNumber.value)
#call FT_Close pro ukončení spojení
check(self.d2xx.FT_Close(self.ftHandle))
if __name__ == '__main__':
tisk „===== Python D2XX Získat Com Port =====“
vytisknout
aplikace = D2XXTest()

Dodatek E – GetDeviceInfoDetail.py

#!/usr/bin/env python
import os
import sys
importovat ctypes
################################################## #######################
# Definice D2XX
def check(f):
pokud f != 0:
jména = [
"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“] zvýšit IOError („Chyba: (stav %d: %s)“ % (f, jména[f]))
################################################## #######################
# Hlavní program

###***** možná přidat booleny pro operační systém, takže když se pokusíte otevřít zařízení, můžete to udělat správně pro správný OS. Linux nemůže používat indexy k otevření (?) check linux exampmožná?
třída D2XXTest(objekt):
def __init __ (vlastní):
#Načtěte binární soubory ovladače
if 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”)
jiný:
self.d2xx = ctypes.windll.LoadLibrary(“ftd2xx”)
vytisknout „Knihovna D2XX načtena OK\n“
sys.stdout.flush()
#zavolej example funkce
self.getDevInfoList()
def getDevInfoList(self):
#deklarovat proměnné potřebné ve funkci
numDevs = ctypes.c_long()
check(self.d2xx.FT_CreateDeviceInfoList(ctypes.byref(numDevs)))
tisknout “Počet zařízení je: %d” % (numDevs.value)
# pokud je připojeno alespoň jedno zařízení
pokud numDevs.value > 0:
#získejte informace o zařízení pro všechna zařízení v systému
pro i v rozsahu (numDevs.value):
#create FT Handle proměnná
ftHandleTemp = ctypes.c_long()
Příznaky = ctypes.c_long()
ID = ctypes.c_long()
Typ = ctypes.c_long()
LocId = ctypes.c_long()
SerialNumber = ctypes.create_string_buffer(16)
Popis = ctypes.create_string_buffer(64)

#call funkci GetDeviceInfoDetail k získání zařízení

podrobnosti
check(self.d2xx.FT_GetDeviceInfoDetail(i,
ctypes.byref(Flags),ctypes.byref(Type), ctypes.byref(ID), ctypes.byref(LocId),
ctypes.byref(sériové číslo), ctypes.byref(popis), ctypes.byref(ftHandleTemp)))
#vytiskněte podrobnosti o zařízení
self.printDetails(i,Flags.value, Type.value, ID.value,
LocId.value, SerialNumber.value, Description.value, ftHandleTemp.value)
jiný:
#pokud žádná zařízení neukončí program
sys.exit()
def printDetails(self,dev,flags,ty,i_d,locid,serial,desc,handle):
tisknout „Vývoj: %d“ % (vývoj)
tisknout ”Vlajky=0x%x” % (vlajky)
tisknout ”Typ=0x%x” % (ty)
tisknout ”ID=0x%x” % (i_d)
tisknout ”LocId=0x%x” % (locid)
tisknout ”Sériové číslo=%s” % (sériové)
tisknout ”Popis=%s” % (popis)
tisknout ”ftHandle=0x%s” % (rukojeť)
if __name__ == '__main__':
tisknout “===== Python D2XX Získat podrobnosti o zařízení =====\n”
aplikace = D2XXTest()

Příloha F – Historie revizí

Název dokumentu: TN_187 Podpora Pythonu pro produkty FTDI
Referenční číslo dokumentu: FT_001561
Č. povolení: FTDI#590
Stránka produktu: https://ftdichip.com/product-category/products/ic/
Zpětná vazba k dokumentu: Odeslat zpětnou vazbu

SLUŽBY ZÁKAZNÍKŮM

Stránka produktu
Zpětná vazba k dokumentu
Copyright © 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 web: http://ftdichip.com
Copyright © Future Technology Devices International Limited

Dokumenty / zdroje

Podpora FTDI Python pro software produktů FTDI [pdfUživatelská příručka
FT4222H, podpora Pythonu pro software produktů FTDI, podpora pro software produktů FTDI, software produktů FTDI, software

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *