2011年9月27日 星期二

V-USB custom-class 範例解說

這篇將摘要說明 V-USB custom-class 範例的程式碼。要讀這篇,讀者必須對 USB 有足夠的認識。

customer-class 分成兩個部份:韌體和 PC 端的指令列工具 (commandline)

韌體

usbconfig.h

usbconfig.h 是 V-USB 的設定檔,每個 V-USB 的程式都會從 V-USB 的 usbconfig-prototype.h 複製過來並改名為 usbconfig.h 然後根據自己的硬體調整設定。

底下是 custom-class 對 usbconfig.h 所做的調整:

  • USB_CFG_IOPORTNAME, USB_CFG_DMINUS_BIT and USB_CFG_DPLUS_BIT

這些設定 USB bus D+ 和 D- 所用的接腳。預設是:

#define USB_CFG_IOPORTNAME      D
#define USB_CFG_DMINUS_BIT      4
#define USB_CFG_DPLUS_BIT       2

  • USB_CFG_VENDOR_ID and USB_CFG_DEVICE_ID

這些設定 VID 和 PID。預設是:

#define  USB_CFG_VENDOR_ID       0xc0, 0x16
#define  USB_CFG_DEVICE_ID       0xdc, 0x05

資料表示方式是 low byte first,VID 0x16c0 和 PID 0x05dc 是 obdev 提供的共享 VID/PID。

  • USB_CFG_DEVICE_NAME and USB_CFG_DEVICE_NAME_LEN

這些設定 Device Name 和資料長度,custom-class 把 Device Name 設成 "LEDControl",資料長度是 10:

#define USB_CFG_DEVICE_NAME     'L', 'E', 'D', 'C', 'o', 'n', 't', 'r', 'o', 'l'
#define USB_CFG_DEVICE_NAME_LEN 10

  • USB_CFG_DEVICE_CLASS = 0xff

這個設定 Device Class。USB 定義了一些常用的 device class,你可以在 USB Class Codes 這個頁面中找到。0xff 代表的是 "Vendor Specific",也就是廠商自行定義的 function。

2011年9月21日 星期三

Arduino 1.0 RC 嚐鮮

Arduino 1.0 RC 已在 17 日開放下載,有興趣嚐鮮的人,可以在底下的網址取得:

http://code.google.com/p/arduino/wiki/Arduino1

讓我們來看看新版 IDE 做了哪些改變:

新的啟動畫面:

image

操作介面換了新的顏色風格、工具列的圖示 (Icon) 也除舊佈新了:

image

比較值得注意的是,Arduino sketch 副檔名原先使用 .pde (沿用自 Processing),現在已經全面改成 .ino。

編輯器下方的狀態列 (status line) 現在會顯示所用的 Board name 與 serial port:

image

編譯 (Verify) 與上傳 (upload) 會有進度顯示 (Progress bar):

2011年9月20日 星期二

Arduino 早餐來了!

image

Arduino 原創者 Massimo Banzi 本月 18 日在 Maker Faire New York 揭露了數個新款 Arduino 板子。前一天,Arduino 官方 blog 率先公佈了這則消息。根據官網的說明,這次 Arduino 有令人驚喜的新產品:

Arduino 1.0

image

在經過數年的發展後,Arduino API, IDE 以及 boards 的設計終於底定,本月 18 日將釋出 Arduino 1.0 RC 版,到時你可以在這裏下載,而之後再經過 1 個月的壓力測試後,官網就會正式公佈 Arduino 1.0 的版本。