د FTDI محصولاتو سافټویر لپاره پایتون ملاتړ

د دې تخنیکي یادښت هدف د FTDI محصولاتو سره د Python برنامې کارولو څرنګوالی ښودل دي.

د ژوند مالتړ او / یا خوندیتوب غوښتنلیکونو کې د FTDI وسیلو کارول په بشپړ ډول د کارونکي په خطر کې دي، او کارونکي موافق دي چې د FTDI دفاع وکړي، تاوان ورکړي، او وساتي او د دې ډول کارونې په پایله کې د هر ډول زیانونو، ادعاوو، سوټونو، یا لګښتونو څخه بې ضرر وي.

پیژندنه

Python عموما د سافټویر پراختیا، د کار اتومات کولو، د معلوماتو تحلیل، او داسې نورو لپاره کارول کیږي ځکه چې دا د زده کولو لپاره نسبتا اسانه دی چې شهرت یې مخ په زیاتیدو دی.
دا تخنیکي یادښت هغه لارې ښیې چې د Python پروګرامونه د FTDI محصولاتو لخوا کارول کیدی شي کوم چې د FTDI په معیار تکیه کوي د VCP چلوونکی or د D2xx ډرایور.
دلته د دریمې ډلې پیتون کتابتونونه هم ښکاري او دا هم دلته لیست شوي.
د Python ملاتړ د FT600/1 ICs لپاره هم شتون لري کوم چې د D3xx ډرایور کاروي مګر پدې سند کې پوښل شوي ندي. مهرباني وکړئ د نورو معلوماتو لپاره د دې ICs لپاره د محصول پاڼې وګورئ.

د Python پروګرام کول څه شی دی؟

Python د پروګرام کولو یوه خورا مشهوره ژبه کیږي.
دا د ګړندي پروټوټایپ لپاره ، یا د تولید چمتو سافټویر پراختیا لپاره کارول کیدی شي.
دا په مختلفو پلیټ فارمونو کار کوي (د بیلګې په توګه، وینډوز، MacOS، لینکس، او نور) او د انګلیسي ژبې په څیر یو ساده ترکیب لري. دا ترکیب پراختیا کونکو ته اجازه ورکوي چې د نورو پروګرامینګ ژبو په پرتله په لږو لیکو سره برنامې ولیکي.
Python د ژباړونکي سیسټم پرمخ ځي، پدې معنی چې کوډ ژر تر ژره اجرا کیدی شي لکه څنګه چې دا لیکل کیږي چې پدې معنی چې پروټوټایپ خورا ګړندی کیدی شي.
د Python لپاره آنلاین ډیری سرچینې شتون لري چې دا اصلي دی webسایټ: https://www.python.org/

د پایتون ډرایور ملاتړ

دا برخه د Python برنامې سره د FTDI VCP او D2xx ډرایور کارولو څرنګوالی توضیح کوي.

VCP

دا برخه یو ساده سابقه لريampد VCP ډرایور په کارولو سره د COM بندر خلاصولو لپاره ، سکرین ته خلاص شوی COM بندر ښکاره کړئ او بیا خلاص بندر ته یو څو حرفونه واستوئ او ترلاسه کړئ او په سکرین کې یې ښکاره کړئ. د کوډ څخه محصول لاندې ښودل شوی. په یاد ولرئ چې د FTDI کیبل د TX څخه RX لوپ بیک سره د ساده ازموینې لپاره کارول شوی و.

د کوډ لیست په کې موندل کیږي ضمیمه C – Serialtest.py.
د دې کوډ چلولو لپاره، تاسو به د pyserial کتابتون نصبولو ته اړتیا ولرئ. تاسو کولی شئ دا په خپل ټرمینل کې د لاندې کمانډ په چلولو سره ترسره کړئ:
pip install pyserial
یوځل چې د pyserial کتابتون نصب شي، تاسو کولی شئ کوډ د .py په توګه خوندي کړئ file او بیا په خپل ترمینل کې لاندې کمانډ پرمخ وړئ:
ستا_filename.py

D2xx

دا برخه دوه ساده سابقه لريamples کوم چې بنسټیز D2xx APIs کاروي.

  • د COM پورټ نمبر ترلاسه کړئ
  •  د وسیلې د معلوماتو توضیحات ترلاسه کړئ

