Gtlab Forum

Тематический => Негитарная электроника => Тема начата: Sanoend от Сентября 07, 2011, 05:40:02 am

Название: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 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. И прошить его тоже не удастся, пока его  внешне не за тактируеш. А найти в домашнем хозяйстве тактовый генератор на несколько мегагерц не всегда просто.
Название: Re: Сводная тема по МК
Отправлено: Sanoend от Сентября 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 битов и назначение каждого из них по отдельности.
Если конечно это кому нибудь здесь надо.
Название: Re: Сводная тема по МК
Отправлено: KMG от Сентября 07, 2011, 09:21:20 am
Для целей управления (даже с использованием миди) вполне достаточно точности внутреннего RC генератора.
Достоинство этого - отсустствие ВЧ сигналов за пределами кристалла.
Название: Re: Сводная тема по МК
Отправлено: research от Сентября 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, но его почему-то забыли упомянуть товарисчи в мастерките.
Название: Re: Сводная тема по МК
Отправлено: Rst7 от Сентября 08, 2011, 06:01:07 am
Цитировать
Еще покусился на RST7 веб сервер, но пока киросину нехватает сделать, да пока чесался, прогресс в цивилизованном мире не стоял на месте, сейчас продают, собаки, МК+PHY в одном кирпиче и меньше, чем за 5 баксов   А я за мегу отдавал 5-7 и за PHY в районе 3-5.

Ну RTL8201BL/CP пока ценой в доллар и остался. С Mega168 - да, цена младших ARM-ов в инкарнации LPC заметно меньше стала. Будет немного времени - я порт своего стека (точнее, стек уже портирован у меня, надо портануть рукопашный MAC-уровень) сделаю на какой-нибудь LPC11xx - и опять будет экстремально дешевое решение :)
Название: Re: Сводная тема по МК
Отправлено: Rst7 от Сентября 08, 2011, 06:03:15 am
Цитировать
Да, рекомендую-таки дешевый (600-700р) USB-SPI программатор http://www.masterkit.ru/info/magshow.php?num=361

Вот как раз не стоит. Не везде адекватно работает - это раз. Лучше уж купить AVRISPmkII, если не охота спаять его руками.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 08, 2011, 07:53:09 am
@ research
"Первое, что надо сделать - это не трогать их" к сожалению это не всегда возможно. У меня первый проект был моргалка светодиодом и там FUSE были не нужны. А вот уже второй проект во всю обменивался с компом по RS232, а там без внешнего кварца совсем не как. В этой теме планирую на выходных дополнить два верхних поста, описать назначение каждого бита конфигурации и привести картинки, какие комбинации использовать нельзя. Что бы МК оставался доступен для программатора Громова. Ну а дальше наверное если и буду дополнять, то только полезными ссылками типа вот этой
http://www.engbedded.com/fusecalc/ - калькулятор FUSE.
Хотя согласен что полезность созданной мной темы на данном форуме весьма сомнительна, но может пригодится и кому-нибудь кроме меня.
Название: Re: Сводная тема по МК AVR
Отправлено: KMG от Сентября 08, 2011, 08:19:18 am
Я уже писал, что для RS232 (±3.3% допустимое отклонение baud rate по стандарту) вполне достаточно точности встроенного RC генератора.
Название: Re: Сводная тема по МК AVR
Отправлено: ivana от Сентября 08, 2011, 10:01:07 am
Цитировать
А вот уже второй проект во всю обменивался с компом по RS232, а там без внешнего кварца совсем не как.
Простите, но позволю себе не согласиться. У меня отлично обменивается на внутреннем РЦ генераторе, учитывая даже то, что я этот RS232 эмулировал сам дрыгая ножкой с любой задаваемой скоростью бод. Даже излишне точно - с точностью до такта при 9.6Мгц. Сам по себе стандарт RS232 был придуман как помехоустойчивый (в свое время) для длинных линий, и на той же линии помехи и джиттер и размазывание фронтов дадут куда бОльшие отклонения, чем нестабильность внутреннего генератора МК.
У того же Евстифеева (который в свою очередь просто переписал даташит :) ) хорошо расписано и разрисовано в картинках сам протокол RS232 и как АВР-ки его используют.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 08, 2011, 10:43:01 am
@ Ivana возможно если контроллер не чем не занят, то оно и прокатит, но у меня он обрабатывал полученные данные и выводил на 12 программных ШИМ, от внутреннего генератора восьмая мега работает максимум на 8 мегагерцах и этого быстродействия в принципе хватало, но через час непрерывной работы у девайса ехала крыша и были ошибки обмена с COM портом, с внешним кварцем на 14,745 мегагерц всё работает хорошо уже в течении года.
Название: Re: Сводная тема по МК AVR
Отправлено: KMG от Сентября 08, 2011, 11:07:46 am
Сам байт орабатывается апппаратно, если конечно RS232 не программный, так что сбои у тебя в программе а не в физическом RS232.
Кстати и программный с большой точностью делается на capture/compare таймера (по его прерываниям).
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 08, 2011, 12:33:07 pm
@ KMG возможно и у меня в прогамме была ошибка, у меня ещё совсем мало опыта так что спорить не буду.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 08, 2011, 07:33:57 pm
Цитировать

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

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

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

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

Вощем, как и предполагалось, сводной теме пипец :)
Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 08, 2011, 08:08:55 pm
Цитировать
У нас в питере в этом плане полный облом.

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

Но все-таки LPC1313 со склада MT-System за 72рэ в розницу куда красивее смотрится.
Название: Re: Сводная тема по МК AVR
Отправлено: KMG от Сентября 08, 2011, 08:20:10 pm
Цитировать
Цитировать
Tiny13 в дипе найти за 3-3.5 доллара считается удачей.
Ну оно конечно сложный случай, если по одному корпусу покупать. А так 168х валом на складах во всяких Компелах и т.д.
Но все-таки LPC1313 со склада MT-System за 72рэ в розницу куда красивее смотрится.
Места LQFP48 и DIP8 на плате конечно занимают примерно одинаково, но не всем понравится шаг 0.5мм.
Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 08, 2011, 08:39:10 pm
Цитировать
Места LQFP48 и DIP8 на плате конечно занимают примерно одинаково, но не всем понравится шаг 0.5мм.

Если быть до конца корректным, то я сравниваю ATmega168 (ибо разговор зашел о моем проекте веб-серверка) и LPC.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 08, 2011, 11:16:21 pm
Вот это как раз небольшая проблема, полно переходных макеток.

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

Глянул цены.
LPC1313 поштучно 164р. Ну, как мега 168, по сути. На заказ, естессно. В чиде - 360р. Традиционно.
Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 09, 2011, 04:54:29 am
Цитировать
Глянул цены.
LPC1313 поштучно 164р.

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

Сегодня, правда, нет в наличии на складе, но будут завтра (причем, я это практически буквально). Ибо это настоящие официальные дистрибьюторы NXP в России.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 09, 2011, 12:40:34 pm
спасибо, присмотрюсь. Обычно, такие конторы не любят физиков, а юриками прикрываться, проще 1-2 штуки по завышенной цене купить.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 12, 2011, 12:09:59 pm
Немного дополнил начало темы. Уважаемые форумчане давайте не будем обсуждать в этой теме вопросы закупки и т.п. просьба удалить такие сообщения.
Название: Re: Сводная тема по МК AVR
Отправлено: KROKOZYABR от Сентября 12, 2011, 02:46:22 pm
В последнее время приглянулась софтинка одна. Flowcode называется. Поражает скорость освоения и написания программ. Для разовых задач самое то. Форум на котором можно капнуть инфы: http://www.flowcode.info. Если кому нужно мыльну народную версию, хотя на вышеупомянутом форуме всё есть. Программа разрабатывается для AVR, PIC и ARM микроконтроллеров.
Название: Re: Сводная тема по МК AVR
Отправлено: KROKOZYABR от Сентября 12, 2011, 02:52:29 pm
Замечу еще, что для освоения МК не обязательно сразу искать магазины, где эти самые МК продаются. Есть ведь Proteus, в котором написанную программу можно повиртуалить и обкатать.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 12, 2011, 08:32:42 pm
Протеус глюк ходячий. Например, если рубануть ногу МК на вход и выход, то и АЦП отрубается. А на практике - нет. И это еще цветочки.

Лучше уж ардуину тогда и отладочную инфу гнать на лампочки и RS232

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

Потом можно пересобрать ветку, т.е. сделать новую, зарезервировать первые 5-10 сообщений и их редактировать. А эту ветку грохнуть, если обсуждение рентабельности неугодно.
Название: Re: Сводная тема по МК AVR
Отправлено: KROKOZYABR от Сентября 13, 2011, 04:49:49 pm
Proteus конечно не без греха, но это же все от универсальности этого продукта. И в этом плане у него вряд ли конкуренты есть достойные.  И если старт-ап обсуждается, ума не приложу, зачем arduino нужен, что бы моргнуть светодиодом и щелкнуть кнопкой...???
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 13, 2011, 06:18:55 pm
т.е. заменяем мк за 8 баксов компом за 1000 и софтиной (сколько ноне протеус стоит?) и радуемся дешевому стартапу? дороговато, для моргания лампочками и рулежки релюхами.
Название: Re: Сводная тема по МК AVR
Отправлено: siwang от Сентября 14, 2011, 07:06:36 am
Цитировать
т.е. заменяем мк за 8 баксов компом за 1000 и софтиной (сколько ноне протеус стоит?) и радуемся дешевому стартапу? дороговато, для моргания лампочками и рулежки релюхами.
мк за 8 баксов без компа за 1000 не прошьешь  ;)
Название: Re: Сводная тема по МК AVR
Отправлено: santa от Сентября 14, 2011, 08:31:31 am
 research (сколько ноне протеус стоит?)  ***

 он вобщето  почти бесплатный :D

 то есть полнофункциональный  , но только не разрешает  сохранять  схемки  , но для начала этого и ненадо

Протеус глюк ходячий. **

но тем неменее в  шахматы  играет , и линукс грузится :D, а глюки кажись есть даже  в  софтинах от разработчиков самих чипов
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 14, 2011, 12:17:58 pm
я не говорю, что он совсем ни на что не годный, но лично мне он принес больше неприятностей в свое время. А примеры там красивые, да.

МК за 8 баксов прошьешь без ПК еще как. Смотря что за МК и программатор (толсто намекаю)

Кстати, забыли в шапку вписать любимый многими алгоритм билдер (у меня руки не дошли воспользоваться, но Валентиныч был неплохого о нем мнения). И CV AVR. Кодвижн вроде бы был с неплохим мастером начального конфигурирования, допустим, говоришь ему модель МК, чем собираешься пользоваться (ADC,RS232 и т.п.), тактовую. Он делает стартовый листинг конфигурирования на си. Платный правда. И совсем спрятаться под незнанием архитектуры - не даст.
Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 14, 2011, 01:09:36 pm
Цитировать
с неплохим мастером начального конфигурирования

Не надо пользоваться всякими мастерами. Не так там много кода для инициализации периферии, пугаться не стоит, зато результат в целом лучше - ибо надо сначала достаточно плотно раскурить даташит.
Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 14, 2011, 01:11:46 pm
По поводу протеуса скажу одно - пару раз использовал его для симуляции импульсных источников питания, у которых все управление (в том числе и ШИМ, ООС и т.д.) было в цифре, в микроконтроллере. Млять.... Как же он достал падать без предупреждения.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 14, 2011, 04:15:34 pm
Даташит в начале - эдакий непреподъемный талмуд.
Особенно, когда в мир МК врываешься со скрепкой и шестью проводками от LPT. 
Делаешь по даташиту "все правильно", а периферия не пашет.
Потом берешь CV-AVR, делаешь в нем, сравниваешь.
Бросаешь CV, дальше читаешь талмуд и таки стартуешь железо. Все, CV больше ненужен :)
Название: Re: Сводная тема по МК AVR
Отправлено: siwang от Сентября 15, 2011, 09:36:15 am
Цитировать
МК за 8 баксов прошьешь без ПК еще как. Смотря что за МК и программатор (толсто намекаю)
а на чем ты код писать собираешься и компилить? я аж прям заинтересовался.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 15, 2011, 01:11:22 pm
@ research

Цитировать
Даташит в начале - эдакий непреподъемный талмуд.
Особенно, когда в мир МК врываешься со скрепкой и шестью проводками от LPT. 
Делаешь по даташиту "все правильно", а периферия не пашет.
Потом берешь CV-AVR, делаешь в нем, сравниваешь.
Бросаешь CV, дальше читаешь талмуд и таки стартуешь железо. Все, CV больше ненужен :)


Вот согласен на все 100%!!! При этом так сложно только с первым даташитом, а дальше всё уже в разы проще.
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 15, 2011, 03:08:56 pm
фьюз калькулятор бы сюда надо. В даташите и учебных курсах все понятно, но можно свериться что получилось на листочке с тем, что получилось в калькуляторе:
http://www.engbedded.com/fusecalc

а вообще, тема скатывается к учебному курсу, но не от специалистов, а от чайников для чайников. Имхо, не верно. Давайте лучше искать что есть музыкального для ARM.
и сделали ли на нем уже minimoog за 10 баксов.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 16, 2011, 06:26:27 am
@ research
калькулятор я уже выкладывал. Сейчас ещё к верхнему сообщению прикрепил.

"а вообще, тема скатывается к учебному курсу, но не от специалистов, а от чайников для чайников." - это верно, но оно и не плохо так как объяснение от чайника для чайника понятнее. Главное ошибок не допускать.

"Давайте лучше искать что есть музыкального для ARM." - понимаешь тут какое дело: арм нужно распаять, ОЗУ к нему распаять, флешку. Довольно не подъёмные проект получается для начинающего. А если покупать готовую плату, так там по мимо того, что линукс накатить, консольный ВСТ хост поднять, сам ВСТ эффект запустить нужно будет ещё озаботится хорошими ЦАП и АЦП. И хватит ли производительности что бы это всё в реалтайме работало не понятно. И если даже всё заработает, то получится просто процессор.

ИМХО если и идти по пути цифровой обработки звука на АРМ, то скорее всего придется отказываться от ВСТ и писать эффекты самостоятельно, а это значит что вся прелесть данного устройства теряется.

Я для себя определился, что пока хочу использовать МК, только для цифрового управления, а для этих целей АВР достаточно.

Впрочем подождем мнения @ Rst7 он обработку звука на МК уже пощупал и было бы интересно услышать его выводы. Кстати как там спикерсим на МК?

Название: Re: Сводная тема по МК AVR
Отправлено: Rst7 от Сентября 16, 2011, 08:37:03 am
Цитировать
Кстати как там спикерсим на МК?

Да никак пока. Комплектуха с мая месяца лежит, руки не дошли. Хотя уже пора и заняться, а то последняя построенная голова и каб уже, можно считать, забрана к новому хозяину, опять играть не во что будет по возвращению из командировки ;D
Название: Re: Сводная тема по МК AVR
Отправлено: research от Сентября 16, 2011, 09:50:19 am
надо определиться о каком начинающем идет речь, паяльщике, или МКшнике. В форуме начинающие паяльщики делают фузфэйсы, а в этой ветке все владеют ЛУТом как минимум.

Надо ли внешнюю память и линукс? имхо, врядли, внутренней если есть DMA и 16к+ оперативы, может и хватит. R2R ЦАП как у Boss DD2,3 тоже не проблема, а 10-12бит АЦП может быть есть бортовой. Вот путевые доки с алгоритмами обработки сигналов - действительно надо.
Название: Re: Сводная тема по МК AVR
Отправлено: KROKOZYABR от Сентября 20, 2011, 04:05:51 pm
Для начинающих МК-шников, не владеющих представлением о программировании и вообще цифровых схемах, хотелось посоветовать пару книг:

1) КОД. Чарльз Петцольд. Что называется от простого к сложному. Очень подробно и понятно, без заумных терминов. Начиная с лампочки и батарейки, и заканчивая программированием микропроцессора. Там же и булева алгебра и системы исчисления и цифровые микросхемы и принципы их работы.
2) Микрокомпьютерные системы управления. Первое знакомство. Ёсикадзу Суэмацу. Эта занятная книжица написана таким языком,что хоть детям на ночь читай. В ней уже материал более приближен к микроконтроллерам. Например возможности применения, программирование, обработка данных. И мне кажется данная книжонка может явиться таким катализатором для начинающего. Ибо каждая строчка вселяет уверенности, что все получится. 

Ссылка на упомянутый выше Algorithm Builder: http://www.algrom.net/russian.html

Sanoend, пожалуйста, подбей все ссылки в основной пост, если не трудно.
Название: Re: Сводная тема по МК AVR
Отправлено: Sanoend от Сентября 22, 2011, 01:15:58 pm
@ KROKOZYABR
ссылки обязательно добавлю в основной пост.
Но чуть позже т.к. хочу ещё и сам туда кой-чего по добавлять.