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.