ته مراجعه وکړئ د D2XX پروګرامر لارښود د دې APIs په اړه د نورو معلوماتو لپاره.

د COM پورټ نمبر ترلاسه کړئ

دا ساده پخوانیample د d2xx کتابتون پورته کوي، د FTDI لومړی موندل شوی وسیله پرانیزي، د COM پورټ ومومي
شمیره د FT_GetComPortNumber په کارولو سره او بیا یې بندوي.
د کوډ لیست په کې موندل کیږي ضمیمه D- GetComPortNumber.py.
کله چې اجرا شي محصول داسې ښکاري:

د وسیلې د معلوماتو توضیحات ترلاسه کړئ
دا ساده پخوانیample د d2xx کتابتون باروي او د FT_Create Device Info List او FT_Get Device Info Detail څخه کار اخلي ترڅو د FTDI وسیلې توضیحات ترلاسه کړي او لیست یې کړي.
د کوډ لیست په کې موندل کیږي ضمیمه E – GetDeviceInfoDetail.py.
کله چې اجرا شي محصول داسې ښکاري:

د دریمې ډلې Python Examples

ډیری د دریمې ډلې کتابتونونه شتون لري او پخوانیamples داسې ښکاري چې د پروګرام کولو ژبې شهرت پراخیږي، ځینې یې دلته لیست شوي مګر نور ممکن وموندل شي.

PyUSB

PyUSB د Python 3 لپاره د کوربه ماشین یونیورسل سیریل بس (USB) سیسټم ته اسانه لاسرسی چمتو کوي.
PyUSB یو بډای API دی، د بیک انډ غیر جانبدار Python USB ماډل کارول اسانه دي. https://pyusb.github.io/pyusb/

pylibftdi

مهرباني وکړئ په یاد ولرئ چې دا کارول کیږي libftdi کوم چې د FTDI ملاتړ شوی ډرایور ندی مګر د FTDI وسیلو کنټرول لپاره کارول کیدی شي.
pylibftdi د FTDI وسیلو لپاره لږترلږه Pythonic انٹرفیس دی. https://pypi.org/project/pylibftdi/

د ‏‎PyFtdi

PyFtdi د مشهور FTDI وسیلو لپاره د کارونکي ځای ډرایور چمتو کول دي چې په خالص Python ژبه کې پلي کیږي.
https://pypi.org/project/pyftdi/

Adafruit

اډافروټ یو لارښود رامینځته کړی ترڅو وښیې چې څنګه د I232C او SPI سینسرونو سره وصل کولو لپاره د FT2H کارولو څرنګوالی او ستاسو د ډیسټاپ کمپیوټر څخه چې وینډوز ، ماک OSX ، یا لینکس چلوي بریک آؤټ.
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h

ftdi-python

دا پخوانیample د Python څخه د FTDI ICs چلولو لپاره ګام په ګام چلند ښیې ترڅو د دوی د فعالیت په اړه زده کړي.
https://iosoft.blog/ftdi-python/

د ftd2xx ډول ډول ریپر

ftd2xx د D2XX DLL شاوخوا د FTDI څخه د ctypes په کارولو سره یو ساده پیتون ریپر دی. https://pypi.org/project/ftd2xx/

python-ft4222

دا پخوانیample LibFT4222 ته د python پابند چمتو کوي کوم چې باید د FT4222H IC سره وکارول شي او LibFT4222 ته ورته API چمتو کوي. https://pypi.org/project/ft4222/

پایله

دا تخنیکي یادښت ښیې چې څنګه د VCP او D2xx ډرایور سره د FTDI محصولاتو سره د Python برنامه کارولو څرنګوالی او د دریمې ډلې پخوانی لیست لیست کړی دی.amples.

د اړیکو معلومات

مرکزي دفتر - ګالسکو، انګلستان
د راتلونکي ټیکنالوژۍ وسایل نړیوال محدودیت (UK)
یونټ 1، 2 سیورډ ځای، سینچورین بزنس پارک ګالسکو G41 1HH انګلستان
ټیلیفون: +44 (0) 141 429 2777
فکس: +44 (0) 141 429 2758

بریښنالیک (پلور) sales1@ftdichip.com
بریښنالیک (ملاتړ) support1@ftdichip.com
بریښنالیک (عمومي پوښتنې) admin1@ftdichip.com

د څانګې دفتر - تایپي، تایوان

د راتلونکي ټیکنالوژۍ وسایل نړیوال محدودیت (تایوان)
2F، شمیره 516، Sec. 1، NeiHu سړک
ټاپي ۱۱۴
تایوان ، ROC
ټیلیفون: +886 (0) 2 8797 1330
فکس: +886 (0) 2 8751 9737

بریښنالیک (پلور) tw.sales1@ftdichip.com
بریښنالیک (ملاتړ) tw.support1@ftdichip.com
بریښنالیک (عمومي پوښتنې) tw.admin1@ftdichip.com

د څانګې دفتر - ټیګارډ، اوریګون، امریکا
د راتلونکي ټیکنالوژۍ وسایل نړیوال محدودیت (USA)
7130 SW Fir لوپ
ټیګارډ، یا 97223-8160
USA
ټیلیفون: +1 (503) 547 0988
فکس: +1 (503) 547 098

بریښنالیک (پلور) us.sales@ftdichip.com
بریښنالیک (ملاتړ) us.support@ftdichip.com
بریښنالیک (عمومي پوښتنې) us.admin@ftdichip.com

د څانګې دفتر - شانګهای، چین

د راتلونکي ټیکنالوژۍ وسایل نړیوال محدودیت (چین)
کوټه 1103، شمیره 666 لویدیځ Huaihai سړک، شانګهای، 200052 چین
ټیلیفون: +86 (21) 62351596
فکس: +86 (21) 62351595
بریښنالیک (پلور) cn.sales@ftdichip.com
بریښنالیک (ملاتړ) cn.support@ftdichip.com
بریښنالیک (عمومي پوښتنې) cn.admin@ftdichip.c

Web سایټ http://ftdichip.com

د توزیع کونکي او پلور استازي
مهرباني وکړئ د پلور شبکې پاڼې ته مراجعه وکړئ د ‏‎FTDI Web سایټ ستاسو په هیواد کې زموږ د توزیع کونکو او د پلور نماینده ګانو د اړیکو توضیحاتو لپاره.

د سیسټم او تجهیزاتو جوړونکي او ډیزاینران مسؤل دي چې ډاډ ترلاسه کړي چې د دوی سیسټمونه، او د راتلونکي ټیکنالوژۍ وسایلو نړیوال لمیټډ (FTDI) وسایل د دوی په سیسټمونو کې شامل شوي، د تطبیق وړ خوندیتوب، تنظیمي او د سیسټم په کچه د فعالیت اړتیاوې پوره کوي. په دې سند کې د غوښتنلیک اړوند ټول معلومات (د غوښتنلیک توضیحات، وړاندیز شوي FTDI وسایل او نور توکي) یوازې د حوالې لپاره چمتو شوي. پداسې حال کې چې FTDI پاملرنه کړې ترڅو ډاډ ترلاسه کړي چې دا دقیق دي، دا معلومات د پیرودونکي تصدیق سره مخ دي، او FTDI د سیسټم ډیزاینونو او د FTDI لخوا چمتو شوي غوښتنلیکونو مرستې لپاره ټول مسؤلیت ردوي. د ژوند مالتړ او/یا خوندیتوب غوښتنلیکونو کې د FTDI وسیلو کارول په بشپړ ډول د کارونکي په خطر کې دي، او کارونکي موافق دي چې د هر ډول او ټولو زیانونو، ادعاوو، سوټونو، یا لګښتونو څخه د دې ډول کارونې په پایله کې د بې ضرر FTDI دفاع، جبران، او ساتي. دا سند د خبرتیا پرته د بدلون تابع دی. د دې سند په خپرولو سره د پیټینټ یا نورو فکري ملکیت حقونو کارولو هیڅ آزادي نه ده. نه بشپړ یا د معلوماتو کومه برخه چې په دې سند کې بیان شوي یا محصول په دې سند کې بیان شوي ممکن د کاپي حق لرونکي د مخکیني لیکلي رضایت پرته په هر ډول موادو یا بریښنایی شکل کې تطابق یا بیا تولید شي. Future Technology Devices International Ltd, Unit 1, 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, انګلستان. د سکاټلینډ راجستر شوي شرکت شمیره: SC136640.

ضمیمه A – حوالې

د اسنادو حوالې

د D2xx ډرایور
د VCP چلوونکی
https://www.python.org/
د 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

مخففات او لنډیزونه

شرایط تفصیل
API د غوښتنلیک پروګرام کولو انٹرفیس
IC مدغم سرکټ
USB یونیورسل Se
VCP مجازی COM پورټ

ضمیمه ب – د جدولونو او ارقامو لیست

د میزونو لیست

N/A

د ارقامو لیست

شکل 1 – د Python لوگو ……………………………………………………………………………………………………………… 5

ضمیمه C – Serialtest.py

سریال واردول
د واردولو وخت
# د COM پورټ شمیره تنظیم کړئ
د پورټ نوم = 'COM7'
# د باډ نرخ تنظیم کړئ
baudRate = 115200
# سیریل پورټ خلاص کړئ
هڅه وکړئ:
ser = سریال. سریال
چاپ ('پرانستل شوی COM پورټ: ' + د پورټ نوم)
پرته له:
چاپ ("استثنا واقع شوه")

# د برنامه پیل کولو لپاره 'سلام' واستوئ
ser.write(b'Hello')
وخت. خوب (1)
# کرښه ولولئ
read_data = ser.read(5)
چاپ ("ډاټا ترلاسه کړه:" + str (لوستل_ډاټا))
# سیریل پورټ بند کړئ
ser.close

ضمیمه D- GetComPortNumber.py

#!/usr/bin/env python
os واردول
واردول sys
د واردولو ډولونه
########################################################## ####################
# D2XX تعریفونه
def check(f):
که f != 0:
نومونه = [
"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"] IOError پورته کړئ("تېروتنه: (حالت %d: %s)" % (f، نومونه[f])
########################################################## ####################
#اصلي پروګرام
#
# ساده GetComPortNumber پلي کوي exampد D2XX پروګرامر لارښود څخه.

ټولګي D2XXTest(څیز):
Def __init __ (ځان):
# د ډرایور بائنری بار کړئ
که 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")
نور:
self.d2xx = ctypes.windll.LoadLibrary("ftd2xx")
چاپ 'D2XX کتابتون ښه ډک شوی'
چاپ
sys.stdout.flush()
self.getCom()
def getCom(self):
# د FT هینډل متغیر جوړ کړئ
self.ftHandle = ctypes.c_void_p()
# په سیسټم کې لومړی وسیله خلاص کړئ
چک(self.d2xx.FT_Open(0, ctypes.byref(self.ftHandle)))
# com پورټ شمیره متغیر
lComPortNumber = ctypes.c_long()
#retrieve com # د FT_GetComPortNumber سره
چک(self.d2xx.FT_GetComPortNumber(self.ftHandle,
ctypes.byref(lComPortNumber)))
که lComPortNumber.value == -1:
چاپ "نه کوم پورټ ټاکل شوی"
نور:
چاپ د "کام پورټ نمبر: %d" % (lComPortNumber.value)
د اړیکې تړلو لپاره FT_Close ته زنګ ووهئ
چک(self.d2xx.FT_Close(self.ftHandle))
که __نوم__ == '__مین__':
چاپ "===== Python D2XX د کام پورټ ترلاسه کړئ ====="
چاپ
اپلیکیشن = D2XXTest()

ضمیمه E – GetDeviceInfoDetail.py

#!/usr/bin/env python
os واردول
واردول sys
د واردولو ډولونه
########################################################## ####################
# D2XX تعریفونه
def check(f):
که f != 0:
نومونه = [
"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"] IOError پورته کړئ("تېروتنه: (حالت %d: %s)" % (f، نومونه[f])
########################################################## ####################
#اصلي پروګرام

###***** شاید د عملیاتي سیسټم لپاره بولین اضافه کړئ نو کله چې تاسو هڅه وکړئ او وسیله خلاص کړئ تاسو کولی شئ دا د سم OS لپاره سم ترسره کړئ. لینکس نشي کولی د لینکس ایکس چیک کولو (؟) خلاصولو لپاره شاخصونه وکارويampشاید؟
ټولګي D2XXTest(څیز):
Def __init __ (ځان):
# د ډرایور بائنری بار کړئ
که 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")
نور:
self.d2xx = ctypes.windll.LoadLibrary("ftd2xx")
چاپ کړئ "D2XX کتابتون ښه ډک شوی\n"
sys.stdout.flush()
# پخوا ته زنګ ووهئample function
self.getDevInfoList()
def getDevInfoList(ځان):
# په فعالیت کې اړین تغیرات اعلان کړئ
numDevs = ctypes.c_long()
چک(self.d2xx.FT_CreateDeviceInfoList(ctypes.byref(numDevs)))
چاپ "د وسایلو شمیر دی: %d" % (numDevs.value)
# که چیرې لږترلږه یو وسیله وصل وي
که numDevs.value > 0:
# په سیسټم کې د ټولو وسیلو لپاره د وسیلې معلومات ترلاسه کړئ
زما لپاره په حد کې (numDevs.value):
# د FT هینډل متغیر جوړ کړئ
ftHandleTemp = ctypes.c_long()
بیرغ = ctypes.c_long()
ID = ctypes.c_long()
ډول = ctypes.c_long()
LocId = ctypes.c_long()
سریال شمیره = ctypes.create_string_buffer(16)
توضیحات = ctypes.create_string_buffer(64)

# د آلې ترلاسه کولو لپاره د GetDeviceInfoDetail فنکشن ته زنګ ووهئ

تفصیلات
چک(self.d2xx.FT_GetDeviceInfoDetail(i،
ctypes.byref(پرچم)،ctypes.byref(ډول)، ctypes.byref(ID)، ctypes.byref(LocId)،
ctypes.byref(SerialNumber), ctypes.byref(تفصیل), ctypes.byref(ftHandleTemp)))
# د وسیلې توضیحات چاپ کړئ
self.print Details(i,Flags.value, Type.value, ID.value,
LocId.value, SerialNumber.value, Description.value, ftHandleTemp.value)
نور:
# که چیرې هیڅ وسیله له برنامه نه وځي
sys.exit()
def د چاپ توضیحات (ځان، دیو، بیرغ، ty، i_d، locid، سریال، ډیسک، لاسوند):
چاپ "دیو: %d" % (dev)
چاپ "بیرغ = 0x%x"٪ (بیرغونه)
چاپ " ډول = 0x%x" % (ty)
چاپ " ID=0x%x" % (i_d)
چاپ " LocId = 0x%x" % (locid)
چاپ " سریال نمبر =٪s"٪ (سریال)
چاپ "تفصیل=%s"٪ (desc)
چاپ "ftHandle=0x%s" % (سنډل)
که __نوم__ == '__مین__':
چاپ "===== Python D2XX د وسیلې معلوماتو توضیحات ترلاسه کړئ =====\n"
اپلیکیشن = D2XXTest()

ضمیمه F – د بیاکتنې تاریخ

د سند سرلیک: د FTDI محصولاتو لپاره TN_187 Python ملاتړ
د سند د حوالې شمیره: FT_001561
د تصفیې شمیره: FTDI#590
د محصول پا Pageه: https://ftdichip.com/product-category/products/ic/
د سند فیډبیک: فیډبیک واستوئ

د پیرودونکي خدمتونه

د محصول پاڼه
د سند فیډبیک
د چاپ حق © د راتلونکي ټیکنالوژۍ وسایل انټرنیشنل لمیټډ د راتلونکي ټیکنالوژۍ وسایل نړیوال محدودیت (FTDI) واحد 1، 2 سیورډ پلیس، ګالسکو G41 1HH، انګلستان
ټیلیفون: +44 (0) 141 429 2777 فکس: + 44 (0) 141 429 2758
Web سایټ: http://ftdichip.com
د کاپي حق © د راتلونکي ټیکنالوژۍ وسایل نړیوال محدود

اسناد / سرچینې

د FTDI محصولاتو سافټویر لپاره د FTDI Python ملاتړ [pdf] د کارونکي لارښود
FT4222H، د FTDI محصولاتو سافټویر لپاره پایتون ملاتړ، د FTDI محصولاتو سافټویر لپاره ملاتړ، د FTDI محصولاتو سافټویر، سافټویر

حوالې

یو نظر پریږدئ

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې په نښه شوي *