У меня есть чип ATmega32U4, который можно подключить к печатной плате и подключить к ПК через USB. Когда это будет сделано, Windows 10 (если установлены соответствующие драйверы) распознает устройство как чип ATmega32U4.
Что отвечает в микросхеме за реакцию на разъем USB? Как это работает?
На микроконтроллере, таком как ATmeaga32u4, эти контакты USB подключены к небольшому количеству специального оборудования для обработки сигналов USB. Но это оборудование в значительной степени просто выполняет электронику, оно не контролирует, какие данные отправляются или принимаются. И данные должны быть отправлены и получены для идентификации устройства и перечисления. Если на чипе нет программного обеспечения, данные не отправляются, и чип вообще не будет пересчитывать. Windows, вероятно, сообщит, что «одно из USB-устройств, подключенных к этому компьютеру, неисправно», но может вообще его не обнаружить.
Но чипы обычно идут с завода с загрузчиком DFU на них (хотя есть и полностью пустые и по-разному запрограммированные чипы). Загрузчик DFU идентифицирует себя как устройство класса DFU, а также предоставляет ПК идентификатор поставщика (VID) и идентификатор продукта (PID). Затем ПК просматривает список драйверов, чтобы найти тот, который утверждает, что поддерживает этот VID и PID. Предположительно вы установили Atmel Flip, который включает в себя драйвер, и драйвер знает, что этот VID/PID означает ATmega32u4 с загрузчиком DFU. Таким образом, Windows загружает этот драйвер, и драйвер сообщает Windows, что это ATmega32u4.
Предположительно, вы хотите сделать что-то еще с чипом в долгосрочной перспективе. Поэтому вам нужно будет запрограммировать его с помощью собственного приложения. Вы не можете (и не хотели бы) запускать загрузчик и ваше приложение одновременно. Но можно оставить их обе на микросхеме, а переключать туда-сюда каким-то специальным кодом, настройками предохранителя или подтягиванием штырька к земле во время сброса. Это отлично подходит для разработки, потому что этот загрузчик можно использовать для загрузки новой копии вашего приложения. Это также удобно, если вы хотите позволить клиентам обновлять прошивку в будущем.
Но пока ваше приложение работает, загрузчика нет. Таким образом, загрузчик не может выполнить перечисление, не может передать VID/PID компьютеру и т. д. Вместо этого все это придется делать вашему приложению. И это сложно. Но хорошая новость заключается в том, что есть библиотеки, которые делают большую часть работы за вас. Самый распространенный называется LUFA . Вам также нужно будет купить/выбрать свой собственный VID/PID и написать драйвер для вашего устройства.
Итак, для микроконтроллеров вы должны написать прошивку, которая обрабатывает USB, и это включает реакцию на пакеты от хоста, которые запрашивают такие вещи, как идентификатор поставщика и продукта.
Итак, на вашем микроконтроллере работает программное обеспечение, которое взаимодействует с вашим ПК в соответствии со стандартом USB.
Скорее всего, да, это прошивка загрузчика, предварительно прошитая Atmel — причина в том, что вы просто можете собрать устройство, а затем быстро запрограммировать его. Очень удобно для производства!
Находится ли этот загрузчик в памяти, доступной для записи пользователем, и при каких обстоятельствах он запускается при запуске, очень многое зависит. В паспорте вашего устройства и руководствах пользователя будет подробная информация об этом. Найдите загрузчик, USB и, возможно, «DFU», профиль USB для загрузки прошивки.
барельеф
Джек Б.
Джек Кризи