Курс AVR123.nm.ru


Electronic Banner Exchange (ElBE)
 
6

 

         
         
   

- стр. 6 -




Задачи-упражнения  курса


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


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

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

очень желательно и отличный компилятор ICC


Вы можете использовать другие компиляторы и симулятор PROTEUS

 

Если это так:

Приступайте  к  работе!

 

 

Задачи-упражнения  курса  -  это практические занятия, примеры по написанию программ для AVR с сопутствующим
кратким изложением необходимых теоретических сведений сопровождаемым скриншотами программ. 

Поверьте просто читать задачи - пользы МАЛО ! 

Как читать самоучитель игры на пиано или гитаре не
тренируясь на инструменте:
сколько не читай - играть
ни фига не научишься ...
 

 


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



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

Нужны только перечисленный выше софт, 
ПК, время и желание. 



Задача 1

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

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

знакомство с отличным компилятором ImageCraft - ICC  я описал подробно и с картинками в  Задаче 6

 

Задача 2  

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

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

 

Задача 3  

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

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

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

 

Задача 4

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

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

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


 

Задача 5

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

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

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

 

 

 

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

 

Как "прошить" = записать, загрузить *.hex  
файл в память программ МК читайте на 
следующей стр. 7 курса

 

 

 


Задача 6  

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

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

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

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

 

 

Задача 07   

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

 

 

Задача  8

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

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


Задача  9 

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

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

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

 

 

Задача 09 часть 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 мм. 

Бывает и в маленьком, квадратном, плоском корпусе 12х12 мм 
 - но паять их чуть трудней и даже 7х7 мм


- 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 МГц. Изменить эту установку можно программированием Фьюзов МК.

 

 

В корпусе DIP-40 удобном для пайки в любительских 
условиях бывают еще ATmega32 и ATmega644 с
64 кБ 
памяти для программы !

 

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



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

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

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

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

 

 

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

 

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

 

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

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


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


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

Компоненты вставляют ножками в отверстия а с обратной стороны производят соединения гибким монтажным проводом. 

Вот пример монтажа устройства  на макетной плате:

Кстати! Это JDM-программатор для МК PIC и устройств с интерфейсом i2c 

Я такой использую... работает хорошо. 

а вот для AVR программатор не обязателен! достаточно 5 проводов от принтерного порта ПК !

 

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


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



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



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

 

 


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


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

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

 

Подробно:

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

 

Коротко: 

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

Используйте регулятор нагрева паяльника. 

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

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

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

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

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

Я затачиваю жало паяльника как классическое жало плоской отвертки, только угол между гранями больше - примерно 30 градусов, а ширина жала около 3 мм для большинства работ. Жало простое медное диаметром 4.5 мм.

Второе жало, аналогичное но с шириной всего 1 мм - это для пайки компонентов для поверхностного монтажа размеров 0603 и 0805 и микросхем с шагом от 0.5 мм.

Таким образом 
я всю пайку выполняю паяльником на 40 Вт
 
с двумя сменными жалами.

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

 

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

 




 

 

 

Очень рекомендую прочитать !

Руководство по правильной разводке
печатных плат и проводов в устройстве

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

А так же АпНоуты AVR040 и AVR042
на gaw.ru они есть на русском языке.

 

 

 

 

Внимание !  

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

вот ATmega128 к примеру, на плате:

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

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

 

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

 

 

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

 

А вот подороже 

 

 

 

но и по-навороченей!   Тестовая программа для платы

 

  



Более качественный 
монтаж
 

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

 

Вот примерный вид рисунка печатных проводников для переноса на плату:

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



Я давно использую ТОЛЬКО поверхностный монтаж всех компонентов устройства, в том числе и не предназначенных специально для этого. 

 

Я не сверлю отверстия в плате -
обычно и кроме крепежных отверстий.

 

 

Для рисования схем и "разводки" (размещение компонентов на плате и прокладка соединяющих дорожек) печатной платы устройства рекомендую 

мощная и очень популярная у электронщиков программа рисования схем и "разводки" (размещение компонентов на плате и прокладка соединяющих дорожек) печатной платы устройства:

EAGLE  

Она бесплатна для плат достаточно большого размера! 

Программа автоматически размещает компоненты на плате и 
может развести дорожки сама! 

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

На сайте вы можете скачать дополнительные библиотеки электронных компонентов и различные микроконтроллерные проекты со схемами и печатными платами выполненными в этой программе. 

Очень рекомендую!

 

Еще :

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

 

 

 

 

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

в интернете много описаний этой технологии! Google.com рулит...


я делаю :

Дорожки уверенно!  от 0.1 мм !

Зазоры уверенно!  от 0.25 мм !

Зазоры 0.2 мм требуют процарапывания в некоторых местах.

 

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

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

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

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

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

 

4) 

Моё ноу-хау в этом методе, возможно
и позволяющее уверенно получать дорожки 0.1 мм таково: 
 
НЕ НАДО ТОРКАТЬ ГОРЯЧИЙ УТЮГ ТУДА-СЮДА ! 
 

Вы просто отходите в сторонку от этого "пирога" и нежно включаете утюг в розетку! Он нагревается и сам выключается терморегулятором. Регулятор утюга я ставлю на "3" у моего утюга это 120-130 градусов всего!

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

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

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

К сожалению именно фотослой не дает делать зазоры менее 0.2 мм - он намертво заседает в маленьких зазорах и не желает от туда вымываться!

Остатки бумаги и фотослоя скатываются пальцами в воде - но их бывает мало и лишь в нескольких местах.

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

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

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

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

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

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

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

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

 

Вот и все!   

 

Очень советую заказать профессиональное изготовление платы для серьезного устройства - 
с маской, "зеленкой" - вы получите истинное удовольствие 
от профессионального вида сделанного вами девайса.  

 

 

Назад                              Дальше...

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

 


 

   

 

 

 

 

 

 

 

AT90PWM2, AT90PWM3, ATmega128, ATmega16, ATmega162, ATmega165, ATmega168, ATmega169, ATmega32, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega406, ATmega48, ATmega64, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88, ATtiny11, ATtiny12, ATtiny13, ATtiny15L, ATtiny2313, ATtiny25, ATtiny26, ATtiny28L, ATtiny45, ATtiny85, CAN AVR, LCD AVR, Lighting AVR, megaAVR, Smart Battery AVR, tinyAVR, AT90CAN128, LCD AVR, ATmega169, ATmega329, ATmega3290, ATmega649, ATmega6490, Lighting AVR, AT90PWM2, AT90PWM3, megaAVR, ATmega48, ATmega8, ATmega88, ATmega8515, ATmega8535, ATmega16, ATmega162, ATmega164, ATmega165, ATmega168, ATmega32, ATmega324, ATmega325, ATmega3250, ATmega644, ATmega64, ATmega645, ATmega6450, ATmega640, ATmega128, ATmega1281, ATmega1280, ATmega2561, ATmega2560, Smart Battery AVR, ATmega406, tinyAVR, ATtiny11, ATtiny12, ATtiny13, ATtiny15L, ATtiny2313, ATtiny25, ATtiny26, ATtiny28L, ATtiny45, ATtiny85, AVR123.nm.ru, AVR, at90s2123, at90s8535, at90s8515, ATmega ATtiny pic16f84 pic16f628 pic12c508 pic16 pic12 pic18 pic, VB, source code, проекты, электроника, обучение, Курс, Начинающим, Из рук в руки, изучить электронику, микроконтроллер, язык Си, программировать на Си, Atmel, free, CD-ROM, Из рук в руки, программатор, простой программатор pic, простой программатор AVR pic, pic контроллеры, программатор pic, микроконтроллеры pic, программирование pic, avr, avr studio, микроконтроллеры avr, mp3, работа, гарри поттер 6, из рук в руки, работа, из рук в руки

AT76C712 , AT76C713 , AT90CAN128 , AT90CAN128 Automotive , AT90CAN32 , AT90CAN64 , AT90PWM2 , AT90PWM3 , AT90S1200 , AT90S2313 , AT90S2323 , AT90S2343 , AT90S4433 , AT90S8515 , AT90S8535 , ATmega128 , ATmega1280 , ATmega1281 , ATmega16 , ATmega161 , ATmega162 , ATmega163 , ATmega164 , ATmega165 , ATmega168 , ATmega168 Automotive , ATmega169 , ATmega2560 , ATmega2561 , ATmega32 , ATmega323 , ATmega324 , ATmega325 , ATmega3250 , ATmega329 , ATmega3290 , ATmega406 , ATmega48 , ATmega48 Automotive , ATmega64 , ATmega640 , ATmega644 , ATmega645 , ATmega6450 , ATmega649 , ATmega6490 , ATmega8 , ATmega8515 , ATmega8535 , ATmega88 , ATmega88 Automotive , ATtiny11 , ATtiny12 , ATtiny13 , ATtiny15L , ATtiny2313 , ATtiny25 , ATtiny26 , ATtiny28L , ATtiny45 , ATtiny85


 

Hosted by uCoz