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).

  • Пакет программ MCHPFSUSB Framework v2.3 устанавливается в c:\Microchip Solutions\. Для начала скопируем содержимое папки «USB Device - HID - Keyboard» в папку «USB Device - HID - PK2Keyboard». Дальше будем работать с проектом в новой папке, чтобы сохранить неизменными оригинальные проекты.
  • Наиболее близкий по «железу» это проект для демо-платы PICDEM FS USB (номер для заказа DM163025) с установленным контроллером PIC18F4550. Поэтому выберем для наших «опытов» проект «USB Device - HID - Keyboard- C18 - PICDEM FSUSB».
  • Меняем тип контроллера с PIC18F4550 на PIC18F2550. Переименовываем файл линкера с «rm18f4550 - HID Bootload.lkr» на «rm18f2550 - HID Bootload.lkr», в файле линкера меняем строку «FILES p18f4550.lib» на «FILES p18f2550.lib». Бутлоадер программатора PICkit2 размещает прошивку начиная с адреса 0x2000, поэтому меняем адреса секций в файле линкера с 0x1xxx на 0x2xxx. Аналогично в файле Keyboard.c изменяем адреса редиректа векторов сброса и прерываний.
  #define REMAPPED_RESET_VECTOR_ADDRESS		0x2000
  #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS	0x2008
  #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS	0x2018
  • Настраиваем периферию (файл HardwareProfile.h). Добавляем 2 строки:
  #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
  • Теперь остается скомпилировать проект и полученный hex файл залить в PICkit 2. После успешного программирования Windows найдет новое устройство

  • Теперь если открыть окно какого либо текстового редактора и понажимать на кнопку PICkit2, то увидим вводимые символы:

Исходные коды программы

Может возникнуть вопрос «зачем это нужно?». Можно придумать массу вариантов ответа. Можно изучать как работает клавиатура, а можно, например, сделать считыватель 1-wire ключей, цифрового термометра DS18S20 или … .

Исходные коды программы HID клавиатуры (чтение термометра DS1820)

Распакуйте содержание архива в папку C:/Microchip Solutions/ Загрузите в PICkit2 файл прошивки usb device - hid - pk2keyboard_ds.hex Подключите микросхему DS18S20 к PICkit2 как показано на схеме

Откройте окно любого текстового редактора.

Если нажать на кнопку программатора PICkit2, то в окне редактора увидите значение температуры и содержание буфера Scratchpad микросхемы DS18S20.

статьи/usb.hid.клавиатура.на.основе.pickit2.txt · Последние изменения: 27/11/2022.20:47 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0