Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Программирование микроконтроллеров

Пн июн 04, 2012 11:57:30

Народ, помогите кто чем сможет.
Поставили мне задачу: "Создать схему на основе одного из микроконтроллеров семейства PIC, AVR, ARM, MSC-51, запрограммировать микроконтроллер, а потом заменить уже используемый нами микроконтроллер на какой-нибудь другой, изменить код так, чтобы его основа осталась и всё должно заработать". Тематика схемы абсолютно любая.
Реально ли переписать код без катастрофических изменений?
Или смысл кода будет таким же, но содержание абсолютно другим?
И самый главный вопрос: "Если ли у кого-нибудь одинаковые схемы с использованием разных микроконтроллеров?"

Re: Программирование микроконтроллеров

Пн июн 04, 2012 12:03:43

:))) Я наверно стану великим предсказателем, сказав что твоя тема в мусорке окажется,понабрав сначала кучу флуда. :tea:

Re: Программирование микроконтроллеров

Пн июн 04, 2012 12:10:05

Ну хоть попытаюсь, может найдутся добрые люди

Re: Программирование микроконтроллеров

Пн июн 04, 2012 14:55:00

На ум приходит только 2 контроллера, которые безболезненно заменяются без переделки схемы и платы - AT89C2051 (MCS51) и ATTiny2313/AT90S2313 (AVR). Причем сначала сделать на C2051, а потом переделать на 2313.

Re: Программирование микроконтроллеров

Пн июн 04, 2012 16:40:07

niXon-nos писал(а):Тематика схемы абсолютно любая.
Реально ли переписать код без катастрофических изменений?


Реально, если под кодом подразумевается исходники (на Си, например), а задача несложная и не выжимаются из контроллера все возможности и не используется специфика аппартной части МК.
В свое время переходили с 51 на AVR, в исходниках заменили только вектора прерываний, имена и "распиновку" портов, библиотеки EEPROM, остальное трогать не пришлось т.к. особенности 51 не сильно использовали, да и AVR 8515 по ресурсам своим не уступал 51-му.

niXon-nos писал(а):Народ, помогите кто чем сможет.
"Если ли у кого-нибудь одинаковые схемы с использованием разных микроконтроллеров?"

Проблема то в чем? Берешь любую схему на 51 которая занимается "ногодрыганьем" и заменяешь в ней проц. на AVR.
Желательно на такой же корпус с примерно такими же характеристиками. Pin-to-pin конечно обычно не получится, т.к. питание практически по любому на других ногах будет, но в целом сложного ничего нет.

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

Re: Программирование микроконтроллеров

Пн июн 04, 2012 16:52:14

_dark писал(а):Pin-to-pin конечно обычно не получится, т.к. питание практически по любому на других ногах будет, но в целом сложного ничего нет.

Получится для контроллеров, про которые я писал выше, только если у AVR ресет отключить, а то там наоборот по сравнению с 51-м...

Re: Программирование микроконтроллеров

Пн июн 04, 2012 17:04:01

_dark, вы точно подметили про написание переносимых исходников для тривиальных задач. Это мне и нужно.
Как это реализовать?

Re: Программирование микроконтроллеров

Пн июн 04, 2012 17:14:35

Если тематика схемы действительно любая, почему-бы не собрать мигалку светодиода, скажем, на PIC и мигалку на AVR. Мигалка - одна из первых программ на МК, найдете их в любой книге или обучалке. Но внутренний голос мне говорит, что препод это не одобрит. Есть-ли ограничения на сложность схемы?

Re: Программирование микроконтроллеров

Пн июн 04, 2012 17:17:25

Желательно несколько схем от самых простых до сложных.

Re: Программирование микроконтроллеров

Пн июн 04, 2012 17:33:49

Что в Вашем случае сложная схема? Совет тот-же. Посмотрите книги по тем-же PIC и AVR, каких больше всего из микроконтроллеров. Как правило примеры в них если не одинаковые то однотипные. Если писать на С, сам алгоритм, конечно, портируется от одного типа МК к другому. Однако, библиотеки стандартных функций и настройка ргистров будет разная. Больше всего, пожалуй, схем термометров и часов на PIC и AVR. Гугль в зубы и вперед. А еще лучше разберитесь по книгам как писать программы и сделайте сами. Так хоть чему-то научитесь.

Re: Программирование микроконтроллеров

Вт июн 05, 2012 19:21:45

...
под каждую задачу есть свой оптимальный кристалл - обусловлено разводкой корпуса, внутренней начинкой и особенностями ядра семейства
совместимые по корпусам :
at89c2051(4051) и attiny2313 (dip20)
at89c51/c52/s51/s52/c55wd и atmega8515/atmega162(dip40)
только вот внутренняя организация ...
mcs51 почти копируется лишь pic18nnn - но разводка выводов совершенно отличается
atmel (mega&tiny)- вариант Z80 с дополнительно подключенной периферией, что и обуславливает особенности построения программ
семейство pic10/12/16 стоит несколько "особнячком" - это МК для узкоспециализированных задач в виде разумных периферийных "добавок" средней степени сложности взамен "рассыпухе" но там, где такая замена разумна
ну и конечно у каждого "своя" система команд
так что если говорить о задании - прийдется за основу брать какое-то устройство, но... на каждый тип МК нужно не только свою программу писать, но и свою схемку рисовать... :tea:
я довольно часто использую особенности вышеуказанной "корпусной совместимости", особенно в автоматике световых эффектов и простейших усторйствах :beer:
Кстати, один из вариантов - стандартный автомат световых эффектов ( а не просто "помигалка" ) на базе AT89C2051 - ATTINY2313 - PIC16F628A - PIC18F1320 с небольшой разницей в печатном монтаже позволит провести сравнительный анализ особенностей всех 4-х разновидностей МК ( очень показательно, если на ассемблере программки писать ) :write:
похоже топикстартер или определился с дипломом или " злякався"... :cry:
Тема закрыта