Микроконтроллеры (далее мы их просто будем называть МК) завоевывают все большую популярность у радиолюбителей. С их помощью можно собрать практически все что угодно- индикаторы, вольтметры, приборы для дома (устройства защиты, коммутации, термометры…), металлоискатели, разные игрушки, роботы и т.д. перечислять можно очень долго.
В этих статьях мы постараемся изучить микроконтроллеры AVR фирмы ATMEL, научимся работать с ними, рассмотрим программы для прошивки, изготовим простой и надежный программатор, рассмотрим процесс прошивки и самое главное проблемы, которые могут возникнуть( и не только у новичков).
Основные параметры микроконтроллеров семейства AVR
Дополнительные параметры МК AVR mega:
Рабочая температура: -55…+125*С
Температура хранения: -65…+150*С
Напряжение на выводе RESET относительно GND: max 13В
Максимальное напряжение питания: 6.0В
Максимальный ток линии ввода/вывода: 40мА
Максимальный ток по линии питания VCC и GND: 200мА
Как быстро научиться программировать микроконтроллеры PIC и AVR / ШИМ для LED ленты с объяснением!
Цоколевка выводов моделей ATmega 8X
Цоколевка выводов моделей ATmega48x, 88x, 168x
Цоколевка выводов ATmega8515x
Расположение выводов у моделей 
Цоколевка выводов у моделей ATmega16, 32x
Расположение выводов у моделей ATtiny2313
В конце статьи, во вложении, есть даташиты на некоторые микроконтроллеры
Установочные FUSE биты MK AVR
Запомните, запрограммированный фьюз – это 0, не запрограммированный – 1. Осторожно стоит относиться к выставлению фьюзов, ошибочно запрограммированный фьюз может заблокировать микроконтроллер. Если вы не уверены какой именно фьюз нужно запрограммировать, лучше на первый раз прошейте МК без фьюзов.
Самыми популярными микроконтроллерами у радиолюбителей являются ATmega8, затем идут ATmega48, 16, 32, ATtiny2313 и другие. Микроконтроллеры продаются в TQFP корпусах и DIP, новичкам рекомендую покупать в DIP. Если купите TQFP, будет проблематичнее их прошить, придется купить или изготовить переходник и паять плату т.к. у них ножки располагаются очень близко друг от друга. Советую микроконтроллеры в DIP корпусах, ставить на специальные панельки (сокеты), это удобно и практично, не придется выпаивать МК если приспичит перепрошить, или использовать его для другой конструкции.
Как просто научиться программировать микроконтроллеры PIC и AVR / Бегущие огни за 8 минут!
Почти все современные МК имеют возможность внутрисхемного программирования ISP, т.е. если ваш микроконтроллер запаян на плату, то для того чтобы сменить прошивку нам не придется выпаивать его с платы.
Для программирования используется 6 выводов:
RESET — Вход МК
VCC — Плюс питания, 3-5В, зависит от МК
GND — Общий провод, минус питания.
MOSI — Вход МК (информационный сигнал в МК)
MISO — Выход МК (информационный сигнал из МК)
SCK — Вход МК (тактовый сигнал в МК)
Иногда еще используют вывода XTAL 1 и XTAL2, на эти вывода цепляется кварц, если МК будет работать от внешнего генератора, в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. При соединении микроконтроллера с программатором, соединяющие провода должны быть как можно короче, а кабель идущий от программатора на порт LPT так-же не должен быть слишком длинным.
В маркировке микроконтроллера могут присутствовать непонятные буквы с цифрами, например Atmega 8L 16PU, 8 16AU, 8A PU и пр. Буква L означает, что МК работает от более низкого напряжения, чем МК без буквы L, обычно это 2.7В. Цифры после дефиса или пробела 16PU или 8AU говорят о внутренней частоте генератора, который есть в МК. Если фьюзы выставлены на работу от внешнего кварца, кварц должен быть установлен на частоту, не превышающей максимальную по даташиту, это 20МГц для ATmega48/88/168, и 16МГц для остальных атмег.
Первые цифры в названии микроконтроллера обозначают объем FLASH ПЗУ в килобайтах, например ATtiny15 – 1 Кб, ATtiny26 – 2 Кб, AT90S4414 – 4 Кб, Atmega8535 – 8 Кб, ATmega162 – 16Кб, ATmega32 – 32 Кб, ATmega6450 – 64Кб, Atmega128 – 128Кб.
Иногда встречаются схемы, где применены микроконтроллеры с названиями типа AT90S… это старые модели микроконтроллеров, некоторые из них можно заменить на современные, например:
AT90S4433 – ATmega8
AT90S8515 – ATmega8515
AT90S8535 – ATmega8535
AT90S2313 – ATtiny2313
ATmega163 – ATmega16
ATmega161 – ATmega162
ATmega323 – ATmega32
ATmega103 – ATmega64/128
ATmega 8 имеет несколько выводов питания, цифровое – VCC, GND и аналоговое – AVCC, GND. В стандартном включении обе пары выводов соединяют параллельно, т.е. вместе. Микроконтроллеры AVR не любят повышенного напряжения, если питание выше 6 вольт, то они могут выйти из строя. Я обычно применяю маломощный стабилизатор напряжения на 5 вольт, КР142ЕН5 или 78L05. Если напряжение питания слишком низкое, то МК не прошьется, программа будет ругаться и выдавать ошибки (к примеру -24 в PonyProg).
На этом закончим, пока можете выбрать в интернете понравившуюся схему и изучить ее, можете заодно сходить и купить нужный микроконтроллер. Далее мы будем собирать простой и надежный программатор, познакомимся с программами для прошивания и попробуем прошить МК.
ATmega128_16AU.rar | 2492 Кб |
ATmega16.rar | 2341 Кб |
ATmega32.rar | 2198 Кб |
ATmega48_88_168.rar | 162 Кб |
ATmega8.rar | 194 Кб |
ATmega8515.rar | 1456 Кб |
ATmega8535.rar | 229 Кб |
attiny2313.rar | 140 Кб |
Источник: radio-uchebnik.ru
Программирование на языке C для AVR и PIC микроконтроллеров (2-е изд.) +CD
В книге рассмотрено программирование на языке C микроконтроллеров AVR с использованием компиляторов WinAVR и CodeVisionAVR, а также микроконтроллеров PIC с использованием компиляторов CCS-PICC, mikroC и C30/32. Кратко рассмотрена архитектура и аппаратное обеспечение как традиционных восьмиразрядных микроконтроллеров AVR и PIC, так и новых семейств ATxmega, PIC24 и PIC32. Дано описание средств программной разработки, включая эмуляцию программ с помощью AVR Studio и MPLAB. Кратко рассмотрен стандартный синтаксис языка C и директивы препроцессора, а также особенности программирования на этом языке для микроконтроллеров. Книга содержит программные примеры на C, а также — справочник с описанием системы ассемблерных команд микроконтроллеров AVR (включая ATxmega) и PIC (включая PIC24).
Часть I. Архитектура микроконтроллеров AVR
Глава 1. Восьмиразрядные микроконтроллеры AVR
Семейства восьмиразрядных микроконтроллеров AVR
Отладочная плата
Схема базового монтажа
Структура микроконтроллеров AVR
Программирование памяти
Технология picoPower
Глава 2. Семейство AVR ATxmega
Обзор возможностей микроконтроллеров ATxmega
Организация памяти семейства ATxmega
Контроллер прямого доступа к памяти
Система обработки событий
Система синхронизации
Счетчики реального времени
Модуль питания от батареи
Обработка прерываний
Аналого-цифровое преобразование
Цифро-аналоговое преобразование
Аналоговый компаратор
Средства шифрования
Модуль обмена данными по инфракрасному каналу
Часть II. Компиляторы и средства разработки для микроконтроллеров AVR
Глава 3. Компилятор WinAVR
Глава 4. Среда разработки AVR Studio
Эмуляция
Окно Memory
Окно Register
Окно Watch
Отладка программы
настройка параметров имитатора
Создание проекта и компиляция программы
Глава 5. Среда разработки CodeVisionAVR
Компиляция и построение проекта
Создание проекта с помощью мастера CodeWizardAVR
Создание новых файлов с исходным кодом
Отладка программы
Глава 6. Программаторы для микроконтроллеров AVR
Программные средства для программирования микроконтроллеров
Часть III. Архитектура микроконтроллеров PIC
Глава 7. Восьмиразрядные микроконтроллеры PIC
Общие аспекты архитектуры восьмиразрядных
микроконтроллеров PIC
Семейство микроконтроллеров PIC16
Микроконтроллеры серии 12F50x
Глава 8. Семейство PIC18F
Организация памяти
Организация тактирования
Таймеры
АЦП
Обработка прерываний
Глава 9. Семейство PIC24
Порты
Таймеры
Прерывания
Окно Program Space Visibility
Интерфейс SPI
Порт PMP
АЦП
Модуль CTMU
Глава 10. Семейство PIC32
Порты
Таймеры
Системная шина
Организация памяти
Прерывания и исключения
Система тактирования
Интерфейс SPI
Порт PMP 258
АЦП
Модуль сравнения на выходе
Часть IV. Компиляторы и средства разработки для микроконтроллеров PIC
Глава 11. Компилятор CCS-PICC
Создание проектов CCS-PICC вручную
Создание проектов CCS-PICC с помощью PIC Wizard
Создание проектов CCS-PICC с помощью PIC24 Wizard
Открытие и добавление в проект файлов с исходным кодом
Компиляция проекта
Меню Tools
Глава 12. Эмуляция и отладка программ в среде MPLAB
Рабочая область и проект MPLAB
Компиляция под управлением MPLAB
Настройка режима отладки/эмуляции
Работа в режиме отладки/эмуляции
Окна отладчика
Глава 13. Компилятор mikroC
Создание проекта mikroC
Компиляция проекта
Добавление в проект файлов с исходным кодом
Эмуляция выполнения программы
Вспомогательные инструменты среды mikroC
Глава 14. Компиляторы C30 и C32
Компилятор C30
Компилятор C32
Глава 15. Программаторы для микроконтроллеров PIC
Программные средства для программирования микроконтроллеров
Часть V. Язык C и директивы препроцессора
Глава 16. Основы языка C
Вводные понятия
Структура программы на C
Типы данных, переменные, константы
Функции
Структуры
Указатели и адреса переменных
Массивы и строки
Операторы ветвления
Циклические конструкции
Стандартные функции ввода/вывода
Директивы препроцессора
Обработка прерываний
Исполнение ассемблерного кода
Глава 17. Функции и макросы языка C для различных компиляторов
Стандартные функции языка C
Функции и макросы компилятора WinAVR
Функции и макросы компилятора CodeVisionAVR
Функции и макросы компилятора CCS-PICC
Функции компилятора mikroC
Часть VI. Программные примеры для микроконтроллеров AVR
Глава 18. Примеры для компилятора WinAVR
Управление ЖК-дисплеем
GPS-навигатор
Глава 19. Примеры для компилятора CodeVisionAVR
Управление аналого-цифровым преобразованием
Измерение температуры
Часть VII. Программные примеры для микроконтроллеров
Глава 20. Примеры для компилятора CCS-PICC
Отображение состояния выводов порта
Управление частотой мерцания светодиодов с помощью различных таймеров
Управление светофорами на перекрестке
Обмен данными в режиме PSP
Контроль предельной скорости вращения двигателя
Глава 21. Примеры для компилятора mikroC
Игральные “кости”
Вольтметр с ЖК-дисплеем
Калькулятор
Глава 22. Примеры для компилятора C30
Использование порта PMP
Работа с АЦП
Глава 23. Примеры для компилятора C32
Работа с интерфейсом SPI
Работа с модулем UART
Часть VIII. Приложения
Приложение А. Таблица символов ASCII
Приложение Б. Преобразование из одной системы счисления в другую
Приложение В. Система команд микроконтроллеров AVR
Наличие команд в различных микроконтроллерах AVR
Команды по категориям
Приложение Г. Система команд микроконтроллеров PIC
Команды восьмиразрядных микроконтроллеров
Система команд микроконтроллеров PIC24
Приложение Д. Область ввода/вывода микроконтроллеров AVR ATxmega
Содержимое прилагаемого к книге компакт-диска разбито на следующие каталоги:
• Datasheets — технические описания (на английском языке) популярных микроконтроллеров AVR (подпапка avr) и PIC (подпапка pic), а также — устройств, задействованных в рассмотренных в книге проектах;
• Projects — примеры рассмотренных в книге программ (примеры распределены по папкам в соответствии с типом компилятора: C30, C32, CCS-PICC, Code-VisionAVR, mikroC, WinAVR);
• Sowtware — установочные пакеты программных средств (компиляторов, средств разработки и программаторов), рассмотренных в KHHre:AVR Studio; CodeVisionAVR, PonyProg2000, USBProg, WinAVR; C30, C32, CCS-PICC, MikroC, MPLAB.
Скачать Шпак Ю.А. Программирование на языке C для AVR и PIC микроконтроллеров (2-е издание) +CD
Источник: radiohata.ru
Литература и программы для AVR. Шаг №1
Обновлено 10.02.15. Всем привет. В первой записи блога я выложил краткую информацию необходимой литературы, ссылок и программ, которыми мы будем пользоваться для изучения, рассмотрения и разработок дальнейших устройств на AVR. Например от простого термометра в статье №6 до более сложного устройства — фазосдвигателя на ATmega8 и другое. Выбор языка для дальнейшего программирования, это дело вкуса. Я лично склонился к Си, и если кто-то захочет его осваивать то могу сказать, что первым делом необходимо прочитать классику:
— Язык программирования Си. Керниган Б. Ритчи Д. Стандарт ANSI.
Хочется сказать о стандартах языка, всего их пять. Предпоследний это С99, но хочется отметить что книга описанная стандартами С90 и ANSI, если не обращать на тонкости внимания, то они особо не отличаются, и для начального уровня подойдут просто идеально. Что касается последнего стандарта 2011 года С11, то он сильно приближен к объектно-ориентированному языку и это уже совсем отдельный разговор. Итак с момента появления языка Си было пять стандартов «Khttps://www.ap-impulse.com/literatura-i-programmy/» target=»_blank»]www.ap-impulse.com[/mask_link]