{"id":331,"date":"2014-10-26T22:03:31","date_gmt":"2014-10-26T13:03:31","guid":{"rendered":"http:\/\/otsuka.biz\/blog1\/?p=331"},"modified":"2024-02-12T14:43:06","modified_gmt":"2024-02-12T05:43:06","slug":"usb-cdc-pic18f2550","status":"publish","type":"post","link":"https:\/\/otsuka.biz\/blog1\/usb-cdc-pic18f2550\/","title":{"rendered":"USB firmware of CDC and HID for PIC18F2550, PIC24FJ64GB002"},"content":{"rendered":"<p>&lt;&lt;\u00a0Reference &gt;&gt;<\/p>\n<p>Microchip Libraries for Applications (MLA)\u00a0v2014_07_22<\/p>\n<p>&lt;&lt; My two boards &gt;&gt;<\/p>\n<p>1)\u00a0\u00a0\u00a0 My UBW board with PIC18F2550 (in my page on Jan. 16, 2014) works as a USB device.<\/p>\n<p>A\u00a0configuration of CONFIG1L register of\u00a0a USB bootloader\u00a0is set to\u00a0&#8220;Divide by 5 (20 MHz oscillator input) and\u00a096 MHz PLL divided by 2 to derive system clock&#8221;, so Fosc is 48MHz derived from\u00a0a\u00a0primary oscillator using\u00a0a 20MHz\u00a0ceramic resonator.<\/p>\n<p>LED :\u00a0RC0, RC1; \u00a0\u00a0 Switch (pull down) : MCLR, RC2;<\/p>\n<p>LCD\u00a0(SC1602BBWB-XA-GB-G) :\u00a0RS &#8211; RB2, R\/W &#8211; GND, E &#8211; RB3, Data bus &#8211; RB4\uff5eRB7;<\/p>\n<p>USART : RC6 for USART_TX,\u00a0\u00a0 RC7 for UART_RX;<\/p>\n<p>2)\u00a0\u00a0\u00a0\u00a0My board with PIC24FJ64GB002 (of my page on Aug. 31, 2014) works as both a USB device and a USB host.<\/p>\n<p>FRC 8 MHz &#8211; 96 MHz PLL;<br \/>\n48 MHz for USB Module (96 MHz PLL divide by 2);<br \/>\n32 MHz for System Clock\u00a0(96 MHz PLL divide by 3);<\/p>\n<p>LED : RB0, RB1; \u00a0\u00a0 Switch (pull down) :\u00a0MCLR, RB2;<\/p>\n<p>LCD\u00a0(SC1602BBWB-XA-GB-G) :\u00a0RS &#8211; RB7, R\/W &#8211; GND, E &#8211; RB8, Data bus : DB4 &#8211; RB9, DB5 &#8211; RB13, DB6 &#8211; RB14, DB7 &#8211;\u00a0RB15;<\/p>\n<p>UART : RA0 for U2RX,\u00a0\u00a0 RA1 for U2TX;<\/p>\n<p>&lt;&lt;\u00a0USB Device : CDC (Communication Device Class)\u00a0 Serial Emulator &gt;&gt;<\/p>\n<p><a href=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-CDC-device-e1414501472721.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-360\" src=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-CDC-device-e1414501472721.jpg\" alt=\"\" width=\"508\" height=\"384\" srcset=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-CDC-device-e1414501472721.jpg 508w, https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-CDC-device-e1414501472721-300x226.jpg 300w\" sizes=\"auto, (max-width: 508px) 100vw, 508px\" \/><\/a><\/p>\n<p>It is necessary to select\u00a0the appropriate configuration\u00a0in the project of MPLAB X IDE when compiling by XC8\u00a0for PIC18F2550 or XC16 for PIC24FJ64GB002.<\/p>\n<p><div class='w3eden'><!-- WPDM Link Template: Default Template -->\n\n<div class=\"link-template-default card mb-2\">\n    <div class=\"card-body\">\n        <div class=\"media\">\n            <div class=\"mr-3 img-48\"><img decoding=\"async\" class=\"wpdm_icon\" alt=\"\u30a2\u30a4\u30b3\u30f3\" src=\"data:image\/svg+xml;base64,CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDAgNDAiPgogICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudCIgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY5ZGVmIiBvZmZzZXQ9IjAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI2YmRlZiIgb2Zmc2V0PSIxIi8+CiAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IGZpbGw9InVybCgjZ3JhZGllbnQpIiB4PSIwIiB5PSIwIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHJ4PSIzIiByeT0iMyIvPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUiIHk9IjE5IiBmb250LWZhbWlseT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxM3B4IiBsZXR0ZXItc3BhY2luZz0iMSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0c3Bhbj5MWkg8L3RzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4geD0iNiIgeT0iMjgiPl88L3RzcGFuPgogICAgICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9zdmc+CgoJCQk=\" \/><\/div>\n            <div class=\"media-body\">\n                <h3 class=\"package-title\"><a href='https:\/\/otsuka.biz\/blog1\/download\/usb-device-cdc\/'>USB Device - CDC<\/a><\/h3>\n                <div class=\"text-muted text-small\"><i class=\"fas fa-copy\"><\/i> 1 \u30d5\u30a1\u30a4\u30eb <i class=\"fas fa-hdd ml-3\"><\/i> 246.12 KB<\/div>\n            <\/div>\n            <div class=\"ml-3\">\n                <a class='wpdm-download-link download-on-click btn btn-primary ' rel='nofollow' href='#' data-downloadurl=\"https:\/\/otsuka.biz\/blog1\/download\/usb-device-cdc\/?wpdmdl=3336&refresh=69de206d1b8be1776164973\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div> (not including a driver for a Personal-Computer)<\/p>\n<p>&lt;&lt;\u00a0USB Host: CDC &gt;&gt;<\/p>\n<p>No picture.<\/p>\n<p>Code for my board with PIC24FJ64GB002\u00a0:<\/p>\n<p><div class='w3eden'><!-- WPDM Link Template: Default Template -->\n\n<div class=\"link-template-default card mb-2\">\n    <div class=\"card-body\">\n        <div class=\"media\">\n            <div class=\"mr-3 img-48\"><img decoding=\"async\" class=\"wpdm_icon\" alt=\"\u30a2\u30a4\u30b3\u30f3\" src=\"data:image\/svg+xml;base64,CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDAgNDAiPgogICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudCIgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY5ZGVmIiBvZmZzZXQ9IjAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI2YmRlZiIgb2Zmc2V0PSIxIi8+CiAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IGZpbGw9InVybCgjZ3JhZGllbnQpIiB4PSIwIiB5PSIwIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHJ4PSIzIiByeT0iMyIvPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUiIHk9IjE5IiBmb250LWZhbWlseT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxM3B4IiBsZXR0ZXItc3BhY2luZz0iMSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0c3Bhbj5MWkg8L3RzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4geD0iNiIgeT0iMjgiPl88L3RzcGFuPgogICAgICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9zdmc+CgoJCQk=\" \/><\/div>\n            <div class=\"media-body\">\n                <h3 class=\"package-title\"><a href='https:\/\/otsuka.biz\/blog1\/download\/usb-host-cdc\/'>USB host - CDC<\/a><\/h3>\n                <div class=\"text-muted text-small\"><i class=\"fas fa-copy\"><\/i> 1 \u30d5\u30a1\u30a4\u30eb <i class=\"fas fa-hdd ml-3\"><\/i> 175.73 KB<\/div>\n            <\/div>\n            <div class=\"ml-3\">\n                <a class='wpdm-download-link download-on-click btn btn-primary ' rel='nofollow' href='#' data-downloadurl=\"https:\/\/otsuka.biz\/blog1\/download\/usb-host-cdc\/?wpdmdl=3337&refresh=69de206d1ea7c1776164973\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div> (not including a driver for a Personal-Computer)<\/p>\n<p>&lt;&lt;\u00a0USB\u00a0host : HID (Human Interface Device) class\u00a0&gt;&gt;<\/p>\n<p><a href=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-host-HID-Keyboard.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-400\" src=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-host-HID-Keyboard.jpg\" alt=\"\" width=\"854\" height=\"480\" srcset=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-host-HID-Keyboard.jpg 854w, https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/USB-host-HID-Keyboard-300x168.jpg 300w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/a><\/p>\n<p>Code for my board with PIC24FJ64GB002 (outputting a ASCII code translated from a HID code) :<\/p>\n<p><div class='w3eden'><!-- WPDM Link Template: Default Template -->\n\n<div class=\"link-template-default card mb-2\">\n    <div class=\"card-body\">\n        <div class=\"media\">\n            <div class=\"mr-3 img-48\"><img decoding=\"async\" class=\"wpdm_icon\" alt=\"\u30a2\u30a4\u30b3\u30f3\" src=\"data:image\/svg+xml;base64,CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDAgNDAiPgogICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudCIgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjY5ZGVmIiBvZmZzZXQ9IjAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI2YmRlZiIgb2Zmc2V0PSIxIi8+CiAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IGZpbGw9InVybCgjZ3JhZGllbnQpIiB4PSIwIiB5PSIwIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHJ4PSIzIiByeT0iMyIvPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUiIHk9IjE5IiBmb250LWZhbWlseT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxM3B4IiBsZXR0ZXItc3BhY2luZz0iMSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0c3Bhbj5MWkg8L3RzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4geD0iNiIgeT0iMjgiPl88L3RzcGFuPgogICAgICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9zdmc+CgoJCQk=\" \/><\/div>\n            <div class=\"media-body\">\n                <h3 class=\"package-title\"><a href='https:\/\/otsuka.biz\/blog1\/download\/usb-host-hid\/'>USB host HID<\/a><\/h3>\n                <div class=\"text-muted text-small\"><i class=\"fas fa-copy\"><\/i> 1 \u30d5\u30a1\u30a4\u30eb <i class=\"fas fa-hdd ml-3\"><\/i> 226.15 KB<\/div>\n            <\/div>\n            <div class=\"ml-3\">\n                <a class='wpdm-download-link download-on-click btn btn-primary ' rel='nofollow' href='#' data-downloadurl=\"https:\/\/otsuka.biz\/blog1\/download\/usb-host-hid\/?wpdmdl=3338&refresh=69de206d20b291776164973\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div> (containing a bug relating to PnP (plug and play))<\/p>\n<p>&lt;&lt; A demonstration &gt;&gt;<\/p>\n<p>Keypad &#8211; USB &#8211;\u00a0Host (24FJ64GB002)\u00a0&#8211; UART &#8211;\u00a0Device (18F2550) &#8211; USB &#8211; PC (terminal soft):<\/p>\n<p><a href=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/Host-CDC-Device-e1415522006772.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-419\" src=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/Host-CDC-Device-e1415522006772.jpg\" alt=\"\" width=\"653\" height=\"478\" srcset=\"https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/Host-CDC-Device-e1415522006772.jpg 653w, https:\/\/otsuka.biz\/blog1\/wp-content\/uploads\/2014\/10\/Host-CDC-Device-e1415522006772-300x219.jpg 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/p>\n<p>The upper board\u00a0(PIC18F2550) practices a USB\u00a0serial emulator\u00a0 and the lower (PIC24FJ64GB002)\u00a0does a USB HID.\u00a0\u00a0\u00a0 A PC (terminal soft) is not shown in the above picture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;&lt;\u00a0Reference &gt;&gt; Microchip Libraries for Applications (MLA)\u00a0v2014_07_22 &lt;&lt; My two boards &gt; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"vkexunit_cta_each_option":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-331","post","type-post","status-publish","format-standard","hentry","category-pic"],"_links":{"self":[{"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/posts\/331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/comments?post=331"}],"version-history":[{"count":1,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/posts\/331\/revisions"}],"predecessor-version":[{"id":3339,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/posts\/331\/revisions\/3339"}],"wp:attachment":[{"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/media?parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/categories?post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/otsuka.biz\/blog1\/wp-json\/wp\/v2\/tags?post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}