Easyelectronics.ru

Электроника для всех
Текущее время: 19 сен 2017, 16:47

Часовой пояс: UTC + 5 часов



    • JLCPCB for PCB Prototyping: 10 шт. 2-слоя 100*100mm 2$(около 140rub), изготовление за 24 часа.
    • Создание принципиальных схем и проектирование печатных плат
    • Крупнейший китайский онлайн магазин радиодеталей. Скидка 50%
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 13:37 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
Здравствуйте.
http://pixs.ru/showimage/2017070918_3868061_26887109.jpg

Нужно чтобы работала как клавиатура но чтобы при подключении к компьютеру небыло поиска драйверов.
Мне посоветовали удалить бутлоадер и запретить этот вызов Communication Device Class.
Вопрос в том: В что и где надо отредактировать в Arudino-IDE чтобы запретить вызов Communication Device Class.
Куплю информацию как это сделать.
Спасибо.


Последний раз редактировалось kurales 16 июл 2017, 18:43, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 14:11 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
Опять студент-лентяй?
Atmel Studio + LUFA, в примерах есть HID клава.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 18:36 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
BBS писал(а):
Опять студент-лентяй?
Atmel Studio + LUFA, в примерах есть HID клава.

Далеко не студент и не лентяй)
Как клава она работает, вопрос не в этом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 19:17 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
Теперь понятнее.

1) Удалите Arduino IDE
2) Установите Atmel studio (или аналогичную IDE, которая умеет работать с отладчиком)
3) Подключите отладчик через JTAG (или SPI), сотрите всю флешу (в т.ч. загрузчик) и зашейте вашу прошивку. Возможно, придётся поменять фьюзы, которые указывают на начальный адрес.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 19:31 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
BBS писал(а):
Теперь понятнее.

1) Удалите Arduino IDE
2) Установите Atmel studio (или аналогичную IDE, которая умеет работать с отладчиком)
3) Подключите отладчик через JTAG (или SPI), сотрите всю флешу (в т.ч. загрузчик) и зашейте вашу прошивку. Возможно, придётся поменять фьюзы, которые указывают на начальный адрес.


Стер прошивку и загрузчик, всё это делаю через avrdude, компилирую только в hex в arduino, фьюзы тоже поменяны на старт с программы 0x0000.
Этот контроллер как говорят создает два порта, один для бутлоадера, другой для программы, вот надо отключить порт программы так чтобы устройство не перестало эмулировать клавиатуру, что воткнул флеху и сразу печатать начала без установки дров.
Спасибо.
Atmel я бы установил но вроде его нет на линуксе, если только в вирт машину, только пока не пойму как это решит мой вопрос.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 20:07 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
kurales писал(а):
Этот контроллер как говорят создает два порта, один для бутлоадера, другой для программы, вот надо отключить порт программы так чтобы устройство не перестало эмулировать клавиатуру, что воткнул флеху и сразу печатать начала без установки дров.


Это всё делает загрузчик. У вас отдельный отладчик или программатор то есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 20:38 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
Если бы это был настоящий леонардо, то там да надо удалить бутлоадер и всё бы работало как надо, но тут не так.
Да программатор usbasp ну и ардуино уно еще есть.
Вот умный человек посоветовал:
В ардуинах на этом чипе ком порт создаётся дважды - в бутлоадере и в основной программе, причём во втором случае насильно, даже если вы не используете Serial. Зачем? -а эта штука обеспечивает программную перезагрузку ардуины, без неё пришлось бы давить на ресет. И вот теперь самое интересное -этот ком порт просто так не отключается, он прописан в дуриновский библиотеке, надо отключить его не отключив при этом возможность эмулировать клавиатуру.
Место, откуда вызывается Communication Device Class. Нужно запретить этот вызов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 21:47 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
Значит, откажитесь от Arduino и используйте Atmel studio. Как отключить вызов - я хз


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 22:44 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
BBS писал(а):
Значит, откажитесь от Arduino и используйте Atmel studio. Как отключить вызов - я хз

В atmel studio можно сделать так чтобы устройство при подключении Windows машине не требовало драйвера?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 16 июл 2017, 23:06 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
Да, в LUFA есть примеры HID клавиатуры и мыши, HID устройства используют встроенный драйвер ОС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 17 июл 2017, 19:40 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
BBS писал(а):
Да, в LUFA есть примеры HID клавиатуры и мыши, HID устройства используют встроенный драйвер ОС.

На XP атмел студио не идет, а семерка у меня на ноуте в вирт.машине не тянет, печально.
А как там это происходил? Подмена VendorID&ProductID устройства?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 17 июл 2017, 20:01 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 863
kurales писал(а):
На XP атмел студио не идет, а семерка у меня на ноуте в вирт.машине не тянет, печально.
А как там это происходил? Подмена VendorID&ProductID устройства?

Думаю, проблема в том, что устройство подключенное к USB сканируется только один раз. Для того, что бы отключить второе устройство надо поменять структуры, которые описывают USB устройства (отключить ненужное) и запустить сканирование снова. Для повторного запуска сканирования нужна специальная схема (подтягивает один из сигналов данных USB к +3.3В). Она может быть встроенной (если не ошибаюсь, у STM32 начиная с F4 такое есть) или внешней, управляемой от контроллера. В платах Maple/Maple Mini cхема сброса сделана как показано тут:
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 17 июл 2017, 20:27 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
kurales писал(а):
BBS писал(а):
Да, в LUFA есть примеры HID клавиатуры и мыши, HID устройства используют встроенный драйвер ОС.

На XP атмел студио не идет, а семерка у меня на ноуте в вирт.машине не тянет, печально.
А как там это происходил? Подмена VendorID&ProductID устройства?

Жаль ((
VID и PID могут быть почти любыми. В дескрипторе конфигурации устройства указывается тип устройства "HID Keyboard", и пишется HID дескриптор устройства (в примере всё это уже есть). После чего ОС использует свой HID драйвер для работы с устройством, не обращая внимания на VID и PID.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 18 июл 2017, 16:19 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
evsi писал(а):
kurales писал(а):
На XP атмел студио не идет, а семерка у меня на ноуте в вирт.машине не тянет, печально.
А как там это происходил? Подмена VendorID&ProductID устройства?

Думаю, проблема в том, что устройство подключенное к USB сканируется только один раз. Для того, что бы отключить второе устройство надо поменять структуры, которые описывают USB устройства (отключить ненужное) и запустить сканирование снова. Для повторного запуска сканирования нужна специальная схема (подтягивает один из сигналов данных USB к +3.3В). Она может быть встроенной (если не ошибаюсь, у STM32 начиная с F4 такое есть) или внешней, управляемой от контроллера. В платах Maple/Maple Mini cхема сброса сделана как показано тут:
Изображение

А можно по подробней или ссылку на статью, а то я не совсем понял что даст повторное сканирование?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 18 июл 2017, 16:21 
Только пришел

Зарегистрирован: 15 июл 2017, 23:37
Сообщения: 8
BBS писал(а):
kurales писал(а):
BBS писал(а):
Да, в LUFA есть примеры HID клавиатуры и мыши, HID устройства используют встроенный драйвер ОС.

На XP атмел студио не идет, а семерка у меня на ноуте в вирт.машине не тянет, печально.
А как там это происходил? Подмена VendorID&ProductID устройства?

Жаль ((
VID и PID могут быть почти любыми. В дескрипторе конфигурации устройства указывается тип устройства "HID Keyboard", и пишется HID дескриптор устройства (в примере всё это уже есть). После чего ОС использует свой HID драйвер для работы с устройством, не обращая внимания на VID и PID.

Тоесть если я использую нужные дескрипторы то при подключении будет мгновенный ввод данных с этого устройства или нужно всё равно время на определения устройства?
Можно сделать так чтобы подключил и сразу устройство начало печатать, без определеня устройства?Или время на определение устройства неизбежно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 18 июл 2017, 16:44 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 259
Откуда: Питер
При первом подключении, или при смене USB порта, ОС понадобится некоторое время (в зависимости от быстродействия машины) чтобы внести информацию о новом устройстве в реестр, и запустить нужный драйвер. При повторных подключениях к тому же USB порту, устройство будет запускаться почти мгновенно.
При запуске драйвера, хост отправляет USB устройству команду "назначить конфигурацию (Set cfg)", после чего USB девайс может считать себя рабочим, и начинать отправку данных хосту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Atmega32u4 клавиатура
СообщениеДобавлено: 18 июл 2017, 16:48 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 863
kurales писал(а):
А можно по подробней или ссылку на статью, а то я не совсем понял что даст повторное сканирование?

Готовой статьи не видел, но если вкратце, то ситуация такая: устройство подключается к компу, комп (точнее, операционка) запускает сканирование и читает какие логические устройства имеются в данном физическом устройстве. В начале ваше устройство, по идее, передает два дескриптора, один для работы загрузчика, а второе - HID. Если изменить описание логических устройств (например, исключить устройство для загрузчика), то ничего не изменится, поскольку операционка все еще думает, что устройств два. Для того, что бы это исправить, сначала меняем описание логических устройств, затем дергаем ногу, к которой подключена приведенная схема и это перезапускает процесс сканирования (как после подключения) и операционка опять вычитывает дескрипторы логических устройств. Поскольку описание уже изменено, то операционка подхватывает только то логическое устройство, которое осталось в описании. В вашем случае это будет HID-устройство.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB