Клеммы, реле, разъемы Degson со склада в России

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

Microchip PIC18F4550 PIC18F2550

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

КОМПЭЛ представляет техническое руководство по выбору компонентов Hongfa для зарядных станций

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

Приведенная ниже схема автономного устройства 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

52 предложений от 31 поставщиков
Микропроцессор PIC, Ядро 8bit, 32K-Flash 2K-SRAM 256B-EEPROM, 48MHz, 4.2…5.5V, 40°C...85°CМикроконтроллеры PIC (Peripheral Interface Controller) - это программируемые ППЗУ, имеют малое энергопотребление,...
ChipWorker
Весь мир
PIC18F4550T-I/ML
Microchip
16 ₽
PIC18F4550-I
Microchip
от 815 ₽
PIC18F4550-I/ML
Microchip
от 1 902 ₽
PIC18F4550IPT
Microchip
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя