åäœããªãããŒãšã³ã¹LK-G407ã¬ãŒã¶ãŒè·é¢ã»ã³ãµãŒãå ¥æããåŸã åäœããªãã£ãã ãã§ãªããç¹å¥ãªå¶åŸ¡ãŠããããªãã§ã¯äœ¿çšã§ããŸããã§ããã ããããã»ã³ãµãŒã«ã¯ããã¯ãã³åäœã®æ£ç¢ºãªè·é¢æž¬å®ãšã50ããã°ã©ã /ç§ã®äœæ¥é床ãšããèå³æ·±ãç¹æ§ããããŸãã ãããã£ãŠããããå®è¡ããã«ã¯ãã»ã³ãµãŒèªäœãããæ·±ãæãäžãããšåæã«ã貎éãªçµéšãç©ãå¿ èŠããããŸãã
ã»ã³ãµãŒã®å éšã«ã¯äœããããŸããïŒ
ã»ã³ãµãŒã®å åŠéšåã¯äžã®åçã«ç€ºãããŠããŸãïŒ
åçã®å·ŠåŽã«ã¯ã¬ãŒã¶ãŒã¢ãžã¥ãŒã«ãããããã®åŸãã«ã¯æå æ§ã®å®èŠããããå³åŽã«ã¯ã¬ã³ãºãšãã©ãŒããããŸãã
èšèšããããã®ã»ã³ãµãŒã¯ãè·é¢ã枬å®ããäžè§æž¬éæ¹åŒã®ã¬ãŒã¶ãŒè·é¢èšãšããŠåé¡ã§ããããšãæããã«ãªããŸãã ãã®ãããªè·é¢èšã®åäœåçã¯ã ããã§è©³ãã説æãããŠããŸã ã ååãšããŠãããã¯éåžžã«ç°¡åã§ã-ã¬ãŒã¶ãŒãç §å°ãããç©äœãŸã§ã®è·é¢ãå€æŽãããšãã¬ã³ãžãã¡ã€ã³ããŒã¬ã³ãºãšã¬ãŒã¶ãŒã¹ãããã®éã®è§åºŠãå€åããŸãã ã¬ã³ãºã®çŠç¹é¢ã«æå æ§ã«ãŒã©ãŒãŸãã¯ãããªãã¯ã¹ãèšçœ®ããå Žåãæ倧åºåä¿¡å·ã®äœçœ®ã«ãã£ãŠãã®è§åºŠã決å®ã§ããŸãã ã¬ãŒã¶ãŒãšã¬ã³ãºéã®è§åºŠãšè·é¢ããããã°ãç©äœãŸã§ã®è·é¢ãå€æã§ããŸãã
ãã®æ¹æ³ã®å©ç¹ã¯ãçè·é¢ã§ã®éåžžã«é«ã粟床ã§ããç¹å®ã®æ¡ä»¶äžã§ã¯ã0.1ãã¯ãã³ãããåªããŠããå ŽåããããŸãã
é«éã§è·é¢ã枬å®ããããšãåé¡ã§ã¯ãããŸãããé«éã®æå æ§ã«ãŒã©ãŒã䜿çšããã ãã§ãã
ãã®ãããªè·é¢èšã®åè·¯ãéåžžã«åçŽã§ã-ããã€ã¹ã«ã¯é«åšæ³¢ããªããäžæ¬¡ä¿¡å·å¢å¹ ã¯ã©ã€ã³èªäœã«ããããã§ãã
ãã ããæ¬ ç¹ããããŸããè·é¢ãé·ããªããšãã¡ãœããã®ç²ŸåºŠãæ¥æ¿ã«äœäžããŸãã
ãã®ã»ã³ãµãŒã¯æé ã¬ã³ãºïŒçŠç¹è·é¢çŽ150 mmïŒã䜿çšãããããã»ã³ãµãŒã®ãµã€ãºãå°ããããããã«ããã©ãŒããã®æ§æã«å«ãŸããŠããŸãã
ãããŠä»ãã»ã³ãµãŒã®é»åæ©åšã«ç§»ã䟡å€ããããŸãã
ã»ã³ãµãŒã®2çªç®ã®éšåã¯æ¬¡ã®ãšããã§ãã
ãããŠãããŒãèªäœïŒ
ãããŠä»æ¹ã§ïŒ
ããªã³ãåºæ¿ã¯4å±€ã®ããã§ã-ä¿¡å·å°äœã®ã»ãšãã©ã¯å€åŽã®å±€ã«ãããé»åç·ã¯å åŽã®å±€ã«ãããŸãã
ãã§ã«è¿°ã¹ãããã«ãã»ã³ãµãŒçšã®ã³ã³ãããŒã«ãŠãããã¯ãªããã»ã³ãµãŒãªãã§ã¯åäœããŸããã§ããã ã»ã³ãµãŒçšã®åè·¯ãååšãããã±ãŒãã«ã®ãã³é åãšã»ã³ãµãŒã®äŸçµŠé»å§ãäžæã§ãã£ãããšã¯æããã§ãã çµè«-ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ã¹ããŒã ãè¡ãå¿ èŠããããŸãã
çµæã¯ãã®ãããªã¹ããŒã ã§ãïŒ
ãã¡ãããã»ã³ãµãŒåè·¯å šäœãæç»ããã®ã§ã¯ãªããFPGAã«é¢é£ããéšåã®ã¿ãææ¡ããŸããã åè·¯äžã®èŠçŽ ã®æ°ã¯ãããŒãäžã®æ°ã«å¯Ÿå¿ããŠããŸããã
ãããã£ãŠãã»ã³ãµãŒã®æ§é å³ïŒ
ãã®ããšãããã»ã³ãµãŒå šäœã®åäœã¯ãFPGA Xilinx Spartan-3Aãšç¹å®ã®ã«ã¹ã¿ã ãã€ã¯ãåè·¯ãšãã2ã€ã®ãã€ã¯ãåè·¯ã«ãã£ãŠå¶åŸ¡ãããŠããããšãæããã§ãã ããããç§ã¯éåžžã«å¹žéã§ãã-å³ãããã«ã¹ã¿ã ã®ãã€ã¯ãåè·¯ãFPGAã®ã¿ã§æ¥ç¶ãããŠããããšãããããŸãã ãããã£ãŠãFPGAèªäœãã»ã³ãµãŒå ã®ãã¹ãŠã®ä¿¡å·ãå¶åŸ¡ã§ããŸãã
ãã¶ã€ã³å šäœã®éèŠãªèŠçŽ ã¯ãæå æ§ã«ãŒã©ãŒã§ãã ãã®ã©ã€ã³ã¯æããã«ã«ã¹ã¿ã ã¡ã€ãã§ãã é¡åŸ®é¡ã®äžã§ããã®ç«¯ã®1ã€ã«ç¢æãèŠããŸãïŒ
25ã512
LI004-02
512ã¯ã«ãŒã©ãŒã®ãã¯ã»ã«æ°ã25ã¯ãã¯ã»ã«å¹ ïŒãã¯ãã³ïŒã§ãããšæ³å®ããŸããã åŸã§å€æããããã«ãç§ã¯æ£ããã£ãã
å°ããªããŒããã©ã€ã³ã®åŸãã«ã¯ãã ä»ãããŸãïŒ
ã©ã€ã³ããã®ä¿¡å·ã2åã«ãããªãã¢ã³ããšãããã€ãã®æµæãšã³ã³ãã³ãµãåããŠããŸãã ãã®ããŒãã¯ã³ãã¯ã¿P1ã«æ¥ç¶ããŸãã å³ãããããããã«ã3æ¬ã®ä¿¡å·ç·ã®ã¿ããã®ç·ã«è¡ããŸãã ãããã®1ã€ã¯ãæããã«ãã®åºåããã®ã¢ããã°ä¿¡å·ã§ãïŒå¥ã®å軞ã¯ã€ã€ãä»ããŠéä¿¡ãããŸãïŒã æ®ãã®2è¡ã¯ããžã¿ã«ã§ãããã«ãŒã©ãŒã®å¶åŸ¡ã«äœ¿çšãããŸãã åè·¯ãåæãããšããç§ã¯åã³å¹žéã§ãã-åè·¯ã«é»å§ãå°å ãããšã10 MHzã®åšæ³¢æ°ããããã®ç·ã®1ã€ã«çŸããŸãïŒ4ïŒã ãã®åç·ãåç·ã®ã¯ãããã³ã°ãæ åœããŠããããšãããã«æããã«ãªããŸããã æããã«ãå®èŠã®ãã¹ãŠã®å¶åŸ¡ã¯æ®ãã®è¡ïŒ3ïŒã«æ²¿ã£ãŠããŸãã åç·ãSTM32F4ãã€ã¯ãã³ã³ãããŒã©ãŒã«æ¥ç¶ããããŸããŸãªä¿¡å·ãåç·ïŒ3ïŒããã³ïŒ4ïŒã«éä¿¡ãå§ããŸããã å€æããããã«ãã«ãŒã©ãŒã¯éåžžã«åçŽã«åäœããŸã-ã©ã€ã³ïŒ3ïŒã«é«ã¬ãã«ãããéãé²åºããããŸã-ã«ãŒã©ãŒã¯å ãåãåããŸãã ã©ã€ã³ïŒ3ïŒã«äœã¬ãã«ãèšå®ããåŸã14ã¯ããã¯ãã«ã¹ãã©ã€ã³ã«é©çšããå¿ èŠããããŸãããã®åŸã次ã®512ã¯ããã¯ãã«ã¹ã®ã¢ããã°ä¿¡å·ãçæããŸãã ã©ã€ã³ã¯5Vããã³FPGA-3.3Vã§åäœãããããDD2ãããã䜿çšããŠã¬ãã«ãäžèŽãããŸãã
ã©ã€ã³ããã®ã¢ããã°ä¿¡å·ã¯ãããŒãã¹ãã£ã«ã¿ãŒãä»ããŠDA1ãããäžã«çµã¿ç«ãŠããããªããŒã¿ãŒã«éä¿¡ãããŸãã 次ã«ãä¿¡å·ã¯ããã°ã©ããã«ã²ã€ã³AD8369ãåããPGAã¢ã³ãã«äŸçµŠãããŸãã ãã®ãããã®æ倧ã²ã€ã³ã¯40 dBã§ãããå ¥åBIT0-3ã«ç®çã®ã³ãŒããèšå®ããããšã«ãããããã°ã©ã ã§èª¿æŽã§ããŸãã ãã®è¶ å°ååè·¯ã¯å·®åä¿¡å·ãå¢å¹ ããããã«èšèšãããŠããããã®åºåãå·®åã§ãããããäž¡æ¹ã®åºåã¯ãªãã¢ã³ãDA4ã«æ¥ç¶ãããŸãããªãã¢ã³ãDA4ã¯ä¿¡å·ã2åã«å¢å¹ ããåäžã®ä¿¡å·ã圢æããŸãã
次ã«ãã¢ããã°ä¿¡å·ã10ãããAD9200 ADCã®å ¥åã«äŸçµŠãããŸãã ãã®ãããã¯ã SDRã¬ã·ãŒããŒãããã§ã«ç§ã«éŠŽæã¿ããããŸããã ãã®å Žåãããžã¿ã«åããé»å§ã®ç¯å²ãïŒ0.5-2.5ïŒVã«ãªãããã«æ¥ç¶ãããŸããADCåºåããã®ããžã¿ã«åãããä¿¡å·ã¯FPGAã«éä¿¡ãããŸãã
ãã®ADCã®CLAMPå ¥åã«æ³šæãã䟡å€ããããŸãã ãã®å ¥åãFPGAã«ãã£ãŠå¶åŸ¡ãããŸãã å ¥åä¿¡å·ã®äžå®æåãç¹å®ã®ã¬ãã«ã«ããããã«èšèšãããŠããŸãã
ããŒã¿ã·ãŒãããã®ADCã®å ¥å段ã®åè·¯ã¯æ¬¡ã®ãšããã§ãã
CLAMPå ¥åã«é«ã¬ãã«ãå°å ããããšããCLAMP INãå ¥åã®é»å§ã«çããåºåãã¢ã³ãåºåãšAINã«è¡šç€ºãããŸãã
ãã®å ŽåãCINã³ã³ãã³ãµã¯ãé»å§ãçãããªããŸã§ïŒUin-Uclamp_inïŒå é»ãããŸãã ãã®åŸãCLAMPå ¥åã¯Lowã«èšå®ãããã¢ã³ãã¯ADCã®åäœã«äœããã®åœ±é¿ãäžããªããªããŸãã ãã®ã»ã³ãµãŒã§ã¯ãå ¥åãCLAMP INãã¯ADCã®äœãåºæºé»å§+ 0.5Vã«æ¥ç¶ãããŠããŸãã ãããã£ãŠãç¹å®ã®å®æ°æåãDA4ã®åºåã«ååšããå ŽåãCLAMPæ©èœã䜿çšããããšã«ãããADCåäœã®çµæãžã®åœ±é¿ãæé€ããããšãã§ããŸãã
FPGAã®æåã®ãã¹ãæ§æãäœæããåŸãCLAMPä¿¡å·ãå®éã«å¶åŸ¡ããå¿ èŠãããããšãããããŸãããããããªããšãADCããã®ä¿¡å·ã«éåžžã«å€§ããªDCæåãå«ãŸããŸãã ç§ã®å®è£ ã§ã¯ãADCã䜿çšããŠããŒã¿ããã£ããã£ããããŸã§ãäžåºŠã«1ãã€é©çšããã ãã§ããã
ãã®åè·¯ã¯ãå€æ°ã®äŸçµŠé»å§ã䜿çšããããšã瀺ããŠããŸãã ã»ã³ãµãŒã«å«ãŸããããŸããŸãªé»æºãšããŸããŸãªå¹³æ»ã³ã³ãã³ãµã®å³ã¯äœæããŸããã§ããã å€æããããã«ãé»æºãã³ïŒ2ã€ã®ãã³ãåããå¥ã®ã³ãã¯ã¿ã«åºåãããŸãïŒã¯ãTPS62050 DC-DCã³ã³ããŒã¿ãŒã«æ¥ç¶ãããŠããŸãã æ倧é»å§ã¯10Vã§ã6Vããé»åæ©åšã¯ãŸã èµ·åããŠããªãã®ã§ãã»ã³ãµãŒã®åäœé»å§ã¯8Vã§ãããšå€æããŸããã
ãã®ã¢ãžã¥ãŒã«ã§äœ¿çšãããã¬ãŒã¶ãŒãã€ãªãŒãã¯ãå¥ã®ããŒãã«æèŒãããé»åæ©åšã«ãã£ãŠå¶åŸ¡ãããŸãã
ç§ã¯ãã®ããŒãã®å³ãæããŸããã§ããã P3ã³ãã¯ã¿ãä»ããŠã¡ã€ã³ããŒãã«æ¥ç¶ããŸãã ã芧ã®ãšãããã¬ãŒã¶ãŒã¯2æ¬ã®ç·ã«æ²¿ã£ãŠå¶åŸ¡ãããŠããŸãã ãã®ãã¡ã®1ã€ïŒ3ïŒã¯ãã€ã³ããŒã¿ãŒãä»ããŠFPGAã«æ¥ç¶ãããŠãããã¬ãŒã¶ãŒããªã³ã«ãã圹å²ãæãããŸããFPGAåºåã§äœã¬ãã«ã«ãã£ãŠãªã³ã«ãªããŸãã ã¬ãŒã¶ãŒåºåãå¶åŸ¡ããã«ã¯ãå¥ã®ã©ã€ã³ïŒ4ïŒãå¿ èŠã§ãã ããã¯ã¢ããã°ã©ã€ã³ã§ããããã®é»å§ãå€æŽããããã«ãåè·¯ã«ã¯DA5-7ãã€ã¯ãåè·¯äžã«çµã¿ç«ãŠãããDACãå«ãŸããŠããŸãïŒéçºè ãå®æããDACãã€ã¯ãåè·¯ãååŸããã®ã§ã¯ãªãããªããã®ãããªæ··ä¹±ããåè·¯ãç©ã¿äžããã®ãã¯ãŸã ããããŸããã§ããïŒã
ãåç¥ã®ããã«ãã»ãšãã©ã®FPGAã«ã¯äžæ®çºæ§ã¡ã¢ãªãå«ãŸããŠããªããããFPGAæ§æã¯å€éšãããã«ä¿åããå¿ èŠããããŸãã ãã®å Žåãããã¯DD3 XCF01-ç¹æ®ãªãã©ãã·ã¥ã¡ã¢ãªãããã§ãã ãªã³ã«ãããšãFPGAã¯æ§æãã¡ã¢ãªããèªåçã«èªã¿åããŸãã FPGAèªäœãšXCF01ã¯ãP2ã³ãã¯ã¿ã«æ¥ç¶ãããŠããJTAGåè·¯ã§æ¥ç¶ãããŠããŸãã ãã®çµæããã®ã³ãã¯ã¿ãä»ããŠãXCF01ãã€ã³ãµãŒãããã§ããã°ã©ã ããFPGAãæ§æãããããã°ããããšãã§ããŸãã
ãããã£ãŠãã»ã³ãµãŒã®é»ååè·¯ãã©ã®ããã«æ©èœããããç解ãããã®åè·¯ã®äžéšãååŸããŸããã ããã§ãå®éšãéå§ã§ããŸãã FPGAããã°ã©ãã³ã°ã ãã以åã¯ãã¶ã€ãªã³ã¯ã¹è£œã®FPGAãæ±ã£ãŠããŸããã§ããã å¿ èŠãªããã°ã©ããŒãããªãã£ãã®ã§ãããã€ãã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããçµã¿åãããŠã èªåã§ãããªããã°ãªããŸããã§ããã
ããã°ã©ããŒã¯ããŸãæ©èœããFPGAåºåãåãæ¿ããã ãã§ãFPGAã§ç°¡åãªãããžã§ã¯ããå®è¡ã§ããŸããã ããããå°æ¥çã«ã¯ã³ã³ãã¥ãŒã¿ãŒãšã®æ¥ç¶ãå¿ èŠã«ãªããŸããã LVDSã€ã³ã¿ãŒãã§ã€ã¹ïŒLVDSã©ã€ã³ã2.5Vã«æ¥ç¶ãããŠããããŒãïŒãšéä¿¡ããããªãã®ã§ãFPGAãšASICãæ¥ç¶ãã2ã€ã®ãã©ãã¯ãåæããŸããã ããŒãã«ã¯ãæããã«ASICã®ã»ããã¢ãããŸãã¯ãã¹ãçšã®ã³ãã¯ã¿ãããã䜿çšã§ããªãã£ãããã2ã€ã®ãã©ãã¯ãåæããã³ãã¯ã¿ã®ãã³ãFPGAãã³ã«æ¥ç¶ããŸããã ããã§ãUSB-UARTã¢ããã¿ãŒããã®ã³ãã¯ã¿ãŒã«æ¥ç¶ã§ããŸãã
æ¹èšåŸã®ããŒãã®ã¿ã€ãïŒ
ãã®åŸãUARTã®åäœããã¹ãããç°¡åãªããã°ã©ã ãäœæããŸããã ããŸããããŸãã-ã³ã³ãã¥ãŒã¿ãŒã¯ãFPGAããUARTãä»ããŠéä¿¡ãããåäžãã€ããæ£ããåãå ¥ããŸããã 次ã®ã¹ãããã¯ãæå ã©ã€ã³ããã³ã³ãã¥ãŒã¿ãŒãžã®ããŒã¿ã®è»¢éã§ãã FPGAããã°ã©ã ã®æ¬¡ã®ãããã¯å³ã䜿çšããŸããã
ISEã®åç·ã®ã¿ã€ãïŒ
ãããžã§ã¯ãã®æäžäœã¯åè·¯ãšãã£ã¿ãŒã§æç»ãããããã«å«ãŸãããã¹ãŠã®ã¢ãžã¥ãŒã«ã¯Veriolgã§æžãããŠããŸãã ãããžã§ã¯ãã®åçã¯éåžžã«åçŽã§ã-ADCã«ãã£ãŠããžã¿ã«åãããã©ã€ã³ããã®ããŒã¿ã¯ãFPGAã«ãã£ãŠãã£ããã£ãããRAMã«ä¿åãããŸãã 512åã®ä¿¡å·èŠçŽ ããã¹ãŠãã£ããã£ãããåŸããããã¯UARTãä»ããŠã³ã³ãã¥ãŒã¿ãŒã«éä¿¡ãããŸãã ãã¹ãŠã®ããŒã¿ãéä¿¡ãããåŸããµã€ã¯ã«ãç¹°ãè¿ãããŸãã ãã®ãããžã§ã¯ãã®sensor_readerã¢ãžã¥ãŒã«ã¯ãã«ãŒã©ãŒãã¬ãŒã¶ãŒãããã³ã¯ã©ã³ãä¿¡å·ãå¶åŸ¡ããŸãã å¶åŸ¡ã¯æãç°¡åãªæ¹æ³ã§å®è£ ãããŸã-ã¯ããã¯ã«ãŠã³ã¿ãŒããã¹ãŠã®ä¿¡å·ãå¶åŸ¡ããŸãã tx_controllerã¢ãžã¥ãŒã«ã«ã¯ãUARTéä¿¡ã¢ãžã¥ãŒã«ãå«ãŸããŠããŸãã ã¢ãžã¥ãŒã«ãå€éšã¡ã¢ãªããåä¿¡ããããŒã¿ã転éããããã«èšèšãããŠããŸãã
ãã®ããã»ã¹ã§ã¯ãã©ã€ã³äžã®æçšãªä¿¡å·ã®ã¬ãã«ã¯å€§ããå€åããå¯èœæ§ããããŸã-ãªããžã§ã¯ããŸã§ã®è·é¢ã®å€åãšãã®åå°ä¿æ°ã®å€åã«ãããŸãã ä¿¡å·ãå°ãããããšæž¬å®ãäžå¯èœã«ãªããä¿¡å·ã倧ãããããšæž¬å®ã®ç²ŸåºŠãäœäžããŸãã ãã®ãããã¢ããã°ä¿¡å·ã®ã²ã€ã³ã調æŽããå¿ èŠããããŸãã åœåããããžã§ã¯ãã«ã¯UARTã¬ã·ãŒããŒã¢ãžã¥ãŒã«ãå«ãŸããŠãããããæåã§ã²ã€ã³ãå€æŽã§ããŸãããåŸã§åé€ããèªåã²ã€ã³å¶åŸ¡ïŒAGCïŒãè¡ããŸããã
ä¿¡å·æ倧æ€çŽ¢ã¢ãžã¥ãŒã«ïŒãmax_finderãïŒãšAGCã¢ãžã¥ãŒã«èªäœïŒãagc_moduleãïŒãå«ãŸããŸãã ãã®ã¢ãžã¥ãŒã«ãéåžžã«ã·ã³ãã«ã§ã-ä¿¡å·ã¬ãã«ã170æªæºã®å Žåãã²ã€ã³ã¯250ãè¶ ãããšå¢å ããŸã-æžå°ããŸãã
ãã¹ãŠã®ã¢ãžã¥ãŒã«ãã©ã€ã³ã¢ãããADCã¯10 MHzã§ã¯ããã¯ãããŸãã é²åºæéã5ÎŒsã«èšå®ããŸãã ãããã£ãŠãFPGAã§ã®é²å ããã»ã¹ãšä¿¡å·ãã£ããã£å šäœã¯ïŒ5 + 51ïŒÎŒsãå æããŸãã ããŒã¿è»¢éæéã¯ã¯ããã«é·ããªããŸã-500,000 bpsã®ã¯ããã¯åšæ³¢æ°ã§ã¯ã512ãã€ãã®éä¿¡ã«ã¯10ããªç§ããããŸãã
éä¿¡ãããããŒã¿ããªã¢ã«ã¿ã€ã ã§è¡šç€ºããããã«ãCïŒã§ç°¡åãªããã°ã©ã ãäœæããŸããã
ã¬ãŒã¶ãŒããŒã ã«æ²¿ã£ãŠãªããžã§ã¯ãã移åãããšãæ倧ããŒã¯ã®äœçœ®ãå€åããŸãã ã«ãŒã©ãŒã«ã¯512ãã¯ã»ã«ããå«ãŸããŠããªããããåçŽã«æ倧äœçœ®ãèšç®ãããšã枬å®ç²ŸåºŠãäœããªããŸãã ãããã£ãŠãæ倧信å·ã®äœçœ®ãããæ£ç¢ºã«æž¬å®ããã«ã¯ãéå¿æ€çŽ¢ã¢ã«ãŽãªãºã ã䜿çšããå¿ èŠããããŸããããã«ããããµããã¯ã»ã«ç²ŸåºŠã§æ倧信å·ã®åº§æšã決å®ã§ããŸãã
次ã®åŒã䜿çšããŠãããŒã¯ã®éå¿ãèŠã€ããŸããã
ããã§ãnã¯ãã¯ã»ã«ã®ç·æ°ãInt [i]ã¯iãã¯ã»ã«ã®åŒ·åºŠã§ãã
ä¿¡å·ã«ååšããããŸããŸãªãã€ãºãåäœã®ç²ŸåºŠãæãªããªãããã«ããã«ã¯ãç¹å®ã®ãããå€ãè¶ ããããŒã¯æ倧å€ã«è¿ããµã³ãã«ã®ã¿ãåŠçããããšã圹ç«ã¡ãŸãã ããã¯ãã²ã€ã³ãååã§ãªããæçšãªä¿¡å·ãADCã¹ã±ãŒã«ã®ååãè¶ ããªãå Žåã«ç¹ã«éèŠã§ãã ããã«ãã²ã€ã³ãå¢å ãããšããã€ãºã¬ãã«ãå¢å ããç¶æ³ãæªåããŸãã äžèšã®ããã°ã©ã ã§ã¯ããããèæ ®ãããŸãã
äžã®å³ã§ã¯ãMAX POSã¯ãã®åŒã䜿çšããŠèšç®ãããå€ã§ãããMAX POS Fã¯æåŸã®50åã®æž¬å®ã®å¹³åå€ã§ãã
ãã§ã«è¿°ã¹ãããã«ãçµæã®æž¬å®åšæ³¢æ°ã¯100 Hzã§ãããUARTãä»ããããŒã¿è»¢éé床ã«ãã£ãŠå¶éãããŸãã ãã ããã³ã³ãã¥ãŒã¿ãŒã§ä¿¡å·ãåŠçããå¿ èŠã¯ãããŸããããããã¯FPGAã§ãå®è¡ã§ããããã枬å®é床ãç¹°ãè¿ãäžããããšãå¯èœã§ãã
ãã®çµæã次ã®æ§é ã¹ããŒã ãæã€FPGAçšã®ããã°ã©ã ãéçºãããŸããã
ISEã®åç·ã®ã¿ã€ãïŒ
ã芧ã®ãšãããäžéšã®ã¢ãžã¥ãŒã«ã¯åã®ãããžã§ã¯ãããååŸãããŠããŸãã
ãã®å Žåãcentroid_finderã¢ãžã¥ãŒã«ã¯ãä¿¡å·ã®éå¿ïŒéå¿ïŒã®äœçœ®ãèšç®ããŸãã ããŒã¿åæã®é åãå¶éããããã«ãæ倧äœçœ®ãšãã®æ¯å¹ ã®å€§ãŸããªå€ãã¢ãžã¥ãŒã«ã«éä¿¡ãããŸãã
ãããã®å€ã¯ä¿¡å·å šäœãåæããããšã«ãã£ãŠã®ã¿èšç®ã§ããããïŒã€ãŸãã512ã¯ããã¯ãã«ã¹ã®é 延ã§è¡šç€ºãããïŒãããžã¿ã«åãããããŒã¿ã¯åãé 延ã§å ¥å "centroid_finder"ã«äŸçµŠããå¿ èŠããããŸãã 512ã¯ããã¯ãµã€ã¯ã«ã ãããŒã¿ãé 延ãããããã«ãFIFOãããã¡ã䜿çšãããŸãã fifo_logicã¢ãžã¥ãŒã«ã¯ãæåã®FIFOå å¡«ã«äœ¿çšãããŸã-å å¡«ãããŠããªãå ŽåãFIFOããã®èªã¿åããçŠæ¢ããŸãã
tx_controller_3bytesã¢ãžã¥ãŒã«ã¯3ãã€ããé çªã«è»¢éããŸããæåã®ãã€ãã¯ãŒãã§ãæ®ãã®2ã€ã«ã¯èšç®ãããéå¿äœçœ®ãå«ãŸããŸãã 50,000ããã/ç§ã®é床ã§ã¯ã3ãã€ãã®éä¿¡ã«ã¯60ÎŒsããããŸã-ä¿¡å·ãã£ããã£ãšã»ãŒåãã§ãã ãŒããã€ãã¯ãããŒã¿ã®åæã«äœ¿çšãããŸã-åžžã«æäžäœãã€ãã«ãªããŸãã
UARTããŒã¿è»¢éãšããŒã¿ãã£ããã£ã¯ãstart_captureä¿¡å·ã«ãã£ãŠåæã«ããªã¬ãŒãããŸãã ãã®ä¿¡å·ã¯ã以åã®éä¿¡ãçµäºããéå¿ã®æ°ããäœçœ®ãèšç®ããããšåæã«çæãããŸãã ãã®çµæãè·é¢æž¬å®ãšããŒã¿éä¿¡ã®æéã¯60ÎŒsè¿ãã«ãªãã16.6 KSPSã®åº§æšæž¬å®é床ãåŸãããŸãã ããã¯ãã»ã³ãµãŒã®è£œé å ãè¿°ã¹ãŠãããã®ãããå°ãªãã§ãã ããã¯æå°æž¬å®æé-20ÎŒsïŒããã¯50 KSPSã«å¯Ÿå¿ïŒã瀺ããŸããããã®æéã®ååŸæ¹æ³ã¯æ確ã§ã¯ãããŸããããAD9200ã®æ倧é床-20 MSPSã§ãã512ãã¯ã»ã«ããã®ä¿¡å·ãã£ããã£æéã¯25.6ÎŒsã«ãªãããã§ãã ãããŠãããã¯é²åºæéãèæ ®ããªããŠãã§ãã
å ã»ã©èšã£ãããã«ããã®ã»ã³ãµãŒã¯æ©èœããŸããã§ããã ç§ã®ç¥ãéããåé¡ã¯æ¯åã®æ¿ããå·¥æ¥æœèšã«èšçœ®ãããŠããŠãæ¯åã®ããã«ã»ã³ãµãŒã¬ãŒã¶ãŒãæ éããããšã§ãïŒã»ã³ãµãŒã¯æãè¡šé¢ã«åå¿ããªããªããŸããïŒã
æ®å¿µãªããããã€ãã£ããã€ãªãŒãã«ã¯ããŒãã³ã°ããããŸããã§ããã ã¬ãŒã¶ãŒã¢ãžã¥ãŒã«ã®ã¬ãŒã¶ãŒãã€ãªãŒããè³Œå ¥ãã5 mWã®ã¬ãŒã¶ãŒãã€ãªãŒãã«äº€æããããšããŸãããããã°ãããããšåŒ·åºŠãäœäžããŸããã æãå¯èœæ§ãé«ãã®ã¯ãã¬ãŒã¶ãŒã¢ãžã¥ãŒã«ã®é»åæ©åšããã匷åãªãã€ãªãŒãåãã«èšèšãããŠããããšã§ãïŒãã ãããã«ã¹ã¢ãŒãã§åäœãããããå¹³åæŸå°ã¬ãã«ã¯éåžžã«äœããªããŸãïŒã
ã»ã³ãµãŒãã©ããããããèµ·åããããã«ãç§ã¯ã¬ãŒã¶ãŒãã€ãªãŒããã©ã€ããŒãäžå®ã®æŸå°ã¢ãŒãã§åäœãããŸããïŒ
ã»ã³ãµãŒã®ãã€ãã£ãã¬ãŒã¶ãŒãã€ãªãŒãã¯ã¬ãŒã¶ãŒã¢ãžã¥ãŒã«ã®éå±è£œããŠãžã³ã°ã«çµã¿èŸŒãŸããŠãããããæ°ããã¬ãŒã¶ãŒãã€ãªãŒããã¢ãžã¥ãŒã«ã«ç°¡åã«æ¥çããå¿ èŠããããŸããã åæã«ã䜿çšãããã€ãªãŒãã®å šäœã®å¯žæ³ã¯ããã€ãã£ããã€ãªãŒãã®å¯žæ³ãšãããã«ç°ãªããŸããããã®ãããå®æ§çã«ã¬ãŒã¶ãŒã¢ãžã¥ãŒã«ã«çŠç¹ãåãããããšãã§ããŸããã§ããã
çµã¿ç«ãŠãããã»ã³ãµãŒã¯æ¬¡ã®ããã«ãªããŸãã
ã»ã³ãµãŒã䜿çšããŠè·é¢ã枬å®ã§ããããã«ããã«ã¯ãè·é¢ã調æŽããå¿ èŠããããŸãã ã»ã³ãµãŒããè¿ãããçµæãšå®éã®è·é¢ããªã³ã¯ããæ³åã決å®ããŸãã ãã£ãªãã¬ãŒã·ã§ã³ããã»ã¹èªäœã¯äžé£ã®æž¬å®ã§ããããã®çµæãã»ã³ãµãŒããç¹å®ã®ãªããžã§ã¯ããŸã§ã®äžé£ã®è·é¢ã圢æããã察å¿ããçµæãåŸãããŸãã
ã»ã³ãµãŒãšå¯Ÿè±¡ç©ã®éã®è·é¢ã¯ãéåžžã«æ£ç¢ºã«æž¬å®ããå¿ èŠããããŸãã ãã£ãªãã¬ãŒã·ã§ã³ã®ããã«ã ãªãã¢ãšã³ã³ãŒããŒãšã¬ãŒã¶ãŒã»ã³ãµãŒèªäœãå«ãã¹ã¿ã³ããäœæããŸããã
è·é¢ã¯ããšã³ã³ãŒããŒã®ç«¯ã«åãä»ãããããã¬ãŒããŸã§æž¬å®ãããŸãã
ãã¹ãŠã®ããŒã¿ãåéãããããMathcadã§ååž°åæãå®è¡ã§ããŸãã
ãã®çµæã次ã®åŒãåŸãããŸããã
value_mm = 70.0 / TanïŒ-0.000277757 * max_pos + 0.28355ïŒ-366.23554
æããã«ãã»ã³ãµãŒéšåã®äœçœ®ã«é¢ããå®æ°ã®å€ã ããããªãã£ããŒã«ã·ããã«ãããèšç®ãããè·é¢ãäžæ£ç¢ºã«ãªããŸãã ãããã£ãŠããã¹ãŠã®éšåãéåžžã«ãã£ãããšåºå®ããå¿ èŠããããŸãã
以äžã®ãããªã¯ãã»ã³ãµãŒããã®ããŒã¿ãåŠçããæ¹æ³ã瀺ããŠããŸãã
ãããªã®æåã®éšåã¯ãæå ã©ã€ã³ããã®ä¿¡å·ãã©ã®ããã«èŠãããã瀺ããŠããŸãã ãªããžã§ã¯ããæãå Žåãæ¯å¹ ã¯å€åããŸãããïŒAGCã®åäœã«ããïŒããã€ãºã¬ãã«ã¯å€§å¹ ã«å¢å ããããšãã¯ã£ãããšããããŸãã
ãããªã®2çªç®ã®éšåã§ã¯ãããã°ã©ã ã¯ã»ã³ãµãŒããéå¿ãååŸããè·é¢ãŸã§ã«ãŠã³ãããŸãã ãŸããããã°ã©ã ã¯ãšã³ã³ãŒããŒããåãåã£ããªããžã§ã¯ããŸã§ã®è·é¢ã®å€ãåãåããŸãã ãšã³ã³ãŒããŒè·é¢ã®äžã«ããããã®è·é¢ã®å·®ã衚瀺ãããŸãã åããŠããå Žåãå·®ã¯1 mm以äžã«ãªããŸãïŒããã¯è·é¢ãšãã®è¡šç€ºã®äŒéã®é 延ã«ãããã®ã§ãïŒããä»»æã®è·é¢ã§ã®åæ¢äžãå·®ã¯0.03 mmãè¶ ããŸããã
ã»ã³ãµãŒããåä¿¡ããããŒã¿ãåæããããããããã«ãã»ã³ãµãŒããåä¿¡ããããŒã¿ãwav圢åŒã§ä¿åããããã°ã©ã ãäœæããŸããã ãã®ãããªãã¡ã€ã«ã¯ãµãŠã³ããšãã£ã¿ãŒã§éããããŸããŸãªãã£ã«ã¿ãŒãé©çšã§ããŸãã
ããã§ã¯ãããšãã°ãå€å§åšã®é»æºã®å£ã«åããããã»ã³ãµãŒããã®ä¿¡å·ã®ããã«èŠããŸãïŒ
é»æºãå ¥ãããšãé»æºãæ¯åãå§ããããšãããããŸãã
ã»ã³ãµãŒãé³æ¥œãåçãããŠããã¹ããŒã«ãŒã³ãŒã³ã«åããããšããŸãã-åŠçåŸããµãŠã³ããšãã£ã¿ãŒã§å®éã«èãããããã«ãªããŸããã
ãã®ãããé皌åã»ã³ãµãŒã«æ°ããåœãå¹ã蟌ãããšãã§ããŸããïŒå°æ¥ã®ãããžã§ã¯ãã§å¿ èŠã«ãªãå¯èœæ§ããããŸãïŒãšåæã«ãã¶ã€ãªã³ã¯ã¹FPGAã®äœ¿çšçµéšãç©ãããšãã§ããŸããã
FPGAã®ãããžã§ã¯ã