{"id":189,"date":"2020-06-10T21:44:48","date_gmt":"2020-06-10T12:44:48","guid":{"rendered":"https:\/\/r-side.net\/?p=189"},"modified":"2020-06-10T21:44:48","modified_gmt":"2020-06-10T12:44:48","slug":"post-189","status":"publish","type":"post","link":"https:\/\/r-side.net\/kw\/?p=189","title":{"rendered":"RX64M\u3067USB\u30e1\u30e2\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b"},"content":{"rendered":"<p>RX64M\u306b\u306fUSB\u30db\u30b9\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u304c\u5185\u8535\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001USB\u30e1\u30e2\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u3001USBA\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002USB\u306f\u3001USB0\u3068USBA\u306e2\u7a2e\u985e\u3042\u308a\u307e\u3059\u304c\u3001\u4f7f\u7528\u65b9\u6cd5\u306f\u540c\u3058\u3067\u3059\u3002<br \/>\n\u30ea\u30bd\u30fc\u30b9\u306e\u8a2d\u5b9a\u3067\u3001USB0_HOST\u304bUSBA_HOST\u306e\u3069\u3061\u3089\u3092\u9078\u3076\u304b\u304c\u7570\u306a\u308a\u307e\u3059\u3002<br \/>\n\u4f7f\u7528\u3059\u308bFIT\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u8a2d\u5b9a\u306f\u4e0b\u8a18\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<p>r_usb_basic 1.30<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumb710 wp-image-190\" src=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-548x710.png\" alt=\"\" width=\"548\" height=\"710\" srcset=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-548x710.png 548w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-231x300.png 231w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-409x530.png 409w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-436x565.png 436w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic-559x725.png 559w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_usb_basic.png 615w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/>r_usb_hmsc 1.30<br \/>\n[\u8a2d\u5b9a\u9805\u76ee\u306a\u3057]<br \/>\nr_tfat_driver_rx 1.08<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-191\" src=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_tfat_driver_rx_USB.png\" alt=\"\" width=\"616\" height=\"492\" srcset=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_tfat_driver_rx_USB.png 616w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_tfat_driver_rx_USB-300x240.png 300w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_tfat_driver_rx_USB-530x423.png 530w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/06\/r_tfat_driver_rx_USB-565x451.png 565w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/>r_tfat_rx 4.00<br \/>\n[\u8a2d\u5b9a\u9805\u76ee\u306a\u3057]<\/p>\n<p>\u30bd\u30d5\u30c8\u30a6\u30a8\u30a2\u306b\u3064\u3044\u3066\u306f\u3001\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:c++ decode:true\" title=\"\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\">\/\/USB\r\n#include \"r_usb_basic_if.h\"\r\n#include \"r_usb_hmsc_if.h\"\r\n\/\/FAT\r\n#include \"r_tfat_driver_rx_if.h\"\r\n#include \"r_tfat_driver_rx_config.h\"<\/pre>\n<p>USB\u5236\u5fa1\u7528\u30b3\u30fc\u30c9\u306f\u3001\u4e0b\u8a18\u306e\u69d8\u306b\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"lang:c++ decode:true\" title=\"USB\u5236\u5fa1\u30b3\u30fc\u30c9\">#define USB_MEM_DEBUG_PRINT     1                   \/\/\u30c7\u30d0\u30c3\u30b0\u7528 Printf\u306e\u6709\u52b9\u5316\r\n#define USB_MEM_DEV_NO          0                   \/\/USB\u30e1\u30e2\u30ea \u30c7\u30d0\u30a4\u30b9\u756a\u53f7\r\n#define USB_MEM_DRV_LETTER      \"1:\"                \/\/USB\u30e1\u30e2\u30ea \u30c9\u30e9\u30a4\u30d6\u756a\u53f7(FatFs)\r\n\r\nFATFS               USB_MEM_FATFS;                  \/\/USB\u30e1\u30e2\u30ea \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\r\nusb_ctrl_t          USB_MEM_CTRL_TBL;               \/\/USB\u30e1\u30e2\u30ea \u901a\u4fe1\u5236\u5fa1\u69cb\u9020\u4f53\r\nunsigned short      USB_MEM_ERR_STATUS = 0;         \/\/USB\u30e1\u30e2\u30ea \u30a8\u30e9\u30fc\u30b9\u30c6\u30fc\u30bf\u30b9\r\nunsigned short      USB_MEM_READY = 0;              \/\/USB\u30e1\u30e2\u30ea \u6e96\u5099\u30c6\u30fc\u30bf\u30b9\r\n\r\n\/\/USB\u30e1\u30e2\u30ea\u306e\u521d\u671f\u5316\r\nvoid usb_mem_init(void){\r\n    usb_err_t usb_err;\r\n    usb_cfg_t cfg;\r\n\r\n    \/\/USB \u30d4\u30f3\u8a2d\u5b9a\r\n    R_USB_PinSet_USBA_HOST();\r\n\r\n    \/\/USB\u30e2\u30b8\u30e5\u30fc\u30eb\u30fb\u30c9\u30e9\u30a4\u30d0\u521d\u671f\u8a2d\u5b9a\r\n    USB_MEM_CTRL_TBL.module = USB_IP1;\r\n    USB_MEM_CTRL_TBL.type = USB_HMSC;\r\n    cfg.usb_speed = USB_FS;\r\n    cfg.usb_mode = USB_HOST;\r\n    usb_err = R_USB_Open( &amp;USB_MEM_CTRL_TBL, &amp;cfg);\r\n    if (USB_SUCCESS != usb_err){\r\n        #ifdef USB_MEM_DEBUG_PRINT\r\n        printf(\"ERROR: R_USB_Open.\\n\");\r\n        #endif\r\n        USB_MEM_ERR_STATUS |= 0x0001;\r\n    }\r\n}\r\n\r\n\/\/USB\u30e1\u30e2\u30ea\u691c\u51fa\u51e6\u7406\r\nvoid usb_mem_task(void){\r\n    usb_status_t usb_event;\r\n    uint8_t drv_no;\r\n    FRESULT             f_res;\r\n\r\n    usb_event = R_USB_GetEvent(&amp;USB_MEM_CTRL_TBL);\r\n    switch (usb_event){\r\n        case USB_STS_CONFIGURED:    \/\/ Configured \u72b6\u614b\r\n            #ifdef USB_MEM_DEBUG_PRINT\r\n            printf(\"Detected attached USB memory.\\n\");\r\n            #endif\r\n            R_USB_HmscGetDriveNo(&amp;USB_MEM_CTRL_TBL, &amp;drv_no);\r\n            if(drv_no != 0) break;\r\n            f_res = f_mount(&amp;USB_MEM_FATFS, USB_MEM_DRV_LETTER, 0);\r\n            if(f_res == FR_OK){\r\n                USB_MEM_READY = 1;\r\n            }else{\r\n                USB_MEM_ERR_STATUS |= 0x0400;\r\n            }\r\n            break;\r\n        case USB_STS_DETACH:        \/\/ Detach \u72b6\u614b\r\n            #ifdef USB_MEM_DEBUG_PRINT\r\n            printf(\"Detected detached USB memory.\\n\");\r\n            #endif\r\n            USB_MEM_READY = 0;\r\n            break;\r\n        case USB_STS_DEFAULT:       \/\/ Default \u72b6\u614b\r\n        case USB_STS_SUSPEND:       \/\/ Suspend \u72b6\u614b\r\n        case USB_STS_NONE:\r\n        default:\r\n            break;\r\n    }\r\n}\r\n<\/pre>\n<p>\u521d\u671f\u5316\u51e6\u7406\u3068\u3057\u3066\u3001usb_mem_init();\u3092\u4e00\u5ea6\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n\u305d\u306e\u5f8c\u306f\u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\u306b\u3066\u3001usb_mem_task();\u3092\u5e38\u6642\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n\u30ab\u30fc\u30c9\u306e\u633f\u5165\u3092\u691c\u51fa\u3059\u308b\u3068\u3001USB_MEM_READY\u304c1\u3068\u306a\u308a\u3001\u30a2\u30af\u30bb\u30b9\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u81ea\u4f53\u306f\u3001ChaN\u3055\u3093\u306eFatfs\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u305d\u3061\u3089\u3092\u53c2\u7167\u3057\u307e\u3059\u3002<br \/>\n<a href=\"?p=184\">SD\u30ab\u30fc\u30c9\u306e\u30b5\u30f3\u30d7\u30eb<\/a>\u3068\u540c\u69d8\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>RX64M\u306b\u306fUSB\u30db\u30b9\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u304c\u5185\u8535\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001USB\u30e1\u30e2\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u4eca\u56de\u306f\u3001USBA\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002USB\u306f\u3001USB0\u3068USBA\u306e2\u7a2e\u985e\u3042\u308a\u307e\u3059\u304c\u3001\u4f7f\u7528\u65b9\u6cd5\u306f\u540c\u3058\u3067\u3059\u3002 \u30ea\u30bd\u30fc\u30b9\u306e\u8a2d\u5b9a\u3067\u3001 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[29],"class_list":["clearfix","post-189","post","type-post","status-publish","format-standard","hentry","category-rx64m","tag-rx64m"],"_links":{"self":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=189"}],"version-history":[{"count":1,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":192,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions\/192"}],"wp:attachment":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}