Автор Тема: Сводная тема по МК AVR  (Прочитано 1435 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Сводная тема по МК AVR
« : Сентября 07, 2011, 05:40:02 am »
Возьму на себя смелость и создам сводную тему по МК. Т.к. в последнее время всё чаще и чаще они стали упоминаться на форуме и в примочко строении МК могут быть очень полезны.
Предлагаю описывать тут необходимые для старт-аппа вещи.

И так любой МК надо программировать. Программаторов существует великое множество и у новичка глаза разбегаются.
Самый простой программатор - это пять проводков и пять сопротивлений с LPT порта, однако LPT порт есть далеко не везде, да и сам такой программатор далеко не безопасен.
Следующий по сложности программатор Громова
http://easyelectronics.ru/avr-shag-pervyj-programmator.html
с подскаски камкада @ research
 я собрал данный программатор и опробовал его.
Хотя этот программатор и имеет множество недостатков, но в силу своей простоты он отлично подходит для начинающих.
Однако в большинстве случаев просто прошить микроконтроллер мало, нужно ещё и выставить верным образом биты конфигурации Fuse. И вот тут для новичка начинается полная каша. Дело в том, что в половине программ для программирования МК снятая галочка означает, что FUSE установлен, а в другой половине наоборот. На сколько я понимаю данная путаница сложилась по историческим причинам т.к. в былые времена FUSE не хранились в EEPROME или FLASH , а были некими перемычками внутри микроконтроллера и прожигались только один раз. Вот и получалось, что пока перемычка цела FUSE не установлен, а когда его устанавливаешь перемычка пережигалась. Однако от такого исторического экскурса новичку не легче, а между тем не верной установкой FUSE можно легко сделать МК не доступным для программирования.
К примеру для МК Atmega 8 за установку типа тактирования отвечают 4 FUSE:
CKSEL0
CKSEL1
CKSEL2
CKSEL3
Так вот для того что бы сказать МК, что он должен тактироваться от внутренего генератора, но с внешним кварцен, необходимо выставить эти FUSE биты в 1111, но если в программе для прошивки FUSE биты инвертированы, то может сложится ситуация, когда новичек по ошибке выставит их в 0000 а в этом случае МК будет думать, что ему нужно тактироваться от полностью внешнего генератора и не будет работать без подачи тактового сигнала на ножку XTAL1. И прошить его тоже не удастся, пока его  внешне не за тактируеш. А найти в домашнем хозяйстве тактовый генератор на несколько мегагерц не всегда просто.
« Последнее редактирование: Сентября 08, 2011, 07:46:02 am от Sanoend »

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Re: Сводная тема по МК
« Ответ #1 : Сентября 07, 2011, 05:54:06 am »
Итак возвращаемся к программатору Громова, для прошивки МК через этот программатор используется программа UniProf. Так вот в UniProf FUSE НЕ инвертированные!!!

В любом случае есть способ как узнать инвертированность прямо перед прошивкой. В даташите на любой МК описанно заводское расположение битов конфигурации.
К примеру Atmega8 по умолчанию работает от внутренней RC чепочки на частоте 1 МГц и FUSE задания метода тактования выглядят так
CKSEL0 = 1
CKSEL1 = 0
CKSEL2 = 0
CKSEL3 = 0
перед прошивкой МК можно считать эти данные и понять инвертированны ли данные FUSE в используемой для прошивки программе или нет.

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




Для того что бы ATMEGA 8 работала от внутреннего генератора, но с внешним кварцем нужно выствать в UniProf галочки на против фузов
CKSEL0,CKSEL1,CKSEL2,CKSEL3.
А вообще вот калькулятор фьюзов http://www.engbedded.com/fusecalc
Чуть позже я перечитаю, то что тут написал и исправлю возможные неточности, а так же постараюсь описать более подробно типы FUSE битов и назначение каждого из них по отдельности.
Если конечно это кому нибудь здесь надо.
« Последнее редактирование: Сентября 16, 2011, 06:14:50 am от Sanoend »

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК
« Ответ #2 : Сентября 07, 2011, 09:21:20 am »
Для целей управления (даже с использованием миди) вполне достаточно точности внутреннего RC генератора.
Достоинство этого - отсустствие ВЧ сигналов за пределами кристалла.

research

  • Гость
Re: Сводная тема по МК
« Ответ #3 : Сентября 08, 2011, 12:49:13 am »
Раз уж все к AVR свелось, то надо в шапке написать, что ностальгически не дадим авр помереть.

Как подцепить питашку, сброс и программатор есть на сайтах про роботов, в поиске с год-два назад давал ссылку. Там картинки красивые.

Потом печатаем даташит, весь, на 80-100 листов.

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

Учебный курс di:halt весьма не плох, пока курс не пересел на его собственную демо-плату. Но понятней, чем на том сайте инфу вы врядли найдете.

Советую гуглить даташиты на МК, опрос клавиатуры, динамическую индикацию.
Если нужна сводная таблица МК под свои нужды, то можно тупо сделать поиск в интернет магазинах типа Digikey.com .

будет выведена таблица типа число ног, тактовая, число каналов АЦП и т.п., и ссылка на даташит. Искать удобнее, чем у производителя.

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

Еще покусился на RST7 веб сервер, но пока киросину нехватает сделать, да пока чесался, прогресс в цивилизованном мире не стоял на месте, сейчас продают, собаки, МК+PHY в одном кирпиче и меньше, чем за 5 баксов :(  А я за мегу отдавал 5-7 и за PHY в районе 3-5.

Да, рекомендую-таки дешевый (600-700р) USB-SPI программатор http://www.masterkit.ru/info/magshow.php?num=361

для тех, кто ценит свое время, не богат деньгами и не любит сопли. USB есть везде, помехи ему не грозят. Автор - хорошо знает свое дело, вроде бы Protoss, но его почему-то забыли упомянуть товарисчи в мастерките.

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК
« Ответ #4 : Сентября 08, 2011, 06:01:07 am »
Цитировать
Еще покусился на RST7 веб сервер, но пока киросину нехватает сделать, да пока чесался, прогресс в цивилизованном мире не стоял на месте, сейчас продают, собаки, МК+PHY в одном кирпиче и меньше, чем за 5 баксов   А я за мегу отдавал 5-7 и за PHY в районе 3-5.

Ну RTL8201BL/CP пока ценой в доллар и остался. С Mega168 - да, цена младших ARM-ов в инкарнации LPC заметно меньше стала. Будет немного времени - я порт своего стека (точнее, стек уже портирован у меня, надо портануть рукопашный MAC-уровень) сделаю на какой-нибудь LPC11xx - и опять будет экстремально дешевое решение :)
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК
« Ответ #5 : Сентября 08, 2011, 06:03:15 am »
Цитировать
Да, рекомендую-таки дешевый (600-700р) USB-SPI программатор http://www.masterkit.ru/info/magshow.php?num=361

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

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Re: Сводная тема по МК AVR
« Ответ #6 : Сентября 08, 2011, 07:53:09 am »
@ research
"Первое, что надо сделать - это не трогать их" к сожалению это не всегда возможно. У меня первый проект был моргалка светодиодом и там FUSE были не нужны. А вот уже второй проект во всю обменивался с компом по RS232, а там без внешнего кварца совсем не как. В этой теме планирую на выходных дополнить два верхних поста, описать назначение каждого бита конфигурации и привести картинки, какие комбинации использовать нельзя. Что бы МК оставался доступен для программатора Громова. Ну а дальше наверное если и буду дополнять, то только полезными ссылками типа вот этой
http://www.engbedded.com/fusecalc/ - калькулятор FUSE.
Хотя согласен что полезность созданной мной темы на данном форуме весьма сомнительна, но может пригодится и кому-нибудь кроме меня.
« Последнее редактирование: Сентября 08, 2011, 07:53:56 am от Sanoend »

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #7 : Сентября 08, 2011, 08:19:18 am »
Я уже писал, что для RS232 (±3.3% допустимое отклонение baud rate по стандарту) вполне достаточно точности встроенного RC генератора.

ivana

  • Сообщений: 3
  • GtLab.Net forever!
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #8 : Сентября 08, 2011, 10:01:07 am »
Цитировать
А вот уже второй проект во всю обменивался с компом по RS232, а там без внешнего кварца совсем не как.
Простите, но позволю себе не согласиться. У меня отлично обменивается на внутреннем РЦ генераторе, учитывая даже то, что я этот RS232 эмулировал сам дрыгая ножкой с любой задаваемой скоростью бод. Даже излишне точно - с точностью до такта при 9.6Мгц. Сам по себе стандарт RS232 был придуман как помехоустойчивый (в свое время) для длинных линий, и на той же линии помехи и джиттер и размазывание фронтов дадут куда бОльшие отклонения, чем нестабильность внутреннего генератора МК.
У того же Евстифеева (который в свою очередь просто переписал даташит :) ) хорошо расписано и разрисовано в картинках сам протокол RS232 и как АВР-ки его используют.

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Re: Сводная тема по МК AVR
« Ответ #9 : Сентября 08, 2011, 10:43:01 am »
@ Ivana возможно если контроллер не чем не занят, то оно и прокатит, но у меня он обрабатывал полученные данные и выводил на 12 программных ШИМ, от внутреннего генератора восьмая мега работает максимум на 8 мегагерцах и этого быстродействия в принципе хватало, но через час непрерывной работы у девайса ехала крыша и были ошибки обмена с COM портом, с внешним кварцем на 14,745 мегагерц всё работает хорошо уже в течении года.

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #10 : Сентября 08, 2011, 11:07:46 am »
Сам байт орабатывается апппаратно, если конечно RS232 не программный, так что сбои у тебя в программе а не в физическом RS232.
Кстати и программный с большой точностью делается на capture/compare таймера (по его прерываниям).

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Re: Сводная тема по МК AVR
« Ответ #11 : Сентября 08, 2011, 12:33:07 pm »
@ KMG возможно и у меня в прогамме была ошибка, у меня ещё совсем мало опыта так что спорить не буду.

research

  • Гость
Re: Сводная тема по МК AVR
« Ответ #12 : Сентября 08, 2011, 07:33:57 pm »
Цитировать

Ну RTL8201BL/CP пока ценой в доллар и остался. С Mega168 - да, цена младших ARM-ов в инкарнации LPC заметно меньше стала. Будет немного времени - я порт своего стека (точнее, стек уже портирован у меня, надо портануть рукопашный MAC-уровень) сделаю на какой-нибудь LPC11xx - и опять будет экстремально дешевое решение :)

У нас в питере в этом плане полный облом. Tiny13 в дипе найти за 3-3.5 доллара считается удачей. Вообще его найти - удача :)

Что до того программатора, он дешев, работает, тыкается в USB, готовое решение.

Проблем с прошивкой пока не наблюдал, verify ни разу не выдала косяк. Не идеален, но для хобби лучше соплей на LPT

Вощем, как и предполагалось, сводной теме пипец :)

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #13 : Сентября 08, 2011, 08:08:55 pm »
Цитировать
У нас в питере в этом плане полный облом.

Ну оно конечно сложный случай, если по одному корпусу покупать. А так 168х валом на складах во всяких Компелах и т.д.

Но все-таки LPC1313 со склада MT-System за 72рэ в розницу куда красивее смотрится.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #14 : Сентября 08, 2011, 08:20:10 pm »
Цитировать
Цитировать
Tiny13 в дипе найти за 3-3.5 доллара считается удачей.
Ну оно конечно сложный случай, если по одному корпусу покупать. А так 168х валом на складах во всяких Компелах и т.д.
Но все-таки LPC1313 со склада MT-System за 72рэ в розницу куда красивее смотрится.
Места LQFP48 и DIP8 на плате конечно занимают примерно одинаково, но не всем понравится шаг 0.5мм.

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #15 : Сентября 08, 2011, 08:39:10 pm »
Цитировать
Места LQFP48 и DIP8 на плате конечно занимают примерно одинаково, но не всем понравится шаг 0.5мм.

Если быть до конца корректным, то я сравниваю ATmega168 (ибо разговор зашел о моем проекте веб-серверка) и LPC.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

research

  • Гость
Re: Сводная тема по МК AVR
« Ответ #16 : Сентября 08, 2011, 11:16:21 pm »
Вот это как раз небольшая проблема, полно переходных макеток.

Народ сам травит платы под tqfp ЛУТом, значит паябельно (я на заре паяльника по глупости любил делать дорожки 0.2).

Глянул цены.
LPC1313 поштучно 164р. Ну, как мега 168, по сути. На заказ, естессно. В чиде - 360р. Традиционно.

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Сводная тема по МК AVR
« Ответ #17 : Сентября 09, 2011, 04:54:29 am »
Цитировать
Глянул цены.
LPC1313 поштучно 164р.

Вот тут надо покупать LPC - http://www.mt-system.ru/index.php

Сегодня, правда, нет в наличии на складе, но будут завтра (причем, я это практически буквально). Ибо это настоящие официальные дистрибьюторы NXP в России.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

research

  • Гость
Re: Сводная тема по МК AVR
« Ответ #18 : Сентября 09, 2011, 12:40:34 pm »
спасибо, присмотрюсь. Обычно, такие конторы не любят физиков, а юриками прикрываться, проще 1-2 штуки по завышенной цене купить.

Sanoend

  • Сообщений: 1241
  • GTLab - forever!
    • Просмотр профиля
Re: Сводная тема по МК AVR
« Ответ #19 : Сентября 12, 2011, 12:09:59 pm »
Немного дополнил начало темы. Уважаемые форумчане давайте не будем обсуждать в этой теме вопросы закупки и т.п. просьба удалить такие сообщения.