реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> USB OTG на PIC32, Поделитесь мудростью
ZEbr
сообщение Jun 16 2013, 08:26
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Уважаемые гуру! Помогите разобраться с программирование USB OTG на PIC32! Подскажите с чего начать(что почитать) или дайте пример простенького кода. Я начал с разбора примера USB CDC, и прочтения мануала от Microchip на USB OTG(http://ww1.microchip.com/downloads/en/DeviceDoc/61126F.pdf), на основе этого примера начал писать свою программу(виртуального COM порта) в MPLAB ICD3. Написал до момента инициализации USB.
Код
#include "D:/PIC32/HaderUSB/usb.h"
#include "D:/PIC32/HaderUSB/usb_function_cdc.h"
#include "D:/PIC32/HaderUSB/GenericTypeDefs.h"
#include "D:/PIC32/HaderUSB/Compiler.h"
#include "D:/PIC32/HaderUSB/usb_config.h"
#include "D:/PIC32/HaderUSB/usb_device.h"
#include "p32xxxx.h"


static void InitializeSystem(void);
void ProcessIO(void);
void USBDeviceTasks(void);
void YourHighPriorityISRCode();
void YourLowPriorityISRCode();
void USBCBSendResume(void);
void BlinkUSBStatus(void);
void UserInit(void);

SYSTEMConfigPerformance(60000000);



void main(void)
{


USBDeviceInit();


                USBDeviceAttach();
    
        // Check bus status and service USB interrupts.
        USBDeviceTasks();



}

И вот он мне пишет такую бяку:
usb_device.o: In function `_USB1Interrupt':
D:\PIC32/SoursUSB/usb_device.c:886: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
D:\PIC32/SoursUSB/usb_device.c:936: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
D:\PIC32/SoursUSB/usb_device.c:994: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBStdSetCfgHandler':
D:\PIC32/SoursUSB/usb_device.c:2170: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBStdGetDscHandler':
D:\PIC32/SoursUSB/usb_device.c:2208: undefined reference to `device_dsc'
D:\PIC32/SoursUSB/usb_device.c:2208: undefined reference to `device_dsc'
D:\PIC32/SoursUSB/usb_device.c:2216: undefined reference to `USB_CD_Ptr'
D:\PIC32/SoursUSB/usb_device.c:2216: undefined reference to `USB_CD_Ptr'
D:\PIC32/SoursUSB/usb_device.c:2232: undefined reference to `USB_SD_Ptr'
D:\PIC32/SoursUSB/usb_device.c:2232: undefined reference to `USB_SD_Ptr'
usb_device.o: In function `USBSuspend':
D:\PIC32/SoursUSB/usb_device.c:2427: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBWakeFromSuspend':
D:\PIC32/SoursUSB/usb_device.c:2453: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBCtrlTrfSetupHandler':
D:\PIC32/SoursUSB/usb_device.c:2647: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBCheckStdRequest':
D:\PIC32/SoursUSB/usb_device.c:2869: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o: In function `USBStdFeatureReqHandler':
D:\PIC32/SoursUSB/usb_device.c:3031: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
usb_device.o:D:\PIC32/SoursUSB/usb_device.c:3061: more undefined references to `USER_USB_CALLBACK_EVENT_HANDLER' follow
main.o: In function `main':
D:\PIC32/main.c:33: undefined reference to `USBDeviceTasks'
collect2: ld returned 1 exit status
Что это такое? По моему в заголовочных файлах всё определено и описано.
Помогите разобраться с этой проблемой ну и вообще с программирование USb на PIC32!
Заранее спасибо!

Сообщение отредактировал ZEbr - Jun 16 2013, 08:31
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 11:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 11:26) *
Помогите разобраться с программирование USB OTG на PIC32! Подскажите с чего начать(что почитать) или дайте пример простенького кода. Я начал с разбора примера USB CDC ...

Вам нужно сделать устройство класса CDC ? Не знаю, как на PIC32, но на АРМ (самые разные) готовые примеры поставляются со средами разработки Keil и IAR. Почти все мои USB - проекты написаны с опорой на эти примеры. Для PIC32 такой подход, возможно, тоже подойдет. Если есть рабочий пример, очень советую начать с его сборки, заливки на плату с МК и тестирования. Дальше будет видно ...
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Jun 16 2013, 11:19
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



А пример то скините?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 11:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 14:19) *
А пример то скините?

Для PIC32 у меня наработок нет. Но я на 90% уверен, что производитель такой пример дает, или в составе среды разработки для PIC, или в виде отдельного архива, выложенного на сайте. Поищите ...
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Jun 16 2013, 11:38
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Примеры я нашел, весь косяк в том, что они не запускаются.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 11:44
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 14:38) *
Примеры я нашел, весь косяк в том, что они не запускаются.

Сверяйте схемотехнику вашей платы и платы - DevKit'а, на которую рассчитан пример. Проверьте совпадение частот кварцев и раскладку проводов в разъеме USB. Придется также сверить типы корпусов МК на этих платах, кол-во ножек и раскладку сигналов на ножках. Если это USB HS, то от вас требуется очень аккуратная и грамотная трассировка платы. Некорректно разведенная плата на HS запросто может не заработать вообще ...
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Jun 16 2013, 11:49
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Спасибо буду сверять!
Подскажите ещё такой момент. У меня есть пример для Host и для Device, в чем разница между ними?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 11:56
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 14:49) *
У меня есть пример для Host и для Device, в чем разница между ними?

К хосту (например, к компьютеру) подключается внешнее устройство, например, фабричная флэшка.
Device - это и есть та самая флэшка (например), которая подключается к хосту и всецело работает под его управлением.
Освоение USB советую начать с Device, это на порядок проще ...

Плата самодельная ? HS ?
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Jun 16 2013, 12:01
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Нет плата не самодельная,плата купленная. PIC32-PINGUINO-OTG - Olimex. Плата разведена правильно, а конфигурационные биты я выставляю сам.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 12:07
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 15:01) *
Нет плата не самодельная,плата купленная. PIC32-PINGUINO-OTG - Olimex. Плата разведена правильно, а конфигурационные биты я выставляю сам.

Кабель качественный ? Пример для этой платы написан ?
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Jun 16 2013, 12:15
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Нет пример не для этой платы, но на процессор той же серии, с одинаковыми ножками. Кабель качественный. У меня почему-то ругается на обработчик прерываний
USER_USB_CALLBACK_EVENT_HANDLER
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 16 2013, 15:57
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ZEbr @ Jun 16 2013, 15:15) *
Нет пример не для этой платы, но на процессор той же серии, с одинаковыми ножками. Кабель качественный. У меня почему-то ругается на обработчик прерываний
USER_USB_CALLBACK_EVENT_HANDLER

Смотрите в хелпе (или изучайте меню и настройки), где в вашей среде разработки указываются пути для библиотек, .h - файлов и проч. Похоже, какой-то путь в собираемом вами проекте настроен по умолчанию (т.е., установлен таким, каким он был у разработчиков) и отличается от пути на вашей машине ...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016