С чего начать программировать микроконтроллеры?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
А какой смысл простые вещи делать на 32-битных камнях, которые в этих делах выезжают только за счет большой скорости? Смысл мигалку делать на 32-битном камне?
Re: С чего начать программировать микроконтроллеры?
Alexeyslav писал(а):А какой смысл простые вещи делать на 32-битных камнях, которые в этих делах выезжают только за счет большой скорости? Смысл мигалку делать на 32-битном камне?
Куда выезжают ?
И не пофиг тебе на 8 или 128 битах делать, если это не дороже и не сложнее ? А даже наоборот.
Кроме 5 вольтового питания, могущих небольшой мощности мосфеты открывать ногами без драйвера, не вижу ни одного плюса у старых 8 биток. И то, для узкого применения.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Плюсы у них - очень простая разработка. А 32-битки для простых задач там где не нужно перемножать по нескольку чисел за раз слишком сложны в программировании простых вещей. Стоит то оно дешевле, но времени отнимает гораздо больше - а время это очень ценный ресурс.
Re: С чего начать программировать микроконтроллеры?
Alexeyslav писал(а):А 32-битки для простых задач там где не нужно перемножать по нескольку чисел за раз слишком сложны в программировании простых вещей.
Ерунда абсолютная. И я тут это неоднократно демонстрировал.
У меня сомнения, устриц то пробовал ?
Re: С чего начать программировать микроконтроллеры?
Alexeyslav - я полностью поддержу точку зрения Satyr-а. Помню как его "пинали" на форуме подобными Вашим "аргументами" года 3-4 назад. За это время многие здесь освоили ARM и выступлений против них поубавилось практически до нуля (по крайней мере они мне на глаза не попадались). Все кто освоил эту технологию здесь убедились, что Satyr был полностью прав, агитируя за неё. Да и Вы также думать будете когда всерьёз попробуете ARM. И дело совсем не в скорости ARM и их способности перемножать числа. Никто не мешает тактировать ядро на малых скоростях порядка 4 мгц и ниже. Попробовав, поймёте, что неправы также и насчет сложности разработки программ под ARM. Я смотрю у Вас на сайте все программы для AVR на АСМе. У семейства CM0 всего 56 инструкций, меньше чем у мег. Их даже выпускают в легко паяемых корпусах. Более того, некоторые производители (например, TI, Freescale) ставят в модели ARM начального уровня практически ту-же периферию их из 8/16-битных моделей, тем самым еще более облегчая переход. Наконец, ARMы некоторых производителей могут работать и от 5В, если это кому-то ещё надо. Делать сегодня что-то на AVR - чипах разработанных более полутора десятков лет назад и с тех под мало чем изменившихся - это быть динозавром. А советовать их начинающим приравниваю к политической диверсии (не хотите ARM посмотрите, например, на MSP430 - об AVR потом и не вспомните). Я учил своих студентов программированию 8/16/32-бит архитектур, и новичкам действительно не важно сколько там бит. Они воспринимают ARM не тяжелее и не легче чем другие архитектуры. Стоит лишь начать.
- afz
- Опытный кот
- Сообщения: 744
- Зарегистрирован: Сб дек 22, 2012 08:17:42
- Откуда: Караганда, Казахстан
Re: С чего начать программировать микроконтроллеры?
Оно-то все, конечно, так, только у АВР есть одно бесспорное достоинство - наличие совершенно бесплатной АВР Студии 4.19. А тут ставь что-то пиратское, а если бесплатное - то монструозное... Ну и прошивка пятью проводками, хотя сейчас это уже не так актуально, поскольку портов LPT уже, практически, не осталось. Впрочем, простейший преобразователь уровней на компорт, которые еще есть, PonyProg и вперед! А еще АВР у нас, допустим, валяются в любой лавке, стукнула идея в голову, тут же пошел, купил и развлекайся, а любые АРМ надо заказывать, со сроком доставки месяц-два, захочешь побыстрее, так за доставку попросят раз в 5-10 больше цены этого АРМ.Ser60 писал(а):Alexeyslav - я полностью поддержу точку зрения Satyr-а. Помню как его "пинали" на форуме подобными Вашим "аргументами" года 3-4 назад. За это время многие здесь освоили ARM и выступлений против них поубавилось практически до нуля (по крайней мере они мне на глаза не попадались). Все кто освоил эту технологию здесь убедились, что Satyr был полностью прав, агитируя за неё.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: С чего начать программировать микроконтроллеры?
afz писал(а):только у АВР есть одно бесспорное достоинство - наличие совершенно бесплатной АВР Студии 4.19. А тут ставь что-то пиратское...
для STM32F0/L0, заменителей тини и атмега, IDE Keil с хорошим компилятором от самого производителя ядра (ARM) сейчас совершенно бесплатен
http://www.compel.ru/2015/03/20/keil-uv ... ranicheniy
afz писал(а):Впрочем, простейший преобразователь уровней на компорт, которые еще есть, PonyProg и вперед!
и потом сразу к фуз доктору. В STM32 имеется встроенный бутлоадер - можно шить тоже через компорт с преобразователем уровней или через USB2RS232. Отладчик/программатор для STM можно купить у китайцев на али за 2$ или использовать встроенный в Дискавери или легко спаять самому. Сколько стоит отладчик для AVR?
afz писал(а):А еще АВР у нас, допустим, валяются в любой лавке
У нас STM теперь валяются в любой лавке
- КРАМ
- Друг Кота
- Сообщения: 25175
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: С чего начать программировать микроконтроллеры?
Проблема СТМ32 (да и всех АРМов, а так же блекфинов-шарков или ТМС320) в том, что если не требуется непрерывно строчить один проект за другим (есть и иные задачи проектирования - например, внешняя и достаточно сложная схемотехника или общие идеи построения изделий), то каждый раз тратишь туеву хучу времени на восстановление информации о нюансах архитектуры ядра и периферии. По сути разбираешься заново с даташитами, где некоторые моменты толком не разжеваны и приходится постигать эмпирически.
Простейшие архитектуры ничего этого не требуют.
Простейшие архитектуры ничего этого не требуют.
Re: С чего начать программировать микроконтроллеры?
afz писал(а):только у АВР есть одно бесспорное достоинство - наличие совершенно бесплатной АВР Студии 4.19.
Чего ???
Ну, в принципе на этом можно и заканчивать слушать некомпетентные доводы.
Re: С чего начать программировать микроконтроллеры?
afz писал(а):Впрочем, простейший преобразователь уровней на компорт, которые еще есть, PonyProg и вперед!
А для залива АРМов по твоему что нужно ?
Нафига со знаниями абсолютный ноль о предмете лезть спорить и чтото доказывать ?
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Друзья, Судьба решила кое-что за меня, и ближайшее моё будущее будет посвящено STM32. С ними я пока медленно и потихоньку разбираюсь, но возник один глупый вопрос... Чисто на вскидку, реальность ли -- Linux на Cortex-M3, или это всё глупости?
Re: С чего начать программировать микроконтроллеры?
КРАМ писал(а):По сути разбираешься заново с даташитами, где некоторые моменты толком не разжеваны и приходится постигать эмпирически.
Простейшие архитектуры ничего этого не требуют.
Давай на чистоту - в простейших архитекторах просто нет того, с чем ты можешь разбираться, а можешь нет на 'более сложных архитектурах'.
Никто палкой тебя не гонит инициализировать PLL - можешь на скорости, которая как правило ~1/6-1/12 от максимальной, RC генератора работать -))
Сложно с прерываниями, DMA ? тормози как на 8 битках поллингом - все в твоей власти -))
Да и принципы работы и инициализации схожей периферии на всем одинаковы. Ну а знать наизусть глупости типа конкретных адресов регистров - это уж к аутистам.
Re: С чего начать программировать микроконтроллеры?
просто КОТ писал(а):Linux на Cortex-M3, или это всё глупости?
В M ядрах нет MMU, так что настоящий линукс не пойдет.
Но есть а-ля линуксы, типа ucLinux и подобных, которые предоставляют API, делающий возможным легкое портирование линуксовых программ на MCU
Линуксы - это A ядра. Вприницпе тоже ничего сложного, но плату делать дорого. В LQFP чтото еще у фрискейла есть из MPU, а есть ли держат ли они SDRAM или бывает ли DDR2 не в BGA (в BGA плата вообще дорого) не помню, но 4 слоя это теоретический минимум, а с BGA не меньше 6 -))
Да и зачем тебе на MCU линус ? Я и на A5 без линукса и без ОС вообще обхожусь -))
Последний раз редактировалось Satyr Ср окт 07, 2015 09:40:14, всего редактировалось 2 раза.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Лично для меня нет никакого смысла осваивать новое, т.к. темпы появления этого нового (и, соответственно, устаревания современного) таковы, что успеть не реально. разрабатывают ядра/контроллеры/архитектуры целые компании с неограниченным бюджетом и огромными коллективами, а осваивать все это приходится в одну голову в свободное от работы и домашних забот время.
к моменту, когда я стал чувствовать себя абсолютно уверенно в 51-ом семействе уже вовсю набирали обороты AVR. к моменту, когда в AVR я стал ориентироваться свободно, уже вовсю распространились ARM-ы. я все время в аутсайдерах. но смысла стремиться в лидеры нет никакого. этот смысл есть только для профессионалов. кстати, уровень этих профессионалов так же весьма и весьма невысок, ибо в глубину они так же, как и я, не успевают погрузиться.
мне кажется, холиварить совершенно ни к чему.
любитель всегда обречен на отставание от прогресса. гнаться за ним любителю бессмысленно. в выборе МК для освоения следует ориентироваться не на "мировые тренды", а на более приземленные критерии - у каждого свои. например, решающим может быть факт наличия "бесплатного" учителя - человека, готового быстро отвечать на любые вопросы и давать компетентные советы. любителю это будет важнее любого быстродействия, доступности, простоты монтажа и любых иных характеристик МК.
к моменту, когда я стал чувствовать себя абсолютно уверенно в 51-ом семействе уже вовсю набирали обороты AVR. к моменту, когда в AVR я стал ориентироваться свободно, уже вовсю распространились ARM-ы. я все время в аутсайдерах. но смысла стремиться в лидеры нет никакого. этот смысл есть только для профессионалов. кстати, уровень этих профессионалов так же весьма и весьма невысок, ибо в глубину они так же, как и я, не успевают погрузиться.
мне кажется, холиварить совершенно ни к чему.
любитель всегда обречен на отставание от прогресса. гнаться за ним любителю бессмысленно. в выборе МК для освоения следует ориентироваться не на "мировые тренды", а на более приземленные критерии - у каждого свои. например, решающим может быть факт наличия "бесплатного" учителя - человека, готового быстро отвечать на любые вопросы и давать компетентные советы. любителю это будет важнее любого быстродействия, доступности, простоты монтажа и любых иных характеристик МК.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: С чего начать программировать микроконтроллеры?
ARV писал(а):Лично для меня нет никакого смысла осваивать новое, т.к. темпы появления этого нового (и, соответственно, устаревания современного) таковы, что успеть не реально.
Мысли шире - гнаться за конкретным контроллером - это, действительно, для профессионалов.
Новое ядро ? Там не революционное, а эволюционное развитие. M0, M0+, M3, M4 - для разработчика, по большому счету, разница в добавляющихся по немногу инструкциях и скорости. Ну, с M7 поинтереснее...
А архитектура - то, что принципиально - так она уж больше 10 лет как появилась (я про Cortex, ARMv5 и ниже будем считать чем то другим, там идейно иного хватает).
10 лет - это дикий темп ?
- КРАМ
- Друг Кота
- Сообщения: 25175
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: С чего начать программировать микроконтроллеры?
Любезный Сатир, не нужно фантазировать относительно меня.
Речь не о том, что я не знаю как работать с ДМА или таймерами.
Просто в тех же ПИК24-дсПИК33 вопросы инициализации периферии, включая клоки, ДМА, ядра, и всего прочего структурно выглядят много-много проще, чем у АРМов.
И связано это с тем, что все что сделано специально, то гораздо более юзабельно, чем полуфабрикат. Правда, специальные решения менее универсальны и более дОроги, но всякому овощу - своя грядка.
Я не испытываю никакого восторга от работы с СТМ32. Все как обычно. У меня не появилось никакой технической мотивации по переводу иных своих изделий на СТМ. Хотя я упорно пытался ее найти. Финансовый выигрыш если вообще есть - ничтожен, технические параметры порой даже хуже, но чаще идентичны ДЛЯ МОИХ ПРИМЕНЕНИЙ.
Однако, как только целесообразность СТМ оказалась выше, я немедленно его и использовал.
Речь не о том, что я не знаю как работать с ДМА или таймерами.
Просто в тех же ПИК24-дсПИК33 вопросы инициализации периферии, включая клоки, ДМА, ядра, и всего прочего структурно выглядят много-много проще, чем у АРМов.
И связано это с тем, что все что сделано специально, то гораздо более юзабельно, чем полуфабрикат. Правда, специальные решения менее универсальны и более дОроги, но всякому овощу - своя грядка.
Я не испытываю никакого восторга от работы с СТМ32. Все как обычно. У меня не появилось никакой технической мотивации по переводу иных своих изделий на СТМ. Хотя я упорно пытался ее найти. Финансовый выигрыш если вообще есть - ничтожен, технические параметры порой даже хуже, но чаще идентичны ДЛЯ МОИХ ПРИМЕНЕНИЙ.
Однако, как только целесообразность СТМ оказалась выше, я немедленно его и использовал.
Re: С чего начать программировать микроконтроллеры?
Задумайтесь о том, что ничего не вечно и те же AVR рано или поздно кончатся.
Ну и как для идея для более конкретных размышлений - буквально летом Atmel приступил к выпуску сверхлегких - как по цене, так и по корпусам и обвязке МК на Cortex-M0 - ATSAMDxxx.
Долго ли аттини и атмеги выдержат внутреннюю конкуренцию ?
Как давно появлялось чтото новое линейках аттини и атмега ?
Ну и как для идея для более конкретных размышлений - буквально летом Atmel приступил к выпуску сверхлегких - как по цене, так и по корпусам и обвязке МК на Cortex-M0 - ATSAMDxxx.
Долго ли аттини и атмеги выдержат внутреннюю конкуренцию ?
Как давно появлялось чтото новое линейках аттини и атмега ?
Re: С чего начать программировать микроконтроллеры?
КРАМ писал(а):Просто в тех же ПИК24-дсПИК33 вопросы инициализации периферии, включая клоки, ДМА, ядра, и всего прочего структурно выглядят много-много проще, чем у АРМов.
Ты уверен, что тут элемент привычности не доминирует ? -))
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Сатир, то есть тупо теоретически я могу запустить на 64-ногом клопе почти настоящий ПК? Меня вот именно это цепляет.
И да, если у МК есть Direct Memory Access интерфейс, с возможностью подключения внешней памяти... Это никак не сгладит отсутствие MMU? Я просто слабо себе пока представляю оба этих "предмета". Но читаю даташит и офигеваю...
И да, если у МК есть Direct Memory Access интерфейс, с возможностью подключения внешней памяти... Это никак не сгладит отсутствие MMU? Я просто слабо себе пока представляю оба этих "предмета". Но читаю даташит и офигеваю...
Re: С чего начать программировать микроконтроллеры?
просто КОТ писал(а):Сатир, то есть тупо теоретически я могу запустить на 64-ногом клопе почти настоящий ПК? Меня вот именно это цепляет.
нуу, смотря что считать настоящим.
боюсь, чисто по ногам не хватит 64 -)))
тупо интерфейсы сдрам, флеша, дисплея, пары дырок УСБ да питания - это больше
на вскидку, самое мелкое и простенькое, чтото типа Freescale i.mx23x - там ного от 160, хотя корпус LQFP
И да, если у МК есть Direct Memory Access интерфейс, с возможностью подключения внешней памяти... Это никак не сгладит отсутствие MMU?
memory management unit. если на пальцах это то, что на x86 реализует 'защищенный режим'. Виртуализацию адресного пространства и изоляцию процессов.
На МК, говоря образно, выше аналога Win95 ты не прыгнешь
На МК начиная с M3 бывает (и чаще есть, чем нет) MPU - там появляются сущности приоритетного и не приоритетного кода и изоляция (8 вроде) зон памяти друг от друга со шлюзованием через супервайзера.
Но адресное пространство общее для всех задач. Вобщем такое ультра-легкое решение для хоть какой безопасности несколькоих процессов под ОС реального времени
Последний раз редактировалось Satyr Ср окт 07, 2015 10:02:07, всего редактировалось 1 раз.

