Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT Mega 128 - срочно изучаю
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
RHnd
Здравствуйте!
Уволился у нас один разработчик, который среди прочего работал с ATMega128. Сейчас начальству срочно захотелось кое-что изменить в его проектах и меня кинули закрывать эту брешь. Сам я больше по FPGA, хотя C владею, с микроконтроллерами работал. Но вот с Atmel работал достаточно давно, и то с AT90S1200 под AVR Studio и на ассемблере.
Сейчас срочно зачитываюсь мануалом по Mega128 и хочу задать ряд вопросов:
1) Уволившийся разработчик работал под CompositeStudio (вроде, так пишется?), а, как я понял из форума, большинство пользуется WinAVR или IAR (правильно?). Так вот, стоит ли мне разрабатывать в той же среде, где и был проект разработан изначально, или же поставить что-то другое? Какие преимущества?
2) Ну это, скорее, не вопрос, а размышления. Хотя, может опытные коллеги что-то подскажут. smile.gif Железо, которое есть - там стоит мега и переферия входного и выходного каналов. Никаких лампочек/кнопочек. Вот я думаю - может, стоит сначала сделать какую-нить маленькую отладочную платку с мегой? На сколько большая у меги обвеска? И насколько функционален дебаггер?
3) С продукцией Atmel знаком весьма поверхностно. Расскажите, а какое место вообще занимает AT Mega128 среди атмеловских контроллеров? Похоже, не самый простенький контроллер, но, вроде, и не Hi-End? Просто хочется представлять, что это вообще за зверь и на сколько мощен.

Заранее большое спасибо за ответы.

PS: Да, я знаю, что rtfm спасет мир. Я уже читаю мануалы и уверен, что когда дочитаю и потыкаюсь с железом, то многие вопросы отпадут сами. Но, к сожалению, начальство хочет услышать от меня какие-то предварительные оценки и суждения уже сейчас. sad.gif Помогите, плиз.
Kuzmi4
2 RHnd
1) про CompositeStudio не слышал. На счёт работы с авр-ками воопсче - тут надо посмотреть код что разработчик писал - по читабельности бывает так , что быстрее написать свой чем разбираться в чужом, тогда лучше WinAVR или IAR - помощней продукты так думаю.
2) На счёт платы - был бы усарт заведён на вых.разъём - тогда в принципе можно и на готовой плате поотлаживаться. На счёт макетки воопсче - полезная вещь - только 1 нъюанс - 128-я в дипе не бывает а под QFP корпуса надо макетки специальные - в принципе есть счас - но это платка - где тупо выводятся все порты на пинхэды - тут в опсчем смотреть надо- мож просче сварганить свою отладочную да отдать чтоб изготовили. На счёт обвески - минимум - это кварц , 2 кондёра на него, 2 кондёра на питание , пару резюков и пару ледов - для индикации - вот я так думаю мин набор. Максимальный набор - в принципе зависит от разработчика и может быть достаточно обширен.
На счёт отладчика - 128-ю мегу можно заливать как по СПИ так и по житагу - по житагу можно так же отлаживаться при наличии житаг-айс - очень удобно.
3) 128-я мега - это типа старшее семейство мег (64- младшенькая ну и там по возрастаюсчей) - у неё вроде есть аппаратный драйвер работы со срам и много чего вкусного - сам не работал, ток читал ДШ.

Вот вроде бы простенькие ответы на ваши вопросы.
SasaVitebsk
Если планируется сколь-нибудь длительная и перспективная работа, то лучше переползти на IAR или GCC. Основное преимущество данных компиляторов - их многоплатформенность. Разные процы - единый подход. Ну и конечно эффективность.

С точки зрения макетки - как правило удобнее отлаживать в готовом устройстве. Для этого только разъём необходимо предусмотреть. С точки зрения удобства отладки - AVR очень хорош. Есть конечно нарекания (например остановы по условию дерьмово реализованы) но в целом - очень неплохо.

С точки зрения кристалла м128 - кристалл среднего поколения. Это уже не 11200/4414 но на смену уже идут 640/1280/2560/1281. Это кристаллы более нового поколения с более мощной переферией и более единообразным подходом.

