VHDLwiz UART փորձարկման ինտերֆեյսի գեներատոր
Ապրանքի մասին տեղեկատվություն
Տեխնիկական պայմաններ:
- Ապրանքի անվանումը. VHDL-ը գրանցում է UART թեստային ինտերֆեյսի գեներատորը
- Տարբերակ՝ 1.0.4
- Ամսաթիվ՝ 18 օգոստոսի, 2024թ
- Հեղինակ՝ Յոնաս Ջուլիան Ջենսեն
- Արտադրանք URL: Ապրանքի հղում
- Կոնտակտային էլ. jonas@vhdlwhiz.com
Նկարագրություն
Այս արտադրանքը թույլ է տալիս ստեղծել հատուկ ինտերֆեյսներ՝ FPGA ռեգիստրի արժեքները կարդալու և գրելու համար՝ օգտագործելով UART: Ստեղծված VHDL մոդուլը և Python սկրիպտը ապահովում են ձեր FPGA դիզայնի տարբեր տեսակի ռեգիստրների հետ փոխազդելու հնարավորություն:
Պահանջներ
- Python 3 թարգմանիչ
- պիսերիալ փաթեթ
Արձանագրություն
Արտադրանքն օգտագործում է տվյալների շրջանակի արձանագրություն՝ չորս կառավարման նիշերով.
- Անունը: READ_REQ, Արժեքը: 0x0A – Հրահանգ հոսթից դեպի FPGA՝ սկսել գրելու հաջորդականությունը՝ բոլոր ռեգիստրները հետ ուղարկելու UART-ով
- Անունը: START_ԳՐԵԼ, Արժեքը: 0x0B – Նշում է գրելու հաջորդականության սկիզբը երկու ուղղությամբ
- Անունը: END_ԳՐԵԼ, Արժեքը: 0x0C – Նշում է գրելու հաջորդականության ավարտը ցանկացած ուղղությամբ
- Անունը: ՓԱԽՔ, Արժեքը: 0x0D – Escape նիշ, որն օգտագործվում է հսկիչ բառերից խուսափելու համար
Ապրանքի օգտագործման հրահանգներ
Սցենարների գործարկում
Արտադրանքն օգտագործելու համար համոզվեք, որ տեղադրել եք Python 3-ը և Pyserial փաթեթը: Գործարկեք սցենարները Python 3 թարգմանչի միջոցով:
Պատվերով ինտերֆեյսների ստեղծում
Օգտագործեք gen_uart_regs.py սկրիպտը՝ FPGA ռեգիստրի արժեքները կարդալու և գրելու համար հատուկ միջերեսներ ստեղծելու համար: Ելք ստեղծելիս կարող եք նշել մուտքային և ելքային ռեգիստրների և տեսակների կազմը files.
Փոխազդեցություն ռեգիստրների հետ
Դուք կարող եք կարդալ կամ գրել ձեր FPGA դիզայնի ցանկացած թվով ռեգիստրների վրա՝ օգտագործելով ստեղծված VHDL մոդուլը և Python սկրիպտը: Մատչելի ռեգիստրները կարող են ունենալ այնպիսի տեսակներ, ինչպիսիք են std_logic, std_logic_vector, signed կամ unsigned:
Լիցենզիա
- MIT լիցենզիան ծածկում է սկզբնական կոդի հեղինակային իրավունքի պահանջները և օգտագործման պայմանները: Տե՛ս LICENSE.txt file Zip-ում file մանրամասների համար.
Փոփոխությունների օրագիր
- Այս փոփոխությունները վերաբերում են նախագծին files, և այս փաստաթուղթը համապատասխանաբար թարմացվում է
Տարբերակ | Դիտողություններ |
1.0.0 | Նախնական թողարկում |
1.0.1 | Ուղղվել է բացակայող «self» հղման սխալը, երբ ներմուծվում է որպես uart_regs.py որպես Python մոդուլ: Գրելու ձախողված տպումը փոխվեց բացառության
խուսափեք վահանակի վրա տպելուց, երբ աշխատում է որպես ներմուծված մոդուլ: |
1.0.2 | Շտկել Vivado-ի [Synth 8-248] սխալը, երբ չկա դուրս ռեժիմի ռեգիստրներ: |
1.0.3 | Ուղղել Vivado Linter-ի նախազգուշացումը
համաժամանակյա վերակայում |
1.0.4 | Ուղղեք անկյունային պատյանը, երբ ստանում եք սխալ ձևով բառ՝ փախուստի նիշով որպես վերջին բայթ: Հաջորդ բառը նույնպես կկորչի, քանի որ IDLE վերադառնալիս մենք չջնջեցինք recv_data_prev_is_escape:
Gen_uart_regs.py սկրիպտն այժմ թույլ է տալիս միայն եզակի ռեգ անուններ: |
Նկարագրություն
- Այս փաստաթուղթը նկարագրում է հետևյալը files և թղթապանակներ.
- gen_uart_regs.py
- գեներացվել/uart_regs.vhd
- generated/uart_regs.py
- գեներացված/instantiation_template.vho
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- demo/lattice_icestick/
- demo/xilinx_arty_a7_35/
- demo/xilinx_arty_s7_50/
- gen_uart_regs.py սկրիպտը և աջակցող VHDL-ը fileԱյս նախագծում s-ը թույլ է տալիս ստեղծել հատուկ ինտերֆեյսեր՝ UART-ի միջոցով FPGA ռեգիստրի տարբեր տեսակների և լայնությունների արժեքները կարդալու և գրելու համար:
- Դուք կարող եք օգտագործել ստեղծված VHDL մոդուլը և Python սկրիպտը՝ ձեր դիզայնի ցանկացած թվով ռեգիստրներից կարդալու կամ գրելու համար: UART հասանելի ռեգիստրները կարող են ունենալ std_logic, std_logic_vector, signed կամ unsigned տեսակները:
- Դուք կարող եք որոշել մուտքային և ելքային ռեգիստրների և տեսակների ճշգրիտ կազմը ելքը ստեղծելիս files օգտագործելով gen_uart_regs.py սկրիպտը:
- Python սկրիպտները մասամբ ստեղծվել են ChatGPT արհեստական ինտելեկտի գործիքի օգնությամբ, մինչդեռ VHDL կոդը ձեռքի աշխատանք է։
Պահանջներ
- Այս նախագծի սկրիպտները պետք է գործարկվեն Python 3 թարգմանչի միջոցով և պետք է տեղադրվի Pyserial փաթեթը:
- Դուք կարող եք տեղադրել pyserial Pip-ի միջոցով՝ օգտագործելով այս հրամանը՝ pip install pyserial
Արձանագրություն
- VHDL files-ը և Python սկրիպտը օգտագործում են տվյալների շրջանակավորման արձանագրություն՝ չորս հսկողությամբ
Անուն | Արժեք | Մեկնաբանություն |
READ_REQ | 0x0A | Հրահանգ հյուրընկալողից FPGA-ին՝ գրություն սկսելու համար
բոլոր ռեգիստրները UART-ով հետ ուղարկելու հաջորդականությունը |
START_ԳՐԵԼ | 0x0B | Նշում է գրելու հաջորդականության սկիզբը որևէ մեկում
ուղղությունը |
END_ԳՐԵԼ | 0x0C | Նշում է գրելու հաջորդականության ավարտը երկու ուղղությամբ |
ՓԱԽՔ | 0x0D | Փախուստի նիշը, որն օգտագործվում է ցանկացած հսկիչ բառից, ներառյալ հենց ESCAPE նիշը, երբ դրանք հայտնվում են որպես տվյալներ START_WRITE և END_WRITE մարկերների միջև: |
Ցանկացած չփախված READ_REQ բայթ ուղարկված FPGA-ին հրահանգ է՝ UART-ին հասանելի բոլոր ռեգիստրները (մուտքեր և ելքեր) հետ ուղարկելու հոսթին UART-ով: Այս հրամանը սովորաբար տրվում է միայն uart_regs.py սկրիպտով:
Այս հրամանը ստանալուց հետո FPGA-ն կպատասխանի՝ բոլոր ռեգիստրների բովանդակությունը հետ ուղարկելով հոսթին: Նախ, մուտքային ազդանշանները, ապա ելքային ազդանշանները: Եթե դրանց երկարությունները չեն գումարվում մինչև 8 բիթերի բազմապատիկ, ապա վերջին բայթի ստորին բիթերը կկցվեն զրո:
Գրելու հաջորդականությունը միշտ սկսվում է START_WRITE բայթով և ավարտվում END_WRITE բայթով: Նրանց միջև եղած ցանկացած բայթ համարվում է տվյալների բայթ: Եթե տվյալների որևէ բայթ ունի նույն արժեքը, ինչ հսկիչ նիշը, ապա տվյալների բայթը պետք է դուրս գա: Սա նշանակում է ուղարկել լրացուցիչ ESCAPE նիշ տվյալների բայթից առաջ՝ նշելու, որ դրանք իրականում տվյալներ են:
Եթե չփախված START_WRITE-ը հասնում է բայթերի հոսքի որևէ տեղ, այն համարվում է գրելու հաջորդականության սկիզբ: uart_regs_backend մոդուլն օգտագործում է այս տեղեկատվությունը նորից համաժամացնելու համար, եթե հաղորդակցությունը չի համաժամեցվի:
gen_uart_regs.py
- Սա այն սցենարն է, որից դուք պետք է սկսեք ինտերֆեյսը ստեղծելու համար: Ստորև ներկայացված է օգնության մենյուի սքրինշոթը, որը կարող եք ստանալ՝ գործարկելով. python gen_uart_regs.py -h
- Հարմարեցված ինտերֆեյս ստեղծելու համար դուք պետք է գործարկեք սկրիպտը ձեր ուզած UART կառավարվող ռեգիստրներից յուրաքանչյուրի հետ, որոնք նշված են որպես արգումենտներ: Առկա տեսակներն են՝ std_logic, std_logic_vector, unsigned և signed:
- Լռելյայն ռեժիմը (ուղղությունը) գտնվում է, իսկ լռելյայն տեսակը՝ std_logic_vector, եթե ռեգիստրը երկարություն չունի. 1. Այնուհետև այն լռելյայն կլինի std_logic:
- Այսպիսով, եթե ցանկանում եք ստեղծել std_logic մուտքային ազդանշան, կարող եք օգտագործել այս փաստարկներից որևէ մեկը.
- my_sl=1
- my_sl=1:in
- my_sl=1:in:std_logic
- Վերոնշյալ բոլոր տարբերակները կհանգեցնեն նրան, որ սցենարը կստեղծի այս UART-հասանելի ազդանշանը.
- Եկեք գործարկենք սցենարը արգումենտներով՝ տարբեր ուղղությունների, երկարությունների և տեսակների մի քանի ռեգիստրներով ինտերֆեյս ստեղծելու համար
Գեներացվել է files
- Gen_uart_regs.py սկրիպտի հաջող գործարկումը կստեղծի ելքային թղթապանակ, որը կոչվում է գեներացված երեքով fileստորև նշված են: Եթե դրանք արդեն կան, ապա դրանք կվերագրվեն:
- գեներացվել/uart_regs.vhd
- generated/uart_regs.py
- գեներացված/instantiation_template.vho
- uart_regs.vhd
- Սա սկրիպտի կողմից ստեղծված հատուկ ինտերֆեյսի մոդուլն է: Դուք պետք է այն օրինականացնեք ձեր դիզայնում, որտեղ այն կարող է մուտք գործել այն ռեգիստրները, որոնք ցանկանում եք վերահսկել՝ օգտագործելով UART:
- «– UART հասանելի ռեգիստրներ» բաժնի վերևում գտնվող ամեն ինչ նույնական կլինի յուրաքանչյուր uart_regs մոդուլի համար, մինչդեռ այդ տողից ցածր նավահանգիստների ազդանշանների կազմը կախված է գեներատորի սկրիպտին տրված փաստարկներից:
- Ստորև բերված ցանկը ցույց է տալիս uart_regs մոդուլի կազմը, որը ստացվում է գեներացնող հրամանի օրինակիցampցուցադրված է gen_uart_regs.py բաժնում
- Ձեզ հարկավոր չէ համաժամեցնել uart_rx ազդանշանը, քանի որ այն մշակվում է uart_rx-ում: մոդուլ:
- Երբ մոդուլը ստանում է ընթերցման հարցում, այն կգրանցի բոլոր մուտքային և ելքային ազդանշանների արժեքները ընթացիկ ժամացույցի ցիկլի շրջանակներում: Այնուհետև ակնթարթային լուսանկարն ուղարկվում է հյուրընկալողին UART-ի միջոցով:
- Երբ գրություն է տեղի ունենում, բոլոր ելքային ռեգիստրները թարմացվում են նոր արժեքներով նույն ժամացույցի ցիկլում: Հնարավոր չէ առանձին փոխել ելքային ազդանշանի արժեքները:
- Այնուամենայնիվ, uart_regs.py սկրիպտը թույլ է տալիս օգտվողին թարմացնել միայն ընտրված արդյունքները՝ նախ կարդալով բոլոր ռեգիստրների ընթացիկ արժեքները: Այնուհետև այն հետ է գրում բոլոր արժեքները, ներառյալ թարմացվածները:
- uart_regs.py
- Ստեղծված/uart_regs.py-ը file ստեղծվում է uart_regs VHDL մոդուլի հետ միասին և պարունակում է անհատական ռեգիստրի տեղեկատվությունը վերնագրում file. Այս սցենարով դուք կարող եք հեշտությամբ կարդալ կամ գրել ձեր մաքսային գրանցամատյաններում:
Օգնության ընտրացանկ
- Մուտքագրեք python uart_regs.py -h օգնության ընտրացանկը տպելու համար.
UART պորտի կարգավորում
- Սցենարն ունի UART նավահանգիստ սահմանելու տարբերակներ՝ օգտագործելով -c անջատիչը: Սա աշխատում է Windows-ի և Linux-ի վրա: Սահմանեք այն օգնության ցանկում նշված հասանելի նավահանգիստներից մեկի վրա: Լռելյայն նավահանգիստ սահմանելու համար կարող եք նաև խմբագրել UART_PORT փոփոխականը uart_regs.py սկրիպտում:
Ցուցակման գրանցամատյաններ
- Ռեգիստրի քարտեզագրման մասին տեղեկատվությունը տեղադրվում է uart_regs.py սկրիպտի վերնագրում gen_uart_regs.py սկրիպտով: Դուք կարող եք թվարկել առկա ռեգիստրները -l անջատիչով, ինչպես երևում է ստորև: Սա տեղական հրաման է և չի փոխազդի թիրախային FPGA-ի հետ
Գրանցման համար գրել
- Դուք կարող եք գրել դուրս ռեժիմի ռեգիստրներից որևէ մեկին՝ օգտագործելով -w անջատիչը: Տրամադրեք ռեգիստրի անունը, որին հաջորդում է «=»-ը և արժեքը, որը տրված է որպես երկուական, տասնորդական կամ տասնորդական արժեք, ինչպես ցույց է տրված ստորև:
- Նկատի ունեցեք, որ VHDL-ի իրականացումը պահանջում է, որ սցենարը գրի բոլոր ելքային ռեգիստրները միաժամանակ: Հետևաբար, եթե չնշեք ելքային ռեգիստրների ամբողջական փաթեթը, սկրիպտը սկզբում կկատարի նպատակային FPGA-ի ընթերցում, այնուհետև կօգտագործի այդ արժեքները բացակայողների համար: Արդյունքը կլինի այն, որ փոխվեն միայն նշված ռեգիստրները
- Երբ դուք կատարում եք գրություն, բոլոր նշված ռեգիստրները կփոխվեն նույն ժամացույցի ցիկլի ընթացքում, ոչ թե UART-ով ստացվելուն պես:
Ընթերցանության գրանցամատյաններ
- Օգտագործեք -r անջատիչը՝ կարդալու բոլոր ռեգիստրի արժեքները, ինչպես ցույց է տրված ստորև: Դեղինով նշված արժեքներն այն արժեքներն են, որոնք մենք փոխել ենք նախորդ գրության մեջample
- Յուրաքանչյուր ընթերցում ցույց է տալիս բոլոր մուտքային և ելքային ռեգիստրների ակնթարթային պատկերը: Նրանք բոլորն էլ սampղեկավարվել է նույն ժամացույցի ընթացքում
Վրիպազերծում
Օգտագործեք -d անջատիչը ցանկացած այլ անջատիչի հետ, եթե Ձեզ անհրաժեշտ է վրիպազերծել կապի արձանագրությունը: Այնուհետև սցենարը կտպագրի բոլոր ուղարկված և ստացված բայթերը և tag դրանք, եթե դրանք կառավարման նիշ են, ինչպես ցույց է տրված ստորև:
Օգտագործելով միջերեսը Python-ի այլ սցենարներում
- uart_regs.py սկրիպտը պարունակում է UartRegs դաս, որը դուք հեշտությամբ կարող եք օգտագործել որպես հաղորդակցման միջերես Python-ի այլ հատուկ սկրիպտներում: Պարզապես ներմուծեք դասը, ստեղծեք դրա օբյեկտը և սկսեք օգտագործել մեթոդները, ինչպես ցույց է տրված ստորև:
- Մեթոդների և նկարագրությունների և վերադարձի արժեքների տեսակների համար դիմեք Python կոդի փաստաթղթերի տողերին:
instantiation_template.vho
- Instantiation կաղապարը ստեղծվում է uart_regs մոդուլի հետ միասին՝ ձեր հարմարության համար: Կոդավորման ժամանակը խնայելու համար դուք կարող եք պատճենել մոդուլի ինստանցիաները և ազդանշանային հայտարարությունները ձեր դիզայնում:
Ստատիկ RTL files
- Դուք պետք է ներառեք հետևյալը files ձեր VHDL նախագծում, որպեսզի դրանք կազմվեն նույն գրադարանում, ինչ uart_regs մոդուլը.
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- uart_regs_backend մոդուլն իրականացնում է վերջավոր վիճակի մեքենաներ, որոնք ժամացույց են անում ռեգիստրի տվյալները: Այն օգտագործում է uart_rx և uart_tx մոդուլները՝ հյուրընկալողի հետ UART հաղորդակցությունը կարգավորելու համար:
Դեմո նախագծեր
- Zip-ում ներառված են երեք ցուցադրական նախագիծ file. Նրանք թույլ են տալիս կառավարել ծայրամասային սարքերը տարբեր տախտակների վրա, ինչպես նաև մի քանի ավելի մեծ ներքին ռեգիստրներ:
- Դեմո թղթապանակները ներառում են նախապես ստեղծված uart_regs.vhd և uart_regs.py files պատրաստված հատուկ այդ նմուշների համար:
Ցանցային iCEstick
- Դեմո/icecube2_icestick թղթապանակը պարունակում է ռեգիստրի հասանելիության ցուցադրական իրականացում Lattice iCEstick FPGA տախտակի համար:
- Իրականացման գործընթացն անցնելու համար բացեք demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project file Lattice iCEcube2 դիզայնի ծրագրաշարում:
- Նախագիծը iCEcube2 GUI-ում բեռնելուց հետո սեղմեք Գործիքներ → Գործարկել բոլորը՝ ծրագրավորման բիթքարտեզ ստեղծելու համար։ file.
- Դուք կարող եք օգտագործել Lattice Diamond Programmer Standalone գործիքը՝ FPGA-ն ստեղծած բիթքարտեզով կարգավորելու համար: file. Երբ Diamond Programmer-ը բացվում է, կտտացրեք Բացեք գոյություն ունեցող ծրագրավորողի նախագիծը ողջույնի երկխոսության վանդակում:
- Ընտրեք նախագիծ file հայտնաբերվել է Zip-ում՝ demo/lattice_icestick/diamond_programmer_project.xcf և սեղմել OK:
- Նախագծի բեռնումից հետո սեղմեք երեք կետերի վրա File Անվանման սյունակ, ինչպես ցույց է տրված վերևում: Թերթիր՝ bitmap-ն ընտրելու համար file որը դուք ստեղծել եք iCEcube2-ում
- demo/lattice_icestick/icecube2_proj/uart_regs_Implmnt/sbt/outputs/bitmap/top_icestick_bitmap.bin
- Վերջապես, երբ iCEstick տախտակը միացված է ձեր համակարգչի USB պորտին, ընտրեք Դիզայն → Ծրագիր՝ SPI ֆլեշ-ը ծրագրավորելու և FPGA-ն կարգավորելու համար:
- Այժմ կարող եք շարունակել գրանցամատյանները կարդալ և գրել՝ օգտագործելով demo/lattice_icestick/uart_regs.py սկրիպտը, ինչպես նկարագրված է uart_regs.py բաժնում:
Xilinx Digilent Arty A7-35T
- Դուք կարող եք գտնել Artix-7 35T Arty FPGA գնահատման հավաքածուի ցուցադրական իրականացումը demo/arty_a7_35 պանակում:
- Բացեք Vivado-ն և անցեք արդյունահանված files օգտագործելով Tcl վահանակը, որը գտնվում է GUI ինտերֆեյսի ներքևում: Մուտքագրեք այս հրամանը՝ դեմո նախագծի թղթապանակ մտնելու համար.
- cd /demo/arty_a7_35/vivado_proj/
- Կատարեք create_vivado_proj.tcl Tcl սկրիպտը՝ Vivado նախագիծը վերականգնելու համար.
- աղբյուր ./create_vivado_proj.tcl
- Կտտացրեք «Ստեղծեք բիթ հոսք» կողային տողում, որպեսզի անցնեք իրականացման բոլոր քայլերը և ստեղծեք ծրագրավորման բիթ հոսքը file.
- Ի վերջո, սեղմեք Open Hardware Manager-ը և ծրագրավորեք FPGA-ն GUI-ի միջոցով:
- Այժմ կարող եք շարունակել ռեգիստրները կարդալ և գրել՝ օգտագործելով demo/arty_a7_35/uart_regs.py սկրիպտը, ինչպես նկարագրված է uart_regs.py բաժնում:
Xilinx Digilent Arty S7-50
- Դուք կարող եք գտնել Arty S7: Spartan-7 FPGA մշակման տախտակի ցուցադրական իրականացումը demo/arty_s7_50 պանակում:
- Բացեք Vivado-ն և անցեք արդյունահանված files օգտագործելով Tcl վահանակը, որը գտնվում է GUI ինտերֆեյսի ներքևում: Մուտքագրեք այս հրամանը՝ դեմո նախագծի թղթապանակ մտնելու համար.
- cd /demo/arty_s7_50/vivado_proj/
- Կատարեք create_vivado_proj.tcl Tcl սկրիպտը՝ Vivado նախագիծը վերականգնելու համար.
- աղբյուր ./create_vivado_proj.tcl
- Կտտացրեք «Ստեղծեք բիթ հոսք» կողային տողում, որպեսզի անցնեք իրականացման բոլոր քայլերը և ստեղծեք ծրագրավորման բիթ հոսքը file.
- Ի վերջո, սեղմեք Open Hardware Manager-ը և ծրագրավորեք FPGA-ն GUI-ի միջոցով:
- Այժմ կարող եք շարունակել գրանցամատյանները կարդալ և գրել՝ օգտագործելով demo/arty_s7_50/uart_regs.py սկրիպտը, ինչպես նկարագրված է uart_regs.py բաժնում:
Իրականացում
- Իրականացման հատուկ պահանջներ չկան:
Սահմանափակումներ
- Այս դիզայնի համար ժամանակի հատուկ սահմանափակումներ չեն պահանջվում, քանի որ UART ինտերֆեյսը դանդաղ է և համարվում է ասինխրոն ինտերֆեյս:
- uart_rx մուտքագրումը uart_regs մոդուլին համաժամացվում է uart_rx մոդուլում: Այսպիսով, այն պետք չէ համաժամեցնել վերին մակարդակի մոդուլում:
Հայտնի խնդիրներ
- Ձեզ կարող է անհրաժեշտ լինել զրոյացնել մոդուլը, նախքան այն օգտագործելը, կախված նրանից, թե արդյոք ձեր FPGA ճարտարապետությունն աջակցում է լռելյայն ռեգիստրի արժեքներին:
Լրացուցիչ տեղեկություններ
- Հեղինակային իրավունք VHDLwhiz.com
ՀՏՀ-ներ
Հարց: Ո՞րն է UART թեստային ինտերֆեյսի գեներատորի նպատակը:
A. UART թեստային ինտերֆեյսի գեներատորը թույլ է տալիս ստեղծել հատուկ ինտերֆեյսներ՝ FPGA ռեգիստրի արժեքների հետ փոխազդելու համար՝ օգտագործելով UART հաղորդակցությունը:
Հարց: Ինչպե՞ս կարող եմ տեղադրել Pyserial փաթեթը:
A: Դուք կարող եք տեղադրել Pyserial-ը Pip-ի միջոցով՝ օգտագործելով հրամանը՝ pip install pyserial
Փաստաթղթեր / ռեսուրսներ
![]() |
VHDLwiz UART փորձարկման ինտերֆեյսի գեներատոր [pdf] Օգտագործողի ձեռնարկ UART փորձարկման ինտերֆեյսի գեներատոր, փորձնական ինտերֆեյսի գեներատոր, ինտերֆեյսի գեներատոր, գեներատոր |