Программирование микроконтроллеров AVR

Admin 01.04.2014

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»


Программирование микроконтроллеров AVR для начинающих

Микроконтроллер – микросхема, предназначенная для управления электронными устройствами, или по другому – простенький компьютер (микро-ЭВМ), способный выполнять несложные задачи.

Микроконтроллеры AVR: устройство и программирование
Рано или поздно, любой радиолюбитель (я так думаю), приходит к мысли о применении в своих разработках микроконтроллеров. Микроконтроллер позволяет существенно «облегчить» радиолюбительскую конструкцию, сделать ее проще и намного функциональнее.
Что нужно для того, чтобы начать пользоваться всеми возможностями микроконтроллеров?
Я считаю, что не так уж и много. Главное в этом деле — желание. Будет желание, будет и результат.

 В этом разделе (и в разделе «Устройство AVR») сайта я постараюсь помочь начинающим «микроконтроллерщикам» сделать первый, он же самый трудный шаг навстречу микроконтроллерам — попробуем разобраться в устройстве и программировании микроконтроллеров AVR семейства ATtiny и ATmega.
В сети существует множество сайтов затрагивающих так или иначе «микроконтроллерную» тематику, много также и различной литературы для начинающих. Поэтому я не собираюсь «переплюнуть» всех и вся и создать очередной шедевр мыслительных мук в виде пособия по микроконтроллерам для начинающих. Я постараюсь систематизировать, собрать в кучу  все нужное  на мой взгляд, для первого шага в мир микроконтроллеров, и изложить более-менее доступным языком.

В своих статьях я буду опираться на материалы из публикаций популярных авторов микроконтроллерной тематики: Рюмика С.М., Белова А.В., Ревича Ю.В., Евстифеева А.В., Гребнева В.В., Мортона Д., Трамперта В., Фрунзе А.В. и Фрунзе А.А. (и многих других), а также материалы радиолюбительских сайтов. Ну и, может быть, немного своих «умных мыслей».


Программирование микроконтроллеров AVR фирмы Atmel

ВВЕДЕНИЕ

1. Микроконтроллеры — первый шаг
2. Системы счисления: десятичная, двоичная и шестнадцатиричная
3. Логические операции, логические выражения, логические элементы
4. Битовые операции
5. Прямой, обратный и дополнительный коды двоичного числа
6. USBASP программатор для микроконтроллеров AVR — идеальное решение для начинающих, и не только
7. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

Программирование микроконтроллеров

1. Основы программирования микроконтроллеров AVR
2. Русификация программы Atmel Studio


(15 голосов, оценка: 4,67 из 5)
Загрузка...
Микроконтроллеры AVR: программирование и применение микроконтроллеров ATmega и ATtiny для начинающих
Published by: Мир микроконтроллеров
Date Published: 04/01/2015

Комментарии

Программирование микроконтроллеров AVR — 21 комментарий

  1. Добрый день!
    Я начинающий.Помогите пожалуйста с написанием программы: на выходе МК нужно получить2 фиксированные частоты-4,5кГц и 6кГц. посоветуйте, какой МК применить?
    нашел в нете ГПИ но там фиксированные частоты с перебором.
    И если можно список литературы.

    • Здравствуйте Денис!
      До конца недели отвечу а может и готовую программу предложу.
      С уважением, Admin.

  2. Здравствуйте!
    Смотрю я на ваш сайт…
    Вообще контроллеры наверно на ассемблере программируются или я не прав?
    Если какие интересные задачи именно по программированию есть поделитесь.
    Вячеслав

    • Посмотрел файл Termostat.hex
      В схеме указано что контроллер 16 бит, тогда 16-ти битный отладчик исполнимых
      файлов должен видеть его внутри. Судя по увиденному там только какие-то данные
      или попросту мусор, нормальных исполнимых кодов там и близко нет, увы…
      Спасибо за внимание, Вячеслав

      • Здравствуйте Вячеслав!
        Извините, но своевременно ответить на вопросы не мог.
        1. Контроллеры программируются не только на Ассемблере, есть и другие языки программирования.
        2. В схеме не указано, что МК 16-битный (16-разрядный), используется восьмиразрядный МК ATMEGA8.
        3. Я не знаю чем Вы пользовались при изучении файла Termostat.hex и почему сделаны такие выводы ( мусор и ненормальные исполняемые коды), но Вы ошибаетесь.

        С уважением, Admin.

        • 1. Любой язык в итоге сведётся к ассемблеру, ибо это машинные кода.
          2. 8-разрядный контроллер программируется только на ассемблере, никаких
          других языков там нет. Нет совместимости между 8 и 16 разрядными контроллерами,
          ибо регистры по 8 и 16 бит попросту не совпадают по длине. По этой причине у Вас
          не заработает 16-ти битный С на 8-ми битном контроллере.
          3. Hex формат исполнимый, попробуйте его открыть «блокнотом».
          Исполнимые файлы (16 бит) изучают программой Debug под DOS

          • Здравствуйте Вячеслав!
            К сожалению ни в одном из трех пунктов Вы не правы.
            Я так понимаю, что Вы начинающий микроконтроллерщик.
            1. Любой язык, а Ассемблер — это язык программирования, посредством транслятора переводится в машинный код, который затем записывается в МК.
            2. Зачем Вы упоминаете здесь 16-разрядные МК? О них на сайте нет вообще ни одного слова.
            3. НЕХ формат — это не исполняемый файл, а файл содержащий машинные коды, которые записываются в МК.
            Debug.exe к микроконтроллерам никакого отношения не имеет.
            Данная программа является консольным приложением и предназначена для создания или изменения кода файлов. С помощью неё можно создавать простые приложение под MS-DOS и отслеживать их работу. Т.е. эта программа предназначена для ПК.
            Могу Вам посоветовать прочитать первую статью на сайте в разделе «Программирование AVR», в сети можно найти множество книг по микроконтроллерам. Рекомендую зайти на сайт Ю.В. Ревича, скачать и прочитать его книгу «Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера»

            С уважением, Admin.

  3. Добрый день!Подскажите пожалуйста начинающему.В схеме мк должен работать от внешнего кварца 10 мгц. Вопрос:если мк новый то прошивать его надо с кварцем 10 мгц или без кварца?Спасибо!

    • Прошивать МК можно и с кварцем и без. С завода МК РАБОТАЕТ от внутреннего кварца, даже если внешний подключен — он не используется, но после прошивки фьюзов без внешнего кварца МК не сможет тактироваться. Т.е. до прошивки фьюзов он работает от внутреннего кварца и спокойно прошьется без внешнего, а после изменения фьюзов без внешнего кварца работать не сможет.

      • У микроконтроллеров нет внутреннего кварца, не вводите людей в заблуждение. Там всего лишь генератор на R-C элементах. Хотя, если нет особых требований к высокой точности, можно использовать устройство и на этом генераторе, без кварца.

  4. Здравствуйте АДМИН.Вопрос такого порядка.При инкубации яиц предельно допустимая температура 38 градусов. Но в конце процеса происходит биологический не контролируемый само нагрев яиц.Исходя с этого нужен термостат который бы включал вентилятор при заданой от большей к меньшей температуре.К примеру 37.8 вкл. 38.2 выкл. Может быть у ВАС в зеначках есть така прошивк. Был бы очень благодарен.С уважением анатолий.

    • Здравствуйте Анатолий!
      Такой прошивки нет. Можно было-бы использовать конструкцию «двухканального термостата» но там шаг установки температуры 1 градус, можно установить включение вентилятора при 38 градусах, а выключение при 37 градусах.
      С уважением, Admin.

  5. Добрый день, уважаемый Аdmin!

    Прошу Вас помочь мне разобраться с программированием микроконтроллера ATmega168PA-PU.
    Мне нужно было загрузить во ФЛЭШ-память микроконтроллера программу и запрограммировать фьюзы,
    при условии работы микроконтроллера от внешнего кварцевого генератора 16мГЦ + 2 конденсатора по 18пФ каждый (т.е. стандартное подключение). Эту задачу я пытался решить в два этапа:
    1. загрузить программу во ФЛЭШ-память;
    2. запрограммировать фьюзы в соответствии с таблицей описания по даташит.

    После программирования фьюзов МК «умер», т.е. превратился в «кирпич».
    При попытке перезагрузки программа Khazama выдает сообщение:
    AVR device initialized and ready to accept instractions:
    Device signature = 0x000000
    Yikes! Invalid device signature.
    Expected signature for ATMEGA168 is 1E 94 06.
    done.
    Подскажите, пожалуйста, что это за проблема такая выросла на ровном месте.
    Получается что теперь мой МК нужно лечить.
    Что могло произойти с электронной подписью устройства при программирования фьюзов???
    Заранее Вам благодарен!
    С уважением, Валерий.

    • Здравствуйте Владимир!
      Каждый микроконтроллер имеет специальные ячейки памяти в которых на заводе прописывается его сигнатура (конфигурация) — код микроконтроллера по которому определяется его тип и марка. Судя по записи — программа не может считать эти данные, и не может определить какой перед ней МК.
      1. Проверьте правильность подключения МК к программатору, надежность и правильность установки конденсаторов и кварца, наличие питания и его величину — 5 Вольт. Вспомните и проверьте что вы устанавливали во фьюзах (пришлите картинку с установленными фъюзами на почтовый адрес сайта). Попробуйте запустить МК, попробуйте использовать другую программу.
      2. Если ничего не получилось, то скорее всего «убитой» оказалась его сигнатура. Это плохо, но не смертельно. Такое чаще всего случается из-за неправильной установки МК в панельку (обычно ошибаются на 180 градусов). Попробуйте использовать для программирования МК программу в которой можно отключать проверку сигнатуры, или найти в программе файл в котором идут описания всех МК поменяйте сигнатуру для вашего МК временно на нули (у вас код 1E 94 06).
      С уважением, Admin.

  6. 3дравствуйте Admin. Програматор sinaProg схема Громова, не считал (loаd) Lock. Lov. Hing. Биты нажал запис (write). Мега8 отключился. Вроде была 3c,d9,e1. Менял резонаторы. Собрал генератор мк не откликает. Если отрубил resеt откликат нужен. Еще Lock в. Lb1 и la2=0. Установлен защита от счинание, копироват неполучается , что нужен

  7. Здравствуйте Админ. Нужние литературы нашел. Програмирование начил. Первий неудачно получился прошивал атмега 8л раза 3 .бити 3f, d9, e1, а ехтр 00 по ошибке нажал chip erase мк отключился востановит можно или нет. Просба жду вашем сайте прог авр

    • Здравствуйте Бахрон!
      К сожалению, я не совсем понял Ваш вопрос.
      В какой программе Вы программируете?
      Какой программатор используете?
      С уважением, Admin.

  8. Здравствуйте Админ. К вам еще вопрос. Дело в том електро печь 2кан. Собран на атмега8л пу достижением 195 гр выход 27и28 отк. Порт с6ис7. данний времья не отк. Нашли рабочий хотели скопировать у всех радиомастеров есть. скопировать не удалос уст.защита казалос все копировшики. На изготавитель h програм просили. только купит предложили. Тепер начил сам интересовать скачаль popuprog собераю схему порт lpt радио 2004г 2ном. Для начало после схему 2009г 11н. начинанат с начало

  9. Зравствуйте Админ. Я Бахрон из г.Бухара Уз. Среди других сайтов ваш более понятно. Електроникой занимаюс давно. Рисую диаграмму счетчик адресов. в выборном адресе сниму сигнал 0 или 1 с логических элементов собераю. Двоични и шестнад. Понятно но мк язык асемб и других ноль. Нужно програмирование мк. атмега8 на каком языке научиться. Где в каком сайте найти для изучение програмирование начинающим. Поможите пожалуйста

    • Здравствуйте Бахрон!
      Постараюсь подобрать для Вас соответствующую литературу и ссылки на сайты.
      С уважением, Admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *