max779
Apr 27 2005, 09:19
Hi All.
Захотелось научить компьютер общаться с внешним миром. Решил начать с простого - вольтметр через COM-порт. Вроде все понятно. Осталось определиться с микроконтроллером. Никогда с этим не сталкивался. Люди, подскажите, какой выбрать? Желательно попроще для начала. Как его программировать? Хотелось бы писать на С. Где брать компилятор?
В общем, вопросов больше чем ответов. Люди, подскажите!!!
Контроллер можно любой выбирать - PIC или AVR, для начала и подобных задач подойдет любой, почитай конфы и доки по ним, а там уж определись. Хотя мое скромное мнение, начинать надо с PICов, хотя на любой конфе идут беспощадные битвы и споры по поводу PIC vs AVR:)
Достоинства PICа - простая архитектура, малое количество команд.
AVR быстрее, но для подобной задачи это не суть важно, а вот команд у них в три раза больше. Новичку ИМХО труднее будет. Хотя вам конечно решать.
С компилятором определитесь когда выберете МК. Обычно на официальном сайте. Хотя на Си не советовал бы писать. Программировать программатором, схемы выложены в инете в огромном количестве.
max779
Apr 27 2005, 09:42
Я тут посмотрел. Мне вот этот понравился PIC16F84, если найду его конечно. Как я понял, писать для одного МК можно на разных языках, а вот компилить-то чем? Или производитель предоставляет компилятор, библиотеки и т.д.?
arttab
Apr 27 2005, 09:49
у AVR архитектура тоже простая. если не проще. и рон более функцианальней - друг задолбался на пике все операции через аккумулятор делать. на авре 16 рег. полнофункцианальны и 16 обрезаные. Но если ты не на ассемблере пишишь, то тебе это не важно. Что мне в АВР понравилось, то что они из функциональных блоков состоят. быстро можно на др. мк перейти. что то добавляется, что то убирается. Если скорость большая не нужна, выбирай с uartом и на Serial порт компа. до 115кб. выбор за тобой.
у pic16f84, вроде ни АЦП, ни UART нет... имхо, проще будет, если для простого осцилографа со связью по RS232 взять что-нить типа pic16f87...
насчет языков - ассемблеры бесплатные и для ПИК, и для АВР, насчет компиляторов C - есть бесплатные шеловские версии, вроде...
для пик HiTech - шеловская версия,
для АВР, вроде, gcc есть
На мой взгляд лучше взять AVR - любой из серии ATMegа.
Все Меga содержат UART, 10бит АЦП, аналоговый компаратор, таймеры с захватом и ШИМ, интерфейс I2S (через который можно подлючить внешние цапы и ацп от "Philihs" например) и другие узлы в зависимости от модели.
Если нужна индикация - можно повесить матричный индикатор используя только доп. резисторы, благо ножек и max. нагрузки на это хватоет.
Пргограммировать их проще чем PIC, для начала можно только на "С", без испльзования ассемблера, система команд специально оптимизирована под "С".
Подробное описание на английском www.atmel.com, там же свединия по применению и программированию в том числе и для начинающих (Application Note). Вольтметр вроде тоже попадался. Как сделать программатор написано там же. Или можно еще более прстой на параллельный порт компа - типа Pony prog.(Одна микруха и несколько резисторов).
Компилятор ассемблера и отладчик - там же(AVR Studio) ,бесплатно. Компилятор "C" можно взять свободно распространяемый - WinAVR winavr.sourceforge.net или компании IAR www.iar.com.
Подробное описание в книгах издательства Додека "Микроконтроллеры AVR семейств Tiny и Mega фирмы "Atmel"" и Программирование микроконтроллеров ... и масса инфы в интернете.
Цены от 1.5$ за Mega8 (8кб flash, 1кб ОЗУ, 512ЕЕПРОМ)
Вообще на мой взгляд AVR более простой, скоростной, универсальный, современный и мощный MK чем PIC
На PIC16F84 не стоит писать...старый камень, уже снять вроде с производства, его аналог по цене и более функцииональный - PIC16F628. Но как тут прально написали PIC16F876 - лучшее решение для данной задачи ИМХО.
10-разрядный АЦП
UART - аппаратный
I2C - аппаратный
На счет документации и AppNotes - она есть на microchip.ru, там же полезные ссылки и спец. форум по пикам. Компилятор ассемблера входит в среду разработки MBLAB, можно взять на англицком сайте бесплатно.
Если вдруг всё-таки решите взять AVR (хотя видно, что склоняетесь к ПИКу), для него есть еще компилятор с (демо-версия бесплатно,но с ограничениями на размер, для простых задач мне всегда хватало) CodeVisionAVR (http://www.hpinfotech.ro/). IMHO, очень удобная среда, особенно для новичка. По опыту могу сказать, что освоение AVR занимает считаные дни благодаря очень простой системе команд (пусть она и больше, но зато красивая

) Плюс немного инфы на www.atmel.ru.
Не буду навязывать свое мнение, но ИМХО, начинать с пика все же легче, потому как новичку проще разобраться с 35 командами нежели с порядка 100 у авр. После пика переход на авр не составит особого труда, к тому же у вас будет уже возможность сравнить эти два типа МК, зная и то и то. Как бы ни ругали пик за его корявые команды, они очень просты и новичку проще разобраться как работать только через аккомулятор, нежели через РОН.
Под пик неплохой программатор лежит на pic16f84.narod.ru, с некоторыми доработками эта схема у меня прекрасно работает уже много времени, программатор позволяет прошивать и авр, смотря с каким софтом вы работаете. Можно настроиться на работу с IC-prog, FPP_programmer, PonyProg, ну и стандартная программа с указанного сайта.
max779
Apr 28 2005, 05:51
Всем спасибо. Я уже склоняюсь взять оба и попробовать на обоих. Что больше понравится, то и будем юзать. Не понятно только, где нашли Mega8 за 1,5%? В чип-дипе он где-то 130 р. стоит. Или еще где места есть?
arttab
Apr 28 2005, 06:23
от партии цена зависит. у нас по 52р.
Цитата(max779 @ Apr 28 2005, 08:51)
Всем спасибо. Я уже склоняюсь взять оба и попробовать на обоих. Что больше понравится, то и будем юзать. Не понятно только, где нашли Mega8 за 1,5%? В чип-дипе он где-то 130 р. стоит. Или еще где места есть?
Непонятно, откуда Вы. В Питере есть Микроника, вот кусок розничного прайса
atmega 8-16ai tqfp 65.37
atmega 8-16pi sdip28 53.49
atmega 8l-8pi 60.92
atmega 16-16ai tqfp 86.17
atmega 16-16pi dip40 90.64
ATMEGA 16L-8PI 97.37
Обычно есть в наличии. Если нет - можно оставить заказ через интернет. Исполняют где-то недели 2.
А в Чипе с дипом и цены покруче и никогда ничего нет (только под заказ, от ХХХ штук ) (ИМНО)
Цитата(max779 @ Apr 28 2005, 11:51)
Всем спасибо. Я уже склоняюсь взять оба и попробовать на обоих. Что больше понравится, то и будем юзать. Не понятно только, где нашли Mega8 за 1,5%? В чип-дипе он где-то 130 р. стоит. Или еще где места есть?
Еще есть MSP430. 16 разрядов (а потребление меньше, чем у пиков и авров).
Фон Нейман (нет заморочек с разными адресными пространствами), RISC, 27 команд. Очень гибкая система тактирования (три клока, могут быть разными для ядра и для периферийных устройств).
По периферии уделывает тоже обоих (таймеры с кучей ШИМов, compare/capture), 12-битный АЦП на 200 киловыборок с возможностью пакетного режима оцифровывания. Два USART, могут быть UART/SPI/I2C. Имеется честный 12-битный ЦАП (2 штуки на борту). 3-х канальный DMA (это в новых)).
Спаяв копечный адаптер на 74НС244, получаете возможность внутрисхемного программирования и (!) отладки.
Из минусов. Питание не более 3.6 В (от 1.8 В), если кому критично. Нет аппаратной шины к внешней памяти (у пиков тоже, вроде, нет). Нет байтово адресуемой энергонезависимой памяти данных - EEPROM, т.е. для этих целей придется писать данные во флешь, что не очень удобно, хотя жить можно.
Похоже, все опять сводится к вечной теме: AVR или PIC?

Меня тоже немного интересовал этот вопрос. Сейчас есть возможность убедиться воочию: пришел к нам на работу парнишка без опыта программирования контроллеров. Сначала дали ему написать небольшой проектик под мегу16. Справился за месяц. Потом дали написать тоже простой проектик под пик. Уже месяц матерится и обещает, что по окончании проекта за пики больше не возьмется

. Для меня это очень наглядный пример

.
Цитата(Karl @ Apr 28 2005, 10:40)
Похоже, все опять сводится к вечной теме: AVR или PIC?

Меня тоже немного интересовал этот вопрос. Сейчас есть возможность убедиться воочию: пришел к нам на работу парнишка без опыта программирования контроллеров. Сначала дали ему написать небольшой проектик под мегу16. Справился за месяц. Потом дали написать тоже простой проектик под пик. Уже месяц матерится и обещает, что по окончании проекта за пики больше не возьмется

. Для меня это очень наглядный пример

.
на чем пишет? на асме или на С?
если на С, имхо, разницы почти никакой между пик и авр...
чтобы разобраться с архитектурой и всеми нюансами контролера , лучше начинать с асма
Валерий
May 3 2005, 07:57
Программировать лучше начинать на Асме т.к памяти у МК не так много как хотелось бы. Большой плюс пика, это то наличие кучи AppNotes на офицальном сайте по которым можно учиться. Кристал лучше взять PIC16F877А переферии там полно само то для начала.
Добрый вам...
А знае ли кто компелятор для АВР, чтоб писать программу на Си и на Асемблере одновременно!! Такой как например для 51-совместимых, Franklin ProView23 ???
там можно создать проект и писать часть программы на Си и часть на асемблере, оч. удобно!!!
Andrey_M
May 3 2005, 19:59
Прошу прощения господа зачем для таких целей такие серьезные камни не дешевле ли PIC12F675 стоит всего 40 р даже в чипе всего 8 лап можно и в щуп вмонтировать. Кстати встречал схемку с программой связи через сом порт можно использовать, если интересует найду. А писать лучше на С, никакой возни с банками и прочим безобразием, через некоторое время будет пополам какой камень использовать. С для начала можно скачать с сайта HI-TECH бесплатно доступен PICLIT через регистрацию работает прекрасно ограничен только набором камней. А в остальном выбор у каждого свой. УСПЕХОВ!
ICC от ImageCraft. Могу поделиться лекарством (на мыло).
Цитата(yung @ May 4 2005, 10:47)
ICC от ImageCraft. Могу поделиться лекарством (на мыло).
Скинь пожалуйста лекарство на possy@mail.ru
gor_mike
May 10 2005, 17:27
ИМХО - DS89C420. Прошивка/отладка без программатора, 1К ОЗУ, 16 К ПЗУ,13 прерываний, команда за колёб кварца, 2 УАППа и много еще чего. Пользуюсь IARовским Си + ломаным мною фитоновским симулятором PDS-51. И пока не думаю на что-либо др. переходить.
ZXprSL
May 12 2005, 16:44
Цитата(gor_mike @ May 10 2005, 23:27)
ИМХО - DS89C420. Прошивка/отладка без программатора, 1К ОЗУ, 16 К ПЗУ,13 прерываний, команда за колёб кварца, 2 УАППа и много еще чего. Пользуюсь IARовским Си + ломаным мною фитоновским симулятором PDS-51. И пока не думаю на что-либо др. переходить.
Чем прошиваешь контроллер??
Скинь ссылочку пожалуйста, если есть в инете схемка шнурочка и програмка.
vesago
May 18 2005, 12:21
Мысли о кодописательстве на асме лучьше сразу выкинуть из головы. 99% легко пишется на с. А проблем значительно меньше. Да и перейти на другой камень проще будет. Вся сила с в том, что нет привязки к конкретной платформе. Для начала можно попробовать PIC16F628, PIC16F876 (HT + MPLAB) или что нибудь из авр. Для авр как уже упоминалось лучьше всего CVAVR. Для всех этих камней просто состряпать программатор. Рекомендую www.ic-prog.com Если еще проще и дешевле можно обратить взор к at89c2051. Дешево и сердито. Компилятор Keil.
-=KiV=-
May 19 2005, 09:41
Цитата(max779 @ Apr 27 2005, 11:19)
Осталось определиться с микроконтроллером...Никогда с этим не сталкивался...
Люди, подскажите, какой выбрать? Желательно попроще для начала...
Как его программировать?..
Хотелось бы писать на С...
Где брать компилятор?..
Определиться с контроллером ... и поехало - PIC, AVR, MSP, MCS51...
Мой Вам совет: не думайте о простоте контроллера или каких-то его "фичах". Практически в каждом семействе найдется то, что Вам нужно. Из этого проистекает алгоритм выбора ВАШЕГО контроллера.
1) Находим человека, который занимается разработкой проектов для микроконтроллеров. Спрашиваем его, на чем он работает. Вот это-же используйте и Вы. По крайней мере будет у кого спросить, когда возникнут вопросы. И с инструментальными средствами я думаю поможет.
2) Если нет такого человека рядом, идем в книжный магазин и ищем КНИГУ. Если Вы нашли книжку по конкретной архитектуре микроконтроллеров - это ВАШ процессор. Можно будет хотя-бы прочитать, что умные люди пишут. С проблемами выбора компиляторов и т.д. - сюда в конфу, задавайте вопросы, Вам всегда ответят.
3) Если книжки в магазине не нашли, идем в библиотеку, интернет...
4) Если по пп 1-3 Вы нашли несколько вариантов - Вам повезло! Обзванивайте местных поставщиков на предмет лучшей доставабельности/дешевизны чипов.
5) И еще один ВАЖНЫЙ момент - средства программирования/отладки. Покупать их для того, чтобы просто поучится - не имеет большого смысла. Поэтому лучше, если для выбранного чипа можно будет собрать "на коленке" простой программатор.
"Простота" или "сложность" контроллера большого значения не имеет - просто сначала не используйте ВСЕ его ресурсы.
Вот практически и все. Единственный комментарий к этому - пункт 5 может в конечном итоге оказаться самым главным. Особенно в плане внутрисхемной отладки программ на C.
ЗЫ. Прочитал свою писанину и не удержусь от предложения собственного варианта - MSP430F1xx. Почему? Он очень соответствует вышеприведенной методике выбора:
1) это Вам искать

2) пару книжек уже издано.
3) в инете есть русский перевод User Guide (здесь где-то проскакивало несколько ссылок).
4) это звисит от Вас и Вашего места, но думаю проблем быть не должно.
5) самое главное для начинающего! Можно
самому собрать простейший программатор на LPT порт, он-же и
ВНУТРИСХЕМНЫЙ ОТЛАДЧИК! Это лучшее лекарство от болезни под названием "программа не пашет". Кстати на PIC, AVR или MCS51 подобного простого решения не встречал.
ЗЗЫ Сам работаю с MCS51, AVR, MSP430, ARM (в порядке освоения)
Полагаю что многое можно понять/изучить просто применив программный симулятор Например Keil для ARM7 и 51 AVR Studio для AVR MPLAB для PIC
А еще есть MOTOROLA... и много других. И еще комнилирую программу написанную на С смотрите код компилятором образуемый (в листинге) Многое поймете
Моё мнение: для начала можно использовать прноц типа AT89C2051 (если доступен программатор под него), Keil и С. НИКАКОГО АССЕМБЛЕРА - ТОЛЬКО В КРАЙНИХ СЛУЧАЯХ. Нечего забивать себе голову. И время разработки и отладки сокращается в десятки раз. Можно без проблшемм использовать сложные типы данных (для той же связи с компьютером) типа struct + union - очень мощная штука для разработки гибких протоколов. А что касается плотности када - для мелких проектов - пожалуйста, но не дай Бог нужно будет через некоторое время что- то добавить - это вилы.
Насчёт расходования памяти на С - многое зависит от компилятора. Не в целях саморекламы будет сказано НО делал программатор для однокристалок : AT89C51,
С52, С2051 , PIC16F84A, AT90S1200 , I2C - мастер уместился в 4КБайта кода программ. Писал во Franclin ( вещь с глюком Keil - лучше). Если-бы на ASM - до сих писал. Если хотите заценить- вот ссылка:
http://www.yra.h15.ru/my_projects/my_progects.php
Цитата(x-x-x @ Jun 23 2005, 23:12)
up
Цитата(x-x-x @ Jun 23 2005, 23:12)
Цитата(x-x-x @ Jun 23 2005, 23:12)
up
Цитата(x-x-x @ Jun 23 2005, 23:15)
Цитата(x-x-x @ Jun 23 2005, 23:12)
Цитата(x-x-x @ Jun 23 2005, 23:12)
up
Esquire
Jun 25 2005, 14:25
x-x-xЗабанен за флуд - здесь тебе не место для экспериментов

.
Kofey Nik
Jul 7 2005, 09:28
Я думаю, что важнее тут предыдущий опыт программирования. Многие начинали на асме х86, благо все системные сервисы под рукой. Тогда лучше брать Интеловское ядро. х51 имеет и УАРТ аппаратный. Небольшая интерфейсная схема, заключающаяся в инверсии и нормировании уровня, и усе готово. Симулятор тоже есть 8051 IDE. И кряк не нужен. Говорят потом с MCS легко переходить на другие камешки с аккумуляторной струкурой.
Kofey Nik
Jul 7 2005, 09:37
Это конечно если на асме. Но согласен, что С - это клево. А есть видел и С++. Книг по асме много, а вот по С для микров совсем нет. Мне уже посоветовали здесь совершенствовать аглицкий. Видно без этого не обойтись, все доки по С на нем и учебники. Безобразие! Может, кто все же знает источники, полдскажите. В смысле на русском.
Цитата(Kofey Nik @ Jul 7 2005, 12:37)
Это конечно если на асме. Но согласен, что С - это клево. А есть видел и С++.
А ссылку на плюсы можно? Хотя не очень понятно зачем они в контроллере, но посмотреть интересно.
Kofey Nik
Jul 8 2005, 09:08
vesago
Мысли о кодописательстве на асме лучьше сразу выкинуть из головы. 99% легко пишется на с. А проблем значительно меньше. Да и перейти на другой камень проще будет. Вся сила с в том, что нет привязки к конкретной платформе. Для начала можно попробовать PIC16F628, PIC16F876 (HT + MPLAB) или что нибудь из авр. Для авр как уже упоминалось лучьше всего CVAVR. Для всех этих камней просто состряпать программатор. Рекомендую www.ic-prog.com Если еще проще и дешевле можно обратить взор к at89c2051. Дешево и сердито. Компилятор Keil.
Повторюсь, что на С мне тоже кажется на пороядок легче, это естессно. Но человек может подумать, что достатоно перекомпилировать программу на другой проц и усе в ажуре. Здесь же нет унифицированного ввода-вывода, разная организация портов, а к ним подключается специфическая периферия. Так что программа все равно пишется под конкретный камень. Но переделать конечно легче.
tvv
А ссылку на плюсы можно? Хотя не очень понятно зачем они в контроллере, но посмотреть интересно.
Не обрадую, потому как сам видел только упоминания об ентом, но и сам удивляюсь.
Andre_2006
Jul 14 2005, 06:47
Бери PIC , только с встроеннным UART. PIC16F84 не имеет практическ иникакой переферии одни порты. Преимущество только во внутренней флеш памяти. Найти что-то похожее с внутренней флеш памятью и встроенным UART. Для пиков очень много схем программаторов в инете и шароварных программ для них, можно самому спаять. Среда разработки MPLAB. Можно найти на www.microchip.ru или com. Там же много схем и документации по применению. MPLAB позволяет писать на си и на асме. Можно вести отладку программ с помощью симулятора.
kurtis
Jul 17 2005, 14:17
вопрос поповоду програматора!!!
http://www.lancos.com/e2p/siprog_base.pngтут сназно что низя менять lm2936 на lm7805...
и что будет если я все таки заменю одно на другое???
designer
Jul 17 2005, 15:34
Цитата(kurtis @ Jul 17 2005, 17:17)
вопрос поповоду програматора!!!
http://www.lancos.com/e2p/siprog_base.pngтут сназно что низя менять lm2936 на lm7805...
и что будет если я все таки заменю одно на другое???
Если питать от внешнего источника то все Ок.
Если же от СОМ порта то с некоторыми
микросхемами 93схх, NVM3060 ... может не работать,
так как падение напряжения 7805 ~2v.
kurtis
Jul 17 2005, 20:36
Если питать от внешнего источника то все Ок.
Если же от СОМ порта то с некоторыми
микросхемами 93схх, NVM3060 ... может не работать,
так как падение напряжения 7805 ~2v.
[/quote]
т.е. я могу смело убирать те 3 диода, что к стабилизатору идут, а сам стабилизатор подключить к внешнему источнику питания???
еще вопрос.....вот собрал я програматор, и хочу проверить работает ли он, или нет....и хочу написать простую програмку чтоб семисегментный индикатор загорался, и циферки показывались, так вот нужно мне резисторы ставить перед идникатором или нет???а то я в некоторых схемах я видел что стоят, а в некоторых нету....непонятно....я так понимаю что они должны ток ограничивать???
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.