Как читать техническое описание на микроконтроллер: изучение аппаратного обеспечения
В данной статье приводятся некоторые советы по эффективному использованию разделов о периферийных устройствах в техническом описании вашего микроконтроллера (или справочного руководства, или руководства пользователя).
В предыдущей статье я указал на некоторые трудности, связанные с документацией по микроконтроллерам, а затем обсудил первые три шага в рекомендованной мной процедуре, позволяющей избежать выгорания при чтении технического описания. Эти первые три шага относятся к документации на микроконтроллеры в целом, а в этой статье мы сосредоточимся на информации, связанной с периферийными устройствами.
Шаг 4: игнорирование периферийных устройств, которые вам не нужны
Периферийные модули внутри микроконтроллера в значительной степени независимы друг от друга. Убедитесь, что вы понимаете этот момент, потому что это важная концепция в контексте проектирования систем на базе микроконтроллеров. Следующая диаграмма подчеркивает этот момент.
Элементы процессора тесно взаимосвязаны, но периферийные устройства изображены в виде отдельных блоков, которые имеют независимое соединение с процессором. Это точно отражает реальную работу микроконтроллера: если данное периферийное устройство не требуется, оно переводится в неактивное состояние и может игнорироваться.
Однако в микроконтроллерах не предусмотрено предотвращение взаимодействия между отдельными периферийными модулями, поскольку в некоторых случаях это взаимодействие желательно. И именно поэтому я сказал, что периферийные модули «в значительной степени независимы». Например, периодический сигнал, генерируемый модулем таймера, может использоваться для установления скорости передачи для модуля UART или для запуска преобразований, выполняемых модулем АЦП.
Тем не менее, общий принцип является обоснованным: неиспользуемые периферийные устройства не влияют на общую функциональность устройства, и, следовательно, вам не нужно читать разделы технического описания, которые объясняют все детали этих неиспользуемых периферийных устройств. Один только этот шаг может устранить большую часть нагрузки документации, потому что многим приложениям требуется только небольшая часть обширных функциональных возможностей периферийных устройств, предоставляемых современными микроконтроллерами.
Шаг 5: изучите конфигурационное программное обеспечение
Настойка оборудования может быть одним из самых требовательных и утомительных аспектов разработки на микроконтроллерах. Выполнение обширной настройки периферийных модулей на уровне регистров требует внимания к деталям, тщательного изучения технического описания и множества неудобных операций с битами.
К счастью, люди поняли, что это нецелесообразное использование времени инженера, и производители решили создать программные средства, которые значительно упростят задачу настройки оборудования. Например, Microchip предоставляет MPLAB Code Configurator, который позволяет разработчику создавать код конфигурации периферийных устройств с использованием графического интерфейса. Приложение Config2 от Silicon Labs (см. скриншот ниже) делает то же самое.
Если вы подойдете к техническому описанию с предположением, что вам потребуется вручную настроить всё аппаратное обеспечение микроконтроллера, вы можете обнаружить, что растущее чувство отчаяния не даст вам сосредоточиться. Поверьте, инструменты конфигурации оборудования могут значительно сократить количество материала технического описания, которое вам нужно поглотить.
Трудность здесь заключается в выявлении ненужной информации. К сожалению, я никогда не сталкивался с техническим описанием, в котором есть раздел, озаглавленный «Вещи, которые вам действительно необходимо знать, если вы планируете использовать инструмент конфигурирования». Я рекомендую вам ознакомиться с документацией к программному обеспечению для конфигурирования, прежде чем погрузиться в техническое описание. И когда вы читаете раздел, посвященный конкретному периферийному устройству, игнорируйте подробности, относящиеся к конфигурации, пока не приобретете некоторый опыт работы с программным обеспечением.
Суть в том, что вы не должны тратить своё время на подробные описания, которые уже включены в бесплатное, удобное для пользователя программное обеспечение.
Шаг 6: изучите API для вашего микроконтроллера
У инструментов аппаратной настройки есть главное ограничение: они не могут использоваться во время выполнения программы. Конфигурационное программное обеспечение – это то, что вы используете для создания кода; он не может изменять работу микроконтроллера в режиме реального времени.
К счастью, большая часть необходимой аппаратной конфигурации обычно выполняется только один раз, а именно во время выполнения начальной последовательности инструкций, которые выполняются после перезагрузки. Но бывают моменты, когда вы хотите внести точные изменения во время выполнения программы, возможно, в ответ на внешнее событие. Здесь вступает в игру программный интерфейс приложения (API).
«API» может быть не самой лучшей терминологией, но я не знаю других терминов или сокращений, которые здесь более подходят. Я имею в виду коллекцию программных «сокращений», предоставляемых производителем. Atmel называет это Advanced Software Framework, а Silicon Labs, похоже, использует для этого термин Software Development Kit (SDK). В любом случае, название гораздо менее важно, чем содержимое – т.е. библиотечные функции, примеры кода, макросы, определения препроцессора и все остальное, что помогает программисту напрямую взаимодействовать с оборудованием устройства, не становясь экспертом в сложных настройках конфигурации.
Я думаю, что важно знать аппаратное обеспечение вашего микроконтроллера, и не рекомендую полностью полагаться на библиотечные функции, упакованные драйверы, примеры кода и графические инструменты конфигурации. По-моему, это является источником проблем и уменьшает преимущества использования устройства, обеспечивающего эффективный прямой доступ к низкоуровневому оборудованию.
Таким образом, цель состоит в том, чтобы найти правильный баланс. Вам необходимо изучить аппаратное обеспечение вашего микроконтроллера и понять различные аспекты его внутренней работы, но при этом вы не хотите тратить время на изобретение колеса, когда дело доходит до очень специфических деталей. Техническое описание вашего устройства, вероятно, содержит много информации, которая уже была включена в API, и большая часть этой информации может быть пропущена или даже проигнорирована.
Заключение
Хотя данная статья озаглавлена «Как читать техническое описание на микроконтроллер», возможно, более подходящим названием будет «Как не читать техническое описание на микроконтроллер». Фактически, перегрузка документацией – серьезная проблема современных микроконтроллеров, и для быстрого усвоения важной информации необходимо научиться избегать ненужной информации.