Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: XMEGA: будущее, которого мы так долго ждали, наступило.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 00:19) *
Отсутствие erratа не означает отсутсвие ошибок. Ну и судя по скромному уровню текущих даташитов у XMEGA еще много чего впереди smile.gif.
Ну как же, вот там есть errata. Она не нулевой длины, но с TI несравнима smile.gif
http://www.atmel.com/dyn/resources/prod_do...nts/doc8067.pdf
Цитата(zltigo @ Jun 14 2008, 00:19) *
8 каналов у MSP это на один меньше, чем 4 у XMEGA? Как считали???
Читаем черными буквами на белом
Three Channel Internal DMA
http://focus.ti.com/lit/ds/symlink/msp430f5418.pdf
Цитата(zltigo @ Jun 14 2008, 00:19) *
Так и передам - Intel их своим атомным оружием их закопает smile.gif. Особенно если вдруг возьмется за старое и какой-нибудь MSC351 выпустит wink.gif.
Ндя, 45 нм 51 была бы смертельным оружием. И чего это интель ее не сделал? crying.gif
zltigo
Цитата(Evgeny_CD @ Jun 13 2008, 22:55) *
Ну как же, вот там есть errata. Она не нулевой длины, но с TI несравнима smile.gif

Если уровень этой errata соотносится с errata от TI, также как соотносятся их документация (ну очень предварительная у Atmel и уже вполне юзабельная у TI), то к перечню багов в errata от Atmel следует относится, как к очень предварительному.
Цитата
Читаем черными буквами на белом
Three Channel Internal DMA

В описании на все семейство MSP430x5xx Family User's Guide - до восьми smile.gif. Все еще впереди.
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 01:06) *
В описании на все семейство MSP430x5xx Family User's Guide - до восьми smile.gif. Все еще впереди.
Ну они там много чего в ядро заложили. Но не все работет - один баг с указателем стека чего стоит sad.gif
Evgeny_CD
В Хмеге еще просто обалденно сделано мультиплексирвоание IO пинов. На 50 стр. документа можно посмотреть.
http://www.atmel.com/dyn/resources/prod_do...nts/doc8067.pdf

В частности, подключение внешней памяти не "убивает" встроенную периферию, в отличие от AVR32!

Из интересных вещей - поддерживается 4 битный SDRAM. Практическая ценность - может пригодиться для неторопливого логгинга чего-нибудь большого.

Еще одна приятная особенность - The EBI is clocked from the Fast Peripheral clock, running up to two times faster than the CPU and supporting speeds of up to 64 MHz. Так что работа с SDRAM не такая уж и медленная будет. Особенно учитывая наличие DMA memory <-> memory.
733259
Почитал , event system весьма впечатлила.
Похоже xmega реальная круть.
zltigo
Цитата(733259 @ Jun 14 2008, 09:28) *
Почитал , event system весьма впечатлила.

А немного вдуматься? Что-то революционное есть? Когда одна периферия толкает другую это достаточно распростаненная вещь. Таймер тактирует ADC, ADC - DMA, Таймера каскадируются....
Там, где есть реально применимые комбинации производители стараются сделать завязки. Тут, как-бы все эти связи сделали более гибко-универсальными. Но особый толк от этого появился?
Возьмите просто первый абзац и просмотрите комбинации источников и потребителей этих эвентов. Сколько из них жизненнных? Определенная польза несомненоо извлекается, например интересна возможность постоения цепочек, одновременное воздействие на несколько потребителей....
Но в общем фича достаточно рекламная.
Цитата
Похоже xmega реальная круть.

Я бы сказал даже нереальная smile.gif smile.gif
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 12:56) *
Я бы сказал даже нереальная smile.gif smile.gif
Ладно парни, кончаем воду мутить! Объявлется конкурс на "первого пощупавшего Xmega живьем" 1111493779.gif
zltigo
Цитата(Evgeny_CD @ Jun 14 2008, 11:21) *
Ладно парни, кончаем воду мутить! Объявлется конкурс на "первого пощупавшего Xmega живьем" 1111493779.gif

Какой приз? Только сразу предупреждаю, меня интересуют на данный момент только 'A4'. Ну и если они будут подороже мелких Cortex от ST, то я их исследование отложу в долгий ящик. Поминаемый ранее семинарчик идет под крылышком поставщика который уже вовсю ST поставляет. Посему какую-нибудь в первом плиближении сопоставимую! цену они будут вынуждены озвучить. Причем перед лицом Atmel-овского представителя. Ну и про образцы тоже чего-нибудь вынуждены будут сказать...Ну а если не смогут ответить на оба вопроса, то тогда это все еще вилами по воде писано...
733259
Цитата
А немного вдуматься? Что-то революционное есть? Когда одна периферия толкает другую это достаточно распростаненная вещь.
Распространенная, только "толкать" ADC от таймера придется через обработчик прерывания. А с event system - стабильная и весьма малая задерка, ИМХО не достижимая на гораздо более быстрых ARM-ах.
Или можно запустить ADC по сигналу от внешнего сигнала, от ноги.
Dog Pawlowa
Цитата(733259 @ Jun 14 2008, 12:51) *
Распространенная, только "толкать" ADC от таймера придется через обработчик прерывания....
Гм... Даже в примитивном MSP430 можно запустить ADC от таймера без прерывания. Оч удобно делать что-то типа синхронного детектора.
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 13:44) *
Ну и если они будут подороже мелких Cortex от ST, то я их исследование отложу в долгий ящик.
Странно Вы мыслите. Хотя дело хозяйское.

Не все так однозначно в стоимость чипа уперлось. При тиражах до 1к/мес 1 человеко/мес работы инженера добавит в стимость изделия сумму, гораздо больше разницы в цене контроллеров.

В ATxmega есть нормальня внешняя шина, которую в STM32 как-то забыли завезти. В Cortex, если не путаю, тоже. А это дает возможность подрубить FPGA (SPI подключение FPGA - это, все же, не совсем то, что и параллельная шина). А это уже совсем другой расклад, знаете ли...
zltigo
Цитата(Evgeny_CD @ Jun 14 2008, 12:29) *
Не все так однозначно в стоимость чипа уперлось. При тиражах до 1к/мес 1 человеко/мес работы инженера добавит в стимость изделия сумму, гораздо больше разницы в цене контроллеров.

Я не увидел в XMEGA ничего такого, что могло-бы мне сэкономить этот саммый человеко/месяц. Или даже день. Наоборот - время на хорошее освоение очередного чипа придется просто потратить. Посему привлечь меня они могут только ценой.
Цитата
В ATxmega есть нормальня внешняя шина, которую...

Я уже писал, в данном случае меня интересуют мелкие контроллеры для относительно массового применения в качестве периферийных - по 16-32 штуки на один STR9/AT91/LPC24. Если мне требуются средние и выше, то есть гораздо более масштабируемые и мощные семейства.
Цитата
в STM32 забыли завезти. В Cortex, если не путаю, тоже.

Для начала STM32 это и есть Cortex-M3. Ну а про "забывчивость" можно говорить много,например в XMEGA Atmel "забыл" завести USB, CAN, Ethernet, SDIO... После этого я слышу разговоры о "внушительной периферии"... sad.gif
Если мне требуется внешняя шина то я просто использую чипы типа STR9, LPC23/24, благо выбор есть.
Цитата
А это дает возможность подрубить FPGA (SPI подключение FPGA - это, все же, не совсем то, что и параллельная шина). А это уже совсем другой расклад, знаете ли...

У мня мало контроллеров без FPGA, но большая часть FPGA у меня подключена именно по SPI - 15..30 MHz при 16bit совсем не плохо, а размеры-цена и контроллера, и FPGA тоже имеют значение. FPGA c 'лишними' даже несколькими десятками выводов будет кроме выводов иметь на борту больше ресурсов и стоить больших денег. Я отнюдь не считаю каждую копейку, поскольку прежде всего важно развитие и последующая модернизация, но выбрасывать деньги на многократный "про запас" и ресурсы людей на хотя-бы ту-же аккуратную разводку дополнительных десятков проводов (c потенциальной вероятностью возникновения дополнительных проблем)не люблю. Еще о "внушительной периферии" - тут у меня работенка ну очень микромощная висит, только вот XMEGA там не играет совсем - среди "внушительной периферии" не нашлось контроллера LCD.
733259
Цитата
Наоборот - время на хорошее освоение очередного чипа придется просто потратить. Посему привлечь меня они могут только ценой.
Но это же AVR, чего там такого, что требует длительного освоения?
В смысле для тех, кто уже AVR програмил.
zltigo
Цитата(733259 @ Jun 14 2008, 14:05) *
Но это же AVR, чего там такого, что требует длительного освоения?

Слово "длительное", я вообще-то, не произносил! Я оспаривал не весть от куда взявшуюся экономию человека/месяца. А осваивать придется - периферия достаточно изменилсь к лучшему, но разбираться надо, описание (на данный момент) ее скромное ну и в благостное состояние errata я, простите, не верю.

Кстати, заметили, что I/O XMEGA не толерантны к 5V? Полагаю, что многим взращенным на 5V обвеске к мегам, придется (это нормально, ибо давно пора) осваивать новую. А вообще-то это плохо, ибо имеют место быть достаточно уникальные интерфейсные чипы, которые работают о 5V не из-за "старости" а по причинам физического порядка. Согласование уровней лепить....
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 15:40) *
У мня мало контроллеров без FPGA, но большая часть FPGA у меня подключена именно по SPI - 15..30 MHz при 16bit совсем не плохо, а размеры-цена и контроллера, и FPGA тоже имеют значение. FPGA c 'лишними' даже несколькими десятками выводов будет кроме выводов иметь на борту больше ресурсов и стоить больших денег. Я отнюдь не считаю каждую копейку, поскольку прежде всего важно развитие и последующая модернизация, но выбрасывать деньги на многократный "про запас" и ресурсы людей на хотя-бы ту-же аккуратную разводку дополнительных десятков проводов (c потенциальной вероятностью возникновения дополнительных проблем)не люблю.
Почти согласен, кроме одной фишки - tracing.

Для отладки сложных систем в реальных условиях мне нужен максимально подробный "лог" работы системы реальном времени. Причем в условиях автонома. Т.е. пусть к контроллеру и будет подключена какая-то железяка, но без пЫсюков, супер-мега JTAG тулзов и пр.

В варианте FPGA на шине (подключение которой, к тому же, уменьшит число IO портов, но не "прибьет" периферию, как это часто бывает в других контроллерах) я могу посадить в эту FPGA SDRAM контроллер и сделать так. В нужном месте процессор пишет по адресу какой-нибудь U16. Делается это просто, с учетом дополнительных команд на запрет/разрешение прерывания, в AVR тактов за 10 получится. В FPGA к этим данны приписывается еще значение U64 какого-нибудь внутреннего счетчика, и это попадает в FIFO. От туда в SDRAM. Там оно может храниться, а может быть перекачано при помощи отдельного процессора, подрубленного "с другой стороны" FPGA, в какой-нибудь FLASH.

Ну и для пущей точности, я могу подрубить GPS, и понему синхронизировать внутренний таймер, так что засечки разных приборов у меня будут синхронизирваны с точностью 1 мкс без больших напрягов.

В результате, развернув, например, в реальных условиях радиосеть из мелких девайсов, я спустя неделю пройдусь по ним, заменю автомобильные аккумуляторы (вместо которых в реальных условиях будут CR2032) и передерну SD карточки.

Далее я всасываю логи в большой SQL сервер, и анализирую, все, что у меня творилось в сети. И сразу видно, как разные глюки смотрелись с точки зрения разных девайсов в сети.

Разумеется, перед этим я изнасилую свою радиосеть в синтетических симуляторах по полной программеsmile.gif, но симуляция лишь дополняет натурный эксперимент.

Вот для таких точных засечек SPI не пойдет. А параллельная шина самое то.

В боевом устройстве я просто разведу плату по другому, возьму малоногий кристалл, и в программе ничего не изменится - только уберу "засечки".
Цитата(zltigo @ Jun 14 2008, 15:40) *
Еще о "внушительной периферии" - тут у меня работенка ну очень микромощная висит, только вот XMEGA там не играет совсем - среди "внушительной периферии" не нашлось контроллера LCD.
Странный подход. При изобилии OLED и LCD девайсов со встронным контроллером нормальная внешняя шина куда важнее, чем встроенный LCD контроллер smile.gif
733259
Цитата
Кстати, заметили, что I/O XMEGA не толерантны к 5V?
Заметил.
Также заметил, что в первой статье на ЭФО (Микроконтроллеры XMEGA - новые возможности проверенного решения) в начале написано, что в дальнейшем Atmel выпустит толерантные и в атомобильном температурном диапазоне.
zltigo
Цитата(Evgeny_CD @ Jun 14 2008, 15:02) *
В результате, развернув, например, в реальных условиях радиосеть из мелких девайсов, я ....

Радиосеть из мелких девайсов с немаленькими FPGA, GPRS, SD карточками... и все это от CR2032..
Цитата
В боевом устройстве я просто разведу плату по другому....

Если боевое устойство совсем другое, то осталось сделать последний шаг - в отладочном устройстве вместо навешивания к несчастной XMEGA FPGA, автомобильных аккумуляторов и прочего, просто выкинуть и ее нахрен...
Цитата
При изобилии OLED и LCD девайсов со встронным контроллером нормальная внешняя шина куда важнее, чем встроенный LCD контроллер smile.gif

Ну не нужен мне 16*2 и подобные индикаторы в изобилии использующийся где попало. И контроллер на нем дополниельно кушающий тоже не нужен. Нужно обычное заказное "стекло" стоящее доллар-другой за дециметр, даже при мелких сериях.

Цитата(733259 @ Jun 14 2008, 15:07) *
Также заметил, что в первой статье на ЭФО..

Следующий этап читать новости написанные на заборах... Ладно, это я так. Ворчу. Это на мой взгляд, тот случай, когда "потом" уже будет почти не нужно.
Evgeny_CD
Цитата(zltigo @ Jun 14 2008, 17:36) *
Радиосеть из мелких девайсов с немаленькими FPGA, GPRS, SD карточками... и все это от CR2032..
Написал же. В процесс отладки девайс напишет в лог - типа он тут заснуть пытался. А вот тут у него случилось прерывание, которое его разбудит.

Потом анализируем логи и, зная сколько девайс жрет в каждый момент времени (вводим его в такой режим отладочным монитором и тупо меряем тестером), вычисляем, сколько он проживет от CR2032.

Кайф ATxmega в том, что я выкину все аппаратные отладочные навороты, поставлю нужный define, чтобы отладочые "засечки" отключить, и все! Больше ничего в программе не изменится! Вероятность, что при столь малых модификация в боевую прогу будут внесены ошибки, пренебрежимо мала.
Цитата(zltigo @ Jun 14 2008, 17:36) *
Ну не нужен мне 16*2 и подобные индикаторы в изобилии использующийся где попало. И контроллер на нем дополниельно кушающий тоже не нужен. Нужно обычное заказное "стекло" стоящее доллар-другой за дециметр, даже при мелких сериях.
Тут возразить нечего. Такого нет - но, надеюсь, потом добавят.
SasaVitebsk
Цитата(zltigo @ Jun 14 2008, 16:36) *
Ладно, это я так. Ворчу.


Рекламный - не рекламный трюк (Event system), а только никто его не сделал до них. А, сейчас, любая фирма, включая именитые пойдёт на практически любой рекламный трюк. Если он не ухудшит кристалл и увеличит объём продаж. Да многие подходили близко, а они взяли обобщили, и создали новый переферийный модуль. Неизвестно ещё будут ли им пользоваться, но он есть! И, я думаю, аналогичные появятся у других производителей. Это чего-то да стоит.

Я не пою дифарамбы Atmel, но я очень уважительно отношусь к их групе разработчиков. Придумать что-то новое в нашем мире - ой как непросто.

А обсуждать конкретные результаты - помоему рановато ещё. Надо дожить. smile.gif
zltigo
Цитата(SasaVitebsk @ Jun 16 2008, 20:07) *
И, я думаю, аналогичные появятся у других производителей. Это чего-то да стоит.

Аналогичные для реально полезных сочетаний у "других" уже есть. Atmel добавил разнобразия комбинаций - вдруг пригодится. Степень пригодности завистит от нюансов работы сего механизма. Его описание на данный момент более, чем поверхностно.
Цитата
Придумать что-то новое в нашем мире - ой как непросто.

Ничего нового и не предумано sad.gif. Пока основное бросающееся в глаза достижение это увеличение всего периферийного до 4-8-12... При этом размеры RAM остаются достаточно скромными.
Цитата
А обсуждать конкретные результаты - помоему рановато ещё. Надо дожить. smile.gif

Основная масса контроллеров на данный момент анонсирована аж на 1Q2009. Судя по темпам тогда в лучшем случае реально будут доступны те два чипа, которые обещают "сегодня", т.е. 3Q2008. Точно "нужно дожить" sad.gif. Следовательно я никак не дождусь мелких A4 и у меня будут в конце года использоваться STM32 в качестве массового периферийного контроллера. Время sad.gif.
Evgeny_CD
Ура! ATXMEGA128A1-AU в каталоге Mouser появились. Самих чипов на складе нет, когда будут - непонятно, но цены довольно разумные: 100 - $5.63. Для чипа с таким набором фич - просто отлично!

www.mouser.com
zltigo
Цитата(Evgeny_CD @ Jul 5 2008, 21:01) *
100 - $5.63. Для чипа с таким набором фич - просто отлично!

При этом обычная ATMEGA128 там-же даже более 10 баксов за те-же 100 smile.gif.

- а почему у Вас пиво по 50 рублей, а в соседнем ларьке по 30?
- ну возьмите в соседнем.
- там нет
- вот, когда у меня не будет - у меня тоже будет по 30.
researcher
XMEGA: будущее, которого мы так долго ждали, наступило crying.gif …… STM32 beer.gif

STM32 – универсальное решение на ARM-ядре
(НОВОСТИ ЭЛЕКТРОНИКИ №8, 2008)
http://www.compeljournal.ru/enews/2008/8/6
или
http://www.compeljournal.ru/images/articles/2008_8_6.pdf

ЗЫ
В чем сила XMEGA брат…. Copyright © БРАТ 2
Evgeny_CD
Цитата(researcher @ Jul 6 2008, 16:48) *
STM32 – универсальное решение на ARM-ядре
(НОВОСТИ ЭЛЕКТРОНИКИ №8, 2008)
http://www.compeljournal.ru/enews/2008/8/6
или
http://www.compeljournal.ru/images/articles/2008_8_6.pdf
Статейки в журналах - это хорошо. Когда их пишут люди, не имеющие интереса в последствиях влияния изложенного в статье на кошелек пишущего yeah.gif

Перечитайте ветку. У Xmega против STM32 есть немало козырей.
* потребление при работабщем RTC выского разрешения, когда Вы можете поставить прерывание на любой тик 32768
* внешняя шина
* система поддержки events
* PWM от быстрой PLL

По "лобовой" производительности, конечно, проигрыш (было бы странно, если бы было наоборот), но в реальных проектах не все так однозначно...
Dog Pawlowa
Цитата(Evgeny_CD @ May 18 2008, 17:12) *
В общем, читаем pdf моих старых постов по синтетическим портам и виртуальной разработке, и можно приступать к созданию конкурентов автономных радиоканальных девайсов типа ZigBee smile.gif

Евгений, а что Вы используете для собственно радиоканала, если не секрет?
Спасибо, сорри за ОФФ.
Evgeny_CD
Цитата(Dog Pawlowa @ Jul 7 2008, 12:05) *
Евгений, а что Вы используете для собственно радиоканала, если не секрет?
Спасибо, сорри за ОФФ.
ADF7021
oran-be
По баальшому опыту работы с Атмелами появление столь большого количества периферийных наворотов вызывает только мысли о зубной боли. И чего спрашивается писать кипятком? Каждый периферийный узел Атмела - это от пары дней до пары недель вынимания глюков и написания патчей. Мало еррат? Ничего - скоро появятся, кроме того Атмелы имеют нехорошую привычку не афишировать глюки своей периферии.
И вообще - ДМА к 8-битнику - ИМХО - все равно что к велосипеду прикрутить турбонаддув. При обработке сигналов( как раз там, где хорошо иметь ДМА) 16-битник будет вставлять 8 битник, даже, если у последнего тактова будет раза в 4 выше. А при задачах контроля, где надо просто подергать лапками - ДМА и нафиг не нужен. И зачем Атмелы забацали такого "гадкого утенка" - непонятно. Скорее всего, чтобы составить конкуренцию ПИК24. Смешные потуги - 24-е и дешевле получаются и быстрее, периферия у них тоже впечатляет, а уж о подходе Микрочипов к качеству выпускаемого на рынок продукта говорить не приходится.
Rst7
Цитата
а уж о подходе Микрочипов к качеству выпускаемого на рынок продукта говорить не приходится.


Именно. Я помню отличную замену 16F873 на 16F873A... Поменяли, почти все платы не запустились, потому как выше 4МГц первые образцы не поехали. А в платах был кварц 10... И плат было не 10 штук... А еще отличные камни MCP2510, которые с приличной вероятностью пакеты поганят. И ENC28J60 - идея отличная, но исполнение - с тем самым "подходом Микрочипов к качеству выпускаемого на рынок продукта"

Вы, господа, простите меня за разжигание wink.gif Пар спустил разок и хватит, больше не буду smile.gif Просто очень не нравится, что в ветке по AVR меня уговаривают, что AVR - гуано.
SasaVitebsk
Цитата(oran-be @ Jul 10 2008, 19:01) *
По баальшому опыту работы с Атмелами появление столь большого количества периферийных наворотов вызывает только мысли о зубной боли. И чего спрашивается писать кипятком? Каждый периферийный узел Атмела - это от пары дней до пары недель вынимания глюков и написания патчей. Мало еррат? Ничего - скоро появятся, кроме того Атмелы имеют нехорошую привычку не афишировать глюки своей периферии.

Данное заявление наводит на мысли как раз о "маалом опыте работы". По крайней мере в AVR проблем при работе с переферией просто не наблюдаю. С ерратами что-то тоже не густо. Вы вообще о чём? Может про at91...
Цитата
И вообще - ДМА к 8-битнику - ИМХО - все равно что к велосипеду прикрутить турбонаддув. При обработке сигналов( как раз там, где хорошо иметь ДМА) 16-битник будет вставлять 8 битник, даже, если у последнего тактова будет раза в 4 выше. А при задачах контроля, где надо просто подергать лапками - ДМА и нафиг не нужен. И зачем Атмелы забацали такого "гадкого утенка" - непонятно.

Вот сомнения zltigo мне понятны. Если считать, что на время цикла ПДП CPU будет приостановлен, то тогда эффективность данного переферийного узла невысока. Учитывая что время обращения самого процессора будет сопоставимо с временем обращения DMA. Собственно в этом случае выигрыш будет скорее сервисный. То есть удобство, что часть работы будет осуществлятся "фоново".
А ваши наезды вообще мне непонятны. При чём здесь вообще задача? Если брать обработку сигналов, то надо чётко разделить её на несколько подзадач. Одной из подзадач может являться (а может и нет) подзадача ввода или вывода аналогового сигнала. Если здесь применить ПДП.... Далее всё это не имеет смысла обсуждать, потому что фактически выигрыш будет зависеть от эффективности работы самого ПДП. Ну и при чём здесь обработка?
Эффективность решения вычислительных задач будет зависеть от применённого алгоритма, разрядности процессора и эффективности набора комманд. Это очевидно и нового вы ничего не сказали.
Приведу пример возможного использования. Ввожу странично данные из внешнего EEPROM в ОЗУ (буфферизую) и с помощью DMA вывожу значение в ЦАП. Пока нет реального устройства говорить возможно ли первую часть реализовать на DMA не приходится, но вторая часть явно реализуется просто. Эффективность такой работы, опять же, зависит от реализации ПДП в данном МК, но удобство - совершенно для меня очевидно.
В статье что-то говорится о нескольких внутренних шинах. Ясно, что при одновременном обращении CPU будет простаивать, но возможно обращения к переферии будут разрулены. Даже если это так, то это может дать серьёзный скоростной выигрыш на такой операции.
Цитата
Скорее всего, чтобы составить конкуренцию ПИК24. Смешные потуги - 24-е и дешевле получаются и быстрее, периферия у них тоже впечатляет, а уж о подходе Микрочипов к качеству выпускаемого на рынок продукта говорить не приходится.

Качество Микрочипов ни на йоту не лучше качества Атмелов. Ни с одного источника. Обсуждать что Атмел покушается на долю рынка Пик бессмысленно. Они пытаются сохранить свою долю. Ну это на мой взгляд. Но я не собираюсь претендовать на истину. Лучше спросить у самого Атмела об этом. Зачем новую войну начинать. Если 24 лучше, то нет смысла для вас заглядываться на xmega. Зачем?
aesok
Цитата(SasaVitebsk @ Jul 10 2008, 20:56) *
Вот сомнения zltigo мне понятны. Если считать, что на время цикла ПДП CPU будет приостановлен, то тогда эффективность данного переферийного узла невысока. Учитывая что время обращения самого процессора будет сопоставимо с временем обращения DMA. Собственно в этом случае выигрыш будет скорее сервисный. То есть удобство, что часть работы будет осуществлятся "фоново".


Atmel пишет что в AVR архитектуре 70% инструкций выполняються между регистрами, без обращения к памяти, и RAM в это время свободна. Тоесть они подрузамевают что циклы DMA выполняються во время этих инструкций. Надо внимательно почитать про DMA, как на самом деле он работает.

вот цитата из ATxmega A MANUAL:

Цитата
A bus arbiter controls when the DMA controller and the AVR core can use the bus. The core
always has priority, so as long as the core request access to the bus, any pending burst transfer
must wait. The core requests bus access when it executes an instruction that write or read data
to SRAM, IO memory, EEPROM and the External Bus Interface. For more details on memory
access bus arbitration, refer to ”Data Memory” on page 36



Анатолий.
zltigo
Цитата(aesok @ Jul 10 2008, 19:09) *
Atmel пишет что в AVR архитектуре 70% инструкций выполняються между регистрами...

Так можно и 100% сделать, только тогда зачем вообще DMA которое пересылает что-то в память к которой потом не обращаются. А еще пишут, что новые зубные пасты на 72% уменьшают заболевания страшным кариесом smile.gif.... Почему Atmel точнее не посчитал smile.gif DMA, естественно, лучше иметь, чем не иметь, только не панацея это, совсем не панацея, особенно в надеющихся на то, что оно "само работает", но не слишком умелых руках sad.gif.
aesok
Цитата(zltigo @ Jul 10 2008, 23:01) *
Так можно и 100% сделать, только тогда зачем вообще DMA которое пересылает что-то в память к которой потом не обращаются. А еще пишут, что новые зубные пасты на 72% уменьшают заболевания страшным кариесом smile.gif.... Почему Atmel точнее не посчитал smile.gif DMA, естественно, лучше иметь, чем не иметь, только не панацея это, совсем не панацея, особенно в надеющихся на то, что оно "само работает", но не слишком умелых руках sad.gif.


Зачем тк зло? AVR - это риск процессор которай загружает данные в регистры, а все вычисления выполняет между регистрами. Вот в эти моменты DMA и может работать с шинной данных не мешая процессору. Давайте возмем какой нибудь реальный проект и посчитаем соотношение инструкций которые работают только с регистрами к тем которые работают с памятью (in/out/ld*/st*/pop/push/call...) Тогда и можно будет понять 70 это процентов, 72 или 68. ну уж точно не 100 и не 0.

Вам нахаляву добавили DMA, эффективность работы которого в реальных приложениях которого примерно 70 процентов, и при этом никакого замедления в работе ядра, что в этом плохого? Что его эффективность не 100 прочентов?

А говорить что можно написать программу состоящию только из одних out ... можно, только зачем этой програме DMA???

Анатолий.
GetSmart
У кого-то паранойя smile.gif Не будем показывать пальцем у кого.

ЗЫ. В IBM PC ещё на ISAшных слотах чудесно работал DMA на звуковухе например. Все поголовно были счастливы.
zltigo
Цитата(aesok @ Jul 10 2008, 21:23) *
Вам нахаляву добавили DMA...

Про халяву sad.gif поговорим, если цена будет на конкурентном уровне. На данный момент дешевле обходится без "халявы" от Atmel.
SasaVitebsk
Да нет в общем то я надеялся на лучшее. zltigo всётаки прав. Получается, что они даже при работе с IO областью не разрулили. Чтож - ладно.

Несколько непонятно. Регистры это же тоже RAM. Хотя возможно доступ к ней отдельно как-то осуществляется.
zltigo
Цитата(GetSmart @ Jul 10 2008, 21:27) *
ЗЫ. В IBM PC ещё на ISAшных слотах чудесно работал DMA на звуковухе например

А еще первые HDD контроллеры работали на DMA, а потом перестали, ибо мееедленно, а потом опять стали, когда 386 c кэшами появились и на PCI c busmaster-ами переползли.



Цитата(SasaVitebsk @ Jul 10 2008, 21:30) *
Регистры это же тоже RAM...

Обычно они не за шиной находятся, посему это не проблема. Опять-таки шины данных и команд у AVR разные, посему польза есть. Я только супротив чрезмерной эйфории, типа "DMA это наше все" выступаю. По энергопотреблению от DMA, при грармотной архитектуре и правильном применении есть несомненная польза.
aesok
Цитата(SasaVitebsk @ Jul 10 2008, 23:30) *
Да нет в общем то я надеялся на лучшее. zltigo всётаки прав. Получается, что они даже при работе с IO областью не разрулили. Чтож - ладно.


Я взял реальный проект, MP3 плеер, размер секци кода 11968 байт или 5984 инструкций. При этом количесто инструкций OUT - 59 и IN - 84, тоесть разруливание ситуации с адресным пространством 0-3F, даст повышение эффективности работы DMA только на 2,5%. Со всем адресным пространством IO примерно процентов на 5.


Анатолий.

Цитата(SasaVitebsk @ Jul 10 2008, 23:30) *
Регистры это же тоже RAM.


Вы не читали описание Xmega. В ней регисры не отражаются в RAM.

Цитата(zltigo @ Jul 10 2008, 23:27) *
Про халяву sad.gif поговорим, если цена будет на конкурентном уровне. На данный момент дешевле обходится без "халявы" от Atmel.


Говоря про халяву я имел ввиду не деньги, а то что DMA не оказывает влияния на производительность ядра. А сколько денег захочет с нас взять за это атмел, это другой вопрос.

Анатолий.
Огурцов
Не понравилась мне xmega (
DMA могло бы иметь больший приоритет, чтобы обеспечивать _равномерность_ ввода-вывода, а честной кроссировки периферии на произвольный пин так и не появилось. Напротив, шесть UART`ов и иже с ними вроде бы совершенно ни к чему. В одном камне. Короче, я уже начал ждать xmega-2 ))) (
zhevak
+ мои 5 копеек

Господа, не следует забывать о том, что АТМЕЛ уже сформировал поколение AVR-разрабочиков.

Каким бы старым ни было 51-е ядро, его все еще продолжают выпускаить (и улучшать) только лишь потому, что целый слой разработчиков (и море разработок) невозможно вот так взять и перенести на другие ядра. А раз нельзя, и есть спрос, то почему бы не продолжать продавать 51-е ядра?

Я про себя скажу. Я периодически пытаюсь переползти на АРМ. Примерно уже год, как пытаюсь. (Смейтесь на здоровье!) Что мне мешает? -- А мешает мне как раз та текучка, которая не дает "поиграться" с новым МК. Мешает риск (связанный с не знанием новой архитектуры) не уложится в сроки или вообще (о, ужас!) провалить проект. Поэтому, приходится опираться на проверенные решения. Поэтому, при повышенных требованиях к вычислительной мощности ядра я буду все-таки ориентироваться на Х-Мега, а не на АРМы. Ну или разбивать процессы на несколько МК -- Мастер-камень и несколько слейв-камней.

Вывод прост -- мы все во власти времени, мы рабы времени. Недостаток времени делает нас заложниками того или иного ядра. Понимая это, АТМЕЛ создает ядро максимально похожее на AVR, но с навовротами, которые можно постепенно в процессе работы "доучить". В целом же, какртина для АВР-щиков не сильно изменилась. По крайней мере переползти с Мага/Тайни на Х-Мега быстрее и легче, чем на тот же АРМ7/9, ПИКи и другие ядра.

И еще, Х-Мега -- это не заменитель какого-то продукта, это -- еще одна консерва на полке в супермаркете. А покупать или не покупать -- это дело вкуса. Спорить о вкусах -- только время тратить.
А тем более навязывать свой вкус.


Наверно много банально сказал, да?
oran-be
Цитата(SasaVitebsk @ Jul 10 2008, 19:56) *
По крайней мере в AVR проблем при работе с переферией просто не наблюдаю.

Наводит на мысль "не ошибается тот. кто ничего не делает". В общем - они есть.
Цитата(SasaVitebsk @ Jul 10 2008, 19:56) *
Приведу пример возможного использования. Ввожу странично данные из внешнего EEPROM в ОЗУ (буфферизую) и с помощью DMA вывожу значение в ЦАП. Пока нет реального устройства говорить возможно ли первую часть реализовать на DMA не приходится, но вторая часть явно реализуется просто. Эффективность такой работы, опять же, зависит от реализации ПДП в данном МК, но удобство - совершенно для меня очевидно.

Чем то напоминает абстрактную аппликуху, которая красиво выглядит, но реально приткнуть ее совершенно некуда.
Цитата(GetSmart @ Jul 10 2008, 22:27) *
ЗЫ. В IBM PC ещё на ISAшных слотах чудесно работал DMA на звуковухе например. Все поголовно были счастливы.

Тока что этой МЕГЕ делать, если у нее нет звуковой карты, а шина 8-битная и наружу не выходит.
Цитата(zltigo @ Jul 10 2008, 22:01) *
А еще пишут, что новые зубные пасты на 72% уменьшают заболевания страшным кариесом smile.gif....

Эт немного не по теме, но программистам будет интересно, зачем пишут такие надписи. Это - как бы я назвал - "кумулятивная мотивация" - говоря техническим сленгом. элементарный троян. Эта фраза оборачивается спереди фразой - утверждением, типа - "Специалисты утверждают - ", обычно выделяемой каким нить способом. Как это работает? При прочтении моск, пытаясь выделить смысл фразы, определяет. что она смысла не имеет ( вдумайтесь сами о 72% - особенно мне нравятся фразы типа "делают ваши волосы сильнее на 80%"), на крайняк будет немного смешно. Как следствие - пропускает ее. Но настроение, заключенное во фразах - утверждениях, остается и попадает напрямую в подсознание и, когда перед вами будет выбор купить ту или эту зубную пасту подсознательно вы выберете именно эту.
aesok
Цитата(SasaVitebsk @ Jul 10 2008, 23:30) *
Да нет в общем то я надеялся на лучшее. zltigo всётаки прав. Получается, что они даже при работе с IO областью не разрулили. Чтож - ладно.


Оказываеться разрулили.
ATxmega A MANUAL, страница 37, и рис 4-3.
Цитата
4.10 Data Memory and Bus Arbitration

As the Data Memory organized as four separate sets of memories, the different bus masters
(CPU, DMA Controller read and DMA Controller write) can access different memories at the
same time. As Figure 4-3 on page 38 shows, the CPU can access the External Memory while
the DMA Controller (DMAC) is transferring data from Internal SRAM to I/O Memory.


Анатолий.
Dir
Цитата(Огурцов @ Jul 10 2008, 23:51) *
Не понравилась мне xmega (
DMA могло бы иметь больший приоритет, чтобы обеспечивать _равномерность_ ввода-вывода, а честной кроссировки периферии на произвольный пин так и не появилось. Напротив, шесть UART`ов и иже с ними вроде бы совершенно ни к чему. В одном камне. Короче, я уже начал ждать xmega-2 ))) (


Перефразирую "сколько людей - столько мнений", в "сколько разработчиков - столько задач"... мне вот их DMA и перекроссировка периферии и нафиг не нужны, а 8 UARTов - самое ценное, что там есть smile.gif
singlskv
Цитата(oran-be @ Jul 11 2008, 21:11) *
Наводит на мысль "не ошибается тот. кто ничего не делает". В общем - они есть.

Огласите пожалуйста хоть одну багу в переферии AVR которая не описана в еррате...
И желательно с исходным кодом который ее(ошибку) продемонстрирует...
SasaVitebsk
bb-offtopic.gif
Да что вы не видите, человек работает с PICами и наслушился страшных сказок от таких же как сам.

Да пусть приведёт пример ошибки переферии озвученной в errate. Для совершенно новой atmega2560 - две строчки незначительных. Я сейчас просмотрел несколько камней ходовых - это же слёзы просто. Давече вон с at90can128 работал. У кристаллов с CAN интерфейсом традиционно большие ерраты. А здесь - пару строчек.

При разработке мне дали в виде основы аналогичный текст для 18fxx8x кристалла. Когда реализовал его на can128 - я плакалъ. Исходный текст несколько страниц - результирующий - десяток строк инициализации да два обработчика прерываний по пять строк. Что и говорить - зато кристалл простой. smile.gif

PS: Даю выдержку из даташита на at90can128 (разработанную во времена былинные и до сих пор выпускающуюся) и прилагаю оффициальную еррату (последнюю) с сайта микрочипов на серию can контроллеров. Не будем обращать внимание на такую мелочь как ошибки ядра - просто бегло просмотрите.

Код
Errata The revision letter in this section refers to the revision of the AT90CAN128 device.
Rev A & B - Rev A (Part marked M128CAN11-EL)
- Rev B (Part marked 90CAN128-EL)
• Sporadic CAN error frames
• Spike on TWI pins when TWI is enabled
• ADC differential gain error with x1 & x10 amplification
• Asynchronous Timer-2 wakes up without interrupt
• SPI programming timing
• IDCODE masks data from TDI input
6. Sporadic CAN error frames
When BRP = 0 the CAN controller may desynchronize and send one error frame to ask
for the retransmission of the incoming frame, even though it had no error.
This is likely to occur with BRP = 0 after long inter frame periods without synchronization
(low bus load). The CAN macro can still properly synchronize on frames following the
error.
Problem Fix/Workaround
Set BRP greater than 0 in CANBT1
5. Spike on TWI pins when TWI is enabled
100 ns negative spike occurs on SDA and SCL pins when TWI is enabled.
Problem Fix/Workaround
No known workaround, enable AT90CAN128 TWI first versus the others nodes of
the TWI network.
4. ADC differential gain error with x1 & x10 amplification
Gain error of - 4 lsb has been characterized on the part.
Problem Fix/Workaround
Software adjustment.
3. Asynchronous Timer-2 wakes up without interrupt
The asynchronous timer can wake from sleep without giving interrupt. The error only
occurs if the interrupt flag(s) is cleared by software less than 4 cycles before going
to sleep and this clear is done exactly when it is supposed to be set (compare match
or overflow). Only the interrupts flags are affected by the clear, not the signal witch
is used to wake up the part.
Problem Fix/Workaround
No known workaround, try to lock the code to avoid such a timing.
2. SPI programming timing
When the fuse high byte or the extended fuse byte has been written, it is necessary
to wait the end of the programming using “Poll RDY/BSY” instruction. If this instruc384
AT90CAN128
4250D–CAN–07/04
tion is entered too speedily after the “Write Fuse” instruction, the fuse low byte is
written instead of high fuse /extended fuse byte.
Problem Fix/Workaround
Wait sometime before applying the “Poll RDY/BSY” instruction. For 8MHz system
clock, waiting 1 μs is sufficient.
1. IDCODE masks data from TDI input
The JTAG instruction IDCODE is not working correctly. Data to succeeding devices
are replaced by all-ones during Update-DR.
Problem Fix / Workaround
– If AT90CAN128 is the only device in the scan chain, the problem is not
visible.
– Select the Device ID Register of the AT90CAN128 by issuing the IDCODE
instruction or by entering the Test-Logic-Reset state of the TAP controller to
read out the contents of its Device ID Register and possibly data from
succeeding devices of the scan chain. Issue the BYPASS instruction to the
AT90CAN128 while reading the Device ID Registers of preceding devices of
the boundary scan chain.
– If the Device IDs of all devices in the boundary scan chain must be captured
simultaneously, the AT90CAN128 must be the first device in the chain.
oran-be
Цитата(singlskv @ Jul 13 2008, 01:09) *
Огласите пожалуйста хоть одну багу в переферии AVR которая не описана в еррате...
И желательно с исходным кодом который ее(ошибку) продемонстрирует...
Пожалуйста - аппаратное зависание TWI. Исходный код - возьмите прямо из даташита. Конфигурация - АВР мастер. Схематически не подключите слэйв, или сделайте так, чтобы онгенерил NACK. Все. При генерации старт условия узел возвращает ошибку, что слэйв занят. Если тут же сгенерить повторное старт условие, узел подвиснет наглухо. Описанный в даташите сброс ошибок не работает.
Вторая - это, возможно уже из серии "кто старое помянет, тому глаз вон". УАРТ. На первых МЕГАХ УАРТ начинал прием байта не по заднему фронту, а по низкому уровню. Это позволяло выгодно пользоваться этой ошибкой при приеме DMX. Атмел так и не признал свою ошибку, а тихонечко исправил. Во всяком случае, на МЕГЕ162.
Третье - эта ошибка описана в еррате, но предложение по ее решению мне очень нравится. МЕГА48/88/168. Прерывание, вызываемое генератором собаки. Оказывается, оно может не срабатывать. Решение, предлагаемое Атмелами - это разрешать это прерываение перед его срабатыванием. Просто писк.
smile3009.gif
Цитата(SasaVitebsk @ Jul 13 2008, 13:03) *
bb-offtopic.gif
Да что вы не видите, человек работает с PICами и наслушился страшных сказок от таких же как сам.
С Атмелами по причине их дешевизны и доступности просто приходится работать.
SasaVitebsk
Цитата(oran-be @ Jul 14 2008, 09:19) *
Пожалуйста - аппаратное зависание TWI. Исходный код - возьмите прямо из даташита.

Уважаемый. Если бы я не работал с AVR, то наверное я бы вам поверил. Слышал какие-то легенды на эту тему, но мне как-то сложно в это поверить и я не вдавался в подробности. Причина проста:
Только в одном из последних изделий у меня применена связка m640+m48. Связка работает по общей шине I2C на которой, в том числе, сидят 2 at24c512. m640 является мастером, а m48 слэйвом, который эмулирует 24с01. Там часы, температура и другие датчики. Инфу с m48 я читаю 1 раз в минуту. Чтение с 24с512 идёт непрерывно. Самое древнее изделие работает с короткими остановками 2.5 года. Изделий таких несколько десятков. Были ошибки программного характера. Сейчас устранили и никаких проблем просто нет. Ни с какими висами вообще не сталкивался. Кстати очень похожий по структуре контроллер в LPC2106.
ArtemKAD
Цитата
Прерывание, вызываемое генератором собаки. Оказывается, оно может не срабатывать. Решение, предлагаемое Атмелами - это разрешать это прерываение перед его срабатыванием. Просто писк.

Понимаешь, собака она и есть собака. Но если ты ее сильно хочешь использовать как обычный таймер с автономным генератором, то будь любезен руками очищать флаг этого прерывания когда туда попадаешь (иначе следующий раз не попадешь).
Да и насколько я помню эта проблема была лишь на первых чипах (A).
ЗЫ. А тебе что, остальных таймеров в M48 не хватает?
defunct
Цитата(oran-be @ Jul 14 2008, 09:19) *
Третье - эта ошибка описана в еррате, но предложение по ее решению мне очень нравится. МЕГА48/88/168. Прерывание, вызываемое генератором собаки. Оказывается, оно может не срабатывать. Решение, предлагаемое Атмелами - это разрешать это прерываение перед его срабатыванием. Просто писк.

Обождите, причем тут разрешение перед его срабатыванием? Особливо если учесть, что этот режим WatchDog'a используется для пробуджения МК из глубокого сна.

2. Watchdog Timer Interrupt disabled
If the watchdog timer interrupt flag is not cleared before a new timeout occurs, the watchdog will
be disabled, and the interrupt flag will automatically be cleared. This is only applicable in interrupt
only mode. If the Watchdog is configured to reset the device in the watchdog time-out
following an interrupt, the device works correctly.
Problem fix / Workaround
Make sure there is enough time to always service the first timeout event before a new watchdog
timeout occurs.
This is done by selecting a long enough time-out period.

Если туго с переводом, поможем:
Главное успеть попасть в обработчик прерывания WDT до того как произойдет следующий таймаут. Что обеспечивается выбором WDT интервала достаточной длительности.
oran-be
Цитата(SasaVitebsk @ Jul 14 2008, 14:55) *
Только в одном из последних изделий у меня применена связка m640+m48. Связка работает по общей шине I2C на которой, в том числе, сидят 2 at24c512. m640 является мастером, а m48 слэйвом, который эмулирует 24с01. Там часы, температура и другие датчики. Инфу с m48 я читаю 1 раз в минуту. Чтение с 24с512 идёт непрерывно. Самое древнее изделие работает с короткими остановками 2.5 года. Изделий таких несколько десятков. Были ошибки программного характера. Сейчас устранили и никаких проблем просто нет. Ни с какими висами вообще не сталкивался. Кстати очень похожий по структуре контроллер в LPC2106.
Читайте внимательно - если возвращается ошибка, повторный запрос сразу с возвратом ошибки завешивает узел. У нас тоже такие связки работали, пока не понадобился контроль ошибок. Потом пришлось в весь софт встраивать патчи.
Цитата(ArtemKAD @ Jul 14 2008, 22:25) *
Понимаешь, собака она и есть собака. Но если ты ее сильно хочешь использовать как обычный таймер с автономным генератором, то будь любезен руками очищать флаг этого прерывания когда туда попадаешь (иначе следующий раз не попадешь).
Да и насколько я помню эта проблема была лишь на первых чипах (A).
ЗЫ. А тебе что, остальных таймеров в M48 не хватает?

Цитата(defunct @ Jul 14 2008, 23:15) *
Обождите, причем тут разрешение перед его срабатыванием? Особливо если учесть, что этот режим WatchDog'a используется для пробуджения МК из глубокого сна.
....
Если туго с переводом, поможем:
Главное успеть попасть в обработчик прерывания WDT до того как произойдет следующий таймаут. Что обеспечивается выбором WDT интервала достаточной длительности.
Сорри - немного некорректно выразился ввиду некоторой давности попытки разрешить этот глюк. В общем, преложенное решение не работало и непонятно - сколько конкретно времени надо дать до срабатывания прерывания? Системы была следующая - таймер собаки использовался ввиду его маложручести. Устройство должно было отсчитывать таймаут, работая на конденсаторе при пропадании питания. Интервал собаки - 2 секунды - то есть - нереально не попасть в обработчик. Прикол заключался в том, что хотя флаг прерывания и сбрасывался (проверено), но прерывание наступало далеко не каждый раз. То есть - из 10 прерываний могли сработать все 10, а могло и не одного не сработать. После первого же несрабатывания прерывание зависает где то во внутренней логике. Кристалл был точно не А. Я, кстати постил эту проблему - безрезультатно.
Вообще, что я хочу всем этим сказать - что политика фирмы Атмел в основном ориентирована на объем продаж, а не на получение качественного изделия, в результате мы получаем даташит в котором на первой странице жирным шрифтом написано количество powerful команд, часть из которых на поверку оказывается виртуальными и указанием наличия узлов, которые на самом деле ни фига не работают или рабоотают настолько коряво. что лучше забыть о том, что они есть.
Огурцов
Цитата(oran-be @ Jul 15 2008, 11:13) *
В общем, преложенное решение не работало и непонятно - сколько конкретно времени надо дать до срабатывания прерывания? Системы была следующая - таймер собаки использовался ввиду его маложручести.

Видимо, атмеловскую собаку дрессировали сразу кусать, а Вы ее тяффкать заставляете. -Бобик, фас! -aф, аф(с)


Вспомнил еще один приятный момент.
Номенклатура AVR сейчас просто бешеная, так вот, с х-мега, похоже, ситуация улучшается - будет несколько корпусов и несколько вариантов памяти _одного_ камня.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.