Здравствуйте, TarasCo, Вы писали:
АА>>А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC? TC>IMHO, самые удобные AVR. PIC — хорошая машинка, только программировать не удобно, мне лично с AVR больше нравилось работать. Также, можно посветовать классику — 8051.
Я бы посоветовал TUSB3210 от техаских ковбоев. Плюсы:
1. Классическое ядро 8052
2. Загрузка фирмвари по USB, отлаживаться очень удобно.
3. 8 Кб памяти программ для обучения — за глаза.
4. Отличная реализация USB 1.1 — опять таки для изучения шины и особенностей написания драйверов — вполне достаточно.
5. Бесплатные образцы контроллеров Texas Instruments доставит Вам в течении 3-10 дней (мне пришло за 4 дня).
Хочу разобраться с программированием микроконтроллеров и подключением оных к PC например через USB, подскажите с чего начать, ходил на сайт MicroChip кое-что почитал, но datasheets не очень помогают. Мне интересно всё — напрмиер написал я программу, как мне её заставить работать на микроконтроллере, как контроллер подключить к PC. Поделитесь ссылочками и личным опытом.
Здравствуйте, Sub0, Вы писали:
S>Привет всем.
S>Хочу разобраться с программированием микроконтроллеров и подключением оных к PC например через USB, подскажите с чего начать, ходил на сайт MicroChip кое-что почитал, но datasheets не очень помогают. Мне интересно всё — напрмиер написал я программу, как мне её заставить работать на микроконтроллере, как контроллер подключить к PC. Поделитесь ссылочками и личным опытом.
Привет!
Могу поделиться личным опытом. Я занимался два года программированием AVR (это семейство микроконтроллеров фирмы Atmel — www.atmel.com)
Расскажу как начинал. Дело было на первой работе, сразу после института. Опыта — почти ноль, только институтская бакалаврская на 1816ВЕ48, впрочем, до железа так и не доведенная. В качестве первого задания дали исходники реального проекта (на asme для AVR), нужно было разобраться, как они работают и потом доработать программу. Сначала почитал даташит на микроконтроллер, потом разбирался с листингом, попутно изучая систему команд. Где-то через неделю наступило прояснение — понял, как работает программа и что она делает. Потом были свои разработки, шишек набил конечно немало.
Для программирования микроконтроллеров необходимо и достаточно иметь описание контроллера (datasheet), среду разработки (компилятор, отладчик) и программатор. Для PIC'ов и AVR могу посоветовать PonyProg — бесплатный программатор, очень простой, но достаточно надежный и удобный. Схему и программное обеспечение можно скачать здесь — www.lancos.com
Что касается подключения к компьютеру — проще всего сделать это, используюя COM-порт. С USB не работал, ничего по этому поводу сказать не могу.
Если появятся еще вопросы (я думаю, они появятся обязательно), рекомендую конференцию по микроконтроллерам на www.telesys.ru (Раздел Электроника -> Конференции).
Успехов! >BR
Здравствуйте, Sub0, Вы писали:
S>Хочу разобраться с программированием микроконтроллеров и подключением оных к PC например через USB, подскажите с чего начать, ходил на сайт MicroChip кое-что почитал, но datasheets не очень помогают. Мне интересно всё — напрмиер написал я программу, как мне её заставить работать на микроконтроллере, как контроллер подключить к PC. Поделитесь ссылочками и личным опытом.
А оно тебе надо?
Это же не только программирование, это еще и схемотехника...
И чтобы все грамотно сделать -- нужены не только знания, но и опыт.
Программу написать несложно.
Проще всего на ассемблере.
Как правило, инструменты для этого бесплатны и лежат на сайте производителя контроллера.
Можно поискать и компиляторы ЯВУ (Я пользовал IAR С)
Для того,чтобы написать программу для микроконтроллера (даже на ЯВУ), неплохо бы изучить архитектуру выбранного чипа.
Как с памятью работать, как с прерываниями и т.д. Это в DataSheets написано.
После того, как напишешь и отладишь (как правило есть программные эмуляторы, но если есть возможность -- используй ICE),
бинарник нужно залить в микроконтроллер. Нужен программатор. Хотя, если использовать чипы с возможностью in-system programmable (как например Atmel AVR -- рекомендую), то можно обойтись и без программатора -- паяешь кабель на LPT и прошиваешь с PC. Программку для прошивания напишешь сам -- не сложно, как именно прошиваются in-system написано у них в доках. (Например, через ноги MISO-MOSI).
Как ты контроллер будешь подключать?
Не знаю, зависит от того, что тебе нужно...
Но в любом случае, некоторая обвязка нужна самому контроллеру + обычно, еще конвертор для связи с внешним миром (Например, через RS-232 для нормализации уровней, для токовой петли... для USB тоже что-то было...).
Здравствуйте, Linuxoid, Вы писали:
---
Привет!
Меня интересует среда написания программы для микроконтроллера!
Собственно в чём надо прогу воять? Компилить? Отладка?
На Ассемблере?
А есть что нибудь получше, более удобное, чем код асмы?
убедительная просьба следить за объемом цитирования — модератор
... << RSDN@Home 1.2.0 alpha rev. 648>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Tim18, Вы писали:
T>Здравствуйте, Linuxoid, Вы писали: T>--- T>Привет! T>Меня интересует среда написания программы для микроконтроллера! T>Собственно в чём надо прогу воять? Компилить? Отладка? T>На Ассемблере? T>А есть что нибудь получше, более удобное, чем код асмы?
Какой микроконтроллер?
Существуют три метода:
1. Использовать бесплатный компилятор/ассемблер. Производители как правило держат это добро на сайтах. Работаем так:
-пишем в текстовом редакторе текст программы
-собираем компиляторм/асемблеров из командной строки. На выходе получаем бинарный модуль, годный для заливки в микропроцессор
-берем программатор ( бывают аппартаные или ( если микропроцессор поддерживает ) программные ( PonyProg например ) )
-тестирование и отладка только по косвенным признакам — мигаем лампочками и.т.д.
2. Использовать IDE. С этим посложнее, многие производители продают IDE, причем зачистую в составе китов. В последнем случае стоимость комплекта может быть внушительной. По сравнению с п.1 появляются следующие удобствия:
— возможность редактирования кода в спецалино заточенной под это IDE ( подсветка синтаксиса )
— использования симулирующего отладчика
— сборка в визуальном режиме.
Далее, как и в п. 1:
— ручная заливка
— отладка собственными силами
3. Использование специальных отладочных плат совместно с IDE.
В этом случае все происходит в визуальной среде.
Послений вариант наиболее удобен.
Многие фирмы продают т.н starter kit — комплект для изучения. Они как правило не дорогие ( не больше 1000$ ) и дают полное представление о цикле разработки. Если есть возможность, рекомендую начать с такого комплекта.
Да пребудет с тобою сила
Re[4]: Микроконтроллеры
От:
Аноним
Дата:
27.03.06 13:19
Оценка:
Здравствуйте, TarasCo, Вы писали:
TC>Существуют три метода: ......
А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC?
Программатор есть. PonyProg и ICProg есть!
Надобы учебник по асме!
Здравствуйте, Аноним, Вы писали:
АА>А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC?
IMHO, самые удобные AVR. PIC — хорошая машинка, только программировать не удобно, мне лично с AVR больше нравилось работать. Также, можно посветовать классику — 8051.
А>Надобы учебник по асме!
отучайтесь от учебников. Мануалы нужно читать
Здравствуйте, Tim18, Вы писали:
T>Меня интересует среда написания программы для микроконтроллера! T>в чём надо прогу воять? Компилить? Отладка? На Ассемблере? T>А есть что нибудь получше, более удобное, чем код асмы?
есть, IAR Embedded Workbench, который выпускается в версиях наверное под все типы процессоров и контроллеров... например PIC,AVR, MSP430(крайне рекомендую!),Z80,Motorola и т.д.
там есть:
— ASM
— С
— EC++ (Embedded C++, это C++ но без некоторых вредных для контроллеров фич)
— отладчик-симулятор со скриптами и кучами всяких наворотов
— отладчик-внутрисхемный — позволяет отлаживать программу прямо в реальном процессоре, установленном в ус-во
— встроенный прошиватор контроллера совмещенный с отладчиком, т.е нажал кнопку — скомпилилось, залилось, запустилось, отлаживай прямо в среде по исходнику...
ходи на telesys.ru, в раздел микроконтроллеры, там сможешь узнать где что брать и как чего сделать, периодически даже лекарство появляется
сам уже под контроллеры не пишу, так что о последних новинках не в курсе
также рекомендую uC/OS-II — мультиплатформенное многозадачное ядро реального времени на Си (кстати сертифицировано в США для применения в устройствах от которых зависит жизнь людей! широко применяется в аппаратуре самолетов) — довольно простое, легко портируется под любой процессор, не требовательно:
типично кушает ~2 кБ программной памяти; 2 кБ ОЗУ хватает на 3-4 задачи, одна из которых активно кушает стэк (например использующая printf)...
После виндовса это ядро очень удобно, т.к. дает возможность писать нормальные многозадачные решения, не заморачиваясь на машинах состояний, циклограммах и т.п.
Само ядро платное, стоит порядка $2000, демоверсии не распространяются, но если будет нада — найдешь
Тот кто говорит не знает, тот кто знает не говорит.
Здравствуйте, <Аноним>, Вы писали:
АА>>>А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC? TC>>IMHO, самые удобные AVR. PIC — хорошая машинка, только программировать не удобно, мне лично с AVR больше нравилось работать. Также, можно посветовать классику — 8051.
А>Я бы посоветовал TUSB3210 от техаских ковбоев. Плюсы: А>1. Классическое ядро 8052
AVR это фигня, сидел я на нем около года, TUSB3210 не знаю, но раз на ядре 8052 — тоже фигня: очередной ископаемый-монстр-зверо-ящер а-ля 51...
Для начала рекомендую PIC (проще 84-й) — очень простой контроллер: всего порядка 14 команд, порты FLASH/RAM, таймеры, все дела — для начала идеальный вариант: недорого, просто, доступно
Потом рекомендую семейство MSP430 от тексас инструментс — контроллер ЗВЕРЬ! Особенно модель MSP430F149 (или 168/169/другие) (правда в домашних условиях паять их тяжело, но в стартеркит входит тестовая плата с панелькой) — стартеркит у нас стоит $100
Правда MSP430 для изучения за один день сложноват, слишком много туда всякой всячены понапихали, кучи настроек понаделали, поначалу непревычно, а потом на другие даже смотреть нехочется, потомучто AVR'ы всякие со своими ATmaga'ми слишком ущербными представляются...
хотя в качестве миниатюрного контроллера ATtiny неплох (в soic исполнении), но архитектура у AVR дрянь, хотя древним программерам привыкшим к 8-битным процессорам нравится...
Тот кто говорит не знает, тот кто знает не говорит.
Здравствуйте, UgN, Вы писали:
UgN>Как правило, инструменты для этого бесплатны и лежат на сайте производителя контроллера.
я бы сказал что как правило платные, а те что бесплатные — фуфло...
но мир не без добрых людей, водится в народе лекарство
UgN>Можно поискать и компиляторы ЯВУ (Я пользовал IAR С)
java на слабых контроллерах нету, есть ASM, C и EC++ (в IAR например)
UgN>Как с памятью работать, как с прерываниями и т.д. Это в DataSheets написано.
да, без даташита с контроллерами никуда, заводи даташит — постоянно в него заглядывать прийдется
UgN>бинарник нужно залить в микроконтроллер. Нужен программатор. Хотя, если использовать чипы с возможностью in-system programmable (как например Atmel AVR -- рекомендую), то можно обойтись и без
AVR очень уродский контроллер — для программеров-пенсионеров, привыкших к 8-битам...
для начала PIC, потом рекомендую MSP430 — стратеркит стоит $100 в него входит плата с панелькой, на
плате выведены все выводы от контроллера и разьем для FET (Flash Emulation Tool) и небольшой девайсик подключаемый к LPT порту (слухи ходили вроде уже и USB появились) — с помощью этого девайса ты сможешь прошивать контроллер прямо из среды и отлаживать прямо в среде — по исходникам, код исполняемый прямо в реальной схеме! (in system programmable/in-system emulation), павда для прошивки бита защиты прийдется повозиться.
UgN>программатора -- паяешь кабель на LPT и прошиваешь с PC. Программку для прошивания напишешь сам -- не сложно, как именно прошиваются in-system написано у них в доках. (Например, через ноги MISO-MOSI).
для PIC'а схемка на паре диодах и конденсаторе в COM-порт, для AVR удобен LPT-порт, а для MSP430 лучше купить стартеркит — в него входит 2 контроллера (1 про запас), плата с панелькой, разьемом для FET и разьемчиками от каждого вывода контроллера и собственно FET (такая белая коробочка). Прежде чем покупать стартер кит выбери процессор — смотри чтоб удобно было паять и ресурсов было достаточно, стартеркиты есть под разные процессоры — отличаются платой с панелькой, FET везде одинаковый.
Тот кто говорит не знает, тот кто знает не говорит.
UgN>>Как правило, инструменты для этого бесплатны и лежат на сайте производителя контроллера.
S>я бы сказал что как правило платные, а те что бесплатные — фуфло...
ммм, можно поподробней, какие пробовали и в чем заключается фуфлизм.
S>AVR очень уродский контроллер — для программеров-пенсионеров, привыкших к 8-битам...
Здравствуйте, Streamer1, Вы писали:
UgN>>Можно поискать и компиляторы ЯВУ (Я пользовал IAR С)
S>java на слабых контроллерах нету, есть ASM, C и EC++ (в IAR например)
Я думаю, под ЯВУ автор имел ввиду Язык Высокого Уровня.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Здравствуйте, Аноним, Вы писали:
А>А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC?
Наиболее распространенные — PIC и AVR, по ним можно найти прорву примеров, наработок, готовых исходников. Я бы рекомендовал AVR, у него архитектура поизящнее и проще для понимания. Еще будут советовать различные клоны 8051, но я бы не советовал с ними связываться. Для изучения действительно легки, но архитектура безнадежно устарела и неэффективна, и если в дальнейшем планируется профессиональная работа в этой области, лучше сразу изучать более современные архитектуры.
А>Надобы учебник по асме!
Писать лучше на С (а для AVR можно и на С++). Но архитектуру целевого процессора знать хорошо, а она лучше всего описана в даташитах.
Здравствуйте, Сергей, Вы писали:
С>Здравствуйте, Аноним, Вы писали:
А>>А какой контроллер выбрать для обучения? -типа: для мигания лампочками, пару входов и выходов? Может PIC?
С> Наиболее распространенные — PIC и AVR, по ним можно найти прорву примеров, наработок, готовых исходников. Я бы рекомендовал AVR, у него архитектура поизящнее и проще для понимания. Еще будут советовать различные клоны 8051, но я бы не советовал с ними связываться. Для изучения действительно легки, но архитектура безнадежно устарела и неэффективна, и если в дальнейшем планируется профессиональная работа в этой области, лучше сразу изучать более современные архитектуры.
А>>Надобы учебник по асме! С> Писать лучше на С (а для AVR можно и на С++). Но архитектуру целевого процессора знать хорошо, а она лучше всего описана в даташитах.
С на PIC, на котором нету программного доступа к стеку? Это интересно. Как же там аргументы передаются и организются рекурсивные функции?
Здравствуйте, programmater, Вы писали:
P>С на PIC, на котором нету программного доступа к стеку? Это интересно. Как же там аргументы передаются и организются рекурсивные функции?
Если говорить о PIC16, то у него не просто доступа к стеку нет, а вообще нет стека данных, а стек возвратов ограничен всего 8 уровнями. Тем не менее, компиляторы С с этим вполне справляются. Используется так называемый компилированнный стек, то есть в процессе компиляции строится дерево вызовов, а затем компилятор раскладывает локальные переменные по статической памяти, с учетом порядка вызовов, чтобы они не они не перекрывались. Компилированный стек данных, кстати, более эффективен, чем обычный с точки зрения размера памяти. Ограничение — отсутствие реентерабельности, но это общая беда PIC16, хоть на АSМ пиши, хоть на С.
Лучшим компилятором для PIC16 считается Hi-Tech, пытаться писать на асме лучше чем он компилит — утопия. В смысле, выгадать процентов 30-40 по объему кода можно, но не стоит оно того в 21 веке, когда память дешевая, а зарплата программиста не очень.
А у PIC18 уже полноценный стек есть, на нем и С++ может быть, в частности у IAR есть. Но он, говорят, не очень, по качеству кодогенерации Hi-Tech проигрывает.
Хе, могу заметить, что одна из глав (вроде бы классификация, точно не помню)скатана с книги М.Гука почти один к одному, а многие главы — перевод документации с USB.org
К тому же примеры на делфяк — зло! =))
Здравствуйте, Sub0, Вы писали:
S>Привет всем.
S>Хочу разобраться с программированием микроконтроллеров и подключением оных к PC например через USB, подскажите с чего начать, ходил на сайт MicroChip кое-что почитал, но datasheets не очень помогают. Мне интересно всё — напрмиер написал я программу, как мне её заставить работать на микроконтроллере, как контроллер подключить к PC. Поделитесь ссылочками и личным опытом.
Сам я сейчас программирую PIC18... Для работы с USB не самый удобный микроконтроллер, но для начала может подойти =))
Здравствуйте, Сергей, Вы писали:
С>Здравствуйте, programmater, Вы писали:
P>>С на PIC, на котором нету программного доступа к стеку? Это интересно. Как же там аргументы передаются и организются рекурсивные функции?
С>Если говорить о PIC16, то у него не просто доступа к стеку нет, а вообще нет стека данных, а стек возвратов ограничен всего 8 уровнями.
Ну я именно это и имел в виду, просто видимо неудачно выразился. С>Тем не менее, компиляторы С с этим вполне справляются. Используется так называемый компилированнный стек, то есть в процессе компиляции строится дерево вызовов, а затем компилятор раскладывает локальные переменные по статической памяти, с учетом порядка вызовов, чтобы они не они не перекрывались. Компилированный стек данных, кстати, более эффективен, чем обычный с точки зрения размера памяти. Ограничение — отсутствие реентерабельности, но это общая беда PIC16, хоть на АSМ пиши, хоть на С.
Спасибо, этого не знал. Хотя на 32 ячейках ОЗУ (да еще и разбитых на 2 страницы — тоже считаю общей бедой пиков) не больно-то размахнешься на выращивания деревьев . Кстати, как компиляторы с двумя страницами справляются? С> Лучшим компилятором для PIC16 считается Hi-Tech, пытаться писать на асме лучше чем он компилит — утопия. В смысле, выгадать процентов 30-40 по объему кода можно, но не стоит оно того в 21 веке, когда память дешевая, а зарплата программиста не очень.
Вот с этим я бы поспорил. Насколько мне известно, понятие "память дешевая" к пикам (во всяком случае 16) неприменимо. Почему? Да потому что у них нет внешней шины адреса и шины данных! Или есть? Да не, ножек там мало. Так вот поэтому насколько мне известно, к пику внешнюю память не подключить, а посему втискиваться в ту, которая есть (а насколько я знаю, у самого большого 16 пика объем памяти под код 32килослова). Так что тут речь уже идет о том, влезем мы или не влезем в отведенное количество памяти, и никакой "дешевой памятью" эту ситуацию не исправить. Если не влезем — придется ставить более дорогой контроллер. Это вообще отличительная черта пиков — отсутствие внешней шины. ПИК — это "все в одном". С одной стороны это гуд (не нужна лишняя внешняя обвеска и минимум ног, а значит и габаритов), а с другой стороны не совсем — потому, что я описал выше. Так что я если уж надо писать для пика (кстати, не люблю я это занятие — уж больно спецефический ассемблер у него, а слежение за переключениями страниц вообще убивает), то пишу исключительно на асме и компиляторам не доверяю.
С> А у PIC18 уже полноценный стек есть, на нем и С++ может быть, в частности у IAR есть. Но он, говорят, не очень, по качеству кодогенерации Hi-Tech проигрывает.
Ну 18 — это уже "совершеннолетний" . Это уже совсем другая песня.