INDUCTION HEATING

Индукционный нагрев для всех.
Текущее время: 28 мар 2024, 12:53

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 04:43 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Эта статья для тех, кто делает первые шаги в освоении микроконтроллеров AVR. На эту тему написано огромное количество статей и сообщений на форумах. Тем не менее, первые шаги обычно самые трудные. По сравнению с обычным программированием, при работе с микроконтроллерами возникают некоторые «отягчающие обстоятельства», связанные с необходимостью переноса кода программы во flash-память чипа и настройка режимов его работы путем установки так называемых фьюзов. Данные «прописи» написаны для того, чтобы облегчить первые шаги новичков в этом деле.
--------------------------
Работаем на ПК с операционной системой Windows. Кроме этого предполагается, что сделаны следующие обязательные (!) предварительные шаги:

1. Куплен или изготовлен самостоятельно программатор USBasp. С помощью этой штуки мы будем «прошивать» flash-память и фьюзы микроконтроллера.
2. Естественно, должен быть скачан и установлен драйвер для него.
3. Скачена и установлена последняя версия программы WinAVR. С помощью нее мы будем компилировать нашу тестовую программу, написанную на языке C.
4. Есть в наличии какой-нибудь простой текстовый редактор (типа Блокнот), не создающий в сохраняемом файле никакой вспомогательной информации, кроме чистого текста.
5. Скачана и установлена программа для прошивки микроконтроллера. В данном случае речь пойдет о программе Khazama AVR Programmer.

Ну а теперь - за дело!
-------------------------------
Собираем на макетке вот такую схему, как во вложении. Внешне макет может выглядеть, например, вот так, как на снимке ниже.


Вложения:
11_Scheme.png
11_Scheme.png [ 18.22 Кб | Просмотров: 164 ]
Комментарий к файлу: Внешний вид макета
12_Maket.JPG
12_Maket.JPG [ 333.21 Кб | Просмотров: 182 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 04:49 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Запускаем текстовый редактор (Блокнот), пишем нашу тестовую программу и сохраняем ее в какой-нибудь рабочей папке под именем Main.c. В эту же папку поместим Makefile. (его можно взять в архиве этой статьи - во вложении к этому посту). Makefile – это просто файл с набором инструкций и параметров для компиляции программы. В тестовой программе ничего хитрого нет. Она ничего не делает (бесконечный пустой цикл), но предварительно устанавливается определенный режим работы одного из периферийных устройств микроконтроллера Attiny (16-разрядный TIMER1), так что с пина 15 чипа можно снимать меандр с частотой 1 Гц. Подробно комментировать работу программы здесь смысла нет, т. к. наша задача не научиться программировать на C, а - только освоить сам процесс создания работающей на микроконтроллере программы: от написания кода на языке высокого уровня (в данном случае на C) до прошивки flash-памяти микроконтроллера и установки его фьюзов. Поэтому, если совсем лень, готовый текст можно просто взять в этом же архиве статьи.


Вложения:
Комментарий к файлу: Пишем текст программы в Блокноте
21_Write_C.png
21_Write_C.png [ 168.23 Кб | Просмотров: 345 ]
Комментарий к файлу: Архив статьи
Archive.zip [6.81 Кб]
Скачиваний: 313
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 04:52 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Теперь зайдем в нашу рабочую папку (т. е., сделаем ее текущей) и в командной строке фалового менеджера напишем cmd. Появится консоль. В приглашении пишем ”make all”, вот как на первом рисунке во вложении.

Потом нажимаем ”Enter” и через некоторое время (если не наделали ошибок) получаем в рабочей папке кучу файлов, среди которых есть и Main.hex. Это — так называемый «файл прошивки». Ну а в консоль будет выведена информация о ходе и результате компиляции (в этой же консоли будут указаны ошибки, если они есть). См. второй рисунок во вложении.


Вложения:
22_Make_All.png
22_Make_All.png [ 131.7 Кб | Просмотров: 223 ]
23_Make_All_Done.png
23_Make_All_Done.png [ 154.24 Кб | Просмотров: 209 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 04:55 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Теперь нам нужно записать код программы, находящийся в hex-файле, во flash-память микроконтроллера. Или, как говорят, «прошить» чип. Для этого подключаем программатор к ISP-разъему на нашем макете и втыкаем USB-разъем программатора в соответствующий порт ноутбука. Если драйвер программатора все-же не установлен — самое время это сделать. Картина может быть приблизительно такой, как на снимке во вложении:


Вложения:
Комментарий к файлу: Макет с программатором подключены к USB-порту компьютера и готовы для прошивки
234_Loading_Hex.JPG
234_Loading_Hex.JPG [ 183.47 Кб | Просмотров: 217 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 05:01 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Запускаем Khazama AVR Programmer и загружаем наш hex-файл (Main.hex) в буфер программатора при помощи соответствующей кнопочки. Эта кнопочка обведена красным на первом рисунке во вложении.
----------
После этого, с помощью другой кнопочки, мы перенесем программу из буфера программы во flash-память микроконтроллера. См. второй рисунок во вложении.
----------
Через некоторое время прошивка закончится и мы увидим сообщение об этом. См. третий рисунок во вложении.
----------
Светодиод на макете начнет мигать. Но мигать будет очень медленно. Частота мигания будет окло 0.0625 Гц (период — около 16 сек). В чем же дело? Дело в том, что в микроконтроллере есть как бы «перепрограммируемые перемычки», которые называются фьюзами при помощи которых устанавливаются основные режимы работы микроконтроллера. Сделанные на заводе установки «заставляют» работать мкроконтроллер от внутреннего генератора, а не от внешнего кварца, который мы установили на макетной плате. Значит нужно «поправить» фьюзы. Мы затронем еще ряд фьюзов для других целей, но сейчас это не важно.


Вложения:
Комментарий к файлу: Загружаем hex-файл в буфер
24_Load_Hex.png
24_Load_Hex.png [ 68.09 Кб | Просмотров: 178 ]
Комментарий к файлу: Пишем буфер во flash-память МК
25_Write_Hex.png
25_Write_Hex.png [ 69.26 Кб | Просмотров: 158 ]
Комментарий к файлу: Процесс закончен успешно
26_Write_Hex_OK.png
26_Write_Hex_OK.png [ 72.01 Кб | Просмотров: 163 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 05:06 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Эта же программа ( Khazama AVR Programmer) позволяет работать и с фьюзами. Для этого нажимаем кнопочку с «замочком» (см. первый рисунок во вложении).

В результате появится панель для работы с фьюзами. Для того, чтобы считать фьюзы, которые в данный момент установлены, нажмем на этой панели кнопку “Load All”. При этом программа считает с микроконтроллера состояние фьюзов на текущий момент. Они будут отмечены флажками в соответствующих позициях (см.второй рисунок во вложении).


Вложения:
Комментарий к файлу: Панель для работы с фьюзами
27_Set_Fuses.png
27_Set_Fuses.png [ 68.25 Кб | Просмотров: 166 ]
Комментарий к файлу: Значения фьюзов считаны и показаны на панели
28_Read_Fuses.png
28_Read_Fuses.png [ 223.69 Кб | Просмотров: 314 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 05:13 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Установим или снимем флажки, так, чтобы они соответствовали требуемым значениям, указанным в таблице, которая находится в комментарии к тестовой программе. Вот как показано на первом рисунке во вложении. Внимание!!! Перед тем как нажать кнопку «Write All» проверьте еще раз так ли стоят все флажки. Ощибки этой операции бывают очень трудно устранимыми!

Ну а теперь жмем кнопку «Write All».
-------------------
Через некоторое время фьюзы будут установлены, о чем программа не замедлит нам сообщить (см. второй рисунок во вложении).
Смотрим на светодиодик на макете - мы увидим, что мигать она стал чаще. С частотой около 1 Гц. Теперь МК работает от кварца 16 МГц, установленного на макете. Итак, требуемые фьюзы установлены.


Вложения:
29_Write_Fuses.png
29_Write_Fuses.png [ 223.92 Кб | Просмотров: 271 ]
30_Write_Fuses_OK.png
30_Write_Fuses_OK.png [ 227.92 Кб | Просмотров: 227 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 05:18 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Ну вот мы и справились с фьзами микроконтроллера. Для того, чтобы убедиться, что фьюзы действительно установлены так, как мы хотели, можем еще раз нажать кнопку "Read All" и считать фьюзы с МК. Делаем это и убеждаемся в том, что так все и есть.

Ну что же, поздравляю с первым "боевым вылетом"! :good2:


Вложения:
31_Read_Fuses_OK.png
31_Read_Fuses_OK.png [ 223.67 Кб | Просмотров: 243 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 13:32 
Не в сети
Аватара пользователя

Зарегистрирован: 28 фев 2013, 15:54
Сообщений: 844
Откуда: Москва
А почему никто не пользуется CodeVisionAVR? Очень удобный редактор-компилятор, с подсветками-шаблонами-линковщиками. Прошивает прямо из редактора, не нужно никаких make-файлов. Фьюзы прошиваются оттуда же. Все эти муторные make-файлы - основное препятствие для новичка. Сам долго не решался начать изучать микроконтроллеры, пока нормальный редактор не нашёл.

Пробная версия CVAVR ограничивает объём кода на 4 кб. Пиратские версии есть в сети на каждом шагу. Если кого напрягает связываться с пиратами, то лицензия стоит 200 баксов, что в принципе доступно даже студенту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 14:37 
Не в сети
Аватара пользователя

Зарегистрирован: 12 фев 2013, 18:17
Сообщений: 285
Откуда: Красноярск
Кубриков писал(а):
А почему никто не пользуется CodeVisionAVR?
Ну почему же никто? Многие пользуются... Но, по большому счету - это, конечно, просто дело привычки. Кто-то привык к интегрированным средам, кто-то - к консоли. На относительно простых проектах (а на ATtiny2313 сложные вряд ли бывают :nea: ) производительность практически одинакова.
------------------------
Ну а если планируется какая-нибудь серьезная работа с младшими AVR, то все равно datasheet на МК становится главной "настольной книгой", а всякие визарды и прочие автоматические генераторы кода превращаются в абсолютное зло. Кроме того, не все интегрированные среды работают с любыми программаторами. В этом смысле программатор USBasp далеко не самый толерантный девайс. Поэтому все равно задачи написания программы и прошивки часто приходится разделять. Поэтому мне, например, на C для ATtiny2313 как-то удобнее работать в связке "консоль и Notepad++", а для ассемблера - в бесплатной AVRStudio. Хотя там, в принципе, и на C можно писать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как быстро начать работать с микроконтроллером ATtiny2313
СообщениеДобавлено: 26 мар 2013, 16:16 
Не в сети
Аватара пользователя

Зарегистрирован: 28 фев 2013, 15:54
Сообщений: 844
Откуда: Москва
Не не, генераторами кода нельзя пользоваться ни в коем разе, это страшная дрянь. После них ничего не понятно.
В CVAVR можно ассемблерную вставку врезать, и писать и на Си, и на асме. Вот так:

#asm
......
#endasm

Разделять программирование и прошивку - слишком геморройно, особенно на этапе отладки.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB