USBçµç±ã§æ§æãFPGAã«ããŠã³ããŒãããããFTDI MPSSEãéã¢ã»ã³ãã«ããŸã
FPGAããŒããŒã¯LabVIEWã§äœæããŸãã ããŒã1

æåã®èšäºã§ã¯ãå€ãè¯ãCã§ããŒãã¢ã«ãŽãªãºã ããã¹ããã2çªç®ã®èšäºã§ã¯ãLabVIEWã§ããã°ã©ã ãæŽçããã·ã³ãã«ãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããæ¹æ³ãèŠã€ããŸããã ä»åã¯ãLabVIEWã®æ°ããäœæ¥æ¹æ³ã«ç²Ÿéãããšã©ãŒåŠçã®æ©èœãåæããŠãããžã§ã¯ããå®äºããŸããæ§æãã¡ã€ã«ãFPGAã«ããŒãããããã®ãããã³ã«ãå®è£
ããŸãã
ãšã©ãŒåŠç
ãœãŒã¹ã³ãŒããéããé¢æ°MPSSE_openãåæããŸãã ã¢ã«ãŽãªãºã ã®åçŽãïŒé¢æ°ã¯æ¬¡ã
ã«åŒã³åºãããŸãïŒã«ãããããããã€ã³ããŒãããå¿
èŠãããD2XX APIèŠçŽ ã¯éåžžã«å€ããããŸãã åã®èšäºã§ç€ºããããã«ãé¢æ°ã®ã€ã³ããŒãã¯Call library Function
ããŒãã䜿çšããŠå®è¡ãããŸãã ãã®ããŒãã«ã¯ããšã©ãŒå¶åŸ¡å°çšã®ã¿ãŒããã«ããããŸãã LabVIEWã«ã¯1ã€ã®ç°¡åãªã«ãŒã«ããããŸãããã¹ãŠã®VIã¯ãšã©ãŒã远跡ãããšã©ãŒç«¯åããè¿ããããšã©ãŒãå ±åããå¿
èŠããããŸãã ã»ãšãã©ã®çµã¿èŸŒã¿VIã¯ãå³å¯ã«ããã«åŸããŸãã ç¹ã«ãããã°æ®µéã§ããšã©ãŒãå¶åŸ¡ããã³åŠçããããšãã©ãã»ã©éèŠãã誰ããç解ããŠãããããšãé¡ã£ãŠããŸããããããéåžžã«éèŠã§ãããã1ã€ã®çç±ããããŸãã LabVIEWã®ãããã¯å³ã«ã¯å³å¯ãªã·ãŒã±ã³ã¹ã®ããã€ã¹ããããŸãããå
¥åã§ããŒã¿ãæºåããããšãããã€ã¹ãå®è¡ãããŸãã 1ã€ã®VIã®åºåããã®ããŒã¿ãå¥ã®VIã®å
¥åã«éä¿¡ãããå Žåãæåã®VIã¯2çªç®ã®VIã®åŸã«ã®ã¿æ©èœããããšã¯æããã§ãã ããããããŒã¿è»¢éããªããVIãç¬ç«ããã¢ã¯ã·ã§ã³ãå®è¡ãããšã©ããªããŸããïŒ ãã¡ãããé¢åãªããã©ããã·ãŒã±ã³ã¹æ§é ãã䜿çšã§ããŸããããšã©ãŒã®ã¹ããªãŒã ã«ãã£ãŠããã€ã¹ãçžäºã«æ¥ç¶ããæ¹ãã¯ããã«äŸ¿å©ã§ãã
D2XXé¢æ°ãã€ã³ããŒããããšã2çš®é¡ã®ãšã©ãŒãçºçããŸãã æåã®-ããã¯çŽæ¥ã€ã³ããŒããšã©ãŒã§ãCall library Function
ãããã¯èªäœãè¿ããŸãã 2çªç®ã¯ã©ã€ãã©ãªèªäœã®ãšã©ãŒã§ãããã»ãšãã©ãã¹ãŠã®é¢æ°ã«ãã£ãŠFT_STATUS
ãä»ããŠFT_STATUS
ãŸãã å¯èœãªãã¹ãŠã®å€ã¯ãããããŒãã¡ã€ã«ftd2xx.hã«åæãšããŠèšè¿°ãããŠããŸãã FT_OK
å€ã«ãšã©ãŒããªãããšãããã³ä»ã®ãã¹ãŠã®å€ããšã©ãŒã³ãŒãã§ããããšãç¥ãã ãã§ååã§ããããšã©ãŒã®äºå®ã ãã§ãªããçºçãããšã©ãŒãšæ£ç¢ºã«çºçããå Žæã远跡ããããšæããŸãã
LabVIEWã§ã¯ããšã©ãŒããŒã¿ã¯error
ã¯ã©ã¹ã¿ãä»ããŠäŒæããerror
ã ããã¯éåžžã«ç¹å¥ãªå°çšããŒã¿ã¿ã€ãã§ãããLabVIEWã«ã¯ãããæäœããããã®å€ãã®VIãšé¢æ°ããããŸãã ãšã©ãŒã¯ã©ã¹ã¿ãŒã¯3ã€ã®èŠçŽ ã§æ§æãããŸããè«çå€æ°-ã¹ããŒã¿ã¹ã®è¡šç€ºã笊å·ä»ãæŽæ°-ãšã©ãŒã³ãŒããæåå-ãšã©ãŒã®ãœãŒã¹ã ã¹ããŒã¿ã¹ã¯ãšã©ãŒãçºçãããã©ããã瀺ãããšã©ãŒã³ãŒãã¯ãã®ã¿ã€ãã決å®ããã¬ããŒããçæããããã«ç¹å¥ãªVIã«ãã£ãŠäœ¿çšãããŸãã ãã®è¡ã¯ããšã©ãŒãçºçããæ£ç¢ºãªå Žæããã詳现ã«ç€ºããŠããŸãã ã¹ããŒã¿ã¹ãTRUE
å Žåãããã¯ãšã©ãŒã§ãããã¹ããŒã¿ã¹ãFALSE
å Žåãããã¯ãšã©ãŒã§ãããã³ãŒãã¯ãŒãã§ã¯ãªãã説æè¡ã¯ç©ºã§ã¯ãããŸãããã¹ããŒã¿ã¹ãFALSE
ãã³ãŒãããŒããè¡ã空ã®å Žåãããã¯èŠåã§ã-ãšã©ãŒã¯ãããŸãã

LabVIEWã«ã¯ãåãšã©ãŒã³ãŒãããã®èª¬æã«é¢é£ä»ããããŠããå
éšããŒã¿ããŒã¹ãå«ãŸããŠããŸãã ãšã©ãŒã®çš®é¡ããšã«ç¹å¥ãªç¯å²ã®ã³ãŒãå€ãå²ãåœãŠãããŸãã ããšãã°ããããã¯ãŒã¯ã®åäœã«é¢é£ãããšã©ãŒã«ã¯ã-2147467263ã-1967390460ã61ã65ã116ã118ããã³122ã1101ã1114ã1115ã1132ã1134ã1139ã1143ã1178ã1185ã®ç¯å²ãå²ãåœãŠãããŸãããŠãŒã¶ãŒå®çŸ©ãšã©ãŒã®å Žåã-8999ã8000ããã³5000ã9999ã®2ã€ã®ç¯å²ãäºçŽãããŠããŸãããããã®ç¯å²ãããD2XXã©ã€ãã©ãªã®ãšã©ãŒã³ãŒãã®å€ãéžæã§ããŸãã
å
¥åãšããŠD2XXé¢æ°ã®ã¹ããŒã¿ã¹ãåãåãããã®ã¹ããŒã¿ã¹ãLabVIEWãšã©ãŒã¯ã©ã¹ã¿ã«å€æããVIãäœæããŸãããã Error In
å
¥åã§TRUE
ã¹ããŒã¿ã¹ãåãåã£ãLabVIEWã®ã»ãšãã©ã®é¢æ°ãšVIã¯ãã³ãŒããå®è¡ããããšã©ãŒæ
å ±ãError Out
端åã«è»¢éããŸãã ããã«ããããœãŒã¹ã«é¢ããæ
å ±ããã§ãŒã³å
šäœãéããŠãšã©ãŒãã³ãã©ã«å¹ççã«è»¢éã§ããç·æ¥ã¢ãŒãã§ã®ã³ãŒãã®å®è¡ãäžèŠã«ãªããŸãã VIãåæ§ã«åäœããããšãæãŸããã§ãã
D2XXã¹ããŒã¿ã¹ã®ãªã¹ããenum
ã®åœ¢åŒã§æŽçããå¥ã®ã¿ã€ãã«é
眮ããŸãïŒåã®èšäºã§ãããFTDIã¿ã€ãã§è¡ããŸããïŒã
æ°ããVIãFT_error.viãšããååã§ä¿åããŸãã 2ã€ã®ã¯ã©ã¹ã¿ãŒError In
ãšError Out
ããã³ãããã«ã«è¿œå ããŸãããããã¯[ArrayãMatrixïŒCluster]ããã«ã§èŠã€ããããšãã§ããŸãã åã®èšäºã§ãã§ã«è¿°ã¹ãããã«ãããããããããå·Šäžé
ãšå³äžé
ã®æ¥ç¶ããã«ã®ç«¯åã«æ¥ç¶ããŸããããã¯LabVIEWã§æ¡çšãããŠãããšã©ãŒãããŒç«¯åã®å Žæã§ãã Case
æ§é ããããã¯å³ã«è¿œå ãã Error In
ã¯ã©ã¹ã¿ãŒãCase selector
å
¥åã«éä¿¡ããŸãããã®åŸã Case
æ§é ã®è²ãå€ãããããšã©ãŒãªãã-ç·ãããšã©ãŒã-èµ€ã®2ã€ã®ãµããã€ã¢ã°ã©ã ã«åå²ãããŸãã ãšã©ãŒã±ãŒã¹å
ã§ããšã©ãŒã¯ã©ã¹ã¿ãŒãã»ã¬ã¯ã¿ãŒã¿ãŒããã«ããçŽæ¥å³å¢çã®åºåãã³ãã«ã«è»¢éããŸãã ãããŠç·ã®ã±ãŒã¹ã§ã¯ãã¹ããŒã¿ã¹ã«å¿ããŠå¥ã®Case
ãè¿œå ãããšã©ãŒãäœæãããïŒã¹ããŒã¿ã¹ãFT_OKã«çãããªãïŒããã®ãŸãŸã«ãããã決å®ããŸããå
¥åãšã©ãŒã¯ã©ã¹ã¿ãŒãã¹ãããããŠå€æŽããã«çµäºããŸãã
ãšã©ãŒã³ãŒããæè¡çã«ã¯ã©ã¹ã¿ãŒã«å€æããã«ã¯ããšã©ãŒã³ãŒãError Cluster From Error Code VI
VI Error Cluster From Error Code VI
VIã䜿çšã§ããŸãã ãã®SubVIã¯ãšã©ãŒã®èª¬æã«åŒã³åºããã§ãŒã³ãè¿œå ããããã äœãèµ·ãã£ãã®ãã ãã§ãªãã ã©ãã§èµ·ãã£ãã®ããå€æã§ããŸãã
å
¥åã¹ããŒã¿ã¹ïŒFT_StatusïŒã«å¯Ÿå¿ããããã¹ããéžæããã«ã¯ãããããã£ãããã¯ã䜿çšããŸãïŒ "RingText.Text"ãéžæããŸãã ãšã©ãŒããã¹ãã¯ã Error Cluster From Error Code VI
ã®error message
å
¥åã«éä¿¡ããerror message
ã
ã話ããã¢ã€ã³ã³ãæãããšãå¿ããªãã§ãã ããã
FT_error.vi
ããã³ãïŒããã³ãïŒãµãã€ã³ã¹ãã«ã¡ã³ãããã«

ãããã¯å³ã å
¥åãšã©ãŒ

ãããã¯å³ã å
¥åã«ãšã©ãŒã¯ãªããã¹ããŒã¿ã¹ã¯FT_OKã§ã

ãããã¯å³ã å
¥åã«ãšã©ãŒã¯ãããŸããããã¹ããŒã¿ã¹ã¯FT_OKãšã¯ç°ãªããŸã
FT_errorããã¹ãããã«ã¯ã空ã®VIãäœæããäœæããVIãããã«è¿œå ããããŸããŸãªã¹ããŒã¿ã¹ãé©çšãããå Žåã«èµ·åæã«å€ãã©ã®ããã«å€åãããã確èªããŸãã
FT_error.viãã¹ã
ããã€ã¹ã®ããã³ãïŒããã³ãïŒããã«

ãããã¯å³
ããã§ãD2XX APIããé¢æ°ãåŒã³åºããåŸãSubVI FT_error.viã䜿çšããŸãã ãšã©ãŒã®ã¯ã©ã¹ã¿ãŒã¯ãåŒã³åºãéå±€å
šäœã®ãã¹ãŠã®VIãééããŸãã
ãããã¬ãã«VIã§ã¯ãæ€åºããããšã©ãŒã®åŠçæ¹æ³ã決å®ããå¿
èŠããããŸãããã€ã¢ãã°ããã¯ã¹ã«ã¡ãã»ãŒãžã衚瀺ããããã¬ããŒããã¡ã€ã«ã«æžã蟌ãã ããç¡èŠããããåã«ããµã€ã¬ã³ããã«ã¢ããªã±ãŒã·ã§ã³ãçµäºãããã§ããŸãã ãã€ã¢ãã°ããã¯ã¹ã¯ããšã©ãŒãå ±åããæãç°¡åã§æãäžè¬çãªæ¹æ³ã§ãã ãŸããäœãããå¿
èŠããªãã®ã§ãåå¿è
ã®ããã°ã©ããŒã«ãšã£ãŠã䟿å©ã§ãã åVIã§ã¯ã èªåãšã©ãŒåŠçã¢ãŒããããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãïŒVIããããã£ã¡ãã¥ãŒã®å®è¡ã«ããŽãªã«ããèªåãšã©ãŒåŠçãæå¹ã«ããïŒã ããã¯æ¬¡ã®ããã«æ©èœããŸããäžéšã®ããŒãã§Error Out
åºååºå端åãã©ãã«ãæ¥ç¶ãããŠãããããã®ããŒãã§ãšã©ãŒãçºçããå ŽåãLabVIEWã¯ã¢ããªã±ãŒã·ã§ã³ãäžæåæ¢ããŠãã€ã¢ãã°ããã¯ã¹ã衚瀺ããŸãã ããŒãã®Error Out
端åãæ¥ç¶ãããŠããå Žåããšã©ãŒã¹ããªãŒã ã¯ããã°ã©ã ããããšããã«äŒæããè¿œå ã®ã¢ã¯ã·ã§ã³ã¯çºçããŸããã ãã ããã¡ãã»ãŒãžãŠã£ã³ããŠã¯ããã°ã©ã ã§åŒã³åºãããšãã§ããŸãããã®ããã«ã¯ã General Error Handler
ããã³Simple Error Handler
VIïŒãã€ã¢ãã°ãšãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããã«ã«ãããŸãïŒã䜿çšããå¿
èŠããããŸãã ãã®å Žåããšã©ãŒæ
å ±ã䜿çšããŠããã°ã©ã ãå®äºããããšãã§ããŸãã ãããã¯å³ã§ã¯ã次ã®ããã«ãªããŸãã

ã¯ãªãã¯å¯èœãªç»å
ãšã©ãŒãçºçãããšãããã°ã©ã ã¯äžæãããã¬ããŒããŠã£ã³ããŠã衚瀺ãããŸãããŠã£ã³ããŠãéããåŸãããã°ã©ã ã¯æ£ããçµäºããŸãã
ã¬ããŒããŠã£ã³ã㊠FTDIã®éé
ãããã£ãŠã MPSSE_open
é¢æ°ã«MPSSE_open
ãŸãã æ°ããVIãäœæããŸãã ãŸãããšã©ãŒã¹ããªãŒã çšã®ã¿ãŒããã«ãè¿œå ããŸãã éžææ§é ãè¿œå ããã»ã¬ã¯ã¿ãŒã§[ Error In
å
¥å]ãéžæããŸãã ç·è²ã®å ŽåãSishnyãããã¿ã€ãã®å Žåãšåãé åºã§ãã©ã¡ãŒã¿ãŒã䜿çšããŠé¢æ°ãã€ã³ããŒãããŸãã Call Library Function Node
ããŒãã®ãã¹ãŠã®ããŒãã¯ããšã©ãŒã®ã¹ããªãŒã ã«ãã£ãŠãã§ãŒã³ã§æ¥ç¶ãããŠããŸãã ãã³ãã«ãéãèµ€ãã±ãŒã¹ã§ã¯ããšã©ãŒå
¥åãError In
ã®åºå端åã«æ¥ç¶ããŸãã

ã¯ãªãã¯å¯èœãªç»å

VI MPSSE_open.vi
FTDIã®Description
ïŒ Description
ïŒãå«ãè¡ãSubVIã®å
¥åã«éä¿¡ãããåºåã¯Handle
ããã³MPSSEã¢ãŒãã®åæåãããFTDIãããã§ãã
FTDIã®äœ¿çšãçµäºããVPãäœæããŠã¿ãŸããããããŒããŠã§ã¢ã®ããã©ãŒãã³ã¹ãæ¢ã«ç¢ºèªã§ããŸãã
FT_Close.vi
ãããã¯å³

ããã³ãããã«
ååã®èšäºã§ãã€ã³ã¿ãŒãã§ãŒã¹ããããã°ããããã«ãVIã¹ã¿ãSP_FT_MPSSE_FPGA.viãäœæããŸãããä»åºŠã¯ããããåãããšãã§ãã MPSSE_open.viããã³FT_Close.viããããã¯å³ã«è¿œå ããŸãã ãã®æ®µéã§ã¯ãåæåãæ£ãããã©ãããè©äŸ¡ããã®ã¯éåžžã«å°é£ã§ãããMPSSE_open.viã®åºåã®Handle
ãŒã以å€ã®å€ãšãšã©ãŒããªãããšã¯ãå€ããæããŠãããŸãã

ãããŒãã£ãŒãSP_FT_MPSSE_FPGA.vi
Handle
ã®å€ã確èªããã«ã¯ããProbe Watch Windowãã䜿çšã§ããŸãã ããã¯ãããã€ã¹ã®å®è¡äžã«ä»»æã®ïŒã»ãŒãã¹ãŠã®ïŒã¯ã€ã€ã«ããŒã¿ã®å€ã衚瀺ã§ãã䟿å©ãªãããã°ããŒã«ã§ãã è¡ã«ãµã³ãã«ãèšå®ããã«ã¯ããã®è¡ã®ã³ã³ããã¹ãã¡ãã¥ãŒã§[ãããŒã]ãéžæããå¿
èŠããããŸãã ãProbe Watch WindowããŠã£ã³ããŠãéããè¡ã«ãµã³ãã«çªå·ä»ãã®çªå·ã衚瀺ãããŸãã äžã®å³ã§ã¯ãã3ãã§ãã
ãããŒããŠã©ãããŠã£ã³ããŠ
ãã³ãã«è¡ã®å€698389336
ãããïŒ ãããã¬ãã«VIãèµ·åãããããã°ããŒããã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŸãã æ¥ç¶ãããFTDIãããã®èª¬æã[ããã€ã¹ã®éžæ]ãªã¹ãã«è¡šç€ºããã[ããã°ã©ã ]ãã¿ã³ãã¯ãªãã¯ããŠã...äœãèµ·ãããŸããã ãProbe WatchããŠã£ã³ããŠã§ã®ã¿ãå€Handle
ã衚瀺ãããŸããã ãããŠããã¯è¯ãããšã§ãã
ããŒãããªãã«ãããšãããã€ã¹ã®ãªã¹ããã¯ãªã¢ãããŸãã [ããã°ã©ã ]ãã¯ãªãã¯ããŸãã ããã§ããšã©ãŒã¬ããŒããŠã£ã³ããŠã衚瀺ãããŸãã
ã¬ããŒããŠã£ã³ã㊠ãç¶è¡ããã¿ã³ãã¯ãªãã¯ãããšãVIã¯äœæ¥ãå®äºããŸãã
ããã€ã¹ãèŠã€ãããªãå Žåããã¿ã³ãæŒãããšã¯çŠæ¢ãããŠããŸãã ã±ãŒã¹ã®ãã¿ã€ã ã¢ãŠããã€ãã³ããã³ãã©ãå€æŽããŸãã PCã«æ¥ç¶ãããFTDIããããæ€åºãããFPGAã®ããã°ã©ãã³ã°ã«äœ¿çšã§ããå Žåããã®èšè¿°åã¯Strings[]
ããããã£ãä»ããŠDevices list
è¿œå ãããŸãã ãããã°ã©ãã³ã°ãã®Disabled
ããããã£ãäœæããé©åãªããã€ã¹ãèŠã€ãããªãå Žåã¯ããã¿ã³ããªãã«ããŠæãããŸãã
ã±ãŒã¹ã®ã¿ã€ã ã¢ãŠã
åçã¯ã¯ãªãã¯å¯èœã§ã
GPIOããã¹ã¿ãŒãã
MPSSEãã¢ã¯ãã£ãã«ãªã£ãåŸããããã "op-code"ã䜿çšããŠFT_Write
ãè¡ããã FT_Write
APIé¢æ°ã§ã¯FT_Write
ã FT_Read
ãããã³FT_Queue
ã®ã¿ã䜿çšãããŸãïŒã¬ã·ãŒããŒãããã¡ãŒã®ã¹ããŒã¿ã¹ã確èªããããïŒã äœæãããã©ãã¯ã«æ²¿ã£ãŠãFT_Write.viãFT_Read.viãFT_Queue.viã«å¯Ÿå¿ããVIãäœæããŸãã
ã¡ãã£ãšããã«ãŒãã³
FT_Write.vi

ãããã¯å³ã FT_Write.vi

FT_Read.vi

ãããã¯å³ã FT_Read.vi

FT_Queue.vi

ãããã¯å³ã FT_Queue.vi
ããã3ã€ã®ããªãã¯ããããã©ã¬ã«ããŒãã®èªã¿åããšæžã蟌ã¿ã®ããã®VIãã¬ã€ã¢ãŠãããŸãã å€ã¯ãããŒã«å€æ°ã®é
åãšããŠäŸ¿å©ã«è¡šãããŸãã
MPSSE_Set_LByte.viããã³MPSSE_Get_LByte.vi
MPSSE_Set_LByte.vi

ãããã¯å³ã MPSSE_Set_LByte.vi

MPSSE_Get_LByte.vi

ãããã¯å³ã MPSSE_Get_LByte.vi
ç§ã¯ãã¹ãŠã®ãªãã³ãŒãã®ååä»ããªã¹ããäœæããã®ãé¢åã ã£ããšåçœããã®ã§ãããããããžãã¯ãã³ããŒã®åœ¢ã§æ®ããŸããã
æåã®èšäºã§è¿°ã¹ãããã«ãããã·ãã·ãªã¢ã«FPGAããŒããããã³ã«ã¯ããã©ã°æäœãè¿œå ããSPIã«ãããŸããã åèšã§5ã€ã®ã¬ãã°ã䜿çšãããŸãïŒ DCLK ã DATA [0] ã nCONFIGã©ã€ã³ã¯åºåã nSTATUS ã CONF_DONEã©ã€ã³ã¯å
¥åãšããŠèšå®ããå¿
èŠããããŸãã
ããŒãã«ã¬ã€ã¢ãŠãã®ãã³é
眮FPGAãã³ | ãã³å | ãã³ | MPSSE | æ¹å | ããã©ã«ã |
---|
DCLK | BDBUS0 | 38 | TCK / SK | ã¢ãŠã | 0 |
ããŒã¿[0] | BDBUS1 | 39 | TDI / DO | ã¢ãŠã | 1 |
nCONFIG | BDBUS2 | 40 | TDO / DI | ã¢ãŠã | 1 |
nSTATUS | BDBUS3 | 41 | TMS / CS | 㧠| 1 |
CONF_DONE | BDBUS4 | 43 | GPIOL0 | 㧠| 1 |
ä»ã®ãã¹ãŠã«åœ±é¿ãäžããããšãªããéžæããã¬ãã°ã®å€ãå€æŽã§ããVPãå¿
èŠã§ãã ãŸããããŒãå
ã®ã¬ãã°ã®ã·ãªã¢ã«çªå·ã䜿çšããŠEnum
ãäœæããSP_LBYTE_BITS.ctlãã¡ã€ã«ã«ãStrict Type DefããšããŠä¿åããŸãã æ°ããVIãäœæãã䜿ãæ
£ãããšã©ãŒãããŒã¿ãŒããã«ãè¿œå ããŸãã MPSSE_Get_LByte.viã䜿çšããŠãã©ã¬ã«ããŒãã®çŸåšã®å€ãèªã¿åãã Replace Array Subset
é¢æ°ã䜿çšããŠç®çã®ããããå€æŽããå€ãããŒãïŒMPSSE_Set_LByte.viïŒã«æžãæ»ããŸãã
SP_Set_Flag.vi
SP_Set_Flag.vi

ãããã¯å³ã SP_Set_Flag.vi

åæåSP_LBYTE_BITS.ctl
ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãéå§ããã«ã¯ãMPSSEã¯nCONFIGã©ã€ã³ã§LowããHighãžã®é·ç§»ãçæããå¿
èŠããããŸãã FPGAãããŒã¿ãåä¿¡ããæºåãã§ãããšããã«ã nSTATUSã©ã€ã³ã§é«ã¬ãã«ã圢æããŸãã ãã®æ®µéã§ã¯ããã¹ãŠãéã§ã®å®éšã®æºåãã§ããŠããŸãã ãããã¯å³SP_FT_MPSSE_FPGA.vã«ãå¶åŸ¡ç·nCONFIGãè¿œå ããŸã-MPSSEã®åæåã®åŸãäœã¬ãã«ãäžãã次ã«é«ã¬ãã«ãäžããŸãã åæäœã®åŸïŒãããã°çšïŒãããŒãã¬ãã°ã®ã¹ããŒã¿ã¹ãèªã¿åããŸãã
SP_FT_MPSSE_FPGA.vi
èµ·åäž

ãããã¯å³
äžè¬ã«ãVIã®èµ·åäžãFPGAãnCONFIGã©ã€ã³ã®é·ç§»ã«å¿çããããšã¯æããã§ããnSTATUSã¬ãã°ã«ãŒããèšå®ããã次ã«1ãèšå®ãããŸãã ããããããããªã·ãã¹ã³ãŒãã§ç£èŠããããšã¯äžå¿
èŠã§ã¯ãããŸããã ã»ãšãã©ãã¹ãŠã®2ãã£ã³ãã«ãªã·ãã¹ã³ãŒãã¯ãããªã¬ãŒïŒã¹ã¿ã³ãã€ïŒã§å®è¡ããæ©èœãåããŠããŸãã ãã£ãã«A ïŒéããã©ãã¯ïŒåè·¯nCONFIGã®å¶åŸ¡ç¹ããã£ãã«B ïŒèµ€ããã©ãã¯ïŒ-ãã§ãŒã³nSTATUSã«é
眮ããŸãã ããªã¬ãŒã¯ããã£ã³ãã«Aã®ç«ã¡äžãããšããžã«èšå®ãããŸãã

åçã¯ã¯ãªãã¯å¯èœã§ãã 詳现ã«ïŒ
ãã¡ã€ã«ãæäœãã
FPGAã¯æ§æãã¡ã€ã«ãåãå
¥ããæºåãã§ããŠããŸãã ãã¡ã€ã«ãFPGAã«è»¢éããæºåã¯ã§ããŠããŸããïŒ
LabVIEWã«ã¯ããã¡ã€ã«ãæäœããããã®åºç¯ãªããŒã«ã»ãããå«ãŸããŠããŸãã æ©èœããã¹ãŠã®ã¿ã¹ã¯ã«çµ¶å¯Ÿã«ååã§ãããšã¯èšããŸãããã èªã¿åããæžã蟌ã¿ãªã©ã®åºæ¬çãªæäœã¯ç°¡åãã€å¿«é©ã«å®è¡ãããŸãã ãã¡ã€ã«ãæäœããããã®VIã®åºæ¬ã»ããã¯ãããã¡ã€ã«I / Oãããã«ã«ãããŸãã åé¡ã解決ããã«ã¯ãæ§æãã¡ã€ã«ãéãããã®ãµã€ãºãè©äŸ¡ãïŒFPGAã«éä¿¡ãããã€ãæ°ãç¥ãå¿
èŠããããŸãïŒããããèªã¿åã£ãŠéããŸãã ãã¹ãŠãã·ã³ãã«ã§ã次ã
ãšãããŸãã Get File Size
Open/Create/Replace File
Get File Size
ã Get File Size
ã Get File Size
Read from Binary File
Get File Size
ã Get File Size
Close File
refnum
ããããããšã©ãŒãããŒãã§ãŒã³ãšrefnum
ãšçµã¿åãããŸãããã¡ã€ã«èšè¿°åãªã©ã®çªå·ã¯ããã¡ã€ã«ãéããšãã«äœæãããä»ã®VIã®å
¥åã«è»¢éããå¿
èŠããããŸããã®ãã¡ã€ã«ã
ãããŸã§ãèªã¿åã£ãããŒã¿ãç Žæ£ããå Žæã¯ãããŸãããããã§ãŒã³ã®æäœæ§ãæ¬åœã«ç¢ºèªãããå Žåã¯ã String
åã®ã€ã³ãžã±ãŒã¿ãŒãäœæããŠãå°ãã»ããã¢ããããããšãã§ããŸãã ã³ã³ããã¹ãã¡ãã¥ãŒã§[16é²è¡šç€º]ãªãã·ã§ã³ãæå¹ã«ããåçŽã¹ã¯ããŒã«ããŒããªã³ã«ããŠïŒ[衚瀺é
ç®]-> [åçŽã¹ã¯ããŒã«ããŒ]ïŒãèµ·ååŸããã€ããªæ§æãã¡ã€ã«ã®å
容ã確èªããŸãã
SP_FT_MPSSE_FPGA.vi
ããã³ãããã« ãã¡ã€ã«ã®å
容ãèŠã

ãããã¯å³ã ã«ãªã³ã«ã¯ãªãã«ãã«
VIã®ãããã¯å³ã§ã¯ãã³ãŒãã®2ã€ã®ç¬ç«ããå¹³è¡ç·ã圢æãããŠãããããå¥ã
ã®ãšã©ãŒãã§ãŒã³ã䜿çšãããŸãã 䞊åãããŒã1ã€ã®Error Out
端åã«æžããããã«ã Error Out
ã®Merge Errors
æ©èœã䜿çšãããŸãã ãã®é¢æ°ã¯ãå
¥åã®ãšã©ãŒãäžããäžã«æ€çŽ¢ãïŒã¯ãã3ã€ä»¥äžã®å
¥å端åããããããŠã¹ã§åŒã䌞ã°ãããŸãïŒãæåã«èŠã€ãã£ããã®ãè¿ããŸãã ãšã©ãŒããªãå Žåãæåã®èŠåã¡ãã»ãŒãžãè¿ããŸãã èŠåããªãå Žåã¯ãåºåã«ãšã©ãŒã¯ãããŸããã Merge Errors
å
¥åãæ¥ç¶ãããé åºãMerge Errors
ã®åªå
床ã決å®ãã2ã€ã®ãã§ãŒã³ã§ãšã©ãŒãåæã«çºçããå Žåãäžäœã®ãšã©ãŒã¯ç¡èŠãããããšã«æ³šæããããšãéèŠã§ãã ããã¯æ
éã«æ±ãå¿
èŠããããŸãã
ãã¡ã€ã«ãéžæããââã«ãããã¬ãã«VIã®ãããã°ã©ã ããã¿ã³ãæŒãããšãããšãå
¥åSP_FT_MPSSE_FPGA.viã¯ç©ºã®ãã¹ãåãåãããšã©ãŒããšã©ãŒ1430ãLabVIEWïŒïŒHex 0x596ïŒãã¹ã¯ç©ºãŸãã¯çžå¯Ÿã§ãã絶察ãã¹ãã ç§ã®å¹Œãªãã¿ã®å人ãèšãããã«ïŒãããªããã«ãããã¯äžä¿çãªãã®ã§ãïŒã ãããŠããã®ééãã¯ãŸã£ããã®ééãã§ã¯ãªããããããŠãŒã¶ãŒã®äžæ³šæã§ãã ããã°ã©ã ãåæ¢ãããèµ€ãååã®ä»ãããŠã£ã³ããŠã§èªããŸãããã®ã³ãŒãã®ãšã©ãŒãã¹ããªãŒã ããåé€ããã ãã§ããã€ã¢ãã°ããã¯ã¹ã§ãã¡ã€ã«ãéžæããããšããå§ãããŸãã ãšã©ãŒããã£ã«ã¿ãªã³ã°ããã«ã¯ãããã€ã¢ãã°ãšãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããã¬ããã®ããšã©ãŒãã¯ãªã¢ãVIã䜿çšããŸãã ã¡ãã»ãŒãžã衚瀺ããã«ã¯-ãã¯ã³ãã¿ã³ãã€ã¢ãã°ãã

ãããã¯å³
åçã¯ã¯ãªãã¯å¯èœã§ã
èšå®ãããŠã³ããŒã
ã·ãªã¢ã«ããŒã¿è»¢éã®å ŽåãMPSSEããã»ããµã¯op-code 0x18ãéä¿¡ããå¿
èŠããããŸããã³ãã³ãåŒæ°ã¯ãéä¿¡ãããã·ãŒã±ã³ã¹ã®é·ãïŒäžã®ãã€ãããå§ãŸã2ãã€ãïŒãšããŒã¿ã·ãŒã±ã³ã¹èªäœã«ãªããŸãã é·ãã¯1ãåŒããŠãšã³ã³ãŒããããŸãã VI MPSSE_sendãšããŠããŒã¿ãããã¯ãéä¿¡ããŸãããã
MPSSE_Send.vi
MPSSE_Send.vi

ãããã¯å³
å
¥åãããã¡ãŒã®Array Size
ïŒ Array Size
ïŒã¯2ãã€ãã¿ã€ãU16
ã«å€æããã1ãæžç®ããäžäœãã€ããšäžäœãã€ããSwap Bytes
ãŸãïŒ Swap Bytes
ïŒ-æäžäœããéå§ããŠé·ããéä¿¡ãã2ãã€ãæ°ãã·ã³ã°ã«ãã€ãé
åã«å€æããå¿
èŠããããŸãïŒ Type Cast
ïŒã
Type Cast
é¢æ°ã«ã¯ç¹å¥ãªæ³šæãå¿
èŠã§ãã ããã¯ãã®ãããªæ®éçãªã¿ã€ãã®ã³ã³ããŒã¿ãŒã§ããããã®åµæ工倫ã¯æã«ã¯éåžžã«é©ãã¹ããã®ã§ãã èŠããã«ïŒ

ããã°ã©ããŒåãã«èŠèŠçã«
ãã ããããã¯ããŒã¿ãç°ãªãåã«ãã£ã¹ãããã ãã§ãªãããã¥ãŒãªã¹ãã£ãã¯ãªè§£éã§ããããŸãã ãã®é¢æ°ã䜿çšãããšãäºææ§ã®ãªãããŒã¿åéã®å€æãå®è¡ã§ããŸãããé¢æ°ã¯å
¥åããŒã¿ãæŽåããããäœåãªãéšåãåé€ããããšããããããŸããã èŠæ±ãããããŒã¿åãå
¥åããŒã¿ããå€ãã®ã¡ã¢ãªãå¿
èŠãšããå Žåãé¢æ°ã¯äžè¶³ããŠããéãå²ãåœãŠãŸãã åå¿è
ã®éçºè
ã«ãšã£ãŠãLabVIEW Type Cast
ã¯åœã®æ©äººã«ãªãå¯èœæ§ããããŸãããæé·ããã«ã€ããŠãã®ãããªã³ã³ããŒã¿ãŒãæåŠããæ¹ãè¯ãã§ã-èŠããªãããã«é ãããäºæããªããšã©ãŒã®åå ã«ãªããŸãã Coerce To Type
ãªã©ãããæ瀺çãªå€æã¡ãœããã䜿çšããæ¹ãé©åã§ãã
MPSSEããã»ããµãåæåãããšããããŒã¿è»¢éã®æ倧蚱容ãããã¡ãµã€ãºã65536ãã€ãã«èšå®ãããããæ§æãã¡ã€ã«ãæå®ãµã€ãºãè¶
ããªããµã€ãºã®ãã©ã°ã¡ã³ãã«åå²ããå¿
èŠããããŸãã Array Subset
é¢æ°ã䜿çšããŸãããã®é¢æ°ã¯ã index
èŠçŽ ãšlong length
å§ãŸãé
åãããµãé
åãéžæããŸãã While
ã«ãŒãã§äžæããã€ã³ããã¯ã¹ã®åå埩ã65536ãã€å¢ãããŸããå埩ã®éã«ã·ããã¬ãžã¹ã¿ã«å€ãæž¡ããŸãã ã¡ã€ã³ã¢ã¬ã€ãã65536ãã€ããæãããšãã§ããªããšããã«ãæ®ã£ãŠãããã®ããã¹ãŠåãåºããŠéä¿¡ãããµã€ã¯ã«ãåæ¢ããŸãã
ããŠã³ããŒããããã³ã«ã«ãããšããã¹ãŠã®ããŒã¿ã転éãããåŸãFPGAã®åæåãéå§ããã«ã¯ãããã«2ã€ã®ã¯ããã¯ãã«ã¹ãé©çšããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãã«ãŒãã®åŸãå¥ã®ã空ã®ããã€ããéä¿¡ããŸãã
SP_FT_MPSSE_FPGA.vi
åçã¯ã¯ãªãã¯å¯èœã§ã
ãã¡ãŒã ãŠã§ã¢ã®æåãç解ããããã«ããã©ã°ãèæ
®ãã CONF_DONEã 1ã«èšå®ãããŠããå Žåããã¹ãŠãæ£åžžã§ããããšãæäžäœVIã«å ±åããŸãã
ããã°ã©ã ãå®äºããŸããã FPGAãæ£åžžã«ãã©ãã·ã¥ãããããŒããLEDã§æ¥œããç¹æ»
ããããšã確èªããããã«æ®ã£ãŠããŸãã
VPã®åœåã«ã€ããŠ
å€å
žçãªããã°ã©ãã³ã°ã§ã¯ããã¹ãŠã®ãŠãŒã¶ãŒãªããžã§ã¯ããšé¢æ°ã«æå³ã®ããååãä»ããå¿
èŠãããããšã¯ç§å¯ã§ã¯ãããŸãããç¹ã«LabVIEWã«ã€ããŠãåãããšãèšããŸããç¹ã«SubVIããªããžã§ã¯ããšããŠæ©èœããå Žåã . :
- â , FTDI, API D2XX. "FT", FT_Close.vi FT_Read.vi.
- â MPSSE. "MPSSE". : MPSSE_open.vi, MPSSE_Set_LByte.vi, MPSSE_Get_LByte.vi.
- â "Passive Serial" MPSSE. "S". , SP_FT_MPSSE_FPGA.vi ( , ) SP_LBYTE_BITS.ctl.
- . . , .
( ), . subVI .
ãããã«
, , .
, LabVIEW, . , , , ( ). .
- . LabVIEW: . . è±èªãã . .â .:
, 2008 â 400 .: . - labview_mpsse . .
- .
- Software Application Development D2XX Programmer's Guide . API D2XX.