С чего начать программировать микроконтроллеры?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
dinets
Потрогал лапой паяльник
Сообщения: 360
Зарегистрирован: Чт авг 12, 2010 10:16:32

Re: С чего начать изучение контроллеров?

Сообщение dinets »

С чего начинать, в смысле, с каких контроллеров

Лично я начал с Атмелов причом на Асемблере (для тинек всё писал на асме)
Думаю начинать с асемблерасамое оно.
А потом на С.

В универе учили пикам (ну в начале были 51) мне показалось их ассемблер сложнее (например переключение банков регистров вроде в PIC16 просто ужос)

С точки зрения программаторов
На атмел больше вариантов программаторов для начала ( практически безплатно от ЛПТ порта например)
Для многих пиков для прошивки надо 12 В что усложняет процесс прошивки.

По отладчикам картина обратна пиковские отладчики гораздо доступны чем атмеловские.
Отладчик штука полезная особенно для начала, использовал AVRDRAGON (пока не сдох) штука полезная но дорогая и не надёжная.


схемку часов подкинете

не очень хороший подход...
для начала я бы рекомендовал сделать для МК "демоплату" только питане кварц и выход программатора(или сам программатор на борту).
а потом методично добавлял бы разный обвес и учился с ним работать (светодиоды, кнопки семисегментные индикаторы...) при трудностях подглядывал бы в аналогичные решения и так постепенно часы будут готовы.

какую литературу посоветуете купить

всё есть в интернете! согласен что для систематического изучения чего либо нужен какойто курс (план). Единственную книгу которую я читал по теме это Ревич Ю.В. Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера.(только Атмел только асемблер) [url]http://publ.lib.ru/ARCHIVES/R/REVICH_Yuriy_Vsevolodovich/Revich_Yu.V._Prakticheskoe_programmirovanie_mikrokontrollerov_.(2008).[djv].zip[/url]
[url]http://publ.lib.ru/ARCHIVES/R/REVICH_Yuriy_Vsevolodovich/Revich_Yu.V._Prakticheskoe_programmirovanie_mikrokontrollerov_.(2008).[djv-002].zip[/url]

Удачи!
frog
Родился
Сообщения: 5
Зарегистрирован: Пт июн 08, 2012 00:11:52

Re: С чего начать изучение контроллеров?

Сообщение frog »

Всем спасибо за ответы!
По поводу программатора, что на картинке в первом посте - начинать же с чего-то было нужно, а куплен он был в интернете за совсем смешные копейки, правда, описания не было - соответственно цене :) . Вот я и спросил - вдруг кто-то сталкивался с таким. Мне непонятно, с какой программной оболочкой работает этот программатор или с любой, которая поддерживает ATMega8? Не пинайте - повторюсь, в этом деле я - минус 273,16 градуса по Цельсию. Ну а PicKit2 делаю сам, плата готова, осталось только распаять деталюшки.
Схема и плата взяты отсюда, единственное - добавил вторую сторону на плате

Изображение Изображение
Почему уткнулся именно в USB - имею только ноут.
В общем, буду начинать грызть гранит сей науки. :)
ELSE
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт мар 27, 2012 12:40:54
Откуда: Волгоград
Контактная информация:

Re: С чего начать изучение контроллеров?

Сообщение ELSE »

По своему опыту работы с PIC я бы рекомендовал начать знакомиться с именно с PIC18, а не PIC16 и младше. Поясню тем что в PIC18 очень много удобных комманд и многие вещи типа табличного чтения или работы с банками регистров делаются очень просто.
Мне как воздух не хватало очень многих команд особенно блочных операций и когда я переписывал свои проекты с PIC16 и даже с PIC16F18xx (у которого расширенный набор инструкций), то я понял что PIC18 это то что мне нужно.
Я понимаю что скажете что они напичканы и сложны - но я с этим не соглашусь так как от вас никто не требует использовать все их возможности.
Да и цены ... цены на PIC18 ну очень демократичны я считаю и намного выгоднее чем за PIC16. Использую лично полюбившиеся мне PIC18F46K22 и пишу на чистом ASM. С++ не знаю.
Много интересных плюшек есть типа модуля HLVD и т.п. С AVR не сравнивал ибо меня лично все устраивает, как и моих клиентов.
Да и совет такой - не покупайте малоногие пики если хотите прикрутить кучу периферии. Купите сразу многоногое - сделайте все на базе чипа - вы и деньги съэкономите и время на программинг
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: С чего начать изучение контроллеров?

Сообщение ploop »

Вот я и спросил - вдруг кто-то сталкивался с таким. Мне непонятно, с какой программной оболочкой работает этот программатор или с любой, которая поддерживает ATMega8?

Это программатор USB ASP. Работает с любыми AVR, поддерживающими программирование по последовательному интерфейсу (ISP). Работает со многими оболочками, точно могу сказать про avrdude (это консольная программа, но мощная, и под неё есть много графических оболочек).
Если будете использовать что-то другое, ищите в настройках USB ASP, если есть, значит будет поддерживаться.

Покупку данного изделия китайской инженерной мысли одобряю всеми лапами, так как даже если распаять его на детали - выйдет гораздо дороже. Ну и работают они вполне сносно.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: С чего начать изучение контроллеров?

Сообщение BOB51 »

предпочтительно и то и другое
у AVRок своя идеология и структура, у PICушек своя... есть еще MCS51 совместимые...
да и многое зависит от имеющегося в распоряжении компьютерного "железа"
самые дешовые решения сделаны для материнок с LPT, но это вроде уже как "атавизм"
:beer:
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: С чего начать изучение контроллеров?

Сообщение Ser60 »

PIC18 безусловно перекрвает возможности PIC16, но из PIC-ов я-бы советовал начинать именно с последних. Вряд-ли сначала нужно будет что-то большее. Идя вперед малыми шагами, посмотрите потом на последние разработки фирмы- модели PIC16F1xxx. Ну а потом, обязательно почитав про PIC18 для общего развития, советую их пропустить и заняться PIC24.
frog
Родился
Сообщения: 5
Зарегистрирован: Пт июн 08, 2012 00:11:52

Re: С чего начать изучение контроллеров?

Сообщение frog »

ploop писал(а):Это программатор USB ASP. Работает с любыми AVR, поддерживающими программирование по последовательному интерфейсу (ISP). Работает со многими оболочками, точно могу сказать про avrdude (это консольная программа, но мощная, и под неё есть много графических оболочек).
Если будете использовать что-то другое, ищите в настройках USB ASP, если есть, значит будет поддерживаться.

Покупку данного изделия китайской инженерной мысли одобряю всеми лапами, так как даже если распаять его на детали - выйдет гораздо дороже. Ну и работают они вполне сносно.

ploop, спасибо, что ткнули меня носом - там же было написано: USBASP ISP Programmer Adapter - не догадался, что это и есть официальное название адаптера - думал, что это магазин его так "обозвал" - совсем дремучий :))
драйверы нашёл на http://www.fischl.de/usbasp, подошёл вот этот: usbasp.2011-05-28.tar.gz (519 kB), стал и теперь в устройствах видится как USB ASP
ну и там же софт:
AVRDUDE supports USBasp since version 5.2.
BASCOM-AVR supports USBasp since version 1.11.9.6.
Khazama AVR Programmer is a Windows XP/Vista GUI application for USBasp and avrdude.
eXtreme Burner - AVR is a Windows GUI Software for USBasp based USB AVR programmers

в общем, для самой первой пробы и знакомства с контроллерами, буду искать схемку чего-либо и пытаться прошить её.
а вот и простая схемка часов
И всем ребятам, ответившим - спасибо за советы - приму к сведению!
Аватара пользователя
Bear2011
Друг Кота
Сообщения: 13253
Зарегистрирован: Ср апр 06, 2011 09:58:13
Откуда: Кузбасс

Re: С чего начать изучение контроллеров?

Сообщение Bear2011 »

frog

Насчет того что лучше AVR или PIC тут однозначного мнения быть не может Каждому-свое или на вкус и цвет фломастеры разные. А начать лучше по-моему с чтения книг. Или вот http://easyelectronics.ru/category/avr-uchebnyj-kurs Все разжевано и очень доступно по-моему
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: С чего начать изучение контроллеров?

Сообщение akl »

frog писал(а):...в общем, для самой первой пробы и знакомства с контроллерами, буду искать схемку чего-либо и пытаться прошить её.
а вот и простая схемка часов...
Думаю, нужно подыскать более полный проект - со схемой и исходником. Разобраться в исходнике имея перед глазами схему гораздо полезнее простого чтения книг. :oops:
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: С чего начать изучение контроллеров?

Сообщение ploop »

а вот и простая схемка часов

Можете попробовать, но сама схема не грамотна. Там токоограничительные резисторы нужны на каждый сегмент.
Так же советую открыть нашу обучалку, и попробовать помигать светодиодом самостоятельно. Это интереснее во много раз :)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: С чего начать изучение контроллеров?

Сообщение Jack_A »

ploop писал(а):Можете попробовать, но сама схема не грамотна. Там токоограничительные резисторы нужны на каждый сегмент.

Точно. А потом удивляются - а чегой-то у меня порты вылетают ? :(
vano11
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Вс дек 20, 2009 09:44:51
Откуда: 016RU

Re: С чего начать изучение контроллеров?

Сообщение vano11 »

А еще можно обходится одним программатором PicKit2 и прошивать им и PICи и AVRы. Легким движением руки (перепрошивкой) PicKit2 превращается в AVRISP-mkII. Совсем недавно появился этот проект http://elena-march.narod.ru/. Автор в какой то теме здесь заявлял о своем проекте, но он (проект) остался совершенно незамеченным. У меня есть фирменный PicKit2 и я им начал прошивать и AVRы. Советую :)) .
frog
Родился
Сообщения: 5
Зарегистрирован: Пт июн 08, 2012 00:11:52

Re: С чего начать изучение контроллеров?

Сообщение frog »

Всем доброго времени суток!
Пытался читать умные книги - в голове образовалась "сборная" каша из всех известных мне съедобных злаков, а мож даже несъедобные примешались, масла, увы, нет :))

Пока для себя я определил следующее:
----------
1. нужно остановиться на каком-то конкретном несложном ходовом народном контроллере, ну или на двух: народном AVR и народном PIC. Какие бы Вы присоветовали в качестве несложных ходовых народных?

2. насколько возможно - максимально изучить их даташиты, я усвоил из прочитанных глав книг и просто статей по МК - архитектуру контроллера нужно знать и понимать. Попутный вопрос - можно ли найти даташиты или подобные даташитам описания MK на русском языке, в английском я не очень... конечно, есть куча всевозможных переводчиков, но...

3. скачать "Протеус" - уже скачал и поставил. версия 7.10 SP0, русифицированная. На простецком уровне успешно пользовался Мультисимом - определённые ассоциации есть.

4. Видимо, всё же буду начинать с Бейсика, видел очень похожий по синтаксису на ДОСовский, но повторюсь - в голове всё перемешалось и к своему стыду не запомнил, для AVR он или для PIC, но похож был почти один в один.

5. установить компиляторы Бейсика для обоих видов контроллеров - AVR и PIC, потом попробовать, с каким из них легче легче пойдут азы изучения. Есть ли подобные простецкие русифицированные компиляторы с Бейсика?

6. для начала делать всё это в "Протеусе" - зажигать и гасить светодиоды и пр.

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

Уважаемые Гуру (гуру - без иронии говорю), если не затруднит, то ответьте хотя бы на некоторые из моих вопросов.
Да и вообще, ход моих мыслей и направление действий - более-менее верны?
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: С чего начать изучение контроллеров?

Сообщение Ser60 »

frog писал(а):Видимо, всё же буду начинать с Бейсика

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

frog писал(а):Установить компиляторы Бейсика для обоих видов контроллеров

Это путь в никуда или игра в детство. Хотите язык высокого уровня - изучайте С, но сначала проще всего пойдет на ассемблере если хотите вникнуть в архитектуру.

Народныe МК из серии PIC - 16F628, 16F684, 16F685, 16F689, 16F883, из серии AVR - ATTINY2313, ATMEGA8, ATMEGA48.
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: С чего начать изучение контроллеров?

Сообщение coredumped »

Ser60 писал(а):сначала проще всего пойдет на ассемблере если хотите вникнуть в архитектуру.

Поддержу на 100 процентов. Начнете с языков высокого уровня - так и не поймете как работает МК. Будет для Вас "черный ящик", который "почемуто не работает".
Насчет ATtiny2313 - вкусность в том, что при копеечной цене имеет неплохое оснащение, включая UART. Очень хороший выбор для старта!
Все будет только лучше, в крайнем случае - хуже.
brutal
Открыл глаза
Сообщения: 47
Зарегистрирован: Вс июн 10, 2012 22:43:19
Откуда: РФ, г. Курск

Re: С чего начать изучение контроллеров?

Сообщение brutal »

Если новичок, то стоит начать с PIC... Возьмите какой-нибудь простенький камень (например из PIC16F), скачайте даташит и в путь. И ещё... Пишите на ассемблере - так вы лучше узнаете внутреннее устройство вашего микроконтроллера. Тем более что у PIC не больше 3-4 десятков команд (у AVR их за сотню).

Лично я, имея PIC16F84A, разобрался с ним за пару дней. К концу первого дня я уже писал для него программки на ассемблере.
Tais sa gueule et écoute un silence
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: С чего начать изучение контроллеров?

Сообщение ploop »

Да что PIC, что AVR - без разницы, просто по последнему больше материала в сети. А что с ассемблера надо начинать тоже поддерживаю. При том архитектура этих восьмибиток настолько проста, что на ассемблере пишется как на бейсике (пока проект маленький).
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: С чего начать изучение контроллеров?

Сообщение Frogfot »

coredumped писал(а):Насчет ATtiny2313 - вкусность в том, что при копеечной цене имеет неплохое оснащение, включая UART. Очень хороший выбор для старта!

Тогда уже лучше ATmega8(48) - почти то же самое + ADC + SPI + TWI + ног больше, возможностей выше крыши :)
Хорошему коту и в декабре - март :)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: С чего начать изучение контроллеров?

Сообщение Jack_A »

ploop писал(а): А что с ассемблера надо начинать тоже поддерживаю.


Не собираясь начинать в очередной раз полемику "Asm vs C"? , 20 лет занятия МК-ми говорят мне что на С нужно пис`ать если :
а) тебе нужно разок помигать диодами и забыть МК как кошмарный сон или
б) в МК ориентируешься, как на собственной кухне и стал таким крутым программером, что пишешь по десятку мегадивайсов в месяц, и тебе некогда заниматься оптимизацией кода, бо тайм is мани.

Dixi
ppp
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Ср мар 02, 2011 20:05:39
Откуда: Карельский перешеек

Re: С чего начать изучение контроллеров?

Сообщение ppp »

frog, есть еще один путь. Опытные радиолюбители, имеющие дело с МК, о нем не вспомнят. Он им не интересен. И скорее всего, даже поморщатся, когда услышат, но я, оказавшись не так давно в такой же ситуации, как и Вы, пошел именно по нему. Это не совет последовать им же, а просто напоминание о том, что и он существует.

Это - среда разработки программ для МК FlowCode компании Matrix. У разработчика есть версии и для PIC, и для AVR, и для ARM. На их сайте есть рабочая демо-версия только под один МК, можно сначала поиграться с ней и оценить, а потом уже принимать решение о покупке. Знание какого-либо языка совсем не требуется, там просто в визуальном редакторе составляете из блоков алгоритм программы и задаете параметры для каждого блока. Но, с другой стороны, есть возможность посмотреть исходные коды своей (составленной из "кубиков") программы и в С, и в асме. В самом начале программа запросит у Вас модель МК и потом просто не даст Вам наделать глупостей, Вы не сможете заставить делать контроллер то, чего он в принципе не может, тем самым оградив от грубых ошибок. Т.е. и даташит не всегда нужен, всё что может указанный контроллер, программа и так знает и даже перед Вашими глазами всегда держит картинку с цоколевкой Вашего текущего МК. И что было немаловажно для меня - программа среди многих прочих разговорных языков, поддерживает и русский.

Как я выбирал между PIC и AVR? Да никак. Просто сначала нашел схему устройства, которое было бы полезным в хозяйстве. Первым оказался тестер полупроводниковых приборов на ATmega8. Сделал программатор под Atmel'евские MK, разобрался как и чем заливать чужие прошивки для AVR, что такое фьюзы и с чем их едят. Сделал еще несколько разных полезностей на AVR. Так выбор и определился.

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

Тем, кто уже собрался закидать меня гнилыми помидорами, напомню: 50 лет, это уже тот возраст, когда все чаще не остается без внимания информация о средней продолжительности жизни в нашей стране :). И тратить то, что отведено, на глубокое изучение, чтобы потом виртуозно применять на практике только для своих поделок - ну не всегда целесообразно, можно банально не успеть дойти до практики, а хочется :).
Ответить

Вернуться в «Теория»