Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Микроконтроллеры AVR от Atmel.Введение |

13.11.2007, 06:12
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Микроконтроллеры AVR от Atmel.Введение
Что такое микроконтроллеры в общих чертах отлично рассказал MegaDeth (респект). Но должна быть свобода выбора.
Микроконтроллеры AVR и PIC приблизительно равны по параметрам. Но все же AVR немного лучше (с моей субъективной стороны): дешевле, производительнее, ПРОЩЕ в освоении.
Например, есть такая модель ATmega8. Цена - 1,5у.е. Частота - 16 МГц. 32 8-ми битных регистра общего назначения. 1 Кб оперативной памяти. 512 байт флеш памяти, 8 Кб памяти под программу. Плюс АЦП, ЦАП и еще много полезной мелочи. И к тому же 23 линии ввода вывода. А еще можно перезаписывать программу ну почти неограниченное количество (10 000 раз).
Теперь самое приятное - для его программирование кроме софта нужно лишь 5 проводков. Не надо паять никакого программатора, просто подключаем к LPT пятью проводками.
Программировать лучше на С. Дока на avr123.nm.ru и там же ссылка на компилятор http://www.hpinfotech.ro/cvavre.zip
Неплохой консольный программатор здесь - http://ln.com.ua/~real/avreal/http://ln.com.ua/~real/avreal/
Ссылки:
atmel.com - сайт производителя, документация на английском
gaw.ru - документация на русском
avr123.nm.ru - отличный самоучитель.
Теперь жду вопросов. И есть предложение - сделать маленький девайсик с нуля. С полным разбором каждого элемента. Ну только нужны предложения - полезные и простенькие.
ПС: На AVR реализовал: систему управление температурой (обогреватель в комнате), светильник с изменением яркости в зависимости от освещение (чтобы ночью клавиатуру было нормально видно), шахматные часы, и на диплом систему поиска жучков и еще много никому не нужных мелочей.
ПСС: Предложение для MegaDeth - можна сделать один и тот же девайс но паралельно на AVR и PIC?
|
|
|

13.11.2007, 10:58
|
|
Moderator - Level 7
Регистрация: 19.10.2007
Сообщений: 225
Провел на форуме: 1260519
Репутация:
298
|
|
Отлично! Развивается здоровая конкуренция!  ) Как человек свято преданный пикам, AVR никогда не занимался, так что будет очень интересно посмотреть.
Для начала хотелось бы увидеть тот же "Hello, World!", как и в параллельной теме MegaDeth - несколько светодиодов мигающих с кратной частотой. Пожалуйста схему в студию, текст программы на С. Убедительная просьба давать подробные комментарии к строкам, связанным с конфигурацией контроллера.
|
|
|

14.11.2007, 06:08
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Далее
Все что дальше буду писать относится к микроконтроллеру ATmega8.
Надеюсь скачали компилятор (ссылка выше) и таблетку к нему. Если таблетку не найдете, то пишите – помогу. (кстати, модераторы, может разрешите мне прикреплять файлы, без этого неудобно  ).
Итак, запускаем CodeVision. Создаем новый проект, дальше нас спрашивают – будем ли мы использовать мастера. Конечно, жмем ОК. Дальше в вкладке Chip выбираем наш МК, а в поле частота вводим 1 МГц (по умолчании внутренний генератор настроен именно на 1 МГц). Дальше идем на вкладку Ports – и всем линиям на порте В указываем – out. Дальше выбираем файл-генерировать, сохранить и выход. Вводим имена файлов и постоянно жмем ОК.
Ухты! Как много кода сгенерировано. Но на самом деле его можна очень сильно урезать.
Теперь на основе этого кода напишем программу для для мигания светодиодами. Тоесть 8 светодиодов, горят через один и раз в секунду меняются местами - эфект бегущих огоньков.
Текст программы:
Код:
//будем использовать МК mega8
#include <mega8.h>
//нужны функции для роботы с задержками
#include <delay.h>
void main(void)
{
//порт B будет работать на выход
DDRB=0xFF;
//в порт B записываем 10101010b
PORTB = 0xAA;
while (1)
{
//инвертируем значения на выходе порта B
PORTB ^= 0xFF;
//ждем одну секунду
delay_ms(1000);
};
}
Схему подключения рисую, опубликую позже
|
|
|

14.11.2007, 06:32
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Схема

какая гадость рисовать в Paint, но под рукой ничего другого нету.
Квадратик красного цвета нужно повторить к каждой линии порта В - PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7
И хорошая новость, что никакой другой обвязки не надо. После подачи питание МК сразу начнет работать на частоте 1Мгц.
На днях помещу программатор, чтобы можна было каждому попробовать.
Пишу с расчетом на какие то минимальные знание в МК, но если будут вопросы или что-то не будет получатся отвечу.
|
|
|

14.11.2007, 09:42
|
|
Moderator - Level 7
Регистрация: 19.10.2007
Сообщений: 225
Провел на форуме: 1260519
Репутация:
298
|
|
Зачетно! Пока все понятно.  На счет схем: я рисую в P-CADе 2004. Помоему, если контроллерами заниматься, к его изучению все равно придешь в конце концов. Давай, presidentua, ждем продолжения! 
|
|
|

14.11.2007, 17:51
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Согласен P-CAD нужен будет. Но сейчас в основном пользуюсь Proteus. Хотя это отличный симулятор, но принт-скрин дает отличные рисунки. Выше же его не использовал чтобы показать внешнюю обвязку полностью ( Proteus некоторые вещи сам добавляет ).
ПС: Ночью размещу программатор. Ждем-с-с-с
|
|
|

14.11.2007, 19:05
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 208
Провел на форуме: 1038169
Репутация:
184
|
|
presidentua, чуваккк =))) рад видеть новых микронотроллерщиков =)))))))
Теперь самое приятное - для его программирование кроме софта нужно лишь 5 проводков. Не надо паять никакого программатора, просто подключаем к LPT пятью проводками.
я так понимаю высоковольтное программирование?...+12в? не ну я знаю есть фича такая что подвод питания, перевод в режим программирвания, данные, такт, масса - 5 проводов всего (собсна больше и ненадо, протоколы одинаковые то =))) )
но я бы советовал резисторы воткнуть на 4,7 Ком...
и вообще юзать LVP (Low Voltage Programming)
я разрабатываю девайс сейчас "мигающее сердце" на светодиодах... я взял мощный контроллер с 22 линиями, чтобы отдельным светодиодом можно было управлять без заморочек с разширителями ввода вывода, ктомуже ШИМ аппаратный есть. контроллер PIC16F873A... это конечно как по мухе из пушки но я хотел деффке на денюху подарить - всеравно не успел
кстати хороший подарок на 8 марта будет =)))
я печатку 10 раз переделывал. я решил что небуду играничивать ток светодиодов резисторами, пусть ярко горят, но контроллер может не выдержать (для всего порта макс 25 Ма) светодиод один жрет 3 Ма примерно... вообще их дофига и больше но если брать слаботочные и яркие то разоришся =)))
вывод - ставить транзисторные ключи...
вот такая сумашедшая идея у меня =))))))))
еще у меня в задумках просто сделать Блок управления аудиомикросхемами (TDA 7313, аудиоконтроллер. по I2c управляется, регулирует громкость, бас,тембр, балланс двух своих каналов) наподобие того что у мя ща усилке но усовершенствовать надо, например экран цветной с часами и пр.
в мечтах у мя собрать ЦАП и юзать цифровой звук (S\PDIF)
|
|
|

14.11.2007, 21:45
|
|
Moderator - Level 7
Регистрация: 19.10.2007
Сообщений: 225
Провел на форуме: 1260519
Репутация:
298
|
|
Да, Мега, просторное ты поле деятельности задумал. Молодец! 
Ты давай в пиковскую тему возвращайся! Ато переметнулся на сторону вероятного соперника, понимаете ли.  ))
|
|
|

16.11.2007, 06:08
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Программатор

Просто, не правда ли. Но к тому же я никогда не использовал ограничительных резисторов, но вам советую использовать. Линию РЕСЕТ тоже не использую - на схеме ставлю кнопочку которая заземляет РЕСЕТ, тоесть нужно программировать - нажал кнопку и потом запустил программу на ПК. Программируется при питании 5 вольт, у меня все от ЮСБ.
На это вводная квази-статья о АВР закончена. Целью не было рассказать все, а лишь показать простоту и то что КАЖДЫЙ может попробывать сделать интересные девайсы и это действительно просто (почти  ). А дальше читайте специальную литературу. Ее в нете полно.
Теперь жду лишь вопросов. Если будут какието проблемы спрашивайте. Пожелание тоже принимаются, только не очень глобальные 
|
|
|

16.11.2007, 06:24
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
MegaDeth, ты что мысли читать умеешь. Я уже месяц собираюсь сделать для девченки сердце, но никак не начну. Я хотел сделать Сердце которое стучит и мигает, но частота его "биения" зависит от расстояния к ближайшему обьекту. Тоесть если девченка подходит к сердцу, то оно начинает чаще биться. А если берет в руки, то играет какую-то мелодию. Давай обьединимся и сделаем какой-то симбиоз из наших идей, только с разными МК. Заведем тему и будем пошагово раздумывать реализацию программирование, схемы и другое. Конечно за поддержки Animal (
Ты давай в пиковскую тему возвращайся! Ато переметнулся на сторону вероятного соперника, понимаете ли. ))
и других форумчан.
Что думаешь?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|