Здравствуйте. Задавал вопрос в общей теме по программировании на С но думаю нужна отдельная тема. Проблема в следующем: есть устройство на PIC18F2550 подключаемое по USB и определяется как HID Keybord. К этому устройству подключена PS2 клавиатура и программный код реализовывает по сути переходник PS2-USB плюс дополнительный функционал. Возможна работа и без подключения к USB, т.е. автономно принимать команды от PS2 клавиатуры. Код написан в среде MikroCPRO for PIC с использованием стандартной библиотеки USB HID. Проблема заключается в том, что когда вытягиваешь USB разъем с порта то прекращается выполнение основной программы. И стандартная библиотека не имеет функции получения состояния модуля USB, чтобы при дисконекте перенаправить ветку на работу без USB. Находил на каком то иностранном форуме точно такую же проблему решили с помощью прерывания по USBIF но не выложили как это было достигнуто. Перелопатил регистры USB модуля и ничего не пришло в голову. PICами ранее не занимался и по этому прошу помощи у опытных разработчиков. Заранее спасибо за любую информацию.
У mikroc свой компилятор но я пробую перейти на MPLABX, изучаю его. Пытаюсь скомпилировать проект с usb, сыпет кучу ошибок. Спасибо за линк, буду разбираться и переносить проект на MPLABX.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Я полностью убрал цикл, оставил только 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? Спасибо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения