Главная » Статьи » Полезная информация |
В категории материалов: 18 | Страницы: « 1 2 |
У микроконтроллеров AVR есть такая полезная фишка как умение работать с Bootloader'ом, благодаря которому перепрошить микроконтроллер можно по стандартному UART интерфейсу, без использования программатора (но чтобы прошить bootloader программатор все же потребуется). Bootloader загружается в специальную область флэш памяти и срабатывает тогда когда микроконтроллер только начинает работать (при подаче питания или после сброса). Если, пока активен bootloader, в буфер UART попадет байт инициализации, загрузчик активизируется и начинает записывать получаемые данные в память микроконтроллера, а по завершению записи запустит только что записанную программу.
Существует большое количество готовых загрузчиков, та же популярная сейчас Arduino имеет встроенный Bootloader, благодаря которому происходит быстрая загрузка скетчей в память МК.
Bascom-AVR, тоже не отстает от конкурентов :) и для этого имеется уже готовые Bootloader'ы для большинства микроконтроллеров серии Mega.
Сейчас как раз и рассмотрим bootloader для Bascom-AVR и попробуем с помощью него прошить микроконтроллер. А в качестве согласующего звена используется преобразователь USB-UART на микросхеме FT232RL.
|
Теперь настало самое интересное в работе с модулем SIM900D - общение. Здесь будут описаны самые основные команды, которые могут пригодится для его использоваия по назначению. |
Интерфейс SPI, пожалуй, самый распространенный интерфейс коммуникации между микроконтроллерами и периферией. Он широко распространился за счет универсальности, простоты реализации и высокой скорости передачи данных по шине. В каждом микроконтроллере AVR имеется поддержка интерфейса SPI, более того – эта шина используется для внутрисхемной прошивки микроконтроллера (тот самый ISP). Поэтому пришло время подобраться к этому интерфейсу поближе и разобраться с принципом работы в Bascom-AVR. |
Все чаще приходиться сталкиваться с необходимостью подключения микросхем с питающим напряжением до 3,3 вольт. Так как в своих экспериментах я использую питание от usb порта, то возникает вопрос о согласовании уровней между контроллером с напряжением питания 5 вольт и 3-х вольтовой периферией. Поэтому для удобства решил собрать модуль согласования уровней.
|
При питании устройств от автономных источников питания – батареек, аккумуляторов (и яблок с воткнутыми электродами ;) ) приходиться заботиться о снижении энергопотребления, с целью увеличения срока службы без замены элементов питания. Само по себе энергопотребление зависит от многих факторов: от типа используемого микроконтроллера, напряжения питания, выбранной частоты работы, от сконфигурированной периферии и даже от температуры окружающей среды. Для управления энергопитанием все микроконтроллеры AVR имеют несколько режимов работы, позволяющие существенно снизить собственное энергопотребление – это режим сна (Sleep mode) и остановка (Power-down) |
Барграф это такая линейная шкала, размер которой соответствует значению какого-либо настраиваемого параметра. Еще одна разновиднотсь барграфа с ползунком - положение ползунка меняется в зависимости от значения переменной в пределах 0-100%, это мы наблюдаем, к примеру, каждый раз изменяя настройки громкости в плеере. Использование барграфов в меню упрощает визуальную настройку - мы сразу можем определить значение настраиваемого параметра. Да и выглядит приятней и по взрослому. Сверху приведен пример того как это может выглядеть. В статье опишу метод создания барграфов для знакосинтезирующих дисплеев 16х2 с контроллером HD44780. |
В процессе написания программы часто необходимо проверить правильность работы алгоритма – глянуть на состояние регистров, узнать значение переменных или состояние портов вывода. Хотя сам для этих целей и использую Proteus, бывало такое, что его нет под рукой. И поэтому выручает симулятор, который включен в Bascom-AVR.
В качестве примера для симуляции взял программу с модуля дистанционного управления, описанного в прошлой статье. По алгоритму программа должна обрабатывать нажатие кнопки, висящей на прерывании INT1. При нажатии на кнопку изменяется (увеличивается) значение переменной Flag, значение которое может принимать эта переменная от 1 до 7, при достижении значения 8 переменная обнуляется. Пока переменная больше 0, на выводе PortD.4 находится высокий уровень напряжения (логическая единица).
Также по задумке, при значении переменной Flag больше 0, на одном из выходов PortB будет единичка. При каждом нажатии кнопки и увеличении переменной, эта единичка должна сдвигаться вправо – то есть при значении Flag=1 единица будет на PortB.7, при Flag=2 единица будет на PortB.6 и так далее пока нажимая кнопку мы не достигнем значения Flag=8; а как писал выше, достигнув этого значения, переменная обнуляется и состояние выходов PortD.4 и PortB сбрасываются в ноль. При последующих нажатия кнопки все повторяется. Для понятия алгоритма можно посмотреть видео со статьи озвученной выше.
Итак, алгоритм есть, код написан и теперь необходимо проверить соответствие кода алгоритму - переходим к симуляции внутренними средствами Bascom-AVR.
|
Программирование фьюз-битов отдельная головная боль у тех, кто осваивает программирование микроконтроллеров. Решил выложить скриншоты установленных в PonyRrog 2000 фьюзов. Наверняка кому-нибудь пригодится, ибо сам поначалу путался и убил пару камней.
Просмотров: 66372 |
Опубликовано: 04.02.2011
|
Проекты [46] |
Как подключить [32] |
Инструменты [3] |
Полезная информация [18] |
Объявления [3] |