A 9-Hour Course
June 20081
(exact date TBA)
Course Location:
Ryerson University
Presented by
Dennis Cecic, P. Eng. — SMIEEE,
IEEE Toronto Computer Chapter Chair
Online registration available soon
1If the minimum number of registrations is not met, the class will be postponed until the minimum is met.
REGISTRATION FEE
There are two registration fee options. If registering for the no-tools option, please make sure you order the USB Kit ahead of time and bring it with you for the course (see below).
Registration Only
IEEE Member: $299
IEEE Student Member: $159
Non-Member: $399
Registration + USB Kit
(available up to 14 days prior to the course date)
IEEE Member: $449
IEEE Student Member: $299
Non-Member: $549
(GST Included)
Required Equipment:
- 1GB or better USB Memory Key
- Laptop Computer (see Laptop Requirements below)
- USB Kit
- DM163025 – PICDEM FS USB Board (~$60 US)
- PG164120 – PICKit2 Microcontroller Programmer (~$35US)
- AC164110 – Adapter (~$10US)
- These can be ordered from: www.microchipdirect.com or www.digikey.ca
If you already have an MPLAB ICD 2 programmer, you can use it instead of the (PICKit2+Adaptor).
Contact
If you have any questions regarding this course, please contact Dennis at
Course Overview
Are you still trying to use Serial/Parallel ports for PC interfacing? Good luck.
USB has emerged as the de-facto standard interface for PC connectivity. Unfortunately for developers, the USB programming model is relatively complex, compared to these traditional interfaces. The objective of this 1-day class is to de-mystify the USB, and kick-start your USB Device development in Linux by reviewing the important aspects of the USB, as well as getting some hands-on experience in implementing generic data exchange between a Microchip PIC18 USB MCU and a Linux user-space C-program. The first hour of the workshop will be spent getting the tools up and running on your laptop.
Student Profile
You are an embedded designer, student, or professor who is developing a Linux PC-based application/lab, and is interested in incorporating additional functionality to the system via customized Microcontroller-based USB peripherals. You are comfortable with C programming as well as Microcontroller-based embedded systems. You are interested in gaining some experience with the Libusb APIs for your Windows/Mac OS host application.
Brief Course Outline
- History of USB
- USB Fundamentals
- Programmer’s Model
- Communications
- Power Planning
- Enumeration
- VID/PID & Serialization
- USB Compliance Testing
- USB Protocol Analyzers
- USB Device Classes
- Generic Data Transfer with a CDC-Class USB Device
- CDC Device Class: A Closer Look
- Host programming considerations
- Hands-on with the Microchip CDC Class Device API
- Generic Data Transfer with a Custom-Class USB Device
- Custom Device Class: A Closer Look
- Cross-Platform USB Development with the Libusb API
- Hands-on with the Microchip Custom Class Device API and Libusb API in Linux
Laptop Requirements
Participants will need to bring a laptop computer running Windows XP SP2, with a CD/DVD drive and at least 2 USB 2.0 High-speed ports (look for an Enhanced USB 2.0 Host Controller in Windows Device Manager). You will be installing development software on your computer, so you will need ~ 4GB of hard disk space. It is also recommended to have at least 512MB of RAM in your computer.
The Linux programming portion of the course will be run within a “virtual” Linux machine running in Windows XP using VMware player.
It is recommended you download/install VMware player from www.vmware.com/player.
Pre-built virtual machines can be found here: http://www.vmware.com/appliances/
We will also provide VMware player and a Customized Linux Virtual Machine at the training.
Instructor
DENNIS CECIC, P. Eng., is a Sr. Technical Training Engineer with Microchip Technology Canada Inc, specializing in microcontrollers, software and embedded systems. His 12+ years of embedded design experience includes development of microwave, infrared and acoustic motion sensors for the commercial security system market. He has also developed and taught courses in the school of electronics at Seneca College. He holds a B. Eng. Degree in Electrical Engineering from Ryerson University, and is Chair of the Toronto Chapter of the IEEE Computer Society.