ããã«ã¡ã¯ããããããã¹ã ååã®
èšäºã§ã¯ãäŸãšããŠãµãŒãå¶åŸ¡ã䜿çšããŠã泚ç®ãã¹ãSTM32F1xxãã€ã¯ãã³ã³ãããŒã©ã®äœ¿çšãæ€èšããŸããã ãã®èšäºã§ã¯ãããèå³æ·±ã質å-ã«ã©ãŒã°ã©ãã£ãã¯LCDãã£ã¹ãã¬ã€ã®ç®¡çã«ã€ããŠèª¬æããŸãã ãã£ã¹ãã¬ã€ã®æšæºçãªäœæ¥ã«å ããŠãSTM32Fãã€ã¯ãã³ã³ãããŒã©ãŒã®æ©èœã䜿çšããŠãã®åé¡ãå¹æçã«è§£æ±ºããåé¡ã匷調ããŸãã ããã§ã¯å§ããŸãããã
åºè«ãžã®å°ããªè¿œå -ãã®èšäºã¯6ãæ以äžåã«éå§ãããŸãããããã®åŸãäžæããªããã°ãªããŸããã§ããïŒåæ¥ãããžã§ã¯ãã®æåã®é²è¡ã次ã«ä»äºäžã®å€ãã®ç·æ¥ãããžã§ã¯ãïŒã ãã®ããããã¡ãããæåã«ç§ãè¡šçŸããæ¹æ³ã§ã¯ãªããã³ãŒããšã°ã©ãã£ãã¯çŽ æã®äžéšã倱ãããããšãå€æããŸãã-ããã§ããç§ã¯ãããå®æãããããšããŸããããããªãã«ãšã£ãŠèå³æ·±ããã®ã«ãªãããšãé¡ã£ãŠããŸãã
é
ãŸã第äžã«ãéã«ã€ããŠã åååæ§ãã·ã¹ãã ã®äžæ žã¯
STM32VLDISCOVERYãããã°ããŒãã§ã
300ã«ãŒãã«ã§è³Œå
¥ã§ããŸãã åè·¯åºæ¿ããã¬ããããŒãã«çµã¿ç«ãŠãŠãã¯ãã ä»ããæžãããŸãã ãã ããååãšã¯ç°ãªãããŸã ã¯ãã ä»ãããå¿
èŠããããŸããããã¯éåžžã«å
·äœçã§ã-ãã£ã¹ãã¬ã€ã®èé¢ã«ãããã¬ãã·ãã«ãªãžããããªã³ãåè·¯åºæ¿ã«ã¯ãã ä»ãããå¿
èŠããããŸãïŒç°¡åã«èšãã°ãæ¥ç¹ã®ãããã£ã«ã ã«ïŒã ããããããã«ã€ããŠã¯åŸã§ã 3.3Vé»æºã¯ãããã°ããŒãäžã«ãããããããã«å¿
èŠãªã®ã¯ãã£ã¹ãã¬ã€èªäœãšããããç¹ç¯ãã10ã20ãã«ãã®é»æºã ãã§ãã
å®éããã¹ãŠãèãåºãããéšåãã€ãŸããã£ã¹ãã¬ã€ãèããæãæ¥ãŸããã
å®éãéçºè
ã¯èªå®
ã§å€ãã®ãªãã·ã§ã³ãå©çšã§ããŸãã
å·çæç¹ã§ã¯ãæºåž¯é»è©±ã®ãã£ã¹ãã¬ã€ãæ€èšããäžã§æãæé ãªãªãã·ã§ã³ã§ããããããã¯æ¯èŒçç°¡åã«è³Œå
¥ã§ããå€ãã¯SPIã«ãã£ãŠå¶åŸ¡ãããŠãããéåžžã«å®äŸ¡ã§ãã å®éããã®èšäºã¯ãã®ãããªãã£ã¹ãã¬ã€ã®1ã€ã«åœãŠãããŠããŸãã
ããããe-bayã«ãã°ããæéãè²»ãããåŸãããã§ããªããæé©ãªãªãã·ã§ã³ã¯ããŒãºã«åãããŠå¥ã®ãã£ã¹ãã¬ã€ã賌å
¥ããããšã§ãããšããçµè«ã«éããŸããã
ãŸãã次ã®ãã£ã¹ãã¬ã€ãªã©ãããªãå®äŸ¡ãªã¢ãã«ãèŠã€ããããšãã§ããŸãã
1-8-TFT-ã«ã©ãŒ-LCD-ãã£ã¹ãã¬ã€-ã¢ãžã¥ãŒã«-SPI-ã€ã³ã¿ãŒãã§ãŒã¹ç¬¬äºã«ãããå°ããéãæãã°ãäžå¿«ãªã³ãã¯ã¿ãã¯ãã ä»ãããæéãç¡é§ã«ããããšãªããå®å
šãªãã£ã¹ãã¬ã€ã¢ãžã¥ãŒã«ãæã«å
¥ããããšãã§ããŸãã
1-8-TFT-LCD-module-TF-Card-socket-break-out-arduino第äžã«ãäžéšã®ãã£ã¹ãã¬ã€ã¢ãžã¥ãŒã«ã¯å®å
šã«è³è³ãè¶
ããŠããŸã-
2-4inch-TFT-LCD-module-touch-panel-SD-card-cage18ãã«ã®å Žåãå®å
šã«å®æãããã£ã¹ãã¬ã€ã¢ãžã¥ãŒã«ãåŸãããŸããããã«ã¯ãå®å
šãªããã¥ã¡ã³ãïŒå€ãã®æºåž¯é»è©±ã®ãã£ã¹ãã¬ã€ã³ã³ãããŒã©ã®ããã¥ã¡ã³ããèŠã€ããã®ã¯éåžžã«å°é£ã§ãïŒãåããã³ã³ãããŒã©ä»ãã®320x240ãã£ã¹ãã¬ã€ã ãããã«SPIã§åº§æšãèŠæ±ã§ããŸãïŒã䟿å©ãªã³ãã¯ã¿ãããã³-ããŒãã¹ä»å±ç©ãšããŠ-micro-SDã®ã¹ãããã
ãŸããããã¯ã©ã€ãã«é»åãäŸçµŠããããŒã¹ãã³ã³ããŒã¿ãŒãæèŒãããŠããŸãã
ãããã£ãŠãçŸæç¹ã§ã¯ããã¡ãããe-Bayã䜿çšãããã£ã¹ãã¬ã€ãæã䟿å©ã§æ£ãããªãã·ã§ã³ã§ãããšèããŠããŸãã
æåŸã«ãç§ãèšåãããæåŸã®ãªãã·ã§ã³ã¯ããã®ãããªèå³æ·±ãããã€ã¹ã§ãã
1-5-lcd-rechargeable-digital-usb-photo-frame-keychainãã®äžåœæè¡ã®å¥è·¡ã¯ããããã¥ã¢ã®ããžã¿ã«ãã©ããã¬ãŒã ã§ãã å€æããããã«ãããã€ãã®å€åœäººã®æ奜家ã¯ãã§ã«è
žãæãäžããŠããã圌ãã¯6502äºæã®ST2203Uãã€ã¯ãã³ã³ãããŒã©äžã«æ§ç¯ãããŠããããšãããããŸããã ãããã200ræªæºã§ã128x128 STN LCDãã£ã¹ãã¬ã€ïŒãããã®ã»ãšãã©ã¯PCF8833ã³ã³ãããŒã©ãŒäžã«æ§ç¯ãããŠããŸãïŒããã©ãã·ã¥ã¡ã¢ãªããããå
é»ã³ã³ãããŒã©ãŒåè·¯ãåãããªããŠã ã€ãªã³ããããªãŒãããã€ã¹çšã®äŸ¿å©ãªã±ãŒã¹ãå
¥æã§ããŸãã
ããã§ããæåã®ãªãã·ã§ã³ãã€ãŸãæºåž¯é»è©±ããã®ãã£ã¹ãã¬ã€ã«ã€ããŠèª¬æããŸãããã
ã€ã³ã¿ãŒãããããåŸãããæ
å ±ã«ãããšãå°åã«ã©ãŒLCDãã£ã¹ãã¬ã€ãããNokia XZããã³Siemens SïŒKïŒ65ã®ãã£ã¹ãã¬ã€ãäžè¬çã§ãã æåã®ãã£ã¹ãã¬ã€ã«ã¯éåžžã«å€ãã®æ
å ±ããããŸãããç»è³ªã解å床ããããŠæãéèŠãªã®ã¯å¿çæéã®ç¹ã§ã·ãŒã¡ã³ã¹ã®ãã£ã¹ãã¬ã€ããå£ã£ãŠãããã¢ãã¡ãŒã·ã§ã³ã®åçã«ã¯ã»ãšãã©äžåãã§ãã ãããŠãããªããšç§ã¯éæ¢ç»åã衚瀺ããããšã«èå³ããããŸããããïŒ 2çªç®ã®ãã£ã¹ãã¬ã€ã¯ãã€ã³ã¿ãŒãããããã®ããŒã¿ã§å€æããŠã132 x 176ãã¯ã»ã«ã®è§£å床ãšã¢ãã¡ãŒã·ã§ã³ãåºåããã®ã«ååãªå¿çæéãæäŸããŸãã ãã ããæ®å¿µãªãããããã2ã€ã®ãã£ã¹ãã¬ã€ãæ¯èŒããæ©äŒã¯ãããŸããã§ããã ç§ã®å€ãã·ãŒã¡ã³ã¹SK65ã暪ã«ãªã£ãŠããã®ã§ãéžæã¯æããã«ãããæ¯æããŠè¡ãããŸããã
æåã®ã¬ãŒãã¯ããã£ã¹ãã¬ã€èªäœã賌å
¥ãããšãã«ç§ãã¡ãåŸ
ã£ãŠããŸãã äºå®ãã·ãŒã¡ã³ã¹ã¯3ã€ã®ç°ãªãã¡ãŒã«ãŒãLS020xxxãLPH88xxxxãL2F50xxxã®ã³ã³ãããŒã©ãŒã®S65ã«ãã£ã¹ãã¬ã€ãã€ã³ã¹ããŒã«ããŠããŸãã
3çªç®ã«ã€ããŠã¯ããŸã£ããèããŠããŸããã§ããã2çªç®ã«ã¯å
¬åŒã®ããŒã¿ã·ãŒãããããŸããããã®ã³ã³ãããŒã©ãŒã¯ããŸãäžè¬çã§ã¯ãªãããã§ãã
ãããŠããããæåã®LS020xxxã§ããããã¯ãã»ãšãã©ã®å Žåæºåž¯é»è©±ã«ç«ã€ã³ã³ãããŒã©ãŒã§ãããç§ã®SK65ãäŸå€ã§ã¯ãããŸããã§ããã
ãã¹ãŠãçŽ æŽãããããã«æããŸããã1ã€ã®äžå¿«ãªäºå®ããããŸããã³ã³ãããŒã©ãŒã«ããŒã¿ã·ãŒãããããŸããã ãããã£ãŠãã³ãã³ããšã¬ãžã¹ã¿ã説æããå
¬åŒææžãªãã§éçºããå¿
èŠããããŸãã ãããããã¹ãŠãããã»ã©æªãããã§ã¯ãããŸãããè·äººã¯ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ã»ãã·ã§ã³ãå®æœãããã£ã¹ãã¬ã€ãšã®å¯Ÿè©±ã®åºæ¬ã決å®ããŸãããã€ã³ã¿ãŒãããã«ã¯ããã£ã¹ãã¬ã€ã«é¢ããå€ãã®æ
å ±ããããŸãã
ãã詳现ã«è¡šç€ºãæ€èšããŠãã ããã
ãã£ã¹ãã¬ã€LS020xxx
æåã«ç®ãåŒãã®ã¯ãéåžžã«äŸ¿å©ãªã³ã³ã¿ã¯ããããã§ããã»ãšãã©ã®ãã£ã¹ãã¬ã€ã®å°ããªã³ãã¯ã¿ãããã¯ãã ä»ããã¯ããã«ç°¡åã§ãã 確ãã«ããããã¯ãã¬ãã·ãã«ãªãžããããªã³ãåè·¯åºæ¿äžã«ãããäžæ³šæã«æ±ããšã¯ãã ããŠã§æº¶ããããšãã§ãããããã¯ãã ä»ãæã«ã¯ãã ããŠã®æž©åºŠãäœãããŸãã
åèšã§ããã£ã¹ãã¬ã€ã«ã¯10åã®é£çµ¡å
ããããŸãã
- RS-ã³ãã³ã/ããŒã¿åãæ¿ãä¿¡å·
- RESET-ãªã»ããä¿¡å·ã衚瀺
- CS-ä¿¡å·éžæããã€ã¹SPI
- CLK-SPIã¯ããã¯
- DAT-MOSI SPIä¿¡å·
- 2.9Vããã³1.8V-ãã£ã¹ãã¬ã€é»æº
- LED +ãLED_GND-é»æºããã³æ¥å°ããã¯ã©ã€ãåè·¯
- GNDã¯ãã£ã¹ãã¬ã€ã®ã°ã©ã³ãã§ãã
LED +ããã³LED_GNDæ¥ç¹ã¯ã10ã20ãã«ãã®ç¯å²ã®ãã£ã¹ãã¬ã€ããã¯ã©ã€ããã絊é»ãããŸãã ãã®é»åã¯3ã€ã®LEDã«äŸçµŠãããLEDãæµããé»æµã¯ã³ã³ãããŒã©ãŒåè·¯ã«ãã£ãŠèª¿æŽããããããé»æµå¶éæµæãªãã§1ã€ãŸãã¯2ã€ã®9VããããªãŒãå®å
šã«æ¥ç¶ã§ããŸãã 2ã€ã®çå ãçŽåã«æ¥ç¶ãããããã«æ²ãã ç¶æ
ã§ãçŽ17Vã®é»å§ãåŸãŸããã
1V8ã2V9ãããã³GNDãã³ã¯ããã£ã¹ãã¬ã€åè·¯ã«é»åãäŸçµŠããŸãã èå³æ·±ãããšã«ãå€ãã®æ¥ç¶ã¹ããŒã ã§ã¯ããã³1V8ãã©ãã«ããŸã£ããæ¥ç¶ãããŠããªãããšãããããŸãã ä»ã®ãã¹ãŠã®åè·¯ã§ã¯ããã³1V8ãš2V9ã¯äžç·ã«æ¥ç¶ããã3.3Vé»æºã«æ¥ç¶ãããŠããŸãã ãã®æ¥ç¶ã¯éåžžã«æ©èœçã§ããããšãå€æãããããããããŸãã
ãã³CSãDATãCLKã¯ãå¿çç·ã®ãªãåçŽãªSPIã€ã³ã¿ãŒãã§ãŒã¹ã瀺ããŠããŸãã ãã®äºå®ã¯åã¶ãããªãããªããªãã AVRã«ãããŒããŠã§ã¢SPIã³ã³ãããŒã©ãŒããããSTMã«ã¯ãã®çš®ã®åšèŸºæ©åšãéåžžã«è±å¯ã«ãããŸã-è¥ãã¢ãã«ã«ã¯ãããã®ã³ã³ãããŒã©ãŒã2ã€ãããå€ãã¢ãã«ã«ã¯4ã€ãããããSPIã®1ã€ããã£ã¹ãã¬ã€ãšã®éä¿¡ã«å®å
šã«å²ãåœãŠãããšãã§ããŸãã
RSããã³RESETãã³ã¯ããã£ã¹ãã¬ã€çšã®2ã€ã®è¿œå å¶åŸ¡ä¿¡å·ã§ãã 1ã€ç®ã¯ãã¢ã¯ãã£ãã¬ãã«ïŒãã°0ïŒã«ããããšãšããã£ã¹ãã¬ã€ã«ã³ãã³ããéä¿¡ããŠããããšãããã³éã¢ã¯ãã£ãã¬ãã«ïŒãã°1ïŒã«ããããšã瀺ããŠããŸã-ããŒã¿ã RESETã¯ããã®ååã瀺ãããã«ãã³ã³ãããŒã©ãŒããªã»ããããããã«èšèšãããŠããŸãã
ããã§ããã¬ããããŒãã䜿çšããŠãã£ã¹ãã¬ã€ããããã°ããŒãã«æ¥ç¶ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã10ãã³IDCã³ãã¯ã¿ä»ãã®ã±ãŒãã«ãéžæããŸããã
ãã§ã«ã±ãŒãã«ãã¯ãã ä»ãããŠãããšãã«æŠè¡çãªãã¹ãå®æããŸãããäºå®ããã¬ããããŒãäžã§æ°Žå¹³ãœã±ãããçžäºæ¥ç¶ãããŠãããããã³ãã¯ã¿ã®åãç絡ããŠããŸãã ãšã«ãããç§ã¯ãŸã å¥ã®ã³ãã¯ã¿ãæã£ãŠããªãã£ãã®ã§ãã¯ã€ã€ãŒã§äœããããèãã®åœ¢ã§ä¿®æ£ãè¡ããªããã°ãªããŸããã§ãã-ãªããªã ãã¬ããããŒãã¯3ã€ã®ç¬ç«ããã»ã¯ã·ã§ã³ã§ãããã»ã¯ã·ã§ã³ã®å¢çã§ã³ãã¯ã¿ãæ¥ç¶ããããšã«ãããç絡ãåé¿ããããšãã§ããŸããã
ç§ã®å®éšãç¹°ãè¿ã人ã¯ã1åã®10ãã³ã³ãã¯ã¿ã䜿çšããããšããå§ãããŸããåé¡ã¯å°ãªããªããŸãã ã±ãŒãã«ãå§çãããåŸããã£ã¹ãã¬ã€ã®æ¥ç¹ã«ã¯ãã ä»ãããå¿
èŠããããŸã-æ¥ç¹ãé
眮ãããŠãããã£ã«ã ã¯ãé«æž©ã«é·æéãããããããšã奜ãŸãªããããè¿
éãã€æ確ã«ã¯ãã ä»ããè©Šã¿ãŸãã
ã¯ãã ä»ãåŸããã¬ããããŒãã«ã³ãã¯ã¿ãé
眮ãããžã£ã³ããã³ã³ãããŒã©ã«æ¥ç¶ãå§ããŸãã ããã¯ã©ã€ãã®é»æºãã³ã¯ããã«å°çã«é£ããŠè¡ãããããããçå ããã³ãã¯ã¿ãçªãåºããããããå¿ããŸãã 10-20Vã®é»æºãæã£ãŠãã人ãªã誰ã§ããããè¯ãã§ãããšãã«ã®ãŒãç¯çŽããããã«ãããããªãŒãåžžã«ãªãã«ããå¿
èŠã¯ãããŸããã
æ¥ç¶ã®é£ã«ã¯SPIã€ã³ã¿ãŒãã§ãŒã¹ããããŸãã æ¢ã«èª¬æããããªããžã³ã°ã®çç±ã®ããã«ãæ°Žå¹³ãã³ãã¶ãäžããã ãã§ããããã°ããŒãããã¬ããããŒãã«åãä»ããããšãã§ããŸããã ãã ãããã®äžã«ã¯SPI2ã€ã³ã¿ãŒãã§ã€ã¹ãå«ãŸããŠãããããæåã®ã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ãèªç±ã«äœ¿çšã§ããŸããã ããããããã¯ç§ãã¡ã倧ãã«æ··ä¹±ãããã¹ãã§ã¯ãªãã ãŸã äœãæ¥ç¶ããŸããã ãããã£ãŠãCLKããã³PA7ã«ãDATããã³PA5ã«æ¥ç¶ããŸãã CSäœæ¥ããžãã¯ã«åŸã£ãŠRSããªã»ããããã ãã§ãªããRSã䜿çšããŠãã³ãã«ããã«ããŸãããããã£ãŠãããã3ã€ã®ä¿¡å·ã¯ãéœåã®è¯ãå Žæã«åºåãããŸãã ãã³PA2ãPA3ãPA4ãéžæããŸããã 次ã®ãããªçµæã«ãªããŸãã
ã¡ãªã¿ã«ãå°ããªããããã¯ïŒãã¹ãŠãæ¥ç¶ããåŸããã³ã®1ã€ã«å¯ŸããŠãã¹ã10KHzã®æ¹åœ¢æ³¢ãçºè¡ããŸããã ãããŠãããã¯ãªã·ãã¹ã³ãŒãã瀺ãããã®ã§ãïŒ
éã§ããŒã¯ããããã£ãã«2ã¯ããã³èªäœã«æ¥ç¶ãããŠããŸãã ãã ãããã£ãã«1ïŒé»è²ïŒã¯ããã«é£æ¥ããåºåã«æ¥ç¶ãããŠããŸãã ã»ãŒ100mVã®æ¯å¹
ãæã€ãããã®çŸããåºå±è
ãã芧ãã ããã ãã¬ããããŒãäžã®ãããã®ãžã£ã³ãã¯ãã¹ãŠããã³éã«åŒ·åãªå®¹éçµåãæäŸããŸãã ç¹åŸŽçãªã®ã¯ããããã°ããŒãããã¬ããããŒãããåŒãåºããå Žåãå®çšçãªå¹æããªãããšã§ãã
ãã®ãããããã€ã¹ãèšèšããéã«ã¯æ³šæãå¿
èŠã§ããã¬ã€ã¢ãŠãã«ã¯ç¬èªã®ç¹æ§ãå°å
¥ããããããèæ
®ãã¹ãç¹ããããŸãã ãã®äžã«é«åšæ³¢åè·¯ãçµã¿ç«ãŠãããšã¯ã»ãšãã©äžå¯èœã§ãã
ãã£ã¹ãã¬ã€ãæ¥ç¶ããåŸããã«ãã¡ãŒã¿ãŒãåãåºããŠã¢ã»ã³ããªã泚ææ·±ããã§ãã¯ããé
ç·ãåãããšãã«ãã¡ãŒã ãŠã§ã¢ã«åœ±é¿ãäžããªãããã«ãã¹ãŠã®ä¿¡å·ã鳎ãããŸãã
ãã¹ãŠãæ£ããæ¥ç¶ãããŠããå Žåã¯ãCaleãèµ·åããŠæ¬¡ã®ããŒãã«é²ã¿ãŸãã
ã³ãŒã
ãã§ã«è¿°ã¹ãããã«ãå®éã«ãã£ã¹ãã¬ã€ã®å®éšããäœã¶æãçµã£ãŠããèšäºã®å·çã«æ»ã£ããããã³ãŒãã®äžéšã倱ãããŸããã ããããéèŠãªãã€ã³ããã¡ã¢ãªãã埩å
ããããšããŸããã ãã ãããã£ã¹ãã¬ã€ãšã®å¯Ÿè©±ã¯éåžžã«ç°¡åã§ãããåââé¡ãåŒãèµ·ããããšã¯ãããŸããã
ãã®ãããçŸæç¹ã§ã¯ããã¬ããããŒãã«å®å
šã«æ¥ç¶ããããããžã§ã¯ããäœæããç¶æ
ã§Caleãå®è¡ãããã£ã¹ãã¬ã€ãå¿
èŠã§ãã
ãŸããç»é¢ã«ç»åã衚瀺ããã ãã§ãã ç§ãã¡ã®ä»äºã¯ãã£ã¹ãã¬ã€ãæ±ãããšã§ãããããcraftãªãã®ãå²åŠãããã«ãŒãããã®ããŠã³ããŒãããã¡ã€ã«ã·ã¹ãã ã®èªã¿åããªã©ãåºå®ããŸããã -ã³ã³ãããŒã©ã®ãã©ãã·ã¥ã¡ã¢ãªã«çã®16ãããRGBå€ã®åœ¢åŒã§ç»åãé
眮ããã ãã§ãã ãããè¡ãã«ã¯ãæšæºã®bmpãã¡ã€ã«ããã©ãŒã ã®ã¬ã³ãŒãã«å€æãã䟿å©ãªããã°ã©ãã³ã°èšèªã§ããã°ã©ã ãäœæããããšããå§ãããŸã
const uint16_t Picture[] = {0x0000, 0x0000, âŠ, 0x0000};
ãã£ã¹ãã¬ã€ã®è§£å床ã¯132 x 176ãã¯ã»ã«ã§ãããããã2ãã€ããå ãããããç»åå
šäœã¯ã¡ã¢ãªå
ã§46,464ãã€ããã€ãŸã45 Kbãå°ãè¶
ããŸãã
幞ããªããšã«ã500KB STMkaãã©ãã·ã¥ã䜿çšãããšã1ã€ã ãã§ãªãçã®ç»åãä¿åã§ããŸãã
次ã«ããã£ã¹ãã¬ã€ã®ããã°ã©ãã³ã°ã«é²ã¿ãŸãã äœããããã³ã³ãããŒã©ãŒã«ããŒã¿ã·ãŒãããªããããé»éè¡ã®ããã«èŠããŸãããéã«ãªã£ã人ããã®æ瀺ãããããã€ãã®åœ¢ã§ãåªæããããã«äžããŸãã ãã®ã¢ãããŒããããªãã«åããªãå Žåãæè¯ã®è§£æ±ºçã¯ãç§ãèšåããe-Beyãã£ã¹ãã¬ã€ã®ããããã賌å
¥ããããšã§ããããã«ã¯ãã«ã»ããã®ããã¥ã¡ã³ããä»å±ããŠããŸãã
ã ããåªæã
ãã£ã¹ãã¬ã€ã¯æ¬¡ã®ã·ãŒã±ã³ã¹ã§åæåãããŸãïŒäžæåæ¢ã«éåžžã«ææã§ãïŒïŒïŒ
- ã¬ãã«ãã°0ãRESETè¡ã«éããçŽ5ããªç§éä¿æããŸãã
- ãã®ãããªãã€ããããã¯ã§ããæåã®ã¹ãã«ããã£ã¹ãã¬ã€ã«çºè¡ããŸãã
uint16_t Init1[12]={0xFDFD,0xFDFD,0xEF00,0xEE04, 0x1B04,0xFEFE,0xFEFE,0xEF90, 0x4A04,0x7F3F,0xEE04,0x4306}
Init1 [9] = 0x7F3Fã0x7F1Fã«çœ®ãæãããšã256è²ã¢ãŒãã§ãã£ã¹ãã¬ã€ãåæåã§ããŸããã 16ãããã®è²ã¯ããã«èå³æ·±ãã®ã§ãå
ã®ããŒãžã§ã³ãèŠãŠã¿ãŸãããã
ãã®ãã€ãã®ãããã¯ã®åŸã7ããªç§åŸ
æ©ããŸãã - ãã€ãã®ãããã¯ãé
ããŸã
uint16_t Init2[20]={0xEF90,0x0983,0x0800,0x0BAF,0x0A00, 0x0500,0x0600,0x0700,0xEF00,0xEE0C, 0xEF90,0x0080,0xEFB0,0x4902,0xEF00, 0x7F01,0xE181,0xE202,0xE276,0xE183}
ãããŠ50ããªç§åŸ
ã¡ãŸã - æåŸã®åªæã2ãã€ãã®åœ¢ã§ãã£ã¹ãããŸã
uint16_t Init3[2]={0x8001}
5ããªç§åŸ
ã¡ãŸãã
ãã®åŸããã£ã¹ãã¬ã€ã«è²ä»ãã®ãŽãã衚瀺ãããåæåãæåããããšã瀺ãããŸãã
ããã§ã¯ãSTMkeã§åšèŸºæ©åšãæäœããæ¹æ³ãèŠããªãããããããã¹ãŠãå®è£
ããŠã¿ãŸãããã
åæã«ããŒããã³ãã£ã³ã°ãè©Šãããšã«ããŸããããã®ãããããã«3ã€ã®æéãçºè¡šããŸããã
uint32_t *Reset = (uint32_t*)0x42210184, *CS = (uint32_t*)0x42210188, *RS = (uint32_t*)0x4221018C;
ãã®ãã°ããããã¯ããã¯ãèŠããŠããªã人ã«ãšã£ãŠãããããã³ãã£ã³ã°ã¯éåžžã«äŸ¿å©ãªæ©èœã§ããããã¯ãIOkaã¬ãžã¹ã¿ãšRAMã®åããããSTMkaã®ã¢ãã¬ã¹ç©ºéã®ã©ããã«é
眮ããããšã§ãã 32ãããã®ã¢ãã¬ã¹ç©ºéïŒ4ã®ã¬ãã€ãïŒããããŸãããå®éã«ã¯ããŸãé¢ä¿ããªããããéçºè
ã¯ãæ°ã¡ãŒãã«ãè²»ãããŠIOãŸãã¯RAMïŒããããã³ããšã€ãªã¢ã¹é åïŒããããããã³ãé åã®ã€ãŒãã«æ¥ç¶ããããšã«ããŸããã
ããã¯åçŽã«åäœããŸã-ç§ãã¡ã®ããã«PA2ã«å¯Ÿå¿ããCSãã³ãå¶åŸ¡ããããšããŸãããã ãã®ä¿¡å·ã¬ãã«ã¯ã
GPIOA-> ODRã¬ãžã¹ã¿ã®ãããçªå·2ã«ãã£ãŠå¶åŸ¡ãããŸãã
ããŒã¿ã·ãŒãã®åŒã䜿çšããŸãã
bit_word_addr = bit_band_base +ïŒbyte_offset x 32ïŒ+ïŒbit_numberÃ4ïŒ
bit_word_addrã¯ãèšç®ãããããããã³ãã®æ€çŽ¢ã¢ãã¬ã¹ã§ãã
ããŒã¿ã·ãŒãã«ãããšãããã»ããµã®bit_band_baseã¯ããããŒã§æ¬¡ã®ããã«å®£èšãããŠããŸã
#define PERIPH_BB_BASE ((uint32_t)0x42000000)
byte_offset-ããããã³ããšã€ãªã¢ã¹é åã®å
é ããç®çã®ã¬ãžã¹ã¿ãžã®ãªãã»ããããã®å Žåã¯GPIOA-> ODRãžã®ãªãã»ããã
ã¢ãã¬ã¹
GPIOA-> ODRã¯0x4001080ã§ãããããåšèŸºããããã³ããšã€ãªã¢ã¹é åã®å§ãŸãã¯æ¬¡ã®ããã«å®£èšãããŸãã
#define PERIPH_BASE ((uint32_t)0x40000000)
ãã®ãªãã»ããã¯0x4001080C-0x40000000 = 0x1080Cã«ãªããŸã
ãããŠæåŸã«ãç§ãã¡ãèå³ãæã£ãŠãããããã®æ°ã¯2ã§ãã
* CS = 0x42000000 +ïŒ0x1080CïŒ* 32 + 2 * 4 = 0x42000000 + 210180 + 8 = 0x42210188
ãã®ã¢ãã¬ã¹ã«ãŒã以å€ã®å€ãæžã蟌ãã ã®ã§ããã®ã¡ã¢ãªã»ã«ã«é¢é£ä»ãããããããã1ã«èšå®ãããŒãã0ã«æžã蟌ã¿ãŸãã
3ãããã¯ã®ãã€ãããã§ã«çºè¡šãããŠãããããåšèŸºæ©åšãåæåããŸãã
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; GPIOA->CRL |=GPIO_CRL_MODE1; GPIOA->CRL &=~GPIO_CRL_CNF1; GPIOA->CRL |=GPIO_CRL_MODE2; GPIOA->CRL &=~GPIO_CRL_CNF2; GPIOA->CRL |=GPIO_CRL_MODE3; GPIOA->CRL &=~GPIO_CRL_CNF3; GPIOA->CRL |=GPIO_CRL_MODE5; GPIOA->CRL &=~GPIO_CRL_CNF5; GPIOA->CRL |=GPIO_CRL_CNF5_1; *Reset=1; *CS=1; *RS=1; GPIOA->CRL |=GPIO_CRL_MODE7; GPIOA->CRL &=~GPIO_CRL_CNF7_0; GPIOA->CRL |=GPIO_CRL_CNF7_1; SPI1->CR1 &= ~SPI_CR1_BR_2; SPI1->CR1 |= SPI_CR1_DFF; SPI1->CR1 |= SPI_CR1_MSTR|SPI_CR1_SPE;
ããã§ã¯ãã¹ãŠãç°¡åã§ããResetãCSãRSãããã°ã©ã ã®å¶åŸ¡äžã§çµäºããããã«èšå®ãã
CLKããã³MOSI-åšèŸºæ©åšãã€ãŸããã®å Žåã¯SPIã³ã³ãããŒã©ãŒã«ãã£ãŠå¶åŸ¡ãããåºåã
SPIã¯Fclk / 8åšæ³¢æ°ã«èª¿æŽããããã€ãã§ã¯ãªã16ãããã¯ãŒãã§ããŒã¿ãéä¿¡ããŸãã
SPIãä»ããé
延ããã³åæéä¿¡æ©èœã«ã€ããŠã説æããå¿
èŠããããŸããããããã¿ã€ãã¯äŸå€ã§ãããããããã§ã¯èª¬æããŸããã
__INLINE void Delay_ms(uint32_t us) __INLINE void SendSPI(uint16_t Data)
ãããã®å®è£
ã¯éåžžã«ç°¡åã§ã-é
延ã¯SPIãä»ããå®æçãªéä¿¡ãåæéä¿¡ã§å®è£
ãããŸã-SPIããŒã¿ã¬ãžã¹ã¿ã«éä¿¡ãããã€ããåºåãïŒSPI1-> DR = Data;ïŒãSPI_SR_BSYãã©ã°ãSPI1-> SRã¹ããŒã¿ã¹ããæ¶ãããŸã§ã«ãŒãã§åŸ
æ©ããŸãã
次ã«ãããžãã¯ã·ãŒã±ã³ã¹ãå®è¡ããŸãã
*Reset=0; *CS=0; Delay_ms(5); *Reset=1; Delay_ms(50); for(i=0;i<12;i++) SendSPI(Init1[i]); Delay_ms(7); for(i=0;i<20;i++) SendSPI(Init2[i]); Delay_ms(50); for(i=0;i<2;i++) SendSPI(Init3[i]); Delay_ms(5);
次ã¯ãæ°ããåªæãåŠã³ãŸãããã ã ããïŒ
ã³ãã³ã{0xEF90ã0x05ORã0x06XXã0x07YY}-ç»é¢ã«ã°ã©ãã£ãã¯æ
å ±ã衚瀺ããŸãããã€ãORã¯åºåäžã®ç»é¢ã®åãã瀺ããæ°Žå¹³ã®å Žåã¯0x04ãåçŽã®å Žåã¯0x00ã«çãããªããŸã-ãã¯ã»ã«ã¯ãã®æ¹åã«å¡ãã€ã¶ãããŸãã ãã€ãXXããã³YYã¯ãé·æ¹åœ¢ã®å·Šäžé
ã®äœçœ®ã瀺ããŸãã å³äžé
ã¯åžžã«ãã¯ã»ã«ïŒ175ã131ïŒãšçãããªããŸãã
ãã®åŸãã°ã©ãã£ãã¯æ
å ±ã®ãã€ããããã£ã¹ãã¬ã€ãåæåããã圢åŒã§éä¿¡ããå¿
èŠããããŸãã ãã®å Žåã16ãããã¯ãŒã圢åŒ5-6-5ïŒRGBïŒ
éãããé åã«æ
å ±ã衚瀺ããã«ã¯ãã³ãã³ããå°ãå€æŽãã圢åŒã§äœ¿çšããŸãã
{0xEF90ã0x05ORã0x08X1,0x09X2,0x0AY1,0x0BY2}ãããã§ãX1ãY1ã¯åºåé åã®å·Šäžé
ã®åº§æšãX2ãY2ã¯å³äžé
ã®åº§æšã§ãã
ãããã£ãŠãç»é¢å
šäœãé»ã§å¡ãã€ã¶ããšæ¬¡ã®ããã«ãªããŸãã
SendSPI(0xEF90); SendSPI(0x0504); SendSPI(0x0600); SendSPI(0x0700); *RS=0; for(i=0;i<132*176;i++) SendSPI(0x0000); *RS=1; *CS=1;
ããŠãããããåçãæ®ããïŒ
SendSPI(0xEF90); SendSPI(0x0504); SendSPI(0x0600); SendSPI(0x0700); *RS=0; for(i=0;i<132*176;i++) SendSPI(Picture[i]); *RS=1; *CS=1;
ãã¹ãŠãæ£ããå®äºãããã次ã®çµæãåŸãããŸãã
ãã©ãŒãããæµ·å
µéå¡ã¯ãããã°ãç§ãã¡ã«èšã£ãŠããŸãããã¯ã»ã«ã衚瀺ãããé åºãèŠããŠãããŠãã ããïŒåã«é»æºããªãã«ããã®ã§ã¯ãªãã次ã®ã³ãã³ãã·ãŒã±ã³ã¹ã§ãã£ã¹ãã¬ã€ã®äœæ¥ãçµäºããããšããå§ãããŸãã
uint16_t Power[26]={0xEF00,0x7E04,0xEFB0,0x5A48,0xEF00,0x7F01,0xEFB0,0x64FF,0x6500,0xEF00,0x7F01,0xE262,0xE202,0xEFB0,0xBC02,0xEF00,0x7F01,0xE200,0x8000,0xE204,0xE200,0xE100,0xEFB0,0xBC00,0xEF00,0x7F01}; *RS=1; for(i=0;i<26;i++) SendSPI(Power[i]); *CS=1;
ããã¯ãååãšããŠçµäºããå¯èœæ§ããããŸãããå®éã«ã¯ãæãèå³æ·±ãã®ã¯ãå
ã«ç§ãã¡ãåŸ
ã£ãŠããããšã§ãïŒ
STM32F1xxã¢ãŒããã¯ãã£æ©èœã䜿çšããŠç»å衚瀺ãæé©åãã
ããã§ãã¡ã¢ãªããç»åã衚瀺ããŸããã ããã¯ãã§ã«åªããææã§ããã掻åã®å¹
åºãåéã§ãããæªåé«ãArduinã§ãç°¡åã«åãããšãã§ããŸãã ãããŠãç§ãã¡ã®ç®æšã¯ãarduinodependenceããå埩ããã©ã®ã¿ã¹ã¯ãä»ã®æ¹æ³ã§æããã解決ãããããç解ããããšã§ãã èããŠã¿ãŸãããïŒçŸåšã®å®è£
ã¯äœãå¶éããŠããŸããïŒ
çãã¯æããã§ããã¢ãã¡ãŒã·ã§ã³ã衚瀺ããå Žåãã»ãšãã©ã®å Žåãã°ã©ãã£ãã¯æ
å ±ã®åºåãµã€ã¯ã«ã§ã¹ãã³ããŸãã ç»é¢è§£å床ã¯132x176ãã¯ã»ã«ã§ãããããããã2ãã€ãã§èšè¿°ããããããSPIãã¹ãä»ããŠ371,712ããããåºåããå¿
èŠããããŸãã åãããã¯ã¯ããã¯ã®8åã®1ã®åšæ³¢æ°ã§åºåãããŸããã€ãŸãã1ãã¬ãŒã ãåºåããã«ã¯2 973 696ã¯ããã¯ãè²»ããå¿
èŠããããŸãã 75 MHzã®STMkiãæå
ã«çœ®ãããšã¯ããã»ã©é倧ã§ã¯ãªããããããŸãããäžå¿«ã§ã¯ãããŸããã16 MHz AVRkiã®å Žåã¯ãã¹ãŠçœå®³ã§ãã
ãããã幞ããªããšã«ãSTMã¢ãŒããã¯ãã£ã«ã¯ããã®ãããªç¶æ³ã§ã¯ç§ãã¡ã®äººçãããšã話ã®ããã«èŠãããããã¯ããããŸãã ããã¯ããã€ã¬ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹ãŠããããã€ãŸãDMAã§ãã
次ã®ãã€ã³ãéã§ã³ã³ãããŒã©ãŒã³ã¢ã䜿çšããã«ããŒã¿ã転éã§ããŸãã
- ã¡ã¢ãªã¡ã¢ãª
- åšèŸºã¡ã¢ãª
- åšèŸºã¡ã¢ãªã
ååãªèšèã§ããããç§ãã¡ã«äžãããã®ãå®éã«èŠãŠã¿ãŸãããïŒ
ãŸããå¿
èŠãªã³ãŒããåšèŸºæ©åšã®åæåã«è¿œå ããŸãã
DMA1_Channel3->CPAR = (uint32_t)(&SPI1->DR); DMA1_Channel3->CNDTR = 1560; DMA1_Channel3->CCR |= DMA_CCR3_PL_0; DMA1_Channel3->CCR |= DMA_CCR3_PSIZE_0; DMA1_Channel3->CCR |= DMA_CCR3_MSIZE_0; DMA1_Channel3->CCR |= DMA_CCR3_DIR; DMA1_Channel3->CCR |= DMA_CCR3_MINC; DMA1_Channel3->CCR |= DMA_CCR3_EN;
ããã§ã¯ãããŒã¿ãæžã蟌ãŸããã¢ãã¬ã¹ãèšå®ãïŒSPIããŒã¿ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ã«çããïŒãéä¿¡çšã®16ãããã¯ãŒãã®æ°ã1560ïŒãã¬ãŒã ã®ãµã€ãºã¯30x52ãã¯ã»ã«ïŒã«èšå®ããéä¿¡ã®å¹³ååªå
é äœã
ã¬ã·ãŒããšãœãŒã¹ã®ãµã€ãºâãã®å Žåãäž¡æ¹â 16ããããéä¿¡æ¹åïŒã¡ã¢ãªããåšèŸºãžïŒãã¡ã¢ãªãžã®ãã€ã³ã¿ã®èªåã€ã³ã¯ãªã¡ã³ããèšå®ããDMAãæå¹ã«ããŸãã
åè¿°ã®const uint16_t Picture []ãšåã圢åŒã§ããã€ãã®ãã¬ãŒã ãæºåããå¿
èŠããããŸãã
ãããè¡ãããã«ã12åã®ããããŒframe01.h ... frame12.hãæºåãããããããã®ããŒã¿ãçµåããŸãã
const uint16_t* Video[]={frame1,frame2,frame3,frame4,frame5,frame6,frame7,frame8,frame9,frame10,frame11,frame12};
ãŸãããã¬ãŒã ã«ãŠã³ã¿ãŒå€æ°ãå°å
¥ããŸã
uint8_t FrameCnt=0;
æ®ãã¯ã»ãšãã©ãããŸãã-åæåã§ãã·ã¹ãã ã¿ã€ããŒãå¿
èŠãªãã¬ãŒã ã¬ãŒãã«èšå®ãã
SysTick_Config(SystemCoreClock/50000)
ã¿ã€ããŒå²ã蟌ã¿ãã³ãã©ãŒã®èª¬æã¯æ®ããŸãã
void SysTick_Handler() { *CS=0; FrameCnt++; if(FrameCnt>11) FrameCnt=0; SPI1->CR2 &= ~SPI_CR2_TXDMAEN; DMA1_Channel3->CCR &=~DMA_CCR3_EN; *RS=1; *CS=0; SendSPI(0xEF90); SendSPI(0x0504); SendSPI(0x0A00+70); SendSPI(0x0800+50); SendSPI(0x0B1D+70); SendSPI(0x0933+50); *RS=0; DMA1_Channel3->CMAR = (uint32_t)Video[FrameCnt]; DMA1_Channel3->CNDTR = 1560; DMA1_Channel3->CCR |= DMA_CCR3_EN; SPI1->CR2 |= SPI_CR2_TXDMAEN; }
ããã§ã次ã®ãã¬ãŒã ã®æ°ãèšç®ãããã®åŸãã°ããã®éDMAéä¿¡ããªãã«ããŸãã ããã¯ãã°ã©ãã£ãã¯åºåã³ãã³ãããã£ã¹ãã¬ã€ã«éä¿¡ããããã«å¿
èŠã§ãã
ãã®å Žåããã«ã¹ã¯ãªãŒã³ã§ã¯ãªãå°ããªç»åã衚瀺ãããŸãã ã³ã³ãããŒã©ã®ã¡ã¢ãªã足ããªãã ãã§ãã ããã§SDã«ãŒãããã®èªã¿åããåºå®ãããšããã«ã¹ã¯ãªãŒã³ãããªããããããšãã§ããŸãã
ã³ãã³ããéä¿¡ãããåŸãã°ã©ãã£ãã¯ãœãŒã¹ã®ã¢ãã¬ã¹ãèšå®ããŸãããã¬ãŒã ã®1ã€ãVideo []ã«æ ŒçŽããããã€ã³ã¿ãéä¿¡ãããã¯ã®ãµã€ãºãèšå®ããDMAãæå¹ã«ããŸãã
ããã ãã§ãïŒ ããã§ãããã°ã©ã ã¯ã°ã©ãã£ãã¯ã¹åºåã«50ããªç§ããšã«æ°åãµã€ã¯ã«ä»¥äžãè²»ãããŸããããã¯ãŸãã«ã¿ã€ããŒå²ã蟌ã¿åŠçã«éãããŸã-å²ã蟌ã¿ãåŠçãããåŸãDMAã¯åå ããã«SPIã¬ãžã¹ã¿ã«ããŒã¿ãéä¿¡ãå§ããŸãïŒ ãããã£ãŠãã°ã©ãã£ãã¯åºåãæ°ã«ããã«ãã¡ã€ã³ãµã€ã¯ã«ã§ããžãã¹ãå®å
šã«èœã¡çããŠå®è¡ãããã次ã®ãã¬ãŒã ãæºåãããããªããžã§ã¯ããç絡ãããã§ããŸãã
ãã¹ãŠãæ£ããè¡ããããšã次ã®çµæãåŸãããŸãã
ãããã«
ç§ãã¡ã¯äœãéæããŸãããïŒ
ãŸããã«ã©ãŒã°ã©ãã£ãã¯ãã£ã¹ãã¬ã€ãªã©ã®èå³æ·±ãåšèŸºæ©åšãæäœããããšãåŠã³ãŸããã ããèªäœã¯æªãã¯ãªãããããžã§ã¯ãã§åœ¹ç«ã¡ãŸãã
ãããæãéèŠãªããšã¯ãDMAãããã¯ã®äœ¿çšæ¹æ³ãåŠç¿ããããšã§ããDMAãããã¯ã䜿çšãããšããã®ãããªãããã¯ãæããªãã³ã³ãããŒã©ãŒã§ããŒã¿ã転éãããœãããŠã§ã¢ãšæ¯èŒããŠãæãåºãå¯èœæ§ãåºãããŸãã
ãã£ã¹ãã¬ã€ã«é¢ããŠã¯ã次ãè¿œå ããããšæããŸããe-bayã§ãããã°ããŒããèŠã€ããŸãããããã¯ééããªãSTM32ã§åªããå¿
èŠãªéçºè
ããŒã«ãåŒã³åºããŸãã ãã¡ãã§è²©å£²äžã§ãïŒ
Mini-STM3245ãã«ã®å ŽåãããŒããŠã§ã¢USBãéçã¡ã¢ãªã³ã³ãããŒã©ãŒãåããSTM32F103VETãã€ã¯ãã³ã³ãããŒã©ãŒãå«ããä¿¡ããããªãã»ã©äŸ¿å©ã§åŒ·åãªããŒã«ãå
¥æã§ããŸããããã«ããããã£ã¹ãã¬ã€ãšããŒããŠã§ã¢SDã«ãŒãã³ã³ãããŒã©ãŒã®äœæ¥ã倧å¹
ã«ç°¡çŽ åãããŸãã å®éã«ã¯ã解å床320x240ã®ãã£ã¹ãã¬ã€ãšãããã«åãä»ããããæµæèæ¹åŒã¿ããã¹ã¯ãªãŒã³ãã¿ããã¹ã¯ãªãŒã³ã³ã³ãããŒã©ãŒãããã¯ã©ã€ãã«é»åãäŸçµŠããããŒã¹ãã³ã³ããŒã¿ãŒãæèŒãããŠããŸãã USBã«å¿
èŠãªãã¹ãŠã®ããŒãã¹ã ã³ã³ããŒã¿ãŒä»ãRS-232ã ãããŠãã³ã³ãããŒã©ãŒã®ããã¯ã¢ããã¬ãžã¹ã¿ãŒã«é»åãäŸçµŠããããããªãŒã
ãŸãã28ãã«ã®è¿œå ãªã¯ãšã¹ãã§ã䟿å©ãªããã°ã©ããŒã§ããJ-LINKã¯ããŒã³ïŒç§ã®æèŠã§ã¯300ã«ãŒãã«ã®ãããã¬ãŒã«çµã¿èŸŒãŸããŠãããã®ãããã¯ããã«å®å®ããŠããïŒã泚æã«è¿œå ãããŸãã
äžè¬ã«ãSTMãæ±ã人ã¯èª°ã§ããã®ãããã°ããŒããšããã°ã©ããŒãããããã賌å
¥ããããšã匷ããå§ãããŸãã ã¡ã€ã³ããŒã«ãšããŠMini-STM32ã䜿çšããŠãåŸç¶ã®èšäºãäœæããŸãã
çŸæç¹ã§ã¯ä»äºã§éåžžã«å¿ããç¡ç·ã¢ãžã¥ãŒã«ãæ±ã£ãŠããã®ã§ã次ã®èšäºã¯ãããããããã«ã€ããŠã§ãã
åç
§è³æ
ãã£ã¹ãã¬ã€ãæ±ããšãã¯ã次ã®è³æã䜿çšããŸããã
http://www.juras-projects.org/eng/lcd.phphttp://avrhobby.ru/index.php?option=com_content&view=article&id=71:-rgb-1&catid=42:rgb-&Itemid=71