А переползёте на IAR/GCC так там можно и at91sam7s64 к примеру. Уже менее 5$.
Freeze Anti
Насколько я знаю, компиллятор IARа разрабатывался специально, чтоб программировать AVRки... параллельно с разработкой самих AVRок и с учетом пожеланий производителей этих процессоров... ИМХО, классная штука! очень удобная, но стоит слишком уж больших денег...

В состав WinAVRа входит только компиллятор AVR-GCC и блокнот Programmer's Notepad... Конечно, можно отлаживать при помощи AVRStudio, но почему то у меня очень глючно это все происходит... в общем, нужно создать файл coff... а вот он у меня кривой какой-то... сишные части в нем плохо соответствуют ассемблерным, и в процессе отладки можно будет наблюдать останов программы на строчке с комментариями и подобный идиотизм... не всегда, к счастью... иногда он и нормально все делает...

В IARе есть замечательнейший отладчик CodeSPY... гораздо лучше связки WinAVR - AVRStudio...

Мое мнение: Если вам нужно только слегка видоизменить проект, то лучше оставить его в том компилляторе, какой уж есть... иначе придется полностью перелопачивать все исходники и подгонять их под особенности выбранного компиллятора..

Я, в основном, работал с ATmega32, хотя и с ATmega128 сталкиваться приходилось... ну... 128 лучше, конечно, но и дороже... так что все зависит, скорее, от конкретного устройства... для несложных приборов 128 будет явный перебор...

А если хотите знать, насколько мощна микросхема - читайте DataSheet... там на первой же странице ее основные характеристики... не пойму постановку вопроса...
mdmitry
Проект на mega128, связка winavr+eclipse+avrstudio. Через jtagmkII заливка и отладка, когда надо. В основном реал-тайм и отладчик не помогает, вывод в COM по необходимости. Кое-что симулировал в avrstudio (без периферии в основном).
При правильно сделанном makefile проблем с симуляцией и отладкой нет.
defunct
Цитата
И насколько функционален дебаггер?

Внутрисхемный дебаггер (JTAGICE / JTAGICE-MKII) будет функциональнее ARM'овского вдвое по количеству брекпоинтов (4, против двух у ARM), и по стабильности работы раз эдак в 10. AVRовский ocd boundary scan (фича внутри чипа) позволяет читать и менять через JTAG все, в т.ч. можно шить флеш, eeprom и т.п. и даже не терять контантакт с чипом когда ядро остановлено инструкцией sleep.

Цитата
Просто хочется представлять, что это вообще за зверь и на сколько мощен.

128kb flash / 4kb RAM - не много и не мало.
16MIPS честных MIPS - достаточно для реализации IP-телефона.

сам камень как уже отметили - среднего уровня, содержит довольно стандартный на сегодняшний день набор периферии - 2xUART, SPI, I2C, 4k EEPROM!, 8-ми канальный 10-ти битный АЦП, компаратор, 2x16-битных таймера, 2x8-битных таймера, асинхронный вход для подключения часового кварца (в ДШ это называют RTC, хотя какой это к черту RTC), 8-ми битную шину внешней памяти - 64k адресного пространства, WDT, супервизор питания (BOD).

Самым большим достоинством в сравнении с МК других семейств является набор очень быстрых (1-но тактовые как на запись так и на чтение) и мощных (до 40ma) портов GPIO. Еще к достоинствам можно отнести:
- простоту и надежность защиты содержимого внутренней памяти "LOCKS".
- неприхотливость к питанию (в стресс тестах устройства с m128 подавали вместо +5V на шину питания - +15В - сгорало почти все (стабилизаторы 5->3, внешняя память, mac), выживали только мега, микросхемы 74HC серии и драйвер 485-го.
Непомнящий Евгений
Цитата(SasaVitebsk @ Jan 23 2008, 18:54) *
С точки зрения удобства отладки - AVR очень хорош. Есть конечно нарекания (например остановы по условию дерьмово реализованы) но в целом - очень неплохо.


А где в АВР-студии остановы по условию??? Можно поподробней? Иногда очень полезны были бы, но я что-то ничего такого не нашел... Или имеется в виду останов по записи в память?
haker_fox
Цитата(defunct @ Jan 24 2008, 06:55) *
(в ДШ это называют RTC, хотя какой это к черту RTC)

Вы имеете в виду, что сами часы придется реализовать программно?
hd44780
Цитата(haker_fox @ Jan 24 2008, 09:10) *
Вы имеете в виду, что сами часы придется реализовать программно?


Да.
Я делал так - подключал кварц на 32768, получал прерывание раз в секунду (или в 1/2),
дальше - набор переменных - секунды, минуты и т.д.
Удобно, когда проц в спячке - на батарейной подпитке. Один недоделанный девайс у меня так полгода провалялся на полке. Включил - часы тикают идеально.

Если надо, могу коды под CvAVR пригнать.
SasaVitebsk
Цитата(Непомнящий Евгений @ Jan 24 2008, 10:06) *
А где в АВР-студии остановы по условию??? Можно поподробней? Иногда очень полезны были бы, но я что-то ничего такого не нашел... Или имеется в виду останов по записи в память?

Ну да я имел ввиду data breakpoint по терминологии Atmel. Реализовано супер дерьмово. Практически невозможно пользоваться.
Непомнящий Евгений
Цитата(SasaVitebsk @ Jan 24 2008, 15:31) *
Ну да я имел ввиду data breakpoint по терминологии Atmel. Реализовано супер дерьмово. Практически невозможно пользоваться.

А чего вам в них не хватает? Можно указать любой адрес и останов по записи...
defunct
Цитата(haker_fox @ Jan 24 2008, 09:10) *
Вы имеете в виду, что сами часы придется реализовать программно?

Да, только программно. sad.gif
zltigo
Цитата(defunct @ Jan 24 2008, 01:55) *
Внутрисхемный дебаггер (JTAGICE / JTAGICE-MKII) будет функциональнее ARM'овского вдвое по количеству брекпоинтов (4, против двух у ARM)

Не совсем понял, к чему это? Количество железных брейпойнтов ядром опроеделяется а не JTAG адаптером и даже с этой точки зрения ARM бывают разные. Ну а количество софтовых брекпойнотов определяется софтом отладчика, вообще не ограничено и тоже не зависит от JTAG.
Цитата
, и по стабильности работы раз эдак в 10.

Или да или нет smile.gif. Качеством коннкретного JTAG железа и софта определяется, однако а отнюдь не суперкачесвом некого отлаживаемого ядра.
Цитата
AVRовский ocd boundary scan (фича внутри чипа)...

Эта фича отнюдь не AVR-овская и присутствует у подавляющего большинства чипов любого производителя.
defunct
Цитата(zltigo @ Jan 24 2008, 20:21) *
Не совсем понял, к чему это? Количество железных брейпойнтов ядром опроеделяется а не JTAG адаптером и даже с этой точки зрения ARM бывают разные. Ну а количество софтовых брекпойнотов определяется софтом отладчика, вообще не ограничено и тоже не зависит от JTAG.

Ожидал такой поворот ;>
речь там о железных точках ядра. Адаптеры были сказаны "к слову", долго правил пост но так и не смог найти более подходящего места для их вставки.

Цитата
Или да или нет smile.gif. Качеством коннкретного JTAG железа и софта определяется, однако а отнюдь не суперкачесвом некого отлаживаемого ядра.

Ок в качестве аргумента приведу вот что:
Запускаем отладку, снимаем питание с таргета (обесточиваем таргет, можно и отладчик отключить от чипа для пущей наглядности и включить обратно)
Запитываем таргет и останавливаем отладку.
AVR-овский отладчик молча остановится на текущей выполняемой команде.

АРМовский вылетит с криками о потере таргета задолго до подачи питания.

Цитата
Эта фича отнюдь не AVR-овская и присутствует у подавляющего большинства чипов любого производителя.

Я говорю про ее реализацию в AVR. К примеру в ARM нет ни eeprom, ни возможности программировать флеш через JTAG не загрузив в память и не выполнив специалную программу (чуть ли не для каждого конкретного чипа свою), которая будет "шить".

Название одинаковое, реализация разная где-то лучше, где-то хуже. В AVR реализация лучше, но лишь только потому, что чип проще и ядро новее.
zltigo
Цитата(defunct @ Jan 24 2008, 22:36) *
AVR-овский отладчик молча остановится на текущей выполняемой команде.
АРМовский вылетит с криками о потере таргета задолго до подачи питания.

Кто такие "AVR-овский" кто такой "ARM-овский" типа любой? Ну детский сад просто sad.gif
Цитата
Я говорю про ее реализацию в AVR.
....
Название одинаковое, реализация разная где-то лучше, где-то хуже

"Ее" реализация при наличии такой фичи абсолютно стандартизирована комитетом JTAG в середине восьмидесятых.
Цитата
К примеру в ARM нет ни eeprom

Где нет, где есть, где несколько килобайт RAM c батарейкой.. Много их с буковками ARM.
Цитата
, ни возможности программировать флеш через JTAG не загрузив в память и не выполнив специалную программу (чуть ли не для каждого конкретного чипа свою), которая будет "шить".

Ну а в AVR типа святым духом smile.gif Программированием занимается программатор - его дело поддерживать чипы - он и поддерживает, причем безотносительно ядра чипа.
Цитата
В AVR реализация лучше, но лишь только потому, что чип проще и ядро новее.

Ну насчет новее это прикольно...

P.S.
Я чего-то не понимаю к чему все эти панегрики - выбор за Автора поста сделан уже давно, так к чему все эти странные неуклюжие разговоры AVR vs ARM?
defunct
Цитата(zltigo @ Jan 24 2008, 23:23) *
Я чего-то не понимаю к чему все эти панегрики - выбор за Автора поста сделан уже давно, так к чему все эти странные неуклюжие разговоры AVR vs ARM?

Вы начали? нет? если показалось - перекрещусь smile.gif
Я высказал свое мнение об m128 как смог и сравнил с тем, что сейчас "популярно".
zltigo
Цитата(defunct @ Jan 25 2008, 00:56) *
Вы начали? нет? если показалось - перекрещусь smile.gif

Читайте, креститесь:
Цитата(defunct @ Jan 25 2008, 00:56) *
Внутрисхемный дебаггер (JTAGICE / JTAGICE-MKII) будет функциональнее ARM'овского вдвое по количеству брекпоинтов (4, против двух у ARM), и по стабильности работы раз эдак в 10. AVRовский ocd boundary scan (фича внутри чипа) позволяет читать и менять через JTAG все, в т.ч. можно шить флеш, eeprom и т.п. и даже не терять контантакт с чипом когда ядро остановлено инструкцией sleep.


Цитата
Я высказал свое мнение об m128

Это святое!
Цитата
как смог и сравнил с тем, что сейчас "популярно".

Ну а я, как смог, обьяснил, что сравнение, ну скажем, не совсем объективно. Я поступил неправильно?
defunct
Цитата(zltigo @ Jan 25 2008, 01:04) *
Ну а я, как смог, обьяснил, что сравнение, ну скажем, не совсем объективно. Я поступил неправильно?

Ок, надо вернуть объективность.

m128 обладает возможностью полноценной внутрисхемной отладки, встроенный модуль OCD позволяет:
- одновременно использовать 4 аппаратных точки останова
- сканировать (читать/записывать) все узлы МК из отладчика
- продолжать работу когда ядро остановлено.

Из отладочных средств доступны адаптеры JTAGICE/JTAGICE-MKII плюсами которых можно выделить:
- высокая стабильность - (можно сутками находиться в режиме отладки без потери связи с отлаживаемым чипом)
- простота настройки (не требуют никакой настройки)
- возможность программирования МК через JTAG/dW.

минусы:
- ограниченный набор поддерживаемых чипов
- сравнительно высокая цена (только для МК 2)
RHnd
Большое спасибо всем ответишим, хотя, вы меня сначала сильно запутали smile.gif Не ожидал, что спровоцирую такую дискуссию.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.