Микроконтроллеры AVR имеют в своем составе модули, реализующие стандартные интерфейсы. Эти модули используются для обмена данными с различными периферийными устройствами, например, цифровыми датчиками, микросхемами памяти, ЦАП, АЦП, другими микроконтроллерами и так далее. В этой статье, на примере микроконтроллера atmega16, мы разберемся, как работать с модулем последовательного периферийного интерфейса или модулем SPI (serial peripheral interface).


   Нашел в сети сайт, позволяющий создавать трехмерное изображение печатной платы по гербер файлам. Пользоваться сервисом очень легко. Переходим в браузере по ссылке внизу. Открываем папку со своими гербер файлами, выделяем их, перетаскиваем в браузер. На следующей странице вам будет предложено выбрать к какому слою относится каждый файл. Герберы сгенерированные из Eagle по дефолту будут правильно соотнесены со слоями (у меня по крайней мере так). Жмем Done и ожидаем окончания рендеринга. 

 Событийная система на таблице очень удобная вещь для организации микроконтроллерных программ. На ее основе можно построить всю программу микроконтроллера или какую-то ее отдельную часть, например, меню пользователя. В этой статье мы рассмотрим несколько модификаций старого варианта событийной системы, которые расширяют ее функциональность.   

Майкл Барр

   Сторожевые таймеры могут быть подходящим решением для встраиваемых систем, которые не могут постоянно находиться под присмотром человека.

   Большинство встраиваемых систем должны полагаться на свои силы. Во-первых, если программное обеспечение зависло, не всегда существует возможность дождаться того, кто бы его перезапустил. Во-вторых, некоторые из устройств, например такие, как космические зонды, попросту не достижимы для людей-операторов. И, в-третьих, скорость, с которой оператор может перезагрузить систему, может быть слишком низкой, чтобы удовлетворить временным требованиям по приведению изделия в рабочее состояние.

   Сторожевой таймер – это элемент оборудования, который может использоваться для автоматического обнаружения аномалий программного обеспечения и сброса процессора, если что-то произойдет. В общем случае, сторожевой таймер основан на счетчике, который ведет обратный отсчет от какого-либо начального значения до нуля. Встроенное программное обеспечение выбирает исходное значение счетчика и периодически перезапускает его. Если счетчик достигает нуля до того, как его перезапустят, то предполагается, что программное обеспечение неисправно и процессор перезапускается. Процессор и программа, которую он выполняет, перезапустятся точно так же, как если бы это сделал человек-оператор. 

  Перейдем к модификации описанного программного UART`a под конкретный камушек. Поскольку пишу я в основном про 8-ми разрядные AVR, то эти контроллеры и будем рассматривать. 
   Во всех микроконтроллерах семейства mega есть аппаратный модуль UART, а вот в микроконтроллерах семейства tiny нет. По идее программный UART может потребоваться именно для младшего семейства, но не исключаю возможность использования этого кода и в mega`ах. Пути эмбеддера неисповедимы.       
   Проекты написаны в двух вариантах – для ATTiny45 и для ATmega16. Впрочем, отличия там очень незначительные и касаются только инициализации и прерывания задействованного таймера. 
Страница 17 из 37