LINUX.ORG.RU

Микроконтроллеры с чего начать?


0

4

Здравствуйте, в последнее время проявился интерес поиграться с программированием микроконтроллеров.
Натыкался в последнее время на много постов на эту тему, но везде либо слишком сложно, либо еще сложней написано)
Много мелькал Arduino и его аналоги, но с доставкой он обходится около 2.5к, в то время как сам контроллер который в нем впихнут стоит 200рублей.
В чем собсно вопрос, что можно\нужно купить для простейщих экспериментов. Грубо говоря нужен простенький микроконтроллер желательно с вшитым программатором, желательно с usb и дешево)
Если кто знает магазины в СПБ.
Есть начальные знания по архитектуре эвм, есть знания c51, assembler; знания в электрических цепях хреново-начальные.

Дешево не будет

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

kidoz
()

Для дешевых 50-100-рублевых контроллеров дороговаты программаторы, а чтобы программатор сваять самому, надо в электронике хорошо разбираться.

Есть контроллеры подороже (рублей от 300-500), зато с USB-интерфейсом. Можно поискать в «чип и дип»'е что-нибудь и выбрать те, которые подешевле и совместимы с sdcc.

Eddy_Em ☆☆☆☆☆
()

Для начала кроме самого МК нужен «отладочный стенд»: платка со светодиодами, семисегментными индикаторами, LCD на худой конец, кнопками, датчиками (термодатчик, фотодиод), MOSFET/транзисторными ключами чтоб управлять нагрузкой больше 5В 20мА... или макеток и это всё россыпью+паяльник и умение им работать.
Могу поделиться 2 платками под Mega8 + стенд (4*4 клавиатурная матрица + 8 светодиодов + 2 семисегментника), который в универе препод давал мне когда я сам начинал (Printed Circuit Board==сделай сам:).
Программатор USB это скорее роскошь. Контроллеры с USB дороже и не нужен если только для того USB хотите, чтоб по USB его шить, к тому же такого по крайней мере AVR точно не умеет если самому не соорудить(бутлоадер). Если хотите скидывать данные с МК по USB, то USB-RS232 мост или V-USB (программный USB) смотрите. Реально если нет COM/LPT на компе, делайте USB-RS232 переходник и пишите бутлоадер в МК, который сам перепрошивает МК, скачав прошивку по USB-RS232
Мы вам тут советуем дешёвые 8-битные МК. Может вы FPGA типа XILINX или ALTERA хотите, купите из стартер кит за долларов этак 200, будете иметь мощный проц, на котором много всякого можно соорудить, только к нему внешнее что-то цеплять и ссыкотно (спалить мегу8 за 100рэ и Spartan3 за 50уе разные вещи) и не с руки из-за обычно низких выходных напряжений I/O линий (1,8-2,7В), то есть надо буфер/преобразователь уровней.

adriano32 ★★★
()
Ответ на: комментарий от Eddy_Em

> Для дешевых 50-100-рублевых контроллеров дороговаты программаторы, а чтобы программатор сваять самому, надо в электронике хорошо разбираться.

Для дешевых контроллеров простой программатор - это 4-ые проводка в хардварный LPT порт. Но они дешевые и малофункциональные (google atmega8)

Есть куча контроллеров с ядрами семейства Cortex-M - нормальный ARM, 32 бита, прошивка через UART (нужен только преобрезователь уровня, но он простой)

anonymous
()
Ответ на: комментарий от anonymous

> Есть куча контроллеров с ядрами семейства Cortex-M - нормальный ARM, 32 бита

Да, цены не одного порядка с 8-ми битными МК: google LPC111*

anonymous
()
Ответ на: комментарий от different_thing

Ужас!!! За это 300 рублей???? Это всё можно с горелой/выброшенной материны сковырять бесплатно, только плату сделай сам. Да даже если новое, рублей 50-70 (правда считаю в гривнях и перевожу в рубли).

Для равновесия в природе: есть ещё микроконтроллеры PIC от MICROCHIP, тоже всякие есть экземпляры.

adriano32 ★★★
()
Ответ на: комментарий от anonymous

нужен только преобрезователь уровня, но он простой

Да, микросхема MAX232 очень простой преобразователь уровней. Только Ъ радиолюбители до сих пор делают на транзюках их, с двойным питанием +12, +5.

с ядрами семейства Cortex-M

Бугага, то что надо начинающему))) Сколько он их спалит пока насобачится

adriano32 ★★★
()
Ответ на: комментарий от anonymous

Для дешевых контроллеров простой программатор - это 4-ые проводка в хардварный LPT порт. Но они дешевые и малофункциональные (google atmega8)

А где купить полнофункциональный переходник USB->LP? В том то и дело, что сейчас параллельный порт - днем с огнем искать...

Кстати, микрочиповские контроллеры по 70-100р вполне многофункциональные.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от adriano32

Да, микросхема MAX232 очень простой преобразователь уровней.

Мы микрочиповские контроллеры так и подключаем к последовательному порту :)

Eddy_Em ☆☆☆☆☆
()

На что найдешь наиболее внятную документацию/книгу, то и изучай. За 300ру можно собрать и программатор и МК купить.

kompas
()

есть клоны arduino - freeduino, seeduino, etc. стоят в 2-3 раза дешевле. совместимы с оригинальным arduino.

isden ★★★★★
()
Ответ на: комментарий от Eddy_Em

> Кстати, микрочиповские контроллеры по 70-100р вполне многофункциональные.

Ну как сказать. Зайди на farnell.com/digikey - сравни цены 8-ых МК и 32-ти МК (ключевые слова для поиска - выше). Разница в оперативках - двоичные порядки, разница в размере кода - порядки, разница в быстродействие - порядка (32-бита на 60мгц+ - это явно быстрее 8-бит на 20мгц). Переферии достаточно. Что ещё нужно? Цены сходные.

anonymous
()
Ответ на: комментарий от Eddy_Em

А где купить полнофункциональный переходник USB->LPT?

Собрать самому: вот на objective development, который V-USB разработали и по GNU GPL отдали всему миру а вот на странице автора
На objective development много других проектов интересных, посмотрите.

Мы микрочиповские контроллеры так и подключаем к последовательному порту :)

Не вы одни :)

adriano32 ★★★
()
Ответ на: комментарий от anonymous

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от adriano32

Спасибо за ссылочку, может, пригодится.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от isden

Там COM вообще-то, но через полный USB-RS232 переходник (на трёх MAX232 сам делал) тоже будет шиться.

adriano32 ★★★
()
Ответ на: комментарий от Eddy_Em

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

При разнице в цене 20-50% получить на 200%-1000% больше памяти (оперативной + флэш) и на 1000%-5000% выше производительность - по-моему, оно того стоит для игрушек для себя. Разработка будет быстрее ;)

anonymous
()
Ответ на: комментарий от anonymous

Разработка будет быстрее ;)

А вот в этом я сомневаюсь: освоить спецификации простенького восьмибитного контроллера намного проще, чем 32-битного...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Разработка будет быстрее ;)

Ага, сейчас!! Поглядели бы вы на студентов моей кафедры. Семестр (18 недель) учат PIC16F627/28/28A. 35 инструкций, a на экзамене не могут без datasheet'a с этими инструкциями коротенькую програмулину на асме написать. Следующий семестр 8-битные AVR, там 100+ команд, результат такой же.
правда многие аноны пишут для МК на C и компилят платными буржуйскими компиляторами типа CodeVisionAVR и считают, что это лучше чем вылизывать быстродействие/отказоучтойчивость/использование памяти на асме.
Всё равно архитектуру контроллера изучать надо прежде чем писать для него что-то на асме ии на С.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

> компилят платными буржуйскими компиляторами типа CodeVisionAVR

Так кто мешает компилять свободными буржуйскми?

different_thing
()
Ответ на: комментарий от adriano32

правда многие аноны пишут для МК на C и компилят платными буржуйскими компиляторами типа CodeVisionAVR и считают, что это лучше чем вылизывать быстродействие/отказоучтойчивость/использование памяти на асме.

Вы зачем над студентами издеваетесь, заставляете их дебильный ассемблер учить? sdcc отлично оптимизирует сишный код (иногда даже слишком отлично - приходится всякие pragma вставлять :) ).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

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

свободными буржуйскми

ничего не мешает))

adriano32 ★★★
()
Ответ на: комментарий от different_thing

Интересуют модели серии 54хх. Подробности можешь посмотреть на сайте Texas Instruments ti.com.

Плюс опять же начальная разработка программатора уже осуществляется на mspdebug.sourceforge.net.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Eddy_Em

Каким таким образом? Это просто контроллер с обвязкой для программного USB — V-USB. Прошиваем, и он становится USB-программатором.
Из readme:

To flash the firmware you have to set jumper J2 and connect USBasp to a working programmer.

age
()
Ответ на: комментарий от adriano32

>многие аноны пишут для МК на C и компилят платными буржуйскими компиляторами типа CodeVisionAVR и считают, что это лучше чем вылизывать быстродействие/отказоучтойчивость/использование памяти на асме

А как насчет переписать готовый проект, скажем, coreIPM, на асме? Да еще под убогую атмегу128л? И на плате, на которой дебил-схемотехник не вывел JTAG?

satanklaus
()
Ответ на: комментарий от satanklaus

А как насчет переписать готовый проект, скажем, coreIPM, на асме?

Вот уж делать нечего. Проще с нуля написать, чем переписывать что-то, да еще и на ассемблере :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от satanklaus

Всмысли дизассмеблировать и отлавливать как хитро сишный компилятор действие в две инструкции выполнял шестью?

В этом девайсе «ведущий» МК по программному USB получит прошивку для ведомого, разместит в ОЗУ, и по SPI зальёт её ведомому. Я такое для кафедры делал для стенда. Токо с плюшками разными и от COM а не от USB.

adriano32 ★★★
()

До кучи: у контроллеров NXP (LPC2xxx, например) есть нормальный JTAG, хорошо поддерживаемый софтиной openocd, что позволяет отлаживаться с помощью нормального gdb или insight. Схем jtag-интерфейсов к ним over 9000, на крайняк сгодится любая платка на FT232.

satanklaus
()
Ответ на: комментарий от Eddy_Em

>Вот уж делать нечего. Проще с нуля написать, чем переписывать что-то, да еще и на ассемблере :)

При том убогом. Поэтому avr-gcc - наш выбор. Отсутствие нормальных констант, например - это проблема убогого AVR и не повод извращаться, затачивая код под это убожество. Причем, пока плата делалась, эта атмега уже получила статус не рекомендуемой для новых разработок - на новые поставим NXP.

satanklaus
()

Где купить: навскидку гуглите «Петербург радиокомплект» «Петербург радиодетали» «Петербург радиодетали форум»
Вот тут и тут вы найдете полный перечень от живых людей, УЖЕ занимающихся электроникой в Питере.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

>как хитро сишный компилятор действие в две инструкции выполнял шестью

Да хоть 60-ю. Когда в проекте основной функционал еще не полностью готов, точить что-то на асме - сомнительная затея. На этих штуках даже контроллер i2c почти ничего сам не умеет - там даже на C основная часть «драйвера» - около 400 строк. Сколько времени его придется пилить на асме? Причем, когда из всех средств отладки - только печать на USART?

В этом девайсе «ведущий» МК по программному USB получит прошивку для ведомого, разместит в ОЗУ, и по SPI зальёт её ведомому.

Похоже на вот это: http://as-kit.ru/asisp.html

satanklaus
()

Я начинал с AVRки за 100 рублей + 5 проводков к LPT ^_^ Дешевле не бывает. Но потом понял, что проще и выгоднее просто купить отладочную плату, пусть даже за 5К, да даже за 10К, но зато сразу приступить к изучению самой сути. Навыки пайки, схемы - это другая область.

Наконец есть программы типа Proteus, где контроллер и его обвязку можно сделать виртуальную, а работать будет как самый настоящий. Не знаю, есть ли такие под Linux, но под WINE работает. Зато просто симуляторы есть, но это не так интересно, тогда как в Proteus-подобных прогах можно светодиоды подключить и мигать ими, заливать реальную прошивку =)

I-Love-Microsoft ★★★★★
()

купи какой нить atmega16 в dip корпусе, нужную обвязку, текстолит, хлорное железо|резак. а вообще иди в easyelectronics@conference.jabber.ru

exception13 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

>>Я начинал с AVRки за 100 рублей + 5 проводков к LPT ^_^ Дешевле не бывает. Но потом понял, что проще и выгоднее просто купить отладочную плату, пусть даже за 5К, да даже за 10К, но зато сразу приступить к изучению самой сути. Навыки пайки, схемы - это другая область.

Наконец есть программы типа Proteus, где контроллер и его обвязку можно сделать виртуальную, а работать будет как самый настоящий. Не знаю, есть ли такие под Linux, но под WINE работает. Зато просто симуляторы есть, но это не так интересно, тогда как в Proteus-подобных прогах можно светодиоды подключить и мигать ими, заливать реальную прошивку =)


язабан!

exception13 ★★★★★
()
Ответ на: комментарий от satanklaus

>>Причем, когда из всех средств отладки - только печать на USART?

вот черт. пойду выкину свой JTAG...

exception13 ★★★★★
()
Ответ на: комментарий от satanklaus

>>До кучи: у контроллеров NXP (LPC2xxx, например) есть нормальный JTAG, хорошо поддерживаемый софтиной openocd, что позволяет отлаживаться с помощью нормального gdb или insight. Схем jtag-интерфейсов к ним over 9000, на крайняк сгодится любая платка на FT232.

LPC прекрасно шьюцо по UART. а JTAG таки или WIGGLER на LPT или FT2232 для USB.

exception13 ★★★★★
()
Ответ на: комментарий от exception13

язабан!

А ну кыш отседова, там есть демоверсия, простую схему быстро собрать можно. Под wine работает :) Мой пост не реклама, ибо живой JTAG на честно купленной плате с православным GDB - рулит.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Демка, которая не даёт сохранять проект - ещё одно доказательство что ты скачал и поставил кряк. язабан++

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Демка, которая не даёт сохранять проект - ещё одно доказательство что ты скачал и поставил кряк. язабан++

Демо версия - она существует для чего-то, но тебе не дано понять почему. Я пользовался демо-версией. Если интересно ТС-у, он тоже может воспользоваться этим, ибо тема «с чего начать» => язапнх ;)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от exception13

> LPC прекрасно шьюцо по UART.

Ага, я про это писал

а JTAG таки или WIGGLER на LPT или FT2232 для USB.

Не понял, это что? Этакое заявление, что wiggler-like девайсы работают? Ну это известно, drawback - это их скорость. Но для таких мелочей - сойдёт

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.