Какой процессор выбрать для освоения.
Ну я сразу делал макетку на 2313… на обчной монтажке… 😃 как правило не запариваюсь с перифирией - ставлю светодиоды и кнопки (если это медленные и исполнительные каналы), ну или ваяю полную схему конкретной части схемы которая жестко участвует в работе программмы (например обвязка АЦП)…
Тестовая платка для работы с датчиком температуры DS18B20 😃 ничего лишнего…
программирую через адаптер для билдера (его описание есть в программе).
После ATtini - ATmega 8. По сравнению с тинькой - возможностей намного больше. Когда не будет хватать - ATmega 16, хотя плата и навороченней уже будет. Стоят дёшево, для начала лучше брать в DIP корпусах и на панель, пока полностью не освоитесь с программатором и фьюзами - есть вероятность получить “кирпич” с возможностью лечения только “параллельным” программатором. Лично я “пересел” на AVR c PICов - больше нравятся, гибче они как-то, в хорошем смысле. Но PIC неправильными фьюзами не убить - достоинство, особенно когда процессор в планаре, соответственно без панели и при перепайке есть нехорошая вероятность испортить плату. Удачи в выборе и освоении!
Bushi-Do: PIC первый контроллер! 35 команд . Бесплатный софт. Ассемблер увы. Памяти мало, жужжалок бортовых мало. Стоит дорого. Программатор простой.Проц быстрый, но не весёлый. AVR Ну наконец-то. Можно разогнаться! С++ и все команды под него встроенные. Бортовых-море. Куча примеров, библиотек, AVR Studio, про Arduino не ловко вспоминать, но 8 бит ядро. Ограничения. В серьёзных проектах будешь каждый такт считать.MSP430 Техас. 16 бит. Интересная штука. Потребление зачётное. Можно собрать проект как на предыдущих, только при работе от батарейки на неделю. Сам не пробовал-врать не буду. ARM Ну сразу 32. Наилучший вариант для старта для “новорожденного”, чтоб не тащил с собой в будущее наши убогие чемоданы. Хрен убьёшь фузами, несколько источников тактирования с автопереключением, кил памяти, про I/O можно и не вспоминать. Оно в несколько раз умнее меня. Я сдаюсь. 😃. А про ПЛИС что сказать? Оно вроде как и не контроллер. Из него можно создать все вышеперечисленные контроллеры вплоть до интела 286 лишь бы вентилей хватило, и запустить на нём аутентичную программу, да ещё и расставить входы-выходы по ножкам как бог на душу положит. Или склепать жёсткую логику в армейском стиле. Высший класс. Но начальный вход суровый для просто попробовать по деньгам, как минимум. Всё это ИМХО
Отладочные платы надо брать на ebay, в наших магазинах цены нереальные.
А так, почти с любой платой можно уложиться в 1000-1500р с включенной в цену доставкой.
Лучше что нибудь из атмела, уточню, програмирую на “Algorithm Builder”, мне проще графическое восприятие алгоритмов 😃
Глянуть в описание билдера, для каких чипов он генерит код и выбрать следующий по возможностям. Скорее всего это будет мега8. С точки зрения программирования атмега8 является базовым чипом в линейке мег. Остальное или урезанное (тиньки) или добавленное (память, таймеры и т.д)
Возьмите ардуинку на меге 8/168/328 (по сути, макетка с мин обвязкой), и пишите на привычной IDE - хоть в билдере, хоть в АВР студии, можно и в Arduino IDE, да хоть в NOTEPAD++ с плагинами. А когда освоитесь с С/С++, вопросов “какой процессор выбрать” будет не актуален - сможете и на ARM переползти относительно безболезненно. Все-таки алгоритм билдер это немного не среда разработки…
По соседски, могу поменять Нано328 на бутылочку холодного кваса =))))
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… (или сам потихоньку обрастешь). Перемычки замечательно делаются из жил витой пары.
Спасибо Дмитрий, обвязка проца мне не страшна (спаяю какую надо), макетки предпочитаю классические, под пайку (не доверяю, в силу специфики работы и опыта, я всякого рода контактам) . Вообще, что бы не было предвзятого отношения - я занимаюсь професионально радиоэлектроникой со школы (работа моя тоже связана с электроникой и паяльником). Просто именно программирование я начал осваивать недавно.
Пайка, разводка плат и т.п. в том числе и разработка аналоговых (хуже цифровых) частей схемы - можно не трогать , это проблем не вызовет.
Из всего вышеизложенного хочу вывести для себя резюме: следующий процессор будет определятся двумя характеристиками первое это неоходимые для проекта компоненты в процессоре (количество шимов, таймеров ацп и т.п., второе наличие его в списке поддерживаемых процессоров в алгоритм билдере - особой необходимости слезать с него на данном этапе обучения не вижу.
Огромное спасибо Дмитрию Боеву за оказанную помощь.
…И все же, если еще не доводилось пользоваться - настоятельно советую попробовать breadboard.
Это МЕГАУДОБНО!!! Особенно для небольших конструкций на микроконтроллерах, где нет сильных токов.
Это, КМК, как раз промежуточный вариант между классической макетницей и жестко запаянной ардуиной.
P.S. Когда-то, 25 лет тому назад, я паял и на самодельных макетницах из длинных разъемов, и на “слепышах”. Попробуйте breadboard. Попробуйте. А когда обрастете периферией (за 15 лет у меня скопилось очень много чего - от хвоста с переходником TTL-RS232 до дисплея 1602 и пятикнопочного джойстика) - жизнь вообще будет легка и удивительна.
breadboard преудобнейшая вещь, поддерживаю! у меня одна ардуинка прям на постоянке в такую вставлена. проблем с контактами ни разу пока не было
Вопрос в тему :
Давненько (в 2000 году) волею случая занимался контроллерами по работе - атмел 89с2051 89с51 . Писал на ассемблере , благо была книжка и “старший товарищ” . На данный момент прямой необходимости нет в контроллерах , но снова хочу попробовать силы . Не знаю какой взять для начала , посоветуйте . С программатором проблем думаю не будет - куплю на ибей , книжки доступны разные . Конкретных целей нет , но интересно цифровые и аналоговые I\O . Плату сделать проблем так же нет , Sprint-Layout освоил .
Мой выбор для начинающего я написал: Мега8535. Дешевая, ДИП, 3 таймера, 40 ног. Этих 40 ног хватит на что угодно.
Прекрасные описания на русском.
Программатор - если на мамке есть LPT-порт, соберите себе STK200. Делается за один вечер, работает меганадежно. Если нет - любой, который будет поддерживать Ваша среда разработки.
Как среду рекомендую CodeVisionAVR C (для любительско-начинательских ковыряний самое оно); если посерьезнее - WinAVR C. Плюс родная AVRStudio. Плюс Proteus VSM (схема-плата-моделирование-отладка. Иногда на стадии моделирования получаешь столько удовольствия, что в железе дивайс уже и собирать не интересно).
Или ардуино (или его клон). Выбирайте по деньгам и аппетиту. Обратите внимание на:
- возможность переключения вольтажа,
- удобство доступа к переключателям и кнопке reset;
- камня в кровати (на случай, если если вдруг сожжете).
Некоторые платы имеют трехрядные распайки портов (выход-питание-земля) - удобно цеплять периферию. Типа вот: dx.com/…/avrmega328p-pu-development-board-for-ardu…
Помните, что отлаживаться проще на большом и многоногом! А потом поймете, во что Ваш результат может влезть, выберете подходящий маленький камень и портируете проект под него.
Я сам задумывался о вот таком:
dx.com/…/arduino-compatible-freaduino-mega2560-v1-…
Я бы посоветовал stm8s или stm8l. Дешевые, простые, с большим количеством периферии, за 15-20 рублей можно купить камень с 8 кб флеша. Есть удобные для пайки в домашних условиях SO20W и LQFP32 корпуса, если лениво лезь в даташит можно пользоваться готовыми библиотеками переферии. К тому же за 10-15 баксом можно купить отладочную платку дискавери, она же является программатором и отладчиком для самодельных схем. Перешел на них с авр, очень доволен. Дешевле, удобнее и проще 😃
Топикстартер использует визуальное программирование “Algorithm Builder”, подобного для stm пока нету.
Народ, такой вопрос. Решил сдуть пыль со своих навыков программирования контроллеров. Пошукал, что вообще есть в природе у атмела.
Нарыл Tiny85. Я так понимаю, что JTAG а у него нету и никакой интегрированной системы отладки - тоже. Что надо чтобы его запрограммировать ( у меня валяется глючная понипроговская фигня, но она не катит ибо работает через LPT, а хочется через усб )? STK500? А что у них за 1Wire DebugSystem? И - я правильно понимаю, что сейчас си уже интегрирован в AVR STUDIO? Раньше я юзал IAR C.
STK500? А что у них за 1Wire DebugSystem?
AVR Dragon, наверное, самый дешёвый программатор-отладчик из фирменных. Программирует любым способом и можно отлаживать. Для отладки, вроде, нужен только reset. Читайте даташит в общем.
Самый дешевый USB программатор самодельный на atmega8 USBAsp Отладка в эмуляторе Winavr. Насчет дебуга, смущает строка в даташите:
Emulates All On-chip Functions, Both Digital and Analog , except RESET Pin
Получается там результат может быть не реальным, а предполагаемым.
The debugWIRE system accurately emulates all I/O functions when running at full speed, i.e., when the program in the CPU is running. When the CPU is stopped, care must be taken while accessing some of the I/O Registers via the debugger (AVR Studio). See the debugWIRE documentation for detailed description of the limitations
Напрягает фраза: “accurately emulates” - хотя и точно, но все таки подражает (эмулирует)
Emulates All On-chip Functions, Both Digital and Analog , except RESET Pin
Получается там результат может быть не реальным, а предполагаемым.
Ну не знаю. Я отлаживал и всё получалось. Программа была на С, среда IAR, меня в основном интересовали значения переменных в определённой точке программы. Некоторые в памяти, некоторые в регистрах. Ставил брейкпойнты в нужных местах и смотрел, иногда менял. Вроде всё было адекватно, программу отладил, нашёл кучу косяков, много узнал нового.
Понятно, что регистры всяких таймеров с двойной буферизацией и GPIO пинов смотреть практически бесполезно на остановленном ЦПУ. Но если на пине постоянно 1, например, то и в регистре будет 1.
Моё мнение - для простейшей отладки всего достаточно.
Напрягает фраза: “accurately emulates” - хотя и точно, но все таки подражает (эмулирует)
Я думаю, они говорят о том, что I/O работает точно так же, как без отладки, т.е. отладчик не мешает.
Вот решил “тявкнуть”… Была поговорка: Трудно изучить первый язык и язык ассемблера. Изучив 8-битник ARM пойдет легче. Если речь идет о навыках ради навыков то знание ARM и не владение 8-битными контроллерами не смотрится круто. В этом случае нужно владеть и тем и тем. Если речь идет о решении практических задач, то я бы сначала определил круг этих задач, а уж потом для конкретных задач подбирал бы… Да при современных ценах STM стоит соизмеримо с AVR. Но если что то можно сделать на AVR Mega8 (которая выпускается в дипе), то зачем делать сложнее… Профи он и отличается от любителя тем, что выберет оптимальное решение. Если стоит задача, что бы ваше устройство могли повторить другие однозначно AVR + Arduino, если нет ARM (смонтировать его на платы не каждый сможет). Мое скромное мнение - определитесь для чего. Можно почитать easyelectronics.ru
Про тиньки тут спрашивали, чем программировать. Мне кажется нет лучше программатора для тинек, чем Arduino. Потому что стоит копейки, и при необходимости может сама работать как очень-очень мощный контроллер. Ардуино из программатора в контроллер и обратно превращается за 30 секунд. Тинька при этом шьется как из Arduino IDE, так и через Avrdude, а это означает, что практически из любой среды. Статья соответствующая есть на хабре.