Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

PIC18F2550 USB - устройство и хост принимают только нули

Чт апр 13, 2017 16:56:01

Все привет!

Собрал устройство PIC18F2550 USB HID и отправляю данные с хоста через свою программу написанную на C# с использованием библиотеки HIDSharp, на симуляторе(Proteus) все работает хорошо. В реальность ничего работает не все гладко: устройство видит приходящие данные, но в виде одних нулей, та же ситуация, когда отправляются данные обратно на хост - одни нули.

Такая вот схема:
Изображение

Что подскажите, уже не знаю что делать. Тестировал разными программами и больше всего мне кажется, что проблема в железе и при отправке/получении, данные теряются. Что это может быть?

Re: PIC18F2550 USB - устройство и хост принимают только нули

Чт апр 13, 2017 21:45:31

Я не спец в этом вопросе, но вот что бросилось в глаза:
1/ Обычно один из D имеет подтягивающий резистор, чтобы хост знал скоростной тип слейва - Full или Low speed.
2/ Кварц, его кондеры и их земля ставятся прямо рядом с процессором, а никак не через проводильники.
3/ Последовательно в D линии ставят 20-50 омные резисторы, чтобы давить отраженки сигналов.

Re: PIC18F2550 USB - устройство и хост принимают только нули

Пт апр 14, 2017 01:31:35

Ariadna-on-Line писал(а):...Обычно один из D имеет подтягивающий резистор,
чтобы хост знал скоростной тип слейва - Full или Low speed....

У PIC18F2550 вся USB-обвязка есть внутри, резисторы можно не устанавливать.
Резисторы в цепи D+ и D- так-же не нужны.
2TC. Скачайте MLA и XC8 от Microchip.
Там есть готовый пример HID-устройства под этот чип. В решении много воды,
но по крайней мере всё работает, после допилите под себя и выкинете всё лишнее.

Re: PIC18F2550 USB - устройство и хост принимают только нули

Пт апр 14, 2017 13:27:38

Я брал пример от сюда http://jasuramme.blogspot.ru/2015/01/5- ... 12015.html

Добавлено after 4 hours 3 minutes 47 seconds:
Взял прошивку с MLA и вы знаете, то же самое. У меня падает подозрение на очень длинный USB кабель - 2 метра почти, плюс кустарный переходник для макетной платы. USB кабель без ферритового фильтра и похоже даже не экранирован. Может ли быть в этом проблема?

Re: PIC18F2550 USB - устройство и хост принимают только нули

Сб апр 15, 2017 16:23:09

Разобрался!

Я брал проект из MLA, но те что я брал за основу, что-то не шли, потом решил попробовать другой: C:\microchip\mla\v2017_03_06\apps\usb\device\hid_custom\firmware\picdem_fs_usb.x и похоже ошибка была всего лишь в конфигурационных битах. Вот этот проект сделан для PIC18F4550 но если в настройках изменить на PIC18F2550, то нужно будет немного подредактировать некоторые участки кода, чтобы не было ошибок компиляции. Так что если у кто-то столкнулся с такой проблемой, то знайте, вам нужно выбрать правильный проект или настроить верно конфигурационные биты.
Ответить