Cov txheej txheem:

Ua Ib qho Sensor Tawm ntawm FPGA: 4 Cov Kauj Ruam
Ua Ib qho Sensor Tawm ntawm FPGA: 4 Cov Kauj Ruam

Video: Ua Ib qho Sensor Tawm ntawm FPGA: 4 Cov Kauj Ruam

Video: Ua Ib qho Sensor Tawm ntawm FPGA: 4 Cov Kauj Ruam
Video: Ntuj Muas_Nkauj Tawm Tshiab "👉Txhob Dhuav Tus Ntawm Koj Ib Sab💖" [Official MV] 2023 / Hmong New Song 2024, Lub Xya hli ntuj
Anonim
Image
Image
FPGA ua
FPGA ua

Cov neeg tsim khoom feem ntau sim tsim tsawg kawg ib zaug hauv lawv lub neej tus pas ntsuas kub, tej zaum qhov uas lawv muaj hauv tsev tsis ntse txaus, lossis tej zaum lawv xav tias lawv tuaj yeem tsim NEST tom ntej. Txawm li cas los xij, qee lub sijhawm lawv muaj lub microcontroller nrog lawv lub xeev-of-the-art software sib txuas mus rau qhov ntsuas kub (thiab tej zaum lwm qhov ntsuas: siab, teeb). Txog tam sim no txhua yam zoo meej, software tau ua haujlwm thiab lub ntsuas tau hnov zoo. Wb sim nws!

Hmmmm … tej zaum nws yuav tsum ua kom sov lub ntsuas hluav taws xob siv lub tshuab ziab plaub hau thiab txias nws kom siv cov dej khov, nws ua haujlwm rau ib lub sijhawm. Tab sis nws tsis zoo li kev tshaj lij, lub ntsuas ntsuas hloov pauv qhov nrawm dua yog tias koj ua kom sov nws, nws tsis kub ntau dua li ob peb qib. Qhov project yog tsoo! Tab sis lub algorithm yog qhov tshiab, siv rau hauv tus lej ntau yam, dab tsi txaj muag uas nws tau nyam ntawm qhov ruam me me no.

Kuv qhov kev daws teeb meem yog qhov no: ua FPGA ua tus ntsuas nrog cov txiaj ntsig ntws los ntawm lub PC (lossis khaws cia hauv nco, lossis tsim ad-hoc sab hauv FPGA). Yog li rau koj qhov MCU muaj txiaj ntsig FPGA zoo li lub ntsuas, tab sis tsis yog ib qho ntsuas: qhov twg yog qhov koj nyiam. Tej zaum koj txiav txim siab tias koj xav tau kev daws teeb meem ntau dua lossis lub sijhawm teb sai dua qhov xav tau, koj yuav tsum hloov lub ntsuas. Hais kom nws online, nws yuav tuaj txog ob peb hnub, ntawm ob peb lub hlis, leej twg paub. Respin koj PCB lossis xaj ib qho qauv nrog lub ntsuas tshiab. Los yog … ob peb nias thiab FPGA tau teeb tsa raws li koj lub cim tshiab thiab nws tuaj yeem ua raws li kev teeb tsa sab hauv.

Thaum lub sijhawm sau qhov no, FPGA tuaj yeem ua tus LM75 nrog cov ntaub ntawv ntsuas kub hauv BRAM (ntawm FPGA).

Kauj ruam 1: MCU

Kuv MCU xaiv yog LPC4337 ntawm LPCXpresso. Nyob rau sab saum toj ntawm nws kuv muaj daim ntaub thaiv (LPC General Purpose Shield) nrog cov zaub thiab lub LM75 sensor tiag. LPC4337 yog ARM Cortex M4 khiav ntawm 200MHz thiab Cortex M0 me dua (tsis siv ntawm no). Qhov tseeb sensor txuas nrog I2C1 ib leeg thiab peb lub virtual yuav txuas nrog I2C0. Cov peev txheej muaj nyob ntawm kuv GitHub.

Yuav tsim nws li cas? Rub tawm LPCXpresso IDE ua ke nrog LPCOpen lub tsev qiv ntawv. Ntshuam lub tsev qiv ntawv ntawd rau hauv IDE thiab tseem qhib qhov haujlwm los ntawm GitHub. Txhua yam yuav tsum tau teeb tsa thiab koj tuaj yeem nyem rau ntawm "Debug" hauv qab kaum sab laug.

Tag nrho txoj haujlwm yog ua raws ib qho ntawm NXP cov piv txwv (raws li qhia tias kuv txoj haujlwm simulates lub ntsuas cua tiag thiab tsis xav tau tus lej tshwj xeeb ntawm MCU sab). Hauv cov ntawv tseem ceeb (hu ua iox_sensor.cpp) dag tus lej no:

#define SENSORS_ON_SHIELD

#if txhais (SENSORS_ON_SHIELD) #define SHIELD_I2C I2C1 #elif txhais (SENSORS_ON_FPGA) #define SHIELD_I2C I2C0 #endif

Los ntawm kev hloov SENSOR_ON_SHIELD thiab SENSOR_OR_FPGA tus neeg siv tuaj yeem hloov pauv ntawm lub sijhawm suav nrog lub ntsuas twg los tham, tus tiag lossis tus tiag tiag, raws li lawv nyob ntawm I2C pins sib txawv.

Kauj Ruam 2: FPGA

Kuv FPGA pawg thawj coj xaiv yog Artix 7 ua los ntawm Digilent, muaj Xilinx Arty 7. Ob ntawm PMod txuas tau siv, ib qho rau kev debuging thiab ib qho rau kev them nyiaj tiag, kev sib txuas nrog MCU board.

Ib zaug ntxiv, qhov chaws rau FPGA muaj nyob ntawm kuv GitHub (fpgaSide nplaub tshev).

Yuav tsim nws li cas? Rub tawm, yuav lossis qhib Xilinx Vivado IDE. Ntshuam cov ntaub ntawv los ntawm GitHub. Ib ntawm cov ntaub ntawv (content.coe) yog cov ntaub ntawv ntsuas kub hauv cov ntaub ntawv nyoos uas yuav dhau mus rau cov khoom cuav. Kuj tseem muaj cov ntawv Excel nrog tib lub npe uas pab hloov tib neeg cov ntaub ntawv ntsuas kub kom ntxaws LM75 cov ntaub ntawv. Kuv tab tom npaj hloov qhov no mus rau cov txheej txheem siv tshuab nrog ib daim software sau hauv Java tab sis txog thaum qhov kev daws teeb meem no ua haujlwm. Kev sib xyaw thiab kev ua tiav yuav tsum siv sijhawm me ntsis, ua qhov no los txiav txim siab.

Kauj Ruam 3: Nws Ua Haujlwm Li Cas?

Nws Ua Haujlwm Li Cas?
Nws Ua Haujlwm Li Cas?
Nws Ua Haujlwm Li Cas?
Nws Ua Haujlwm Li Cas?

Raws li kuv tau hais, rau MCU, FPGA zoo li lub ntsuas pa, ntau dua qhov I2C sensor. Cov zis ntawm I2C cov khoom siv txuas nrog FPGA cov tswv yim. Sab hauv FPGA muaj 3 lub hauv paus tseem ceeb:- I2C Controller- I2C Device- DataThe I2C Controller tau txais I2C cov ntaub ntawv los ntawm FPGA tus pin thiab xa lawv mus rau FPGA tas thiab ua tib yam hauv kev thim rov qab. Nws tswj hwm lub xeev lub tshuab sab hauv rau I2C Raws Cai (los ntawm txoj kev, ntawm no yog cov ntaub ntawv rau nws). Cov khoom no xa mus rau I2C Device li cas? Tam sim no tau txais byte, txoj haujlwm ntawm lub byte hauv kev sib txuas lus tam sim no thiab seb MCU tau sau ntawv lossis nyeem los ntawm FPGA. I2C Device tau txais cov xa bytes thiab hloov kho qhov simulated sab hauv cov qauv. Nws yuav tsuas yog hloov kho tus cim npe lossis thov cov ntaub ntawv tshiab los ntawm cov ntaub ntawv keeb kwm. Cov ntaub ntawv tiv thaiv cov ntaub ntawv tshiab cov ntsiab lus. Tam sim no nws tsuas yog ROM nco nws qhov chaw nyob tau nce ntxiv (kwv yees) ob zaug ib pliag.

Kuv lub hom phiaj kawg yog dab tsi? Nws tau qhia hauv daim duab thib ob. Ntawd yog: ua rau nws muaj peev xwm ntau dua I2C cov cuab yeej (cov ntsuas thiab lwm yam) los ua piv txwv tib lub sijhawm hauv FPGA. Cov ntaub ntawv ntawm lub nraub qaum ntawm lub ntsuas kom raug kaw hauv FPGA thiab ntws los ntawm PC ntawm USB lossis Ethernet. Txhawb nqa cov ntsuas siab ntxiv thiab lwm yam khoom siv I2C (nco, tsav tsheb LED thiab lwm yam).

Kauj Ruam 4: Muab Nws Txhua Qhov Ua Ke

Muab Nws Tag Nrho Ua Ke
Muab Nws Tag Nrho Ua Ke
Muab Nws Tag Nrho Ua Ke
Muab Nws Tag Nrho Ua Ke

Tam sim no yog lub sijhawm los txuas txhua yam rau togheter. Kev xav, nws yooj yim: pawg mcu muaj PMod txuas (I2C0 & SSP0 (tuaj yeem ua haujlwm zoo li SPI)). Pawg Artix muaj 4 PMod txuas uas tuaj yeem siv tau txawm li cas los xij koj xav tau. Kuv xaiv tus txuas D tham nrog MCU thiab txuas B txuas rau kuv tus Logic Analyzer.

Ceeb toom

Koj tsis tuaj yeem txuas ob lub laug cam ua ke ib yam nkaus. Vim li cas? PMod tau tsim kom yooj yim kev sib txuas ntawm Master/Host board (uas muab lub zog) rau Slave/Sensor board (uas tau txais lub zog). Tab sis hauv txoj haujlwm no ob lub rooj sib tham muab lub zog thiab yog tias koj txuas 3.3V cov zis los ntawm ib lub rooj tsavxwm mus rau 3.3V cov txiaj ntsig ntawm lwm lub rooj tsav xwm tsis zoo tuaj yeem tshwm sim. Tab sis lawv yuav tsis yog thiab koj tsuas yog yuav hloov pauv qhov tsis sib xws ntawm txoj kab hluav taws xob ntawm FPGA (lawv tau ua tib zoo tsim). Yog li tsis txhob ua qhov kev pheej hmoo no thiab txav tus pin txuas rau sab laug (thiab tseem tig lub FPGA board) raws li pom hauv cov duab saum toj no. Nov yog PMod cov lus qhia tshwj xeeb, koj pom nws kawm, yam kuv tau ua hauv cov lus luv yog tsis txuas VCCs ntawm ob lub rooj.

Pom zoo: