Главная

Для читателей: Этот документ является проектом руководства, для начинающих работать с микроконтроллерами семейства AVR. Документ находится в процессе разработки - соответственно руководствоваться его рекомендациями на сегодня преждевременно. Содержание и дополнения к документу обсуждаются здесь

Для писателей: Поскольку план получился достаточно объемный, итоговый документ грозит получиться чрезмерно тяжелым.
Так как примеров и статей по AVR Интернете великое множество, предлагаю по возможности ограничить каждый пункт 4-5 фразами описывающими проблему со ссылками на готовые статьи, переводы и примеры кода.
В первую очердь это касаеться примеров работы с периферией.В вопросах поиска ошибок, а так же тонкостей С компиляторов я полагаюсь ужиматься не стоит.
И последнее - план писался из головы, на одном дыхании, из источников я пользовался даташитом на Мегу16 и документом который прислал мне KykyryzzZ (за что ему отдельное большое спасибо.),поэтому могут иметь место серьезные упущения - исправляйте и дополняйте.
Ссылки пока замкнуты на текущую страницу.

С уважением Нурибеков Евгений aka beer_warrior
Пожелания принимаются по адресу мой_ник(на)bigmir.net

Последнее изменение 25.06.06
  1. AVR с самого начала
    1. Что такое микроконтроллеры AVR?
    2. Где взять документацию?
    3. Необходимый минимум для старта с AVR.
    4. Наиболее распостраненные инструменты для работы с AVR.
      1. Среды разработки.
      2. Программаторы
      3. Средства отладки.
      4. Pазное полезное.

  2. Первая проба пера(ассемблер)
    1. Три пространства памяти
    2. Стек - зачем он нужен?
    3. Прерывания
    4. Fuse bits
    5. Минимальная прорамма
      1. Скелет программы
      2. Мигаем светодиодом
      3. Мигаем светодиодом по прерыванию
    6. Наиболее распостранненые ошибки

  3. C для микроконторллеров вообще и для AVR в частности
    1. В чем преимущества?
    2. Я перехожу на С с ассемблера, что надо читать?
    3. Работая на С стоит ли забывать (не изучать) ассемблер?
    4. От исходного кода к прошивке
      1. Препроцессор
      2. Компилятор
      3. Линкер
      4. Утилиты
    5. Особенности С для МК
      1. Доступ к периферии
      2. Доступ к постоянной памяти
      3. Использование прерываний
      4. Использование стандартных библиотек
    6. Особенности C компиляторов
      1. IAR
      2. gcc
      3. CV
    7. Распостраненные ошибки
      1. Компилятор ругаеЦЦО - что делать?
      2. Указатели
      3. Повторное включение кода
      4. Не забывать о volatile
    8. Ныряем в глубину
      1. Почему пустая фунция main() дает на выходе не 0 байт?
      2. Что такое Cstartup, и как его использовать?
      3. Секции памяти
      4. Как передаются аргументы и возвращаются результат?
      5. Как связать переменную с регистром?
      6. Как изменить размещение кода в памяти? (скрипты линкера)
      7. Что такое makefile и как с ним работать?
      8. Ассемблерные вставки
    9. От С к С++
      1. Такое возможно?
      2. Как перейти?
      3. Какие возможности С++ доступны для микроконторллеров?

  4. Пeрифирийные устройства
    1. Параллельный ввод вывод aka PIO
      1. Мультиплексирование с остальной периферией
      2. Дребезг и синхронизированный вход
      3. Нагрузочная способность
      4. Согласование логических уровней
      5. Побитовое использование
      6. Шинное использование
      7. Подключение светодиода
      8. Подключение реле
      9. Подключение пищалок(буззеров)
      10. Индикация
        1. Статическая индикация
        2. Динамическая индикация
        3. Особенности работы с ЖКИ (LCD)
        4. Работа с ЖК-модулями
      11. Способы работы с клавиатурой
        1. Обычные кнопки
        2. Матрицирование кнопок
        3. Мультиплексирование кнопок с индикатором
        4. Альтернатива - клавиатура на АЦП
        5. Подключение РС-клавиатуры
    2. Таймеры
      1. Использование таймеров для временных задержек
      2. Системный таймер
      3. Использование таймера для отсчета времени
      4. Использование таймера для генерации ШИМ
      5. Использование таймера для измерения частоты
    3. SPI
      1. Режимы работы (0-3)
      2. Master и Slave
      3. Вывод SS
      4. Типовая SPI периферия
        1. AT45DB
        2. AT25
        3. ЦАП и АЦП
        4. Расширение IO с помощью сдвиговых регистров
      5. Минимум для работы
      6. Софтварная реализация
      7. Типичные ошибки
    4. UART/USART
      1. Различия между синхронным и асинхронным режимом
      2. Дуплекс и полудуплекс
      3. RS232/422/485
      4. Текстовый и бинарный обмен
      5. Протоколы последовательной передачи
      6. Минимум для работы
      7. Софтварная реализация
      8. Ошибки обмена - где копать?
    5. TWI aka I2C
      1. Реализация в AVR
      2. Master и Slave
      3. Адресация
      4. Типовая I2C периферия
        1. AT24Cxx
        2. Часы реального времени
        3. ЦАП
        4. Расширение IO с помощью I2C
      5. Софтварная реализация
      6. Минимум для работы
      7. Типичные ошибки
    6. Аналоговый компаратор
      1. Использование
      2. АЦП с использованием компаратора
      3. Минимум для работы
      4. Типичные ошибки
    7. АЦП
      1. Как работает АЦП последовательного приближения.
      2. Однократный и непрерывный режимы.
      3. Предварительные усилители, масштабирование.
      4. Измерение двуполярных напряжений.
      5. Минимум для работы.
      6. Типичные ошибки.

  5. Операционные системы реального времени aka RTOS
    1. Что такое RTOS?
    2. Особенности RTOS для AVR.
    3. RTOS пригодные для AVR.
      1. FreeRTOS.
      2. scmRTOS.
      3. Nut/OS.

  6. Отладка программ
    1. Симуляторы.
    2. Отладка подручными средствами.
    3. Отладка встроенными средствами.

  7. О проектироваинии
    1. Пока не придумал разделов :)

  8. Всяко разно
    1. AVR и USB
    2. AVR и Ethernet
    3. AVR и радио
    4. Особые мнения - если кто желает желает высказаться по вопросам не вошедшим в общую структуру милости просим сюда

  9. Литература
    1. О микроконтроллерах вообще.
    2. Об AVR в частности.
    3. Программирование - общие вопросы.
    4. Программирование C/C++
    5. Интерфейсы

Главная