æè¡ãæ¥éã«é²åãããã«ã¯ãããã«é¢é£ããèšèšã®éçšãç°¡çŽ åããå¿ èŠããããŸãããã®éã«éµã«ãªãã®ãããœãããŠã§ã¢ã®ãµããŒãã§ããäŸãã°ããã¡ãŒã ãŠã§ã¢ããã©ã€ãã®ãµã³ãã«ã»ã³ãŒãããŠãŒã¶ã«æäŸãããšãã£ãå ·åã§ããã¢ããã°ã»ããã€ã»ãºã¯ãéåºŠãæ¶è²»é»åããµã€ãºãåè§£èœã®é¢ã§é«ãã¬ãã«ã®æ§èœãåããA/Dã³ã³ããŒã¿ïŒADCïŒãD/Aã³ã³ããŒã¿ïŒDACïŒãæäŸããŠããŸããæ¬çš¿ã§ã¯ãããããšå ±ã«äœ¿çšããã¢ããªã±ãŒã·ã§ã³çšãã¡ãŒã ãŠã§ã¢ãæ§ç¯ããéã«ãno-OSãã©ã€ãããã©ãããã©ãŒã ã»ãã©ã€ããæŽ»çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã¢ããã°ã»ããã€ã»ãºã¯ãé«ç²ŸåºŠã®ADC/DACããµããŒããããã®ãšããŠãno-OSãã©ã€ããããŒã¹ãšããçµã¿èŸŒã¿ãã¡ãŒã ãŠã§ã¢ã®ãµã³ãã«ãæäŸããŠããŸããããã§èšãno-OSãã©ã€ããšã¯ãããã€ã¹ã®æ§æãADC/DACããã®ããŒã¿ã®ãã£ããã£ããã£ãªãã¬ãŒã·ã§ã³ã®å®è¡ãªã©ãæ ããœãããŠã§ã¢ã®ããšã§ãããã®no-OSãã©ã€ããããŒã¹ãšãããã¡ãŒã ãŠã§ã¢ã®ãµã³ãã«ã¯ã衚瀺ãä¿åãããé«åºŠãªåŠçãè¡ãããã«ããã¹ããšãªãPCã«ããŒã¿ã転éããåŠçãåæ»åãã圹å²ãæãããŸãã
no-OSãã©ã€ããšãã©ãããã©ãŒã ã»ãã©ã€ã
no-OSãã©ã€ãã¯ãOSã䜿ããªãã·ã¹ãã ããïŒç¹å®ã®OSã§ã¯ãªãïŒæ±çšã®OSãæ¡çšããã·ã¹ãã ãšå ±ã«äœ¿çšã§ããããã«èšèšãããŠããŸãïŒå³1ïŒããŸããOSã®ãµããŒããäžååããããšãªãããã¢ã¡ã¿ã«ã®ã·ã¹ãã äžã§äœ¿çšããããšãå¯èœã§ããno-OSãã©ã€ãã¯ãããžã¿ã«ã»ã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠç¹å®ã®ADC/DACã«ã¢ã¯ã»ã¹ããããã®ãã€ã¬ãã«ã®APIïŒApplication Programming InterfaceïŒãæäŸããããã«èšèšãããŠããŸããno-OSãã©ã€ãèªèº«ããããã®APIã䜿çšããŠããã€ã¹ãšããåãããããšã«ãããã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ïŒã¡ã¢ãªã»ãããïŒããã®å å®¹ãææ¡ããããšãªããããŒã¿ã«ã¢ã¯ã»ã¹ããŠæ§æãèªã¿æžããè¡ããããã«ãªã£ãŠããŸãã
no-OSãã©ã€ãã¯ããã©ãããã©ãŒã ã»ãã©ã€ãå±€ãå©çšããããšã«ãããè€æ°çš®ã®ããŒããŠã§ã¢ïŒãœãããŠã§ã¢ã»ãã©ãããã©ãŒã ã§åå©çšã§ããŸããããã«ããããã¡ãŒã ãŠã§ã¢ã®ããŒã¿ããªãã£ãé«ãŸããŸãããã©ãããã©ãŒã ã»ãã©ã€ãå±€ã¯ãSPIïŒSerial Peripheral InterfaceïŒãI2CãGPIOãšãã£ããã©ãããã©ãŒã åºæã®ã€ã³ã¿ãŒãã§ãŒã¹ããno-OSãã©ã€ããåé¢ããäœã¬ãã«ã®è©³çްã«ã€ããŠææ¡ããå¿ èŠæ§ãæé€ããŸãããã®ãããno-OSãã©ã€ãã¯ã倿Žãå ããããšãªãè€æ°ã®ãã©ãããã©ãŒã ã§åå©çšã§ããŸãã
no-OSãã©ã€ãã®äœ¿ãæ¹
å³2ã«ç€ºããã®ã¯ãno-OSãã©ã€ãã®äžè¬çãªã³ãŒãã®æ§é ã§ãã




éåžžãé«ç²ŸåºŠã®ADC/DACã«å¯Ÿå¿ããno-OSãã©ã€ãã®ã³ãŒãã¯ãCèšèªã§èšè¿°ããã2ã€ã®ãœãŒã¹ã»ãã¡ã€ã«ã«å«ããããŸããadxxxx.cãšadxxxx.hã®2ã€ã§ããadxxxxã®éšåã¯ãããã€ã¹ã®åçªïŒãAD7606ãããAD7124ããªã©ïŒã衚ããŸããåããã€ã¹çšã®ãããã»ãã¡ã€ã«ïŒadxxxx.hïŒã«ã¯ããã®ããã€ã¹åºæã®æ§é äœãåæäœãã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ããããã»ãã¹ã¯ã«å¯Ÿããããã°ã©ãã³ã°çšã®ãããªãã¯ãªã€ã³ã¿ãŒãã§ãŒã¹ãå«ãŸããŠããŸããå¿ èŠãªãœãŒã¹ã»ãã¡ã€ã«ã«ãããã»ãã¡ã€ã«ãå«ããããšã«ããããããã®æ§é ã«å¯Ÿãããããªãã¯ãªã¢ã¯ã»ã¹ãå¯èœã«ãªããŸããåããã€ã¹ã®ãœãŒã¹ã»ãã¡ã€ã«ïŒadxxxx.cïŒã«ã¯ãããã€ã¹ã®åæåïŒãªã ãŒããããã€ã¹ã®ã¬ãžã¹ã¿ã«å¯Ÿããèªã¿æžããããã€ã¹ããã®ããŒã¿ã®èªã¿åºããããã€ã¹ã«åºæã®ãã©ã¡ãŒã¿ã®ååŸïŒèšå®ãªã©ã«äœ¿çšããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ãããŠããŸãã
no-OSãã©ã€ãã¯ã以äžã«ç€ºãå ±éã®æ©èœã»ãããäžå¿ãšããŠæ§æãããŠããŸãã
- ããã€ã¹ã«åºæã®ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ããããã»ãã¹ã¯ã®ãã¯ããããã€ã¹ã®æ§æçšã®åæäœãããã€ã¹åºæã®ãã©ã¡ãŒã¿ïŒãªãŒããŒãµã³ããªã³ã°ãã²ã€ã³ããªãã¡ã¬ã³ã¹ãªã©ïŒã®å€ãèªã¿æžãããããã®æ§é äœã®å®£èš
- no-OS ãã©ã€ããåããããã€ã¹ã®åæåïŒãªã ãŒãçšã®é¢æ°ãšãããã€ã¹åºæã®åæååŠçããã©ã€ãçšã®æ§é äœãèšè¿°åã«ããããã€ã¹ã®åæåãšåæåã®åãæ¶ã
- adxxxx_read_register() ã adxxxx_write_register() ãªã©ãããã€ã¹ã®ã¬ãžã¹ã¿ã«å¯Ÿããèªã¿æžããè¡ãããã®é¢æ°ã«ããããã€ã¹ã®ã¡ã¢ãªã»ããããã¬ãžã¹ã¿ã®æ å ±ãžã®ã¢ã¯ã»ã¹
no-OSãã©ã€ãã®ã³ãŒãã®äœ¿ãæ¹
ç¶ããŠãno-OSãã©ã€ãã®ã³ãŒãã®äœ¿ãæ¹ã«ã€ããŠèª¬æããŸãã
ããã€ã¹åºæã®ã¢ãã¬ã¹ããããã»ãã¹ã¯ããã©ã¡ãŒã¿ã®èšå®çšã®åæäœïŒæ§é äœã䜿çšãã
äžè¿°ãããšããããããã»ãã¡ã€ã«ïŒadxxxx.hïŒã«ã¯ãããã€ã¹åºæã®ãã¹ãŠã®åæäœãšæ§é äœã®å®£èšãå«ãŸããŠããŸãããããåæäœãšæ§é äœã¯ãããã€ã¹ã®ãã©ã¡ãŒã¿ã®èšå®ãã¢ã¯ã»ã¹ãè¡ãããã«ãããã€ã¹åºæã®é¢æ°ãAPIã«åŒãæž¡ãããŸããå³3ã«ç€ºããã®ã¯ãããã«é¢é£ããã³ãŒãã§ãã
å³3ãèŠããšãadxxxx_configãšããæ§é äœããããŸãããã®éšåã®ã³ãŒãã¯ããã«ããã¬ã¯ãµã«ãã£ãŠãã£ã³ãã«ãéžæãããã®ãã£ã³ãã«ã®ãªãŒããŒãµã³ããªã³ã°ã»ã¬ãŒããèšå®ããããã«äœ¿çšãããŸãããã®æ§é äœã®ã¡ã³ãïŒafe_mux_channelãšoversamplingïŒã¯ããã®ãããã»ãã¡ã€ã«ã®äžã§åæåã§å®£èšãããŠããŸããäž¡æ¹ã®ãã£ãŒã«ãã«ã€ããŠããŠãŒã¶ãéžæå¯èœãªãã¹ãŠã®å€ã宿°ãšããŠå«ãåæäœãå®çŸ©ãããŠããŸãã
adxxxx.cã§ã¯ãadxxxx_set_adc_config()ãšãã颿°ãå®çŸ©ããŠããŸãããã®é¢æ°ã¯ãæ§æçšã®æ§é äœãä»ããŠãŠãŒã¶ããåŒãæž¡ãããæ§ææ å ±ïŒãã©ã¡ãŒã¿ãååŸããŸãããã®äžã§ãadxxxx_spi_reg_write()颿°ãåŒã³åºãããšã«ãããããžã¿ã«ã»ã€ã³ã¿ãŒãã§ãŒã¹ïŒãã®äŸã§ã¯SPIïŒãä»ããŠãããã®ããŒã¿ãããã€ã¹ã®ADXXXX_REG_CONFIGãšããã¬ãžã¹ã¿ã«æžã蟌ã¿ãŸãã
no-OSãã©ã€ãã®ããã€ã¹çšã®æ§é äœãšåæåçšã®é¢æ°ã䜿çšããŠãããã€ã¹ãåæåãã


no-OSãã©ã€ãã«ã¯ãäžè¿°ããããã€ã¹ã®æ§æçšã®åæäœãšæ§é äœã«å ããŠã以äžã®2ã€ã®æ§é äœãå«ãŸããŠããŸãã
- ããã€ã¹ã®åæåçšã®æ§é äœ
- ããã€ã¹ã®ãã©ã€ãçšã®æ§é äœ
ããããã®ã³ãŒãã¯å³4ã«ç€ºãããšããã§ãã
ããã€ã¹ã®åæåçšã®æ§é äœãå©çšããããšã§ããŠãŒã¶ã»ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãå ã§ãããã€ã¹åºæã®ãã©ã¡ãŒã¿ãšæ§æã«ã€ããŠã®å®çŸ©ãè¡ãããšãã§ããŸããåæåçšã®æ§é äœã«ã¯ãããã€ã¹åºæã®ä»ã®ãã©ã¡ãŒã¿ã®æ§é äœãšåæäœã®ã¡ã³ããå«ãŸããŠããŸããå³5ã«ãããã€ã¹ã®åæåçšã®æ§é äœã«å¯Ÿå¿ããå®çŸ©ã®äŸã瀺ããŸããã


ããã€ã¹ã®åæåçšã®é¢æ°ã§ããadxxxx_init()ã«ããããã©ã€ãçšã®æ§é äœã«ããã€ã¹ã®åæåçšã®ãã©ã¡ãŒã¿ãèªã¿èŸŒãŸããŸãããã©ã€ãçšã®æ§é äœã¯ãããŒãé åããå®è¡æïŒåçïŒã¡ã¢ãªã«å²ãåœãŠãããŸããããã€ã¹ã®ãã©ã€ãçšã®æ§é äœãšåæåçšã®æ§é äœã®äžã§å®£èšãããŠãããã©ã¡ãŒã¿ã¯ãã»ãŒåäžã§ããåè ã¯åŸè ã®å®è¡çšã®ããŒãžã§ã³ã ãšè¡šçŸã§ããŸãã
äžè¬çãªåæåçšã®é¢æ°ã®æŠèŠãšåæåã®æµãã¯ã以äžã®ããã«ãªããŸãã
ãã¹ããã1ã
ããã€ã¹ã®åæåçšã®æ§é äœã®å®çŸ©ïŒãŸãã¯ã€ã³ã¹ã¿ã³ã¹ïŒããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãå ã«èšè¿°ãïŒäŸãã°ãstruct adxxxx_init_paramsïŒããŠãŒã¶ã«åºæã®ããã€ã¹ã®ãã©ã¡ãŒã¿ãšããã©ãããã©ãŒã ã«äŸåãããã©ã€ãã®ãã©ã¡ãŒã¿ãåæåããŸãããããã®ãã©ã¡ãŒã¿ã¯ãã³ã³ãã€ã«ã®éã«å®çŸ©ãããŸãããªããåæåçšã®æ§é äœã®äžã§å®çŸ©ããããã©ã¡ãŒã¿ã¯ãããã€ã¹ããšã«ç°ãªãããšã«ã¯æ³šæãå¿ èŠã§ãã

ãã¹ããã2ã
ããã€ã¹ã®ãã©ã€ãçšã®æ§é äœã«å¯Ÿãããã€ã³ã¿ã»ã€ã³ã¹ã¿ã³ã¹ïŒå€æ°ïŒããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãå ã«èšè¿°ããŸãã
ãŠãŒã¶ã»ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ã³ãŒãå ã«ãããã€ã¹ã®ãã©ã€ãçšã®æ§é äœã«å¯Ÿãããã€ã³ã¿ã»ã€ã³ã¹ã¿ã³ã¹ã1ã€èšè¿°ããå¿ èŠããããŸãããã®ã€ã³ã¹ã¿ã³ã¹ãno-OSãã©ã€ãã®ãã¹ãŠã®APIïŒé¢æ°ã«åŒãæž¡ãããšã«ãããããã€ã¹ã«åºæã®ãã©ã¡ãŒã¿ãžã®ã¢ã¯ã»ã¹ãè¡ãããŸãããã®ãã€ã³ã¿ã»ã€ã³ã¹ã¿ã³ã¹ã¯ãããŒãé åå ã«åçã«å²ãåœãŠãããã¡ã¢ãªã®ããŒã¿ãåç §ããŸãããã®åŠçã¯ãno-OSãã©ã€ãå ã«å®çŸ©ãããadxxxx_init()ãªã©ãããã€ã¹ã®åæåçšã®é¢æ°ã«ãã£ãŠå®è¡ãããŸãã

ãã¹ããã3ã
ããã€ã¹ã®åæåçšã®é¢æ°ãåŒã³åºãããšã«ãããããã€ã¹ããã®ä»ã®ãã©ãããã©ãŒã åºæã®ããªãã§ã©ã«ãåæåããŸãã

no-OSãã©ã€ãã«å®çŸ©ãããadxxxx_init()颿°ã¯ãadxxx_init_paramæ§é äœãä»ããŠåŒãæž¡ããããŠãŒã¶åºæã®ãã©ã¡ãŒã¿ã«ãã£ãŠããã€ã¹ãåæåããŸãããã®åæåçšã®é¢æ°ã«ã¯ãããã€ã¹ã®ãã©ã€ãçšã®æ§é äœã«å¯Ÿãããã€ã³ã¿ã»ã€ã³ã¹ã¿ã³ã¹ãšãããã€ã¹ã®åæåçšã®æ§é äœã®ã€ã³ã¹ã¿ã³ã¹ã®2ã€ãåŒæ°ãšããŠåŒãæž¡ãããŸãããŠãŒã¶ã»ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãå ã§ã¯ãadxxxx_init()颿°ãè€æ°ååŒã³åºãããšãã§ããŸããäœãããã®é¢æ°ãå床åŒã³åºãå Žåã«ã¯ããã®åã«ããã€ã¹ã®ãªã ãŒãçšã®é¢æ°ãåŒã³åºãå¿ èŠããããŸãã
ããã€ã¹ã®ã¬ãžã¹ã¿ã«å¯Ÿããèªã¿æžãçšã®é¢æ°ã䜿çšããŠãã¡ã¢ãªã»ãããïŒã¬ãžã¹ã¿ã®å 容ïŒã«ã¢ã¯ã»ã¹ãã


ãŠãŒã¶ã¯ãno-OSãã©ã€ãã®ããã€ã¹åºæã®adxxx_read/write()颿°ãä»ããŠãããã€ã¹ã®ã¬ãžã¹ã¿ã®å 容ïŒè£œåã®IDãã¹ã¯ã©ããã»ãããã»ã¡ã¢ãªã®å€ãOSRãªã©ïŒã«ã¢ã¯ã»ã¹ããããšãã§ããŸãïŒå³6ïŒã
å€ãã®å ŽåããŠãŒã¶ã¯ã¬ãžã¹ã¿ã«ã¢ã¯ã»ã¹ããããã®é¢æ°ãçŽæ¥äœ¿çšããããšã¯ãããŸããããããã®é¢æ°ã¯ãadxxxx_ spi_reg_read/write()ãšãã£ãããã€ã¹åºæã®é¢æ°ã«ãã£ãŠåŒã³åºãããŸããå¯èœã§ããã°ãã¬ãžã¹ã¿ã«ã¢ã¯ã»ã¹ããããã®é¢æ°ãçŽæ¥äœ¿çšãã代ããã«ãããã€ã¹ã®æ§æãã¹ããŒã¿ã¹ã®ç¢ºèªçšã®APIã䜿çšããŠãããã€ã¹ã®ã¡ã¢ãªã»ãããã«ã¢ã¯ã»ã¹ããã¹ãã§ããããããã°ãããã€ã¹ã®ãã©ã€ãçšã®æ§é äœãšå®éã®ããã€ã¹ã®æ§æã®éã®åæã確ä¿ãããããã§ãã
ãã©ãããã©ãŒã ã»ãã©ã€ãã®æŠèŠ
ãã©ãããã©ãŒã ã»ãã©ã€ãã¯ããã©ãããã©ãŒã ã«åºæã®APIãã©ããããHALïŒHardware Abstraction LayerïŒããŒããŠã§ã¢æœè±¡åå±€ïŒã®1ã€ã§ããno-OSãã©ã€ãããŠãŒã¶ã»ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããããã©ãããã©ãŒã ã»ãã©ã€ããåŒã³åºããšããæ¹æ³ã«ãã£ãŠãåºç€ãšããŠååšããããŒããŠã§ã¢ã»ãã©ãããã©ãŒã ïŒãœãããŠã§ã¢ã»ãã©ãããã©ãŒã ã«å¯Ÿããç¬ç«æ§ãå®çŸãããŸãããã©ãããã©ãŒã ã»ãã©ã€ãã¯ããã©ãããã©ãŒã ã«åºæã®äœã¬ãã«ã®ããŒããŠã§ã¢æ©èœãã©ããããŸããããããæ©èœã®äŸãšããŠã¯ãSPI/I2Cã®åæåïŒèªã¿æžããGPIOã®åæåïŒèªã¿æžããUARTïŒUniversal Asynchronous Receiver/TransmitterïŒã®åæåãšéåä¿¡ããŠãŒã¶åºæã®é å»¶ãå²èŸŒã¿ãªã©ãæããããŸãã
å³7ã«ç€ºãããã¡ã€ã«æ§é ã¯ãSPIã«å¯Ÿå¿ãããã©ãããã©ãŒã ã»ãã©ã€ãã®ã¢ãžã¥ãŒã«ã®äŸã§ãã


ãã©ãããã©ãŒã ã»ãã©ã€ãã®äœ¿ãæ¹
éåžžããã©ãããã©ãŒã ã»ãã©ã€ãã®ã³ãŒãã¯ãC/C++èšèªã§èšè¿°ããã3ã€ã®ãœãŒã¹ã»ãã¡ã€ã«ãšããŠçšæãããŸãã以äžãããããã«ã€ããŠé ã«èª¬æããŸãã
1) spi.h:
1ã€ç®ã®ãã¡ã€ã«ã¯spi.hã§ããããã¯ããã©ãããã©ãŒã ã«éäŸåã®ãããã»ãã¡ã€ã«ã§ãããSPIã®æ©èœã«å¿ èŠãªããã€ã¹ã®æ§é äœãšåæäœãå«ã¿ãŸããããã«ãã£ãŠå®çŸ©ãããCèšèªã®ããã°ã©ãã³ã°ã»ã€ã³ã¿ãŒãã§ãŒã¹ã¯ããã©ãããã©ãŒã ã«äŸåããŸããã
åæåçšã®æ§é äœãšããã€ã¹ã®æ§é äœã§å®£èšããããã©ã¡ãŒã¿ã¯ãä»»æã®ãã©ãããã©ãŒã äžã®SPIã«å¯ŸããŠå ±éã®ãã®ã§ãã
ããã€ã¹ã®åæåçšã®æ§é äœã«å«ãŸããvoid *extraãã©ã¡ãŒã¿ã«ããã䜿çšããŠãããã©ãããã©ãŒã ã«åºæã®ãã©ã¡ãŒã¿ãªã©ã远å ã®ãã©ã¡ãŒã¿ãåŒãæž¡ãããšãã§ããŸãã
SPIã®ãã©ã€ãçšã®æ§é äœãšSPIã®åæåçšã®æ§é äœã®äžã§å®£èšãããŠãããã©ã¡ãŒã¿ã¯ãã»ãŒåäžã§ãïŒå³8ïŒãåè ã¯åŸè ã®å®è¡çšã®ããŒãžã§ã³ã ãšè¡šçŸã§ããŸãã
2) spi.cpp/.c:
ãã®ãã¡ã€ã«ã«ã¯ãspi.hãã¡ã€ã«ã§å®£èšãããŠãã颿°ãå®è£ ãããŸãããããã®é¢æ°ã¯ãç¹å®ã®ãã©ãããã©ãŒã ã«ãããSPIã®ããªãã§ã©ã«ã®åæåãšãããŒã¿ã®èªã¿æžãã«äœ¿çšãããŸãããã©ãããã©ãŒã ãšããèªã¯ãåºãæå³ã§ã¯ããã€ã¯ãã³ã³ãããŒã©ïŒã¿ãŒã²ããã»ããã€ã¹ïŒãšãœãããŠã§ã¢ïŒRTOSãMbed OSãªã©ïŒã®çµã¿åããã®ããšãæããŸãããã®ãã¡ã€ã«ã¯ãã©ãããã©ãŒã ã«äŸåããã®ã§ãå¥ã®ãã©ãããã©ãŒã ã«ããŒãã£ã³ã°ããéã«ã¯å€æŽãå ããªããã°ãªããŸããã
å³9ã¯ãMbed OSãããŒã¹ãšãããã©ãããã©ãŒã äžã®SPIã«ã€ããŠè©³ãã瀺ãããã®ã§ãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãããã€ã¹ã®åæåçšã®æ§é äœããã©ã€ãçšã®æ§é äœã䜿çšããSPIãåæåããŠããŒã¿ãèªã¿æžãããæ¹æ³ã衚ããŠããŸãã






3) spi_extra.h:
ãã®ãã¡ã€ã«ã«ã¯ãããã€ã¹ã®è¿œå ã®æ§é äœãåæäœãå«ãŸããŠããŸãïŒå³10ïŒããããã¯ãç¹å®ã®ãã©ãããã©ãŒã ã«åºæã®ãã®ã§ãããã®ãã¡ã€ã«ãå©çšããã°ããŠãŒã¶ã»ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã®äžã§ãæ±çšã®ãã¡ã€ã«ã§ããspi.hã«ã¯å«ãŸããŠããªãå å®¹ã§æ§æãè¡ãããšãã§ããŸããäŸãã°ãSPIã®ãã³æ§æã¯ãã©ãããã©ãŒã ã«ãã£ãŠç°ãªããŸãããããã«ã€ããŠã¯ãã©ãããã©ãŒã ã«åºæã®è¿œå ã®æ§é äœã«å ããããšãã§ããŸãã
ãã©ãããã©ãŒã ã»ãã©ã€ãã®ããŒãã£ã³ã°
ãã©ãããã©ãŒã ã»ãã©ã€ãã¯ããããã©ãããã©ãŒã ïŒãã€ã¯ãã³ã³ãããŒã©ïŒããå¥ã®ãã©ãããã©ãŒã ãžãšããŒãã£ã³ã°ããããšãã§ããŸããéåžžãããã¯ãã©ãããã©ãŒã ã«åºæã®.cpp/.cãã¡ã€ã«ãš_extra.hãã¡ã€ã«ãäœæããããšã«ãã£ãŠè¡ããŸãããã©ãããã©ãŒã ã»ãã©ã€ãã¯ããã€ã¯ãã³ã³ãããŒã©ã®ãã³ããŒããæäŸãããããã€ã¹åºæã®HALã®1ã€äžã®å±€ã«ååšããŸãããããã£ãŠãããŒãã£ã³ã°ã宿œããéã«ã¯ããã©ãããã©ãŒã ã»ãã©ã€ãã«ãããŠããã³ããŒããæäŸãããHALã«å«ãŸãã颿°ãAPIã®åŒã³åºãã«é¢é£ããã³ãŒããå°ã倿Žããå¿ èŠããããŸãã
å³12ã¯ãMbed OSãããŒã¹ãšããSPIã®ãã©ãããã©ãŒã ã»ãã©ã€ããšã¢ããã°ã»ãã€ã¯ãã³ã³ãããŒã©ãADuCM410ãã®SPIã®ãã©ãããã©ãŒã ã»ãã©ã€ãã®éãã瀺ãããã®ã§ãã
ã¢ããã°ã»ããã€ã»ãºã®WikiãšGitHubã®ããŒãžã«ã¯ãno-OSãã©ã€ãã®ãªããžããªãšGitHubäžã«ãããã©ãããã©ãŒã ã»ãã©ã€ãã®ãœãŒã¹ã»ã³ãŒããžã®ãªã³ã¯ãçšæãããŠããŸãã
no-OSãã©ã€ãã®éçºãžã®å¯äž
no-OSãã©ã€ãã¯ãOSã䜿çšããªãã·ã¹ãã çšã«Cèšèªã§èšè¿°ãããŠããŸããã¢ããã°ã»ããã€ã»ãºã®no-OSãã©ã€ãã¯ãGitHubäžã§ãªãŒãã³ã»ãœãŒã¹ãšããŠæäŸãããŠããŸããé«ç²ŸåºŠã®ADC/DACã ãã§ãªããå é床ã»ã³ãµãŒããã©ã³ã·ãŒããŒãå é»ããã€ã¹ãªã©ãã¢ããã°ã»ããã€ã¹ã®æ°å€ãã®è£œåããµããŒãããŠããŸãããœãŒã¹ã»ã³ãŒãã®æ±ãã«æ £ããŠããæ¹ãªããå¿ èŠãªå€æŽã«é¢ããã³ããããè¡ãããã®å 容ãã¬ãã¥ãŒããããã®ãã«ã»ãªã¯ãšã¹ããäœæããããšã§ããã©ã€ãã®éçºã«å¯äžã§ããŸãã
æ°å€ãã®ãµã³ãã«ã»ãããžã§ã¯ãããLinuxç°å¢ãWindowsç°å¢ã察象ãšããŠå®æœãããŠããŸãããµã³ãã«ã®å€ãã¯ãHDLïŒããŒããŠã§ã¢èšè¿°èšèªïŒã«ãã£ãŠèšè¿°ãããXilinx®補ãŸãã¯Intel®補ã®FPGAäžã§å®è¡ãããŸãã
ãªããã¢ããã°ã»ããã€ã»ãºã®Wikiã§ã¯ãMbed OSãšADuCMxxxããã©ãããã©ãŒã ãšããŠäœ¿çšããé«ç²ŸåºŠADC/DACçšã«éçºããããµã³ãã«ãæäŸããŠããŸãã



