|
Программирование МК для RS232, Помогите чайнику |
|
|
|
Apr 27 2005, 09:19
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-04-05
Из: Москва
Пользователь №: 4 467

|
Hi All.
Захотелось научить компьютер общаться с внешним миром. Решил начать с простого - вольтметр через COM-порт. Вроде все понятно. Осталось определиться с микроконтроллером. Никогда с этим не сталкивался. Люди, подскажите, какой выбрать? Желательно попроще для начала. Как его программировать? Хотелось бы писать на С. Где брать компилятор? В общем, вопросов больше чем ответов. Люди, подскажите!!!
|
|
|
|
|
Apr 27 2005, 09:34
|
Частый гость
 
Группа: Свой
Сообщений: 140
Регистрация: 7-04-05
Из: Россия, Владимир
Пользователь №: 3 941

|
Контроллер можно любой выбирать - PIC или AVR, для начала и подобных задач подойдет любой, почитай конфы и доки по ним, а там уж определись. Хотя мое скромное мнение, начинать надо с PICов, хотя на любой конфе идут беспощадные битвы и споры по поводу PIC vs AVR:) Достоинства PICа - простая архитектура, малое количество команд. AVR быстрее, но для подобной задачи это не суть важно, а вот команд у них в три раза больше. Новичку ИМХО труднее будет. Хотя вам конечно решать. С компилятором определитесь когда выберете МК. Обычно на официальном сайте. Хотя на Си не советовал бы писать. Программировать программатором, схемы выложены в инете в огромном количестве.
|
|
|
|
|
Apr 27 2005, 09:42
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-04-05
Из: Москва
Пользователь №: 4 467

|
Я тут посмотрел. Мне вот этот понравился PIC16F84, если найду его конечно. Как я понял, писать для одного МК можно на разных языках, а вот компилить-то чем? Или производитель предоставляет компилятор, библиотеки и т.д.?
|
|
|
|
|
Apr 27 2005, 09:56
|
Участник

Группа: Новичок
Сообщений: 33
Регистрация: 18-04-05
Из: Paris
Пользователь №: 4 271

|
у pic16f84, вроде ни АЦП, ни UART нет... имхо, проще будет, если для простого осцилографа со связью по RS232 взять что-нить типа pic16f87...
насчет языков - ассемблеры бесплатные и для ПИК, и для АВР, насчет компиляторов C - есть бесплатные шеловские версии, вроде... для пик HiTech - шеловская версия, для АВР, вроде, gcc есть
|
|
|
|
|
Apr 27 2005, 15:33
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-05
Пользователь №: 4 380

|
На мой взгляд лучше взять 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
|
|
|
|
|
Apr 28 2005, 05:50
|
Частый гость
 
Группа: Свой
Сообщений: 140
Регистрация: 7-04-05
Из: Россия, Владимир
Пользователь №: 3 941

|
Не буду навязывать свое мнение, но ИМХО, начинать с пика все же легче, потому как новичку проще разобраться с 35 командами нежели с порядка 100 у авр. После пика переход на авр не составит особого труда, к тому же у вас будет уже возможность сравнить эти два типа МК, зная и то и то. Как бы ни ругали пик за его корявые команды, они очень просты и новичку проще разобраться как работать только через аккомулятор, нежели через РОН.
Под пик неплохой программатор лежит на pic16f84.narod.ru, с некоторыми доработками эта схема у меня прекрасно работает уже много времени, программатор позволяет прошивать и авр, смотря с каким софтом вы работаете. Можно настроиться на работу с IC-prog, FPP_programmer, PonyProg, ну и стандартная программа с указанного сайта.
|
|
|
|
|
Apr 28 2005, 05:51
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-04-05
Из: Москва
Пользователь №: 4 467

|
Всем спасибо. Я уже склоняюсь взять оба и попробовать на обоих. Что больше понравится, то и будем юзать. Не понятно только, где нашли Mega8 за 1,5%? В чип-дипе он где-то 130 р. стоит. Или еще где места есть?
|
|
|
|
|
Apr 28 2005, 07:44
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(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. А в Чипе с дипом и цены покруче и никогда ничего нет (только под заказ, от ХХХ штук ) (ИМНО)
--------------------
WBR, ROC.
|
|
|
|
|
Apr 28 2005, 08:15
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(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, т.е. для этих целей придется писать данные во флешь, что не очень удобно, хотя жить можно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 28 2005, 08:40
|
Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429

|
Похоже, все опять сводится к вечной теме: AVR или PIC?  Меня тоже немного интересовал этот вопрос. Сейчас есть возможность убедиться воочию: пришел к нам на работу парнишка без опыта программирования контроллеров. Сначала дали ему написать небольшой проектик под мегу16. Справился за месяц. Потом дали написать тоже простой проектик под пик. Уже месяц матерится и обещает, что по окончании проекта за пики больше не возьмется  . Для меня это очень наглядный пример  .
|
|
|
|
|
Apr 28 2005, 09:50
|
Участник

Группа: Новичок
Сообщений: 33
Регистрация: 18-04-05
Из: Paris
Пользователь №: 4 271

|
Цитата(Karl @ Apr 28 2005, 10:40) Похоже, все опять сводится к вечной теме: AVR или PIC?  Меня тоже немного интересовал этот вопрос. Сейчас есть возможность убедиться воочию: пришел к нам на работу парнишка без опыта программирования контроллеров. Сначала дали ему написать небольшой проектик под мегу16. Справился за месяц. Потом дали написать тоже простой проектик под пик. Уже месяц матерится и обещает, что по окончании проекта за пики больше не возьмется  . Для меня это очень наглядный пример  . на чем пишет? на асме или на С? если на С, имхо, разницы почти никакой между пик и авр...
|
|
|
|
|
May 3 2005, 07:57
|
Группа: Новичок
Сообщений: 3
Регистрация: 15-03-05
Из: Россия, Омск
Пользователь №: 3 363

|
Программировать лучше начинать на Асме т.к памяти у МК не так много как хотелось бы. Большой плюс пика, это то наличие кучи AppNotes на офицальном сайте по которым можно учиться. Кристал лучше взять PIC16F877А переферии там полно само то для начала.
|
|
|
|
|
May 3 2005, 09:35
|
Группа: Новичок
Сообщений: 12
Регистрация: 1-05-05
Пользователь №: 4 659

|
Добрый вам...
А знае ли кто компелятор для АВР, чтоб писать программу на Си и на Асемблере одновременно!! Такой как например для 51-совместимых, Franklin ProView23 ??? там можно создать проект и писать часть программы на Си и часть на асемблере, оч. удобно!!!
|
|
|
|
|
May 6 2005, 17:23
|
Группа: Новичок
Сообщений: 12
Регистрация: 1-05-05
Пользователь №: 4 659

|
Цитата(yung @ May 4 2005, 10:47) ICC от ImageCraft. Могу поделиться лекарством (на мыло). Скинь пожалуйста лекарство на possy@mail.ru
|
|
|
|
|
May 10 2005, 17:27
|
Группа: Новичок
Сообщений: 4
Регистрация: 27-02-05
Пользователь №: 2 911

|
ИМХО - DS89C420. Прошивка/отладка без программатора, 1К ОЗУ, 16 К ПЗУ,13 прерываний, команда за колёб кварца, 2 УАППа и много еще чего. Пользуюсь IARовским Си + ломаным мною фитоновским симулятором PDS-51. И пока не думаю на что-либо др. переходить.
|
|
|
|
|
May 12 2005, 16:44
|
Группа: Новичок
Сообщений: 12
Регистрация: 1-05-05
Пользователь №: 4 659

|
Цитата(gor_mike @ May 10 2005, 23:27) ИМХО - DS89C420. Прошивка/отладка без программатора, 1К ОЗУ, 16 К ПЗУ,13 прерываний, команда за колёб кварца, 2 УАППа и много еще чего. Пользуюсь IARовским Си + ломаным мною фитоновским симулятором PDS-51. И пока не думаю на что-либо др. переходить. Чем прошиваешь контроллер?? Скинь ссылочку пожалуйста, если есть в инете схемка шнурочка и програмка.
|
|
|
|
|
May 19 2005, 09:41
|
Частый гость
 
Группа: Свой
Сообщений: 104
Регистрация: 27-08-04
Из: Минск
Пользователь №: 556

|
Цитата(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 (в порядке освоения)
|
|
|
|
|
Jun 2 2005, 16:58
|

Местный
  
Группа: Свой
Сообщений: 396
Регистрация: 22-10-04
Из: Воронеж
Пользователь №: 962

|
Моё мнение: для начала можно использовать прноц типа AT89C2051 (если доступен программатор под него), Keil и С. НИКАКОГО АССЕМБЛЕРА - ТОЛЬКО В КРАЙНИХ СЛУЧАЯХ. Нечего забивать себе голову. И время разработки и отладки сокращается в десятки раз. Можно без проблшемм использовать сложные типы данных (для той же связи с компьютером) типа struct + union - очень мощная штука для разработки гибких протоколов. А что касается плотности када - для мелких проектов - пожалуйста, но не дай Бог нужно будет через некоторое время что- то добавить - это вилы. Насчёт расходования памяти на С - многое зависит от компилятора. Не в целях саморекламы будет сказано НО делал программатор для однокристалок : AT89C51, С52, С2051 , PIC16F84A, AT90S1200 , I2C - мастер уместился в 4КБайта кода программ. Писал во Franclin ( вещь с глюком Keil - лучше). Если-бы на ASM - до сих писал. Если хотите заценить- вот ссылка: http://www.yra.h15.ru/my_projects/my_progects.php
--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
|
|
|
|
|
Jun 23 2005, 19:12
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jun 23 2005, 19:12
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
Цитата(x-x-x @ Jun 23 2005, 23:12) up
|
|
|
|
|
Jun 23 2005, 19:15
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
Цитата(x-x-x @ Jun 23 2005, 23:12) Цитата(x-x-x @ Jun 23 2005, 23:12) up
|
|
|
|
|
Jun 23 2005, 19:16
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
Цитата(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
|
|
|
|
|
Jun 23 2005, 19:19
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jun 23 2005, 19:20
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jun 23 2005, 19:21
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jun 23 2005, 19:22
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jun 23 2005, 19:22
|
Группа: Banned
Сообщений: 9
Регистрация: 22-06-05
Пользователь №: 6 237

|
test
|
|
|
|
|
Jul 7 2005, 09:28
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540

|
Я думаю, что важнее тут предыдущий опыт программирования. Многие начинали на асме х86, благо все системные сервисы под рукой. Тогда лучше брать Интеловское ядро. х51 имеет и УАРТ аппаратный. Небольшая интерфейсная схема, заключающаяся в инверсии и нормировании уровня, и усе готово. Симулятор тоже есть 8051 IDE. И кряк не нужен. Говорят потом с MCS легко переходить на другие камешки с аккумуляторной струкурой.
--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
|
|
|
|
|
Jul 7 2005, 09:37
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540

|
Это конечно если на асме. Но согласен, что С - это клево. А есть видел и С++. Книг по асме много, а вот по С для микров совсем нет. Мне уже посоветовали здесь совершенствовать аглицкий. Видно без этого не обойтись, все доки по С на нем и учебники. Безобразие! Может, кто все же знает источники, полдскажите. В смысле на русском.
--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
|
|
|
|
|
Jul 7 2005, 12:53
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824

|
Цитата(Kofey Nik @ Jul 7 2005, 12:37) Это конечно если на асме. Но согласен, что С - это клево. А есть видел и С++. А ссылку на плюсы можно? Хотя не очень понятно зачем они в контроллере, но посмотреть интересно.
|
|
|
|
|
Jul 8 2005, 09:08
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540

|
vesago Мысли о кодописательстве на асме лучьше сразу выкинуть из головы. 99% легко пишется на с. А проблем значительно меньше. Да и перейти на другой камень проще будет. Вся сила с в том, что нет привязки к конкретной платформе. Для начала можно попробовать PIC16F628, PIC16F876 (HT + MPLAB) или что нибудь из авр. Для авр как уже упоминалось лучьше всего CVAVR. Для всех этих камней просто состряпать программатор. Рекомендую www.ic-prog.com Если еще проще и дешевле можно обратить взор к at89c2051. Дешево и сердито. Компилятор Keil.
Повторюсь, что на С мне тоже кажется на пороядок легче, это естессно. Но человек может подумать, что достатоно перекомпилировать программу на другой проц и усе в ажуре. Здесь же нет унифицированного ввода-вывода, разная организация портов, а к ним подключается специфическая периферия. Так что программа все равно пишется под конкретный камень. Но переделать конечно легче.
tvv А ссылку на плюсы можно? Хотя не очень понятно зачем они в контроллере, но посмотреть интересно.
Не обрадую, потому как сам видел только упоминания об ентом, но и сам удивляюсь.
--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
|
|
|
|
|
Jul 14 2005, 06:47
|
Группа: Новичок
Сообщений: 14
Регистрация: 12-07-05
Пользователь №: 6 727

|
Бери PIC , только с встроеннным UART. PIC16F84 не имеет практическ иникакой переферии одни порты. Преимущество только во внутренней флеш памяти. Найти что-то похожее с внутренней флеш памятью и встроенным UART. Для пиков очень много схем программаторов в инете и шароварных программ для них, можно самому спаять. Среда разработки MPLAB. Можно найти на www.microchip.ru или com. Там же много схем и документации по применению. MPLAB позволяет писать на си и на асме. Можно вести отладку программ с помощью симулятора.
|
|
|
|
|
Jul 17 2005, 14:17
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
вопрос поповоду програматора!!! http://www.lancos.com/e2p/siprog_base.pngтут сназно что низя менять lm2936 на lm7805... и что будет если я все таки заменю одно на другое???
|
|
|
|
|
Jul 17 2005, 15:34
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 27-05-05
Из: Rivne, Ukraine
Пользователь №: 5 472

|
Цитата(kurtis @ Jul 17 2005, 17:17) вопрос поповоду програматора!!! http://www.lancos.com/e2p/siprog_base.pngтут сназно что низя менять lm2936 на lm7805... и что будет если я все таки заменю одно на другое??? Если питать от внешнего источника то все Ок. Если же от СОМ порта то с некоторыми микросхемами 93схх, NVM3060 ... может не работать, так как падение напряжения 7805 ~2v.
|
|
|
|
|
Jul 17 2005, 20:36
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Если питать от внешнего источника то все Ок. Если же от СОМ порта то с некоторыми микросхемами 93схх, NVM3060 ... может не работать, так как падение напряжения 7805 ~2v. [/quote] т.е. я могу смело убирать те 3 диода, что к стабилизатору идут, а сам стабилизатор подключить к внешнему источнику питания??? еще вопрос.....вот собрал я програматор, и хочу проверить работает ли он, или нет....и хочу написать простую програмку чтоб семисегментный индикатор загорался, и циферки показывались, так вот нужно мне резисторы ставить перед идникатором или нет???а то я в некоторых схемах я видел что стоят, а в некоторых нету....непонятно....я так понимаю что они должны ток ограничивать???
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|