Command disabled: backlink

Два виртуальных COM порта

За основу взят пример тов. ttabbal (модификация примера CDC из Microchip MCHPFSUSB Framework 2.3).

1. Качаем пример

2. Как обычно модифицируем программу под загрузку бутлоадером PCkit-а

Определение периферии (под особенности железа PICkit2
  • Переопределяем аппаратные настойки (я вообще сделал файл HardwareProfile - PK2.h дабы везде его использовать и не создавать каждый раз одну и ту же конфигурацию железа). Обратите внимание, в файле HardwareProfile - PK2.h есть строчка #define PROGRAMMABLE_WITH_USB_PK2HID_BOOTLOADER - указываем что шить будем с конфигурацией под бутлоадер PICkit-а
Файл HardwareProfile.h
  • должна быть строчка на наш файл определения периферии #include «HardwareProfile - PK2.h»
Файл main.c
  • переопределение векторов прерываний и сброса
#elif defined(PROGRAMMABLE_WITH_USB_PK2HID_BOOTLOADER)
	#define REMAPPED_RESET_VECTOR_ADDRESS		0x2000
	#define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS	0x2008
	#define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS	0x2018
  • Добавляем PROGRAMMABLE_WITH_USB_PK2HID_BOOTLOADER
#if defined(PROGRAMMABLE_WITH_USB_PK2HID_BOOTLOADER)|| defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)||defined(PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER)
extern void _startup (void);        // See c018i.c in your C18 compiler dir
#pragma code REMAPPED_RESET_VECTOR = REMAPPED_RESET_VECTOR_ADDRESS
void _reset (void)
{
      ...
#if defined(PROGRAMMABLE_WITH_USB_PK2HID_BOOTLOADER)|| defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)||defined(PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER)
//Note: If this project is built while one of the bootloaders has

В общем то все! Можно скомпилировать и прошить в PICkit2. Как залить свою прошивку в PICkit2 читаем тут

Замечание
у меня не получилось запустить пример с прилагаемыми драйверами под Windows XP SP2 (не поставился драйвер под второй COM-порт и 2-й порт нормально не работал), пришлось обновиться до SP3. Под Windows XP SP3 драйвера установились нормально и оба виртуальных COM порта заработали. Под OS Vista я не пробовал, желающие могут протестировать и отписаться.

После установки драйверов (из папки inf в архиве) в Windows появятся 2 виртуальных COM порта. Можно открыть два отдельных окна гипертерминала каждое под свой COM порт и понажимать кнопки на клавиатуре. Скорости обоих COM портов могут быть установлены разные. Пример сделан так, что возвращается нажатый символ+1, т.е. при нажатии на букву «а» в окне гипертерминала напечатается «б».

Я модифицировал пример так, что данные, переданные через один виртуальный COM порт, передаются в другой и наоборот. Так же в примере передаем значения кнопок без сдвига, т.е. при передаче символа «а» в одном окне терминала, принимаем в другом тоже «а».

Исходные коды проекта 2 виртуальных COM порта на PIC контроллере.

песочница/2.виртуальных.com.порта.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