AVR121: Повышение разрешения АЦП с помощью оверсемплинга ч2
Когда АЦП делает выборки сигнала, он кодирует его дискретными шагами. Это вносит некоторую ошибку, известную как ошибка квантования. Использование нормального усреднения будет только сглаживать флуктуации сигнала, тогда как метод оверсемплинга и децимации будет увеличивать разрешение. Суть метода заключается в дискретизации сигнала с более высокой частотой и вычислении новой выборки сигнала на основе полученных дополнительных выборок. Требуемая частота дискретизации может быть найдена по формуле 3-1. Сложение дополнительных выборок и сдвиг результата вправо на n, будет давать результат с разрешением, увеличенным на n разрядов.
AVR121: Повышение разрешения АЦП с помощью оверсемплинга ч1
Учебный курс AVR. Использование загрузчика (bootloader`a)
Учебный курс AVR. Работа с SPI модулем. Управление сдвиговыми регистрами. Ч3
Учебный курс AVR. Работа с SPI модулем. Чтение и запись данных. Ч2
Теперь вы имеете общее представление о последовательном периферийном интерфейсе и можно перейти к рассмотрению SPI модуля.
SPI модуль микроконтроллера AVR atmega16 использует для своей работы 4 вывода - MOSI, MISO, SCK и SS. Когда модуль не задействован, эти выводы являются линиями портов ввода/вывода общего назначения. Когда модуль включен, режим работы этих выводов переопределяются.
Учебный курс AVR. Работа с SPI модулем. Ч1
Микроконтроллеры AVR имеют в своем составе модули, реализующие стандартные интерфейсы. Эти модули используются для обмена данными с различными периферийными устройствами, например, цифровыми датчиками, микросхемами памяти, ЦАП, АЦП, другими микроконтроллерами и так далее. В этой статье, на примере микроконтроллера atmega16, мы разберемся, как работать с модулем последовательного периферийного интерфейса или модулем SPI (serial peripheral interface).
Знакомство со сторожевыми таймерами
Майкл Барр
Сторожевые таймеры могут быть подходящим решением для встраиваемых систем, которые не могут постоянно находиться под присмотром человека.
Большинство встраиваемых систем должны полагаться на свои силы. Во-первых, если программное обеспечение зависло, не всегда существует возможность дождаться того, кто бы его перезапустил. Во-вторых, некоторые из устройств, например такие, как космические зонды, попросту не достижимы для людей-операторов. И, в-третьих, скорость, с которой оператор может перезагрузить систему, может быть слишком низкой, чтобы удовлетворить временным требованиям по приведению изделия в рабочее состояние.
Сторожевой таймер – это элемент оборудования, который может использоваться для автоматического обнаружения аномалий программного обеспечения и сброса процессора, если что-то произойдет. В общем случае, сторожевой таймер основан на счетчике, который ведет обратный отсчет от какого-либо начального значения до нуля. Встроенное программное обеспечение выбирает исходное значение счетчика и периодически перезапускает его. Если счетчик достигает нуля до того, как его перезапустят, то предполагается, что программное обеспечение неисправно и процессор перезапускается. Процессор и программа, которую он выполняет, перезапустятся точно так же, как если бы это сделал человек-оператор.
Программный UART для любого микроконтроллера. Модификация кода для AVR. Ч2
Программный UART для любого микроконтроллера. Ч1
Иногда возникает ситуация, когда аппаратных ресурсов микроконтроллера не хватает или требуемый ресурс в его составе отсутствует. Решить эту проблему можно двумя способами – заменить используемый микроконтроллер на другой или реализовать требуемый ресурс программно. Оба способа имеют свои достоинства и недостатки, однако второй вариант часто более предпочтительный, а иногда и единственно возможный. Например, как в случае с 1-Wire интерфейсом, который не поддерживается аппаратно ни в одном 8-ми разрядном микроконтроллере AVR.
1-Wire. Работа с DS18B20. Использование двух датчиков. Часть 4
Одно из преимуществ 1-Wire интерфейса заключается в том, что он позволяет организовать сеть из нескольких устройств. До сих пор мы не использовали эту возможность и рассматривали работу только с одним датчиком. Мы разобрались, как подключить Atmel`овскую библиотеку к проекту, как в DS18B20 запустить преобразование температуры, как считывать ее и выводить на дисплей. Настало время перейти к следующему этапу работы – коммуникация с несколькими датчиками на одной 1-Wire шине.