USB HID клавиатура на основе PICkit2.
Программатор PICKit 2 можно использовать как средство разработки, отладки и знакомства с USB устройствами. Простой пример: вам хочется освоить USB интерфейс. В «стандартном» случае вам нужно иметь программатор и собственно плату с установленным USB контроллером. Если у вас есть программатор PICkit-2 то можно поступить гораздо проще! Сердцем программатора PICkit 2 является USB-контроллер Microchip PIC18F2550. На фабрике в PICkit 2 прошит загрузчик (бутлоадер – bootloader) и прошивка программатора. Бутлоадер необходим для возможности обновления прошивки программатора при выходе новых версий PICkit2. Можно воспользоваться данной возможностью для своих целей, а именно для изучения интерфейса USB. В этом случае все что вам понадобится это PICkit 2. Как заменить программу в PICkit 2.
Компания Microchip для поддержки разработок с применением USB PIC контроллеров предлагает пакет библиотек и примеров MCHPFSUSB Framework. На основе готовых примеров создадим прошивку USB HID клавиатуры для программатора PICkit 2.
Для работы понадобится USB программатор PICkit 2, среда разработки MPLAB IDE, Си компилятор MPLAB C-18 (можно скачать бесплатную студенческую версию с сайта www.microchip.com/C18) и последняя версия MCHPFSUSB Framework v2.3 (www.microchip.com/USB).
#define REMAPPED_RESET_VECTOR_ADDRESS 0x2000 #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS 0x2008 #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS 0x2018
#if defined(__18CXX) #if defined(__18F2550) #include "HardwareProfile - PK2.h" #if defined(__18F4550) #include "HardwareProfile - PICDEM FSUSB.h" #elif defined(__18F87J50)
Копируем и преименовываем файл «HardwareProfile - PICDEM FSUSB.h» в «HardwareProfile – PK2.h». В этом файле меняем настройки периферии – светодиодов и кнопок:
#define mInitAllLEDs() TRISC &=0xFE; #define mLED_1 LATCbits.LATC0 #define mLED_2 LATCbits.LATC0
Так как PICkit2 имеет одну а не 2 кнопки, то указываем на это:
#define mInitAllSwitches() TRISBbits.TRISB5=1; #define mInitSwitch2() TRISBbits.TRISB5=1; #define sw2 PORTBbits.RB5
Может возникнуть вопрос «зачем это нужно?». Можно придумать массу вариантов ответа. Можно изучать как работает клавиатура, а можно, например, сделать считыватель 1-wire ключей, цифрового термометра DS18S20 или … .
Исходные коды программы HID клавиатуры (чтение термометра DS1820)
Распакуйте содержание архива в папку C:/Microchip Solutions/ Загрузите в PICkit2 файл прошивки usb device - hid - pk2keyboard_ds.hex Подключите микросхему DS18S20 к PICkit2 как показано на схеме
Откройте окно любого текстового редактора.
Если нажать на кнопку программатора PICkit2, то в окне редактора увидите значение температуры и содержание буфера Scratchpad микросхемы DS18S20.