Страницы курса:

Уроки

Задания


index.htm
01.htm
02.htm
03.htm
04.htm
05.htm
06.htm
07.htm
08.htm
09.htm


z1.htm
z2.htm
z3.htm
z4.htm
z5.htm
z6.htm
z7.htm
z8.htm
z9.htm
z10.htm
z11.htm

New! - ФОРУМ!

Совет - умейте правильно находить информацию!


Добавить страницу в закладки:

- стр. 6 -

Задачи-упражнения 
по краткому курсу AVR

 

Чтобы двигаться дальше вам нужны  программы:

  • 1) Компилятор  CodeVisionAVR 

  • 2) Софт симулятор-эмулятор AVR  VMLAB

  • 3) Вы должны знать материал предыдущих страниц курса  

Если это так: Приступайте  к  работе!

Задачи-упражнения  курса  -  это практические занятия, примеры по написанию программ для AVR с сопутствующим
кратким изложением необходимых теоретических сведений сопровождаемым скриншотами программ. Поверьте просто читать задачи - пользы МАЛО ! 
Как читать самоучитель игры на пиано или гитаре не тренируясь на инструменте: сколько не читай - играть ни фига не научишься ...  

Задачи нужно проделать читая, прочувствовать - только так!  

Большинство задач могут быть выполнены виртуально, на ПК. Вам не нужно покупать МК и что-то паять, что либо сжигать и вдыхать пары флюса...

Задача 1

  • знакомство с компилятором Си CodeVisionAVR, схема, алгоритм, написание и компиляция первой рабочей программы.

  • Операции над отдельными битами.

Задача 2 

  • знакомство с эмулятором электронных устройств - VMLAB - симулятором МК AVR на примере файла-прошивки полученной в задаче 01.

  • Мигаем светодиодами, измеряем длительность сигналов на экране виртуального осциллографа (окно scope)

Задача 3  

  • Закрепить навыки программирования и работы в компиляторе CodeVisionAVR 

  • очень подробно и с картинками учимся моделировать работу электронного устройства в симуляторе VMLAB

  • Делаем универсальный таймер на микроконтроллере ATmega8, с дискретной установкой времени.

Задача 4

  • Адаптер для связи вашего МК устройства с COM-портом ПК по rs232

  • Метод отладки вашего устройства - нахождение ошибок программы и "железа" с помощью вставки контрольных сообщений в текст программы. 

  • Программы для ПК позволяющие вести, отслеживать и сохранять на жестком диске обмен по COM-портам. 

 

Задача 5

  • Создаём программу для ATmega16 принимающую и передающую данные обмениваясь ими с ПК через COM-порт по интерфейсу rs232 с помощью USART встроенного в МК серии ATmega.

  • Углубляем навыки создания программы в CVAVR и продолжаем использовать Си для микроконтроллеров

  • Подключаем и управляем символьным ЖКИ LCD 16x2   (2 строки по 16 символов)

Задача 6 

  • Тщательное знакомство с компилятором ICC и подробный рассказ с картинками о применении его мастера начального кода. 

  • Создаем программу 50 раз в секунду прерывающуюся по Таймеру_0 и посылающую данные на ПК.

  • Точная подгонка временных интервалов создаваемых с помощью таймеров.  Различные режимы работы таймеров.  

  • В симуляторе VMLAB проверяем правильность времени прерываний и сохраняем принятые от МК данные в файл.

 

Задача 7   

Помнить все! добавляем 2 Мб памяти - быстрой и не забывающей информацию при отключении питания - стоит всего 5 баксов. Подключение AT45DB161 к МК AVR по SPI со схемой и программой на Си с подробными комментариями.

 

Задача  8

  • Что такое ШИМ (PWM) сигнал. Как аппаратно сделать ШИМ. 

  • Как сделать ЦАП с помощью ШИМ и отфильтровать сигнал - т.е. получить аналоговый сигнал из цифрового. 

  • Программа к задаче написана в компиляторе Си CodeVisionAVR, симуляция выполнена в VMLAB.  


Задача  9

  • Электронный вольтметр - измеритель вибрации. 

  • Цель задачи: разработать устройство и программу для МК ATmega16 для измерения напряжения и частоты сигнала от датчика вибрации и отображения результата на 2х разрядном 7-ми сегментном светодиодном индикаторе.  

  • Задача знакомит с АЦП ATmega16 (такой же в ATmega32 ATmega64 ATmega128) используется компилятор CodeVisionAVR - дан пошаговый пример создания программы с нуля.  

 

Попробуйте поискать полезную инормацию в Гугле - ее там море !  Учитесь искать!

 

Задача 9 часть 2 

Проектирование входной цепи для сигнала

  • - расчет уилителя-фильра сигнала перед подачей на АЦП 

  • - применение ОУ (операционных усилителей) для изменения  параметров входного сигнала 

  • - защита устройства от внешних электрических воздействий !

 

Задача 10

  • Устройство изменяющее состояние нагрузки при громком звуке длительностью от 5 до 20 мС. 

  • Цель задачи: разработать устройство и программу для МК ATmega16 которое будет анализировать длительность сигнала от микрофона и если она будет лежать в пределах 5-20 мС то будет менять состояние подключенной нагрузки: если была выключена - то включит и наоборот.

    Задача повторяет-закрепляет навык генерации начального кода программы в компиляторе CodeVisionAVR для ATmega16.

    Задача 11

    АЦП - аналоговый сигнал преобразуем в Цифровой код при помощи 10 битного АЦП встроенного (там целых 8 каналов!) в МК  AT90s8535. Программу пишем на CodeVisionAVR, компилируем и затем отладим в эмуляторе с наблюдением движения программы по тексту на Си. 


    Приступайте  к работе! Того что есть вполне достаточно для уверенного старта, остальное в
    АпНоутах и в Интернете навалом.

     
    А какой AVR выбрать для поделок ? 
    их там много...
     

     

    Вы не спец и надеюсь не собираетесь делать серийное устройство, соответственно вопросы конкурентной борьбы и цены МК в серии вас не сильно волнуют - вам похоже нужно комфортно, без изворотов и ухищрений, получить быстрый результат. 

    Я уже давал совет на 1-й странице курса,  здесь дополню: 

    Комфортно касательно МК - это когда много памяти и ножек (выводов, пинов) чтоб не сталкиваться с их не хваткой. 

    Комфортно когда на одном МК вы сможете сделать и то что вам надо сейчас и надо будет сделать потом и легко что-то  добавить в работающую систему. 

    Советую вам выбрать универсальный МК - пусть он будет один у вас - зато вы сможете хорошо его узнать и не тратить время на изучение разных МК под каждый следующий проект. 

    Используйте ATmega16 (-32 -64 -128) 

    ATmega16  недорогой, выпускается в 40-ка выводном удобном для самоделкиных корпусе DIP-40 с шагом ножек 2.54 мм. длина МК - 53 мм ширина 17 мм. 

    • - 16 Кб многократно программируемой памяти (Flash Program Memory) для вашей программы, 

    • - 1 Кб оперативной памяти SRAM

    • - 512 байт памяти EEPROM - сохраняющей информацию при отключении питания, 

    • - 8-ми канальный 10 битный АЦП  (АЦП 90s8535)

    • - USART позволит вам организовать скоростной двусторонний обмен по Rs232 с COM портом ПК, либо с другими устройствами,

    • - TWI интерфейс (это i2c но по ATMEL'овски) 

    • - SPI интерфейс (пример использования)

      при напряжении питания от 4,5 до 5,5 вольт может работать с тактовой частотой от 0 до 16 МГц - эта частота определяется внешним кварцевым или керамическим резонатором, либо другим внешним источником тактирующего сигнала либо простым RC генератором - встроенным или внешним.

      этот МК может работать без кварца так как имеет встроенный RC генератор, обеспечивающий частоту 1, 2, 4 или 8 МГц с точностью +- 3%. Во многих устройствах такая точность достаточна.
       Её можно повысить калибровкой, она описана в Апликухах (надеюсь вы уже знаете что это такое!) С завода МК ATmega поставляются с включенным внутренним генератором на 1 МГц. Изменить это можно изменив программатором установку Фьюзов МК.

       

    Если вы выбрали другой AVR -  ни чего страшного, так как это именно семейство МК, все они имею одинаковый набор инструкций и программы легко переносятся с одного на другой с минимальной - однако необходимой! корректировкой.

    После выбора МК Вам необходимо скачать ДатаШит (ДШ) на него (DataSheet.pdf) - это паспорт МК в нем есть "Errata" - описание уже обнаруженных ошибок МК - про него не забывайте! 

    Идеально распечатать и изучить весь ДШ - но я понимаю, что сделать это не просто, он ведь большой. 

    Поэтому
    настоятельно прошу вас распечатать стр. 1-5 и раздел "Register Summary" (примерно стр. 329-330) - это список регистров МК и ссылки на номера страниц с их подробным описанием.

    Скачивайте свежий ДШ !

     

    Краткие рекомендации по созданию 
    электронных устройств.

     

    Обычно первый монтаж устройства выполняют на макетных платах (а в случае единичного устройства такой монтаж бывает и окончательным вариантом).   

    Здесь посмотрите варианты простых макетных плат от 
    OLIMEX 

    там же есть интересные проекты устройств на AVR!


    Такие макетные платы продаются в магазинах компонентов,
    а схемы свободно доступны на сайте.


    Макетка -
    это обычная печатная плата содержащая множество отверстий обычно с шагом 2.54 мм, с одной (реже с двух) стороны вокруг отверстий есть луженые медные площадки.  

    Компоненты вставляют ножками в отверстия а с обратной стороны производят соединения гибким монтажным проводом. Вот пример монтажа устройства  на макетной плате: (Это JDM-программатор для МК PIC и устройств с интерфейсом i2c )

     

    На монтажной плате желательно размещать компоненты с одной стороны а все проводники с другой, получается очень аккуратный и качественный монтаж. 

    Если сторону проводников после тестирования, промыть от флюса растворителем, просушить и залить компаундом или лаком - то устройство наверняка будет работать долго и надежно.

    Чтоб не забыть запаять какой то проводник,  удобно зачеркивать карандашом на бумажном рисунке схемы устройства каждое сделанное соединение.

    Очень удобно конденсаторы и резисторы брать чипы размера 0805 и 0603 и паять прямо на ножки компонентов.
     

     

    Немного о пайке: 

    • Электроника наука о контактах! это очень точное определение, большинство отказов правильно спроектированных устройств вызвано отсутствием электрического контакта там где он должен быть и наоборот.

    • Пайка основной вид неразъемных электрических соединений применяемый в электронике - поэтому вы легко можете найти материалы по тому как паять правильно.

    • Важно чтоб паяльник имел нужную температуру! 

    • Используйте регулятор нагрева паяльника. Например комнатный выключатель света с плавной регулировкой яркости. Установите его в блок розеток удлинителя вместо одной розетки - это очень удобно.

    • Припой должен как бы сам формировать аккуратную спайку, не должно требоваться размазывание спайки. 

    • Жало паяльника должно быть достаточно горячим, чтоб припой не тянулся за паяльником а образовывал сглаженную поверхность, припой на паяльнике должен блестеть и довольно долго не тускнеть. 

    • Пайку нужно делать не мгновенно! Надо коснутся жалом с припоем площадки около контакта компонента, прогреть площадку около ножки и затем подводить жало к ножке... всего 2-4 сек. примерно. Нужен опыт конечно. 

    • Жало почаще протирайте сложенной в несколько слоев хб тряпочкой и при выгорании затачивайте напильником и залуживайте. 

    • Я затачиваю жало паяльника как классическое жало плоской отвертки, только угол между гранями больше - примерно 30 градусов, а ширина жала около 3 мм для большинства работ. Жало простое медное диаметром 4.5 мм. Второе жало, аналогичное но с шириной всего 1 мм - это для пайки компонентов для поверхностного монтажа размеров 0603 и 0805 и микросхем с шагом от 0.5 мм. Таким образом я всю пайку выполняю паяльником на 40 Вт  с двумя сменными жалами.

    • Желательно использовать не канифоль а активный флюс (он типа вазелина бывает), или паяльную пасту - она с припоем уже.

    • Плату после пайки промойте кисточкой растворителем в наклонном положении. 

    Подробно: Припои флюсы способы пайки - статья в FAQ'е курса

     




      Очень рекомендую прочитать! Руководство по правильной разводке  печатных плат и проводов в устройстве Подробно разъяснено происхождение, излучение и влияние электромагнитных помех и методы их снижения для обеспечения EMC.

    Внимание !  Удобно купить мощный многоногий МК уже припаянный на плату с некоторыми нужными дополнительными элементами.  вот ATmega128 к примеру, на плате:

    USB встроен и прочие приятности - документация тут.

    в отверстия по краю платы впаяйте гребенки штырьков или гнезд и затем к ним подключайте без пайки разъемы с проводами, либо ставьте на ответные части разъема впаянные в плату основного устройства или на большую макетную плату. 

      Аналогичный модуль от Olimex 

     

     

    подешевле но и возможностей поменьше, зато контакты по краю платы уже запаяны.

    А вот подороже но и по-навороченей: (Тестовая программа для платы ) :

     


    Более качественный монтаж можно выполнить изготовив специальную плату для вашего устройства - обычно это делают уже отладив устройство в симуляторе и/или на макетной плате. 
    Вот примерный вид рисунка печатных проводников для переноса на плату:

     

    А вот тот же программатор JDM, но собранный на специальной печатной плате со сверлением:

    Для рисования схем и "разводки" (размещение компонентов на плате и прокладка соединяющих дорожек) печатной платы устройства рекомендую  - мощная и очень популярная у электронщиков программа рисования схем и "разводки" (размещение компонентов на плате и прокладка соединяющих дорожек) печатной платы устройства: EAGLE  (Она бесплатна для плат достаточно большого размера.)
      Программа автоматически размещает компоненты на плате и может развести дорожки сама. Вам нужно только нарисовать схему, выбрать корпуса для всех компонентов и задать размеры платы. 
    На сайте вы можете скачать дополнительные библиотеки электронных компонентов и различные микроконтроллерные проекты со схемами и печатными платами выполненными в этой программе.  Очень рекомендую!

    Еще :

    DipTrace  - очень приятная в работе  программа! Чудесно разводит платы в автоматическом режиме.

    ЛУТ    или Лазерно - Утюжный метод изготовления печатной платы 

    1) Рисунок печатной платы ЗЕРКАЛЬНО печатаю на глянцевой стороне "Универсальной бумаги для струйной печати" LOMOND - глянцевая-матовая двухсторонняя 50 листов А4, вес 170 гр/м2  (на торце пачки и над штрих-кодом номер 0102009) с обычными настройками принтера HP LaserJet 6P. Можно использовать испорченные, неудачные фотографии.

    К рисунку платы можно добавить изображение рамки большей чем контур заготовки платы примерно на 1 мм с каждой стороны - так будет легко правильно совместить рисунок и плату. Или сделать в плате 2 (или больше) отверстия диаметром 3-4 мм, измерить РЕАЛЬНОЕ расстояние между ними и нанести на рисунок платы соответствующие перекрестия-прицелы для точного визуального совмещения рисунка с платой. Это полезно при изготовлении двухсторонних плат.

    2) Медь платы я шкурю шкуркой с зерном 300-500 в перекрестных направлениях, затем стираю пыль тампоном из бинта. Не касайтесь поверхности платы пальцами! 

    3) Положите на ровную УСТОЙЧИВУЮ поверхность:
     
    - упругий, ровный материал типа коврика мыши или листовой жесткий упаковочный мелкопористый поролон (я использовал 20 мм) 
    - 2 листа бумаги А4 
    - рисунок ЗЕРКАЛЬНЫЙ платы тонером вверх !!! 
    - плату положите на рисунок КОНЕЧНО медью к тонеру, для центровки используйте прозорливо напечатанные контуры или отверстия в плате совмещаемые с перекрестиями на рисунке.
    - если плата большая, то для более равномерного распределения нагрузки и тепла положите сверху еще 2-4 заготовки для плат.
    - лист бумаги А4 чтоб не коцать подошву утюга. 
    - утюг ХОЛОДНЫЙ !!! 
    - груз на утюг - я кладу 2 кГ сахара в мешках на плату 60х80.

    Центр тяжести утюга с грузом должен быть примерно по центру заготовки платы, чтоб стоял устойчиво без перекоса - тогда рисунок будет равномерно прижат к меди. 

    4)  Моё ноу-хау в этом методе, возможно и позволяющее уверенно получать дорожки 0.1 мм - НЕ  НАДО  ТОРКАТЬ  ГОРЯЧИЙ 
    УТЮГ  ТУДА-СЮДА ! 
     Вы просто отходите в сторонку от этого "пирога" и нежно включаете утюг в розетку. Он нагревается и сам выключается-включается терморегулятором. Регулятор утюга я ставлю на "3" - у моего утюга это 120-130 градусов всего.  (я использую принтер HP LJ 6P - его тонеру этого достаточно). Не нужно греть сильней

    После первого автоматического отключения нагрева я жду 5 минут, выключаю утюг из розетки. Оставляю установку минут на 20-30, что бы "пирог" остыл ниже температуры плавления тонера. Теперь можно снять утюг.

    5) Плату с фотобумагой положите в теплую воду. Примерно через 3-5 минут она намокнет и по краям отойдет от платы. Не спешите! Я оставляю на 30 минут "изделие". После этого бумага уже хорошо отделяется от фотослоя, который вживляется в поры тонера. Таким образом весть тонер покрыт фотослоем, его поры закрыты и при травлении дорожки получаются не изъеденными раствором.

    К сожалению именно фотослой не дает делать зазоры менее 0.2 мм - он намертво заседает в маленьких зазорах и не желает от туда вымываться. Однако после высыхания фотослой легко вычищается из зазоров иголкой. Остатки бумаги и фотослоя скатываются пальцами в воде - но их бывает мало и лишь в нескольких местах.

    6) После высыхания платы внимательно с линзой проверьте рисунок платы на наличие дефектов. Особенно фотослой в узких местах между тонером. Подретушируете при необходимости рисунок нитро-лаком (мебельный НЦ222, цапон, лак для ногтей) и кисточкой от лака для ногтей или зубочисткой.

    7) Травлю, после высыхания ретуши, в хлорном железе в пластиковой емкости - свежий раствор работает быстрее, не грею. 

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

    Проверяйте процесс чаще !  Не передерживайте в растворе для уменьшения бокового подтрава узких дорожек!

    8) Хорошо промойте плату проточной водой и смойте тонер растворителем, еще раз пошкурьте медь мелкой шкуркой, просушите плату.

    Вот пример платы с дорожками 0.15 мм изготовленной по описанной технологии под программатор-отладчик для микроконтроллеров PIC ICD2

     Линки на такие устройства на русском языке
    есть в низу заглавной страницы курса.

     

    9) Я залуживаю всю медь платы паяльником с припоем предварительно смазав ватной палочкой медь активным флюсом. Плату держу сильно наклонно и веду жало паяльника всегда вниз от контактных площадок, чтоб на контактных площадках не скапливался припой!

    Вот и все!   

     

    Добавить страницу в закладки:

    <--- Назад                                          Дальше..--->

    язык Си для AVR                          Как "прошить" AVR

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Rating All.BY Rambler's Top100 МЕТА - Украина. Рейтинг сайтов


    2009-2015 123avr.com