Какой процессор выбрать для освоения.

1Dimon1

Здравствуйте.
Есть небольшой вопросик. Недавно начал заниматься программированием. В качестве подопытного кролика взял ATtiny2313 (литературы много, простенький и т.п.), с ним есть несколько проектов которые уже удачно, на мой взгляд завершены, по крайней мере устройства выполняют возложенные на них функции. Но с этим процом возникали переиодитческие проблемы нехватки либо портов, либо памяти либо и того и другого 😃. вопрос вот в чем на какой процессор можно перейти дальше? Ну как бы следующая ступенька в освоении этого ремесла.

Vovets
1Dimon1:

вопрос вот в чем на какой процессор можно перейти дальше?

ARM? STM32, например.

1Dimon1

Лучше что нибудь из атмела, уточню, програмирую на “Algorithm Builder”, мне проще графическое восприятие алгоритмов 😃

Vovets
1Dimon1:

програмирую на “Algorithm Builder”

Аааа… В этом я не силён. Наш выбор С и RTOS.

DVE

Для 1Dimon1:
Все зависит от того, под какие платформы собираетесь писать.

Если просто изучить программирование - пишите под Windows, тут выбор сред разработки большой.
Если хочется делать под какое-то железо - я бы начал с Arduino (Arduino Mini или Arduino UNO), есть куча готовых плат для самостоятельных проектов, есть куча модулей расширений, система простая и надежная.

STM - отличная штука, с хорошими возможностями отладки, но есть одно “но” - самостоятельно развести плату под такой проц, да и запаять его, мягко говоря, непросто 😃 Посмотрите на размеры кристалла и шаг ножек. А так, возможностей конечно больше чем у AVR, можете купить готовую плату типа STM32F4Discovery и сразу начать писать код.

Про Algorithm Builder - имхо, забейте, лучше старого доброго C/С++ ничего нет 😃 Как только программа станет хоть сколько-то большой, делать ее графически будет совершенно нереально, надо учиться читать и воспринимать нормальный код на нормальном языке программирования.

1Dimon1:

вопрос вот в чем на какой процессор можно перейти дальше? Ну как бы следующая ступенька в освоении этого ремесла.

Я бы купил что-то типа такого:
www.ebay.com/itm/…/291188982194
или
www.ebay.com/itm/…/321442226995

Vovets
DVE:

STM - отличная штука, с хорошими возможностями отладки, но есть одно “но” - самостоятельно развести плату под такой проц, да и запаять его, мягко говоря, непросто

+1. Зато платки Discovery довольно дешёвые и со встроенным программатором-отладчиком, и их можно втыкать в макетки. Для обучения - самое оно. А готовый отлаженный продукт можно уже постараться и развести нормально.

1Dimon1

Вопрос разводки не сильно волнует (не первый год общаюсь с оркадом) и изготовление их для домашних целей тоже не проблема, поэетому размеры чипа не волнуют (главное чтобы не бга - многослойки дома делать сложновато 😃). коды я тоже читать могу, но но это уже на отладке чтобы выкинуть мусор хотя билдер его мало вставляет. а насчет графики - у меня на это свой взгляд (извините так уж вышло но текст для меня сложней переварить чем алгоритм в виде стрелочек и прямоугольничков…). Да и потом сс+ мне нужно будет с нуля начинать - а на это время тоже нужно…

да и еще оин маленький нюанс - недорогой, ну чтоб не жалко было случайно убить (бывает и такое, одну 2313 всетаки укатать успел)

DVE

Если с разводкой проблем нет и хотите что-то “большое и светлое” сильно на вырост, то берите STM. Хотя мне не встречалось “домашних” задач, где бы не хватило функциональности Атмеги, например. DIP-корпус в панельке и впаять и заменить легко.
А вообще, берете сравнительную таблицу процессоров и выбираете камень под нужные задачи, как-то так.

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

PS: Если хотите экзотики и рисовать код графически, попробуйте программировать под ПЛИС 😃 Тоже вполне веселое времяпровождение, хотя практического смысла для себя я так и не нашел…

Dinotron

Ну почему сразу ARMы STMы? Человек же несколько раз сказал 2313! Ну значит нравится. Следовательно AVR. C тини на мегу. Переучиваться вообще не надо. Порты, размер памяти и бортовое вооружение возрастают в арифметической прогрессии от кристалла к кристаллу. До 32 меги можно на дип корпусах сидеть. А там с опытом и до ARMа дорасти.

Syberian

+1 к ПЛИС 😃 от человека, освоившего оба три класса 😃
Сейчас есть уже неплохие макетки с отладчиком и программатором за приемлемую цену типа DE0-nano.
А пресловутые авр-ки можно уместить сразу несколько штук на кристалл, да еще и периферии любой настрогать…

Enigm
1Dimon1:

Лучше что нибудь из атмела, уточню, програмирую на “Algorithm Builder”, мне проще графическое восприятие алгоритмов

Графическое восприятие очень хорошее у Flowcode , и там есть 2 версии авр и пик .
А чего нет в кубиках всегда можно в Си дописать.
Вот глянте . flowcode.info/forum/
Сам часто пользуюсь , ибо для меня воспринимать написание на сях тяжко .

ПЛИС это хорошо , но для простых задач они черезмерно избыточны .
Зачем брать ПЛИС где хватит 8 выводной тиньки или пика.
Поэтому АВР и ПИКИ более универсальны в этом плане.

А пики удобны еще и тем что фьюзами их не убить , а вот АВР ки можно, и без паралельного програмера их не оживить.

И по АВР сразу совет , не трогайте фьюзы RESET и SPIEN дабы не умертвить аврку или тиньку, в этом мне пони прог нравится там их просто нельзя изменить.
Хотя если у вас есть паралельный програмер или фьюздоктор то не сттрашно.

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

DVE:

Про Algorithm Builder - имхо, забейте, лучше старого доброго C/С++ ничего нет Как только программа станет хоть сколько-то большой, делать ее графически будет совершенно нереально, надо учиться читать и воспринимать нормальный код на нормальном языке программирования.

А я на этом нормальном языке , категорически отказываюсь воспринимать конструкции if и ее разновидности, сколько не пытался, ну неудобны они мне для восприятия и напрягают сильно.
Поэтому тоже на графику перешел , я лучше макросы и прочее под себя перепишу, но зато все наглядно и видно.
Хотя всегда смотрю сгенеренный С код , может когда и привыкну к нему )))
Видать долгая работа со схемами наложила свой отпечаток на мое восприиятие ))))

1Dimon1

Спасибо. Я в принципе делаю так: пишу на билдере, тестирую на протэусе, довожу на макете. Ну а далее платка и готовое устройство. Билдер кстати формирует лист файл, где записан ассемблеровский код - можно и его просмотреть если что…

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

Dinotron

Ну с точки зрения железячника опишу: Красавец. Смотрю-наслаждаюсь. Понимаю, что сам так никогда не сделаю. Лежит в долгом ящичке. И (спасибо robozone.su/mrc40/ ). Валяется на столе , прикручен к компу даже через самопальный JTAGmk1 слева, и вот его мне не разу не жаль. Гори хоть синим пламенем-восстановлю! Поэтому если что взбредает в голову автоматически начинаю кодить на нём. Да и лабух я тоже начинающий, да поздно,видимо и лени много. И,бывало, обозрев результат трудов и уныло хмыкнув, я результат заливал в ту же тиньку 2313 просто поменяв заголовок и переназначив порты.

1Dimon1

Ну я сразу делал макетку на 2313… на обчной монтажке… 😃 как правило не запариваюсь с перифирией - ставлю светодиоды и кнопки (если это медленные и исполнительные каналы), ну или ваяю полную схему конкретной части схемы которая жестко участвует в работе программмы (например обвязка АЦП)…

Тестовая платка для работы с датчиком температуры DS18B20 😃 ничего лишнего…

программирую через адаптер для билдера (его описание есть в программе).

Shavelsky

После ATtini - ATmega 8. По сравнению с тинькой - возможностей намного больше. Когда не будет хватать - ATmega 16, хотя плата и навороченней уже будет. Стоят дёшево, для начала лучше брать в DIP корпусах и на панель, пока полностью не освоитесь с программатором и фьюзами - есть вероятность получить “кирпич” с возможностью лечения только “параллельным” программатором. Лично я “пересел” на AVR c PICов - больше нравятся, гибче они как-то, в хорошем смысле. Но PIC неправильными фьюзами не убить - достоинство, особенно когда процессор в планаре, соответственно без панели и при перепайке есть нехорошая вероятность испортить плату. Удачи в выборе и освоении!

Dinotron

Bushi-Do: PIC первый контроллер! 35 команд . Бесплатный софт. Ассемблер увы. Памяти мало, жужжалок бортовых мало. Стоит дорого. Программатор простой.Проц быстрый, но не весёлый. AVR Ну наконец-то. Можно разогнаться! С++ и все команды под него встроенные. Бортовых-море. Куча примеров, библиотек, AVR Studio, про Arduino не ловко вспоминать, но 8 бит ядро. Ограничения. В серьёзных проектах будешь каждый такт считать.MSP430 Техас. 16 бит. Интересная штука. Потребление зачётное. Можно собрать проект как на предыдущих, только при работе от батарейки на неделю. Сам не пробовал-врать не буду. ARM Ну сразу 32. Наилучший вариант для старта для “новорожденного”, чтоб не тащил с собой в будущее наши убогие чемоданы. Хрен убьёшь фузами, несколько источников тактирования с автопереключением, кил памяти, про I/O можно и не вспоминать. Оно в несколько раз умнее меня. Я сдаюсь. 😃. А про ПЛИС что сказать? Оно вроде как и не контроллер. Из него можно создать все вышеперечисленные контроллеры вплоть до интела 286 лишь бы вентилей хватило, и запустить на нём аутентичную программу, да ещё и расставить входы-выходы по ножкам как бог на душу положит. Или склепать жёсткую логику в армейском стиле. Высший класс. Но начальный вход суровый для просто попробовать по деньгам, как минимум. Всё это ИМХО

DVE

Отладочные платы надо брать на ebay, в наших магазинах цены нереальные.

А так, почти с любой платой можно уложиться в 1000-1500р с включенной в цену доставкой.

Tester500
1Dimon1:

Лучше что нибудь из атмела, уточню, програмирую на “Algorithm Builder”, мне проще графическое восприятие алгоритмов 😃

Глянуть в описание билдера, для каких чипов он генерит код и выбрать следующий по возможностям. Скорее всего это будет мега8. С точки зрения программирования атмега8 является базовым чипом в линейке мег. Остальное или урезанное (тиньки) или добавленное (память, таймеры и т.д)

Boev_Dmitry

Возьмите ардуинку на меге 8/168/328 (по сути, макетка с мин обвязкой), и пишите на привычной IDE - хоть в билдере, хоть в АВР студии, можно и в Arduino IDE, да хоть в NOTEPAD++ с плагинами. А когда освоитесь с С/С++, вопросов “какой процессор выбрать” будет не актуален - сможете и на ARM переползти относительно безболезненно. Все-таки алгоритм билдер это немного не среда разработки…

По соседски, могу поменять Нано328 на бутылочку холодного кваса =))))

EagleB3

Atmega8535 в корпусе DIP. Ног много - приткнуть можно что угодно и еще останется. Если ее объем избыточен, отлаженный код легко (или сравнительно легко…) портируется на камень меньшего размера.

И к ней breadboard (MB-102, например dx.com/…/830-point-solderless-breadboard-118354 ). Можешь взять сразу 2 или 3 - они сцепляются друг с другом.
За копейки во многих местах есть навесные модули питания USB-breadboard, например вот: dx.com/…/mb102-breadboard-power-supply-module-for-…
или вот: dx.com/…/openjumper-oj-xm1144-pcb-breadboard-power…
Комплект перемычек: dx.com/…/multi-functional-breadboard-jumper-wire-k… (или сам потихоньку обрастешь). Перемычки замечательно делаются из жил витой пары.

1Dimon1

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

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

Огромное спасибо Дмитрию Боеву за оказанную помощь.

EagleB3

…И все же, если еще не доводилось пользоваться - настоятельно советую попробовать breadboard.
Это МЕГАУДОБНО!!! Особенно для небольших конструкций на микроконтроллерах, где нет сильных токов.

Это, КМК, как раз промежуточный вариант между классической макетницей и жестко запаянной ардуиной.

P.S. Когда-то, 25 лет тому назад, я паял и на самодельных макетницах из длинных разъемов, и на “слепышах”. Попробуйте breadboard. Попробуйте. А когда обрастете периферией (за 15 лет у меня скопилось очень много чего - от хвоста с переходником TTL-RS232 до дисплея 1602 и пятикнопочного джойстика) - жизнь вообще будет легка и удивительна.

Boev_Dmitry

breadboard преудобнейшая вещь, поддерживаю! у меня одна ардуинка прям на постоянке в такую вставлена. проблем с контактами ни разу пока не было