На склад поступили жидко-кристаллические индикаторы и дисплеи от KSE

Как собрать устройство USB с помощью микроконтроллера PIC 18F4550 (18F). Экспериментальная плата 18F4550

Microchip PIC18F4550 PIC18F2550

PIC 18F4550 и 18F2550 — мощные микроконтроллеры с высокоскоростным интерфейсом USB 2.0. С их помощью любители помастерить смогут с легкостью собрать любое устройство USB всего из нескольких компонентов. В этой статье я расскажу о том, как пользоваться встроенным программным обеспечением CDC от Microchip, которое позволяет эмулировать последовательный порт на компьютере с операционной системой Windows или Linux. К тому же, с его помощью легко собирать устройства HID.

Фото экспериментальной платы.
Фото экспериментальной платы.

Приведенная ниже схема автономного устройства USB очень проста, для ее реализации потребуется лишь несколько деталей. Имейте в виду: я использую микро-ПЗУ Olimex ICSD. Если хотите воспользоваться другим ПЗУ PIC ICSP, уберите компоненты D1 и D2 и замените коннектор.

schematic 18F4550 experimentation board
Нажмите на изображение для просмотра схемы с высоким разрешением

Это устройство совместимо с микросхемным загрузчиком USB.

Обратите внимание: емкость компонента C5 составляет 470 нанофарад (в таблице рекомендуется 220 нанофарад, но чем больше, тем лучше), и он должен отличаться низким эффективным последовательным сопротивлением (например, за счет многослойной керамической изоляции). И не забудьте развязывающие конденсаторы емкостью 100 нанофарад.

Вот один из вариантов реализации этой схемы.

Стоит обратить внимание на цвет проводов USB-кабеля: черный — заземление, красный — +5 В, зеленый — Data+, белый — Data-.

01.04.2007 ВАЖНОЕ ИСПРАВЛЕНИЕ: На этой схеме есть небольшая ошибка: к компоненту R5 следует подсоединять провод +5 В, а не заземление, иначе устройство не будет работать.

Нажмите на изображении для просмотра схемы с разрешением 300 точек на дюйм.

плата 18F4550

PCB 18F4550 experimentation board
Click to get a 300 dpi PCB

Программное обеспечение

Файл MCHPFSUSB_Setup можно загрузить с сайта Microchip. К сожалению, это исполняемый файл .exe для Windows. В моем примере используется встроенное ПО, написанное на языке C (компилятор C18 от Microchip). Этот код абсолютно бесплатен, но не является открытым, так что распространять его модифицированную версию запрещается.

В архиве содержатся следующие файлы:

  • Загрузчик USB и его исходный код на C18.
  • Утилита Windows для загрузчика.
  • Исходный код встроенного ПО CDC (эмуляция последовательного порта) на C18. Его можно без изменений использовать с загрузчиком USB.
  • Встроенное ПО для устройства HID.
  • Драйвер Windows для CDC (в Linux устройства CDC-ACM поддерживаются по умолчанию).

Советы по сборке экспериментальных устройств

Исходный код находится в каталоге «fw/cdc/MCHPUSB.mcw».

Для автономного устройства USB в файле usbcfg.h следует закомментировать следующие строки:

#define USE_SELF_POWER_SENSE_IO
#define USE_USB_BUS_SENSE_IO

На моей схеме светодиодные индикаторы подключены к порту B, поэтому необходимо изменить файл io_cfg.h:

#define mLED_1 LATBbits.LATB0
#define mLED_2 LATBbits.LATB1
#define mLED_3 LATBbits.LATB2
#define mLED_4 LATBbits.LATB3

В файл user.c вы можете включить свой собственный код. Например, воспользуйтесь кодом Exercise_Example() в user.c.

Полезные функции предлагают команды getsUSBUSART() (получение данных) и putrsUSBUSART() (передача данных по другому последовательному порту).

Не забудьте выполнить проверку mUSBUSARTIsTxTrfReady() перед отправкой данных.

В каталоге «exercise» можно найти некоторые образцы команд. Например, если включить в файл user.c следующий код, при нажатии в терминале клавиши [1] будет загораться индикатор №4:

void Exercise_03(void){
if(getsUSBUSART(input_buffer,1)) {
 if(input_buffer[0] == '1') mLED_4_Toggle(); 
} 

В Windows для работы устройства необходимо установить включенный в архив драйвер. Можно также воспользоваться утилитой Hyperterminal (19200 бод, кристалл 20 МГц). В Linux следует проверить модуль cdc-acm — должно появиться новое устройство с адресом «/dev/ttyACM0».

Если не хотите использовать загрузчик, удалите раздел «vector remapping» в файле main.c и измените сценарий компоновщика (см. файл important.readme.txt в каталоге исходников).

Перевод по заказу РадиоЛоцман

На английском языке: How to build a USB device with a PIC 18F4550 or 18F. The 18F4550 experimentation board

48 предложений от 29 поставщиков
Микропроцессор PIC, Ядро 8bit, 32K-Flash 2K-SRAM 256B-EEPROM, 48MHz, 4.2…5.5V, 40°C...85°CМикроконтроллеры PIC (Peripheral Interface Controller) - это программируемые ППЗУ, имеют малое энергопотребление,...
AiPCBA
Весь мир
PIC18F4550-I/P
Microchip
34 ₽
ChipWorker
Весь мир
PIC18F4550-I/P
Microchip
35 ₽
FAV Technology
Весь мир
PIC18F4550-I/PT
Microchip
по запросу
PIC18F4550-I/PTPBF
Microchip
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя