Начало изучения микроконтроллеров AVR

Вот и я наконец дорос до микроконтроллеров. Давно хотел заняться, да все никак не получалось. К тому же у нас их нет в продаже, в единственном радиомагазине даже резисторов не продают, вот как…

Для начала закупился на icdarom самым необходимым.
(все картинки ниже кликабельны)


Далее по плану был STK 200/300 программатор. Процесс его создания в картинках ниже.









ЛУТить на новеньком принтере одно удовольствие, с легкостью получились дорожки 0,1мм (крестики по углам платы).
Заодно поупражнялся в создании двухсторонней платы, до этого как-то не приходилось.
Кстати с smd я раньше тоже дела не имел, боялся както))
Но оказалось совсем не страшно, напротив, понравилось жутко (все, теперь полностью на smd перехожу).

А тут вот такая макетка с Attiny2313, и наверное уже классика, конечно же мигание светодиодами)))
(Кстати буду очень рад, если дадите схемы отладочных плат, для изучения.)



На этом пока и все.
Можете посоветовать, что почитать для начала, с чего начинать вообще, ну и советы там всякие давайте.
Всем спасибо.
  • +2
  • 03 августа 2011, 23:12
  • Bonio

Комментарии (45)

RSS свернуть / развернуть
Неслабо ты затарился. Пакетиков целая гора.

Мне тут тоже через несколько недель должна коробка прийти. Деталек на 50тыр О_о я охренею ее разбирать.
+2
Я тоже удивлен этой картине (у меня за 2 года накопилось разве что пара килограмм компонентов/плат)! Но 50тыр — обалдеть! Ди, а фотка потом будет? :)
0
А чо фотка? Коробка как из под принтера, а внутри штабеля дисплеев в грохотках, палки с процами, бобины с резисторами, Кассеты с сотнями разьемов :)
0
Ну думается мне, многие хотят позырить на коробку с нишняками! Картина ведь воодушевляющая :)
+1
> штабеля дисплеев в грохотках, палки с процами, бобины с резисторами, Кассеты с сотнями разьемов
Давай-давай) Может даже неплохая обоина выйти)
+1
Комплектуха на пинборд и другие серийные проекты?

Так-то я у них затаривался на 4.5кр, тоже подобная гора получилась. Они каждое наименование в своей пакетик кладут, а наименований было около сотни)
0
Ага. Не, у меня наименований около 20 наверное. Но это только там. Еще есть элемент, вот оттуда тоже много. Но он рядом имею возможность брать частями.
0
«Гора» — это к фоткам в посте)
Но на твои фотки я бы тоже посмотрел. И неплохо бы с комментариями что куда)
0
Ого 50тыщ. Тут у меня на 2,5 всего, плюс щас ещё на chipnn хочу заказать коечто, потом на ebay резисторов и кондеров набор, и вобщемто мне этого должно на долго хватить.
0
Классно, у всех бы также аккуратно и основательно с самого начала получалось! Мне свои первые попытки разобраться с микроконтроллером вспоминать страшно :)
Кстати, что за принтер?
0
  • avatar
  • ACE
  • 04 августа 2011, 00:00
Принтер — Xerox Phaser 3140.
0
Эпические запасы такие эпические!
0
… там одни AVR-ки?
0
Не только, там и обвязка вся, кварцы кондеры, кнопки, светики и много чего ещё.
0
Если интересно, могу сфоткать списки.))
0
Лучше скопипасти с сайта.
0
Ок. Вот.
0
Скопипастить, не скриншотнуть)
0
Не хотел сюда список длинный вставлять. Поэтому так.
0
BOX-KA08 что за? Фотки на сайте нету. Алсо, «подложка для кварца» — что, зачем, фото)
0
0
… я имел ввиду, из микроконтроллеров… одни AVR-ки?
0
Да, тиньки и меги.
0
Программатор в печке запекал? Чо то текстолит прям шоколадный стал…
0
Нет, паяльником паял. На фотке просто так получилось. Может остатки флюса под вспышкой блестят))
0
Круто! Я за пять лет и 1/5 этой такой горы не купил. Все из барахла выпаиваю, кроме микроконтроллеров, которые плавают из одного прибора в другой…
0
Парни, помогите разобраться с командами avr!
portc|=0x10
portc&=~0x08
portc&=~0x20
delay_us(10)
portc|=0x20
delay_us(10)
ddra|=(1<<led1)|(1<<led2)|(1<<led3)
каков результат их выполнения?
0
  • avatar
  • Flash
  • 31 августа 2011, 21:23
только не комады АВР, а язык СИ
1. portc = portc OR 0001 0000 (логическое сложение)
2. portc = portc AND 1111 0111 (логическое умножение)
~ — инверсия битов
delay_us(10) — функция задержки. передаваемый параметр — задержка в мс
и лучше вбей в поиск *операции в Си*

ЗЫ была какая-то книга класная для азов, вот тока сейчас вспомнить не могу(
0
отличная ссылка вот — myrobot.ru/stepbystep/pr_mcports.php.
но не могу понять смысл, точннее результат этого набора команд.
например — portc|=0x10 — в портс запишется результат побитного сложения текущего значения прортс и 0000 1010. После второй команды в портс будет 0000 0010, после третьей и четветой тоже самое — 0000 0010. Смысл тогда их писать?
А команду ddra|=(1<<led1)|(1<<led2)|(1<<led3) вообще не могу усвоить… теоретически, понимаю, что выводы ЛЕД устанавливаются на выход… а вот что с чем побитно и как…
0
если ты про пример что постом выше — то по сути…
устанавливаем в 1 4-й бит порта С(справо на лево, счёт с 0)
обнуляем 3-й бит
обнуляем 1-й бит
задержка
устанавливаем (в 1) 1-й бит
задержка
устанавливаем в 1 те биты которые соответствуют лед1,2 и 3 (уже порта А)

увы не понял что именно тоже самое, но 2-ю и 3-ю команды можно бвло и обьеденить, ага
0
почему portc&=~0x20 это «устанавливаем (в 1) 1-й бит»?
portc&=~0x20 — в портс запишется результат побитного умножения текущего значения прортс и инверсии 0000 0010, т.е. 1111 1101, результат такой операции будет то же самое значение, что было до этого в портс — 0000 0010, аналогично, воздействие четвертой команды ничего не изменит в портс — будет тоже самое значение 0000 0010… я чегото не пойму…

и как получается, что (1<<led3) это установка в 1, led3? если 1<<2 это «сдвиг единички влево на 2 бита», то эта команда читается как «сдвиг единички влево на led3 бита»…
0
Стандартные способы манипулирования битами:
VAL |= MASK; — устанавливает в VAL те биты, которые установлены в MASK, остальные не изменяет.
VAL &= ~MASK; — снимает в VAL те биты, которые установлены в MASK, остальные не изменяет.

ddra|=(1<<led1)|(1<<led2)|(1<<led3) — устанавливает биты в ddra, т.е. конфигурирует выводы на выход.

1 << BIT_NUMBER — получает из номера бита битовую маску, например, для 2-го бита маска будет 0000 0100, т.е. единичный бит на 2-й позиции.
0
ну а как из (1<<led3) получает из номера бита битовую маску?
0
led3 должно быть где-то задано, например, так: #define led3 2, это означает, что 3-й LED подключен к выводу 2 порта. A << B — сдвигает A на B бит влево, заполняя младшие разряды нулями (кстати, при сдвиге вправо старшие разряды могут заполняться единицами), т.е. в данном случае сдвигает 1 на 2 разряда влево:
0000 0001 — сдвигаемая единица, операнд A;
0000 0010 — сдвинули на разряд;
0000 0100 — еще раз сдвинули на разряд.
0
задано. #define led3 РВ4…
0
обнуляем 1-й бит
задержка
устанавливаем (в 1) 1-й бит
Пятый. PORTC5. Вторая команда — PORTC3. Первая — PORTC4.
устанавливаем в 1 те биты которые соответствуют лед1,2 и 3 (уже порта А)
Не порта, а DDR'а. Т.е. пины переводятся на выход.
0
ооо, myrobot… именно после того, как я наткнулся на этот сайт, заболел микроконтроллерами
0
Зачем STK200/300? Не найдешь же компа, чтобы зашить первый чип. Или всякие платы-переходники… Плату с COM-портами еще можно взять, лишней не будет. Я считаю, что если есть опыт общения с электроникой (как в данном случае, если праввильно понял), то первый проект должен быть прогер Громова, второй — usbasp, третий — какая-нибудь простая демоплата. Я начал изучать МК сразу с меги16)
0
  • avatar
  • enq
  • 06 октября 2011, 20:43
Ну если есть у человека LPT, то STK200/300 явно лучше всякой нестандартной фигни вроде громова.
Другое дело что я битбанги и неудобные D-SUB на жопе не люблю и вообще ограничился прошивкой проца для USBAVR910 через 5 проводков.
0
А чем плох программатор? Шьет быстро и без глюков, lpt порт в наличии.
Com портов у меня в компе нет, к сожалению. Вернее на материнке то есть один, но он не выведен.
usbasp собирать даже не буду, наслышан про его глюченность, считаю, что этот прогер лучше.
Следующий на очереди у меня клон AVRISP MKII, на at90usb162 который. Детальки для него уже прикупил))
0
Мона было с него и начать, благо он прямо по USB шьется.
Хотя я хочу собрать AVRdoper.
0
А чем он хорош? Usb тоже программный, шить будет наверное не быстрее usbasp.
0
Эмулирует STK500, который вроде как поддерживает любые SPI ISP МК. Поддерживает HVSP. Что со скоростью — хз. Стандартный, студия его подхватывает. Дешевый (мега8, буфер и рассыпуха). Короче, все что мне нужно.
0
Собрал себе USBAsp — Работает год, ни единого фэйла. Не запорол/испортил/итп ни один контроллер. 1 раз обновлял прошивку громовым. Глючность — брехня. И шьет очень быстро, всегда без битых байт(верификация всегда 100%, в отличие от громова). STK200/300 у меня не завелся вообще.
0
Счастливый обладатель LPT порта :)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.