Здравствуйте. Задавал вопрос в общей теме по программировании на С но думаю нужна отдельная тема. Проблема в следующем: есть устройство на PIC18F2550 подключаемое по USB и определяется как HID Keybord. К этому устройству подключена PS2 клавиатура и программный код реализовывает по сути переходник PS2-USB плюс дополнительный функционал. Возможна работа и без подключения к USB, т.е. автономно принимать команды от PS2 клавиатуры. Код написан в среде MikroCPRO for PIC с использованием стандартной библиотеки USB HID. Проблема заключается в том, что когда вытягиваешь USB разъем с порта то прекращается выполнение основной программы. И стандартная библиотека не имеет функции получения состояния модуля USB, чтобы при дисконекте перенаправить ветку на работу без USB. Находил на каком то иностранном форуме точно такую же проблему решили с помощью прерывания по USBIF но не выложили как это было достигнуто. Перелопатил регистры USB модуля и ничего не пришло в голову. PICами ранее не занимался и по этому прошу помощи у опытных разработчиков. Заранее спасибо за любую информацию. Спойлер
У mikroc свой компилятор но я пробую перейти на MPLABX, изучаю его. Пытаюсь скомпилировать проект с usb, сыпет кучу ошибок. Спасибо за линк, буду разбираться и переносить проект на MPLABX.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Vergilium
Заголовок сообщения: Re: Определить состояние USB mikrocPRO for pic
Я полностью убрал цикл, оставил только HID_Write(writebuff,8); Все ровно зависает. У меня сложилось такое мнение, что если программа входит в функцию передачи и если usb не подключен она где то в библиотеке зацикливается и ждет подключения usb. Ели бы были исходные коды данной библиотеки, а то сама либа компилирована и доступа к ней нет. Я на libstok нашел библиотеку для microc там больше функционала, но почему то не во всех ПК работает. Пытаюсь разобраться, может я где то накосячил.
Кстати с MPLAM Х ничего не получилось ввиду использования бесплатной версии. Мое устройство использует еще загрузчик по USB, а для сборки микрочиповсего бутлодера мне выдает ошибку, что нужен компилятор pro версии. В общем дальше пытаюсь решить задачу на microC.
Добавлено after 2 hours 32 minutes 55 seconds: Перевел проект на библиотеку вот от сюда https://libstock.mikroe.com/projects/vi ... ce-library Все вроде бы работает стабильно но не во всех USB портах, т.е. вставляю в порт ноутбука поддерживающий зарядку по USB и устройство определяется, работает нормально. Вынимаю вставляю в другой порт (обычный) и пишет неизвестное USB-устройство. Хотя перепрошиваю на код со стандартной библиотекой и USB работает во всех портах. У меня наверное не хватает знаний, чтобы понять почему так происходит. Может из-за того что у меня не подключен +5в от USB хоста к моему устройству? Может где то нужно указать, что устройство работает от внешнего источника питания?
Добавлено after 6 hours 17 minutes 24 seconds: Обнаружил нюанс с USB портами своего ноутбука. Приведенная выше библиотека скачанная с libstok не работает на USB 3.0. На 2.0 работает. Хотя интерфейсы обратно совместимы. Буду дальше разбираться почему.
Еще раз здравствуйте. Не разобрался почему не работает на USB 3.0, ну да и не важно. Мне USB2.0 хватит, не коммерческое устройство. Возникла следующая проблема. Можно как то определить, что устройство находится в режиме BIOS? т.е. Так называемом boot режиме, до загрузки Операционной системы? Идея в следующем. Включается ПК и BIOS просит ввести пароль, нажатием кнопки пароль вводится и продолжается загрузка системы. Когда система загружена то контроллер видит, что он работает в режиме системы и пароль не вводит. Как то можно инициализировать режим системы и boot? Спасибо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения