Pavel Bobkov

Суббота, 21 августа 2010 16:41

AVR программатор

   Чтобы “оживить” микроконтроллер AVR, в его flash память нужно записать прошивку. Это процедура выполняется с помощью программатора - устройства, подключаемого между компьютером и микроконтроллером и работающего под управлением специальной программы.
   Наиболее популярным способом программирования микроконтроллеров AVR является внутрисхемное программирование по SPI интерфейсу. Как понятно из названия, этот способ позволяет программировать микроконтроллеры AVR прямо в составе схемы. Это очень удобно, потому что программу микроконтроллера в этом случае можно всегда модифицировать, не вынимая (не выпаивая) его из платы.
   Для внутрисхемного программирования микроконтроллеров AVR нужно вывести на разъем линии SPI интерфейса  - SCK, MISO, MOSI, линию сброса – RESET, а также плюс и минус питания (VCC и GND).
   Существует две стандартных конфигурации разъема программирования – десяти и шести выводной. В качестве разъемов обычно используют — прямые/угловые разъемы серии IDC или   штыревые вилки PLD.

разъем для программирования AVR

    Решил немного разобраться с операционными системами реального времени (ОСРВ, RTOS). Не то чтобы в этом была какая-то острая нужда, это скорее спортивный интерес. Опыта использования подобных систем не имею, а значит, буду учиться вместе с вами.  
   О том, что такое ОСРВ, зачем она нужна и где используется,  я писать не буду. Есть несколько переведенных статей на эту тему, одну я уже выложил, остальные ждут своего часа.
   Операционных систем для 8-ми разрядных микроконтроллеров существует довольно много, но, проведя маркетинговое исследование, я остановил свой выбор на scmRTOS. Это многозадачная вытесняющая ОСРВ, разработанная для микроконтроллеров с маленьким объемом ОЗУ. Она бесплатная, к ней есть документация на русском языке, а также порты под разные типы микроконтроллеров и компиляторов. Написана она на Си++ и частично на ассемблере, надеюсь, это вас не пугает.

ПРАВИЛО #1 – ФИГУРНЫЕ СКОБКИ

   Блок программы, идущий после ключевых слов  if, else, switch, while, do и for следует всегда окружать фигурными скобками ({}), даже если он содержит только одиночные или пустые операторы.

// Не следует так делать…
if (timer.done)
   // Одиночному оператору нужны скобки!       
   timer.control = TIMER_RESTART;

// А вот так правильно ...
while (!timer.done)
{
   // Даже пустой оператор должен быть окружён скобками.
}

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


   Операционная система реального времени (ОСРВ, RTOS - real-time operating system), иногда называемая многозадачным ядром реального времени, является компонентом программного обеспечения, который гарантирует эффективную обработку строго ограниченных по времени событий и позволяет разбивать приложение на множество независимых элементов, называемых задачами.
Найджел Джонс
Использование ключевого слова volatile в Си, как правило, плохо понимается программистами. Это не удивительно, так как большинство руководств по Си уделяют этому вопросу одно - два предложения. Эта статья научит вас, как использовать его правильно.

Сталкивались ли вы во время работы с Си или Си++ кодом со следующими ситуациями?

- код, который прекрасно работает, пока вы не включите оптимизацию
- код, который прекрасно работает, пока запрещены прерывания
- задачи ОСРВ, которые превосходно работают в изоляции, пока не создана какая-нибудь  другая задача
Понедельник, 10 мая 2010 21:00

Вольтметр на микроконтроллере

   В качестве дополнения к статье по управлению семисегментным индикатором написал программу цифрового вольтметра  на микроконтроллере. Он измеряет постоянное напряжение в диапазоне от 0 до 30 В с разрешением 30мВ и точностью ~0,2В. Все нижеизложенное - пояснение к проекту.

   

   Для отображения цифровой информации в системах на базе микроконтроллеров  используются светодиодные семисегментные индикаторы. Они просты в управлении, имеет высокую яркость, широкий диапазон рабочих температур и низкую стоимость. К недостатком светодиодных индикаторов относятся – скудные возможности по выводу буквенной информации, высокое энергопотребление и отсутствие управляющего контроллера.
  Светодиодный семисегментный индикатор представляет собой группу светодиодов   расположенных в определенном порядке и объединенных конструктивно. Зажигая одновременно несколько светодиодов можно формировать на индикаторе символы цифр.
Воскресенье, 11 апреля 2010 20:15

Типы памяти встраиваемых систем

Майкл Барр
SRAM или DRAM? EEPROM или Flash? Какие типы памяти вы будете использовать в проекте вашей следующей встраиваемой системы?

   В современных компьютерных системах есть возможность использовать многие типы запоминающих устройств. Как разработчик встроенного ПО, вы должны быть осведомлены об их различиях и понимать, как использовать каждый тип наиболее продуктивно. В нашей беседе мы подойдем к этим устройствам с точки зрения разработчика ПО. Имейте в виду, что разработка этих устройств заняла несколько десятилетий и их базовое оборудование существенно различается. Названия типов памяти зачастую отражают первоначальные свойства процесса разработки и часто скорее запутывают, нежели помогают понять суть. Рисунок 1 классифицирует накопительные устройства, которые мы будем обсуждать как ОЗУ, ПЗУ, или их гибрид. 
Воскресенье, 04 апреля 2010 21:59

Eagle Cad. Создание электрической схемы

  Раньше все свои поделки я делал на макетных платах. Но со временем меня стала утомлять процедура заделывания большого количества проводов и я решил перейти на ЛУТ технологию. Встал вопрос - а в чем разводить платы? P-CAD я как-то всегда не долюбливал, Sprint-Layout - меня не устраивал потому что в нем нельзя рисовать схемы, а Proteus`oм я просто тогда еще не пользовался... После некоторых поисков по сети я наткнулся на программу Eagle немецкой фирмы CadSoft и понял, что это то, что мне нужно. Программа имеет простой (правда несколько непривычный) интерфейс, позволяет рисовать схемы, разводить многослойные  печатные платы, создавать файлы для производства, имеет большое количество готовых библиотек, а также позволят рисовать и добавлять в них свои компоненты.
   Эта статья представляет собой пошаговое руководство по созданию электрической схемы в программе Eagle. На примере создания простой отладочной платы для микроконтроллера ATmega8 вы научитесь создавать проект, добавлять на схему компоненты, выполнять с ними базовые операции, соединять компоненты между собой, рисовать шины, наносить номиналы компонентов и еще много чего интересного...

подключение джампера к микроконтроллеру
 
   В некоторых устройствах на микроконтроллерах для задания настроек  используются джамперы/переключатели. Обычно они подключены аналогично кнопке и имеют два возможных состояния – HIGH и LOW. Если джампера нет, вывод микроконтроллера с помощью встроенного  резистора  “подтянут к плюсу питания”. Когда джампер подключен, вывод микроконтроллера замкнут на землю.

   Максимальное число различных установок, которые мы можем получить в этом случае = 2 в степени N, где N – число задействованных выводов. Существует ли простой способ увеличить число возможных комбинаций, не используя для этого дополнительные выводы микроконтроллера? Оказывается да!
Страница 6 из 10