Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATxmega
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7
SasaVitebsk
Цитата(Petka @ Apr 16 2009, 09:48) *
Может мне уже сейчас она нужна, только где эти иксмеги? Уже больше года только о них и слышу.

Год - это не срок для МК. Наоборот здесь всё пучком. И море предложений. Другое дело, что цены пока не самые гуманные. Но в любом случае практически за год, от момента публикации вывели семейство в жизнь. Для AVR32 и трёх маловато похоже. Тока тока появляются.
Petka
Цитата(SasaVitebsk @ Apr 16 2009, 19:24) *
Год - это не срок для МК. Наоборот здесь всё пучком. И море предложений.

Зайдите на efind + "xmega". Продаются только инженерные образцы, даже 100шт на складах Родины нету. Один пиар. wassat.gif
Rst7
Цитата
Продаются только инженерные образцы, даже 100шт на складах Родины нету.


Кто же будет ES в большом количестве возить?

А вообще - на Точку опоры и на Rainbow Technologies. Вроде у них уже даже не ES.
gormih
Цитата(Огурцов @ Apr 15 2009, 11:45) *
А вы уже делали ? Что-то невидно пока законченных проектов на иксмеге. А по вопросу не интересовался. Что-то из тинек новых вроде бы было. Мне единственно что от иксмеги (потенциально!) пригодилось бы - квадратурный декодер. Все. Но предпочел бы эту фичу в контексте старой доброй м8, а не как совершенно новый девайс. Суть - если уж переходить на новый, то брать нужно с запасом, а запаса у иксмеги - никакого. Объяснил ?

У Вас позиция похожа на "Если мне не пригодится, значит ерунда"
Тем не менее в портативных устройствах с высокими требованиями к энергопотреблению, и где не нужна повышенная производительность - иксмеге не будет равных - ручаюсь. Кстати и по производительности иксмега скорее всего на самом деле мощнее любого другого 8битного современного микроконтроллера.
Maddy
Цитата(Petka @ Apr 16 2009, 20:23) *
Зайдите на efind + "xmega". Продаются только инженерные образцы, даже 100шт на складах Родины нету. Один пиар. wassat.gif

www.efo.ru
Цитата
13.03.2009
На склад поступила первая партия новых микроконтроллеров семейства XMEGA - ATXMEGA128A1-AU.

ы ?
PS Я им как-то доверяю ... Железки нужные все привозили ... и Армы и Меги и АВР32 ..... Будет время - посмотрю и на ХМегу - Нужон тупой переходник RS->Ethernet портов на 6-8 .... Так-что бум считать что они есть ...
zltigo
Цитата(Maddy @ Apr 17 2009, 20:12) *
Так-что бум считать что они есть ...

Да?
http://shop.efo.ru/cgi-bin/shop.pl?categor...p;mh=50&a=1
Maddy
Цитата(zltigo @ Apr 17 2009, 21:16) *

Гы .... А интересно , но ничего не доказвает sad.gif Так-как этот вариант поиска у них диико кривой (Вместо Альтеровского Стратикса Мерка выдавал sad.gif ) Завтра отпишусь нашему менеджеру и спрошу о перспективах ...
Огурцов
А с диджикеем никто не работает ?
http://search.digikey.com/scripts/DkSearch...amp;x=0&y=0

Я б заказал мелких в складчину.
sdbog
Цитата(Petka @ Apr 16 2009, 20:23) *
Зайдите на efind + "xmega". Продаются только инженерные образцы, даже 100шт на складах Родины нету. Один пиар. wassat.gif


Смотрите тут:
http://rtcs.ru/prod_element2.asp?wh_keywor...u&id=253141
rolleyes.gif
Petka
Цитата(sdbog @ Apr 24 2009, 16:45) *

Для АВРок цена хорошая. А Вам удалось там их купить? Какую ревизию продают?
sdbog
Цитата(Petka @ Apr 24 2009, 17:01) *
Для АВРок цена хорошая. А Вам удалось там их купить? Какую ревизию продают?


Сам не покупал, интересовался, говорят на складе есть. Ревизию не скажу, но точно не инженерные образцы, а серийная версия.
Ruslan Konovalov
Цитата(Petka @ Apr 24 2009, 17:01) *
Для АВРок цена хорошая. А Вам удалось там их купить? Какую ревизию продают?


Я черз знакомого заказал и он уже купил 4 штуки ATXMEGA128A1-AU.
Нет никаких проблем.
ReAl
Цитата(Petka @ Apr 24 2009, 16:01) *
Для АВРок цена хорошая. А Вам удалось там их купить? Какую ревизию продают?
В киевском Rainbow (хм, там под $10 было поштучно, жаднюги, Виаком, говорят, не наглел) была ревизия H
MDD
Что-то у меня потребление получается заметно больше, чем в даташите прописано sad.gif
ATXMEGA128A1-AU, дата выпуска 0904.
При 2МГц от внутреннего RC генератора имеем около 3мА, более-менее похоже на правду.
Включаю тактирование от 32МГц (PLL, кварц 16МГЦ, умножение на 2), получаю 33мА. Это раза в полтора больше, чем у них на "типовом графике" нарисовано. Тактовую частоту перепроверил и по скорости UARTa, и просто ножкой подрыгал - точно тактируется от 32МГц.
Дальше, включаю один DAC. Добавляется еще 4мА.
Запускаю в цикле вывод пилы на его оба выхода, потребление выростает еще на 10мА!

Поделитесь своими данными.
SasaVitebsk
smile.gif
А что значит вывод пилы? Как вы её добиваетесь или следует читать вывод меандра или вы выводы как-то нагружаете?

А вообще то что потребление растёт в динамике - это законно. Особенно учитывая такую частоту. А Atmel дал потребление без учёта ногодрыганья. Это наверняка. Это законно и практикуется всеми фирмами. smile.gif
MDD
Цитата(SasaVitebsk @ Apr 30 2009, 00:39) *
А что значит вывод пилы? Как вы её добиваетесь или следует читать вывод меандра или вы выводы как-то нагружаете?


Вывод пилы по мотивам апликухи, максимально быстро по готовности. Сами выводы при этом никуда не нагружены.

Код

for(;;)
{
  for (angle=0;angle<0x1000;angle++)
  {
    while ((DACB.STATUS & 0x01)==0){ };
    DACB.CH0DATA=angle;
    while ((DACB.STATUS & 0x02)==0){ };
    DACB.CH1DATA=0x0FFF-angle;
  }
}

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

Цитата
А вообще то что потребление растёт в динамике - это законно. Особенно учитывая такую частоту. А Atmel дал потребление без учёта ногодрыганья. Это наверняка. Это законно и практикуется всеми фирмами. smile.gif


Сейчас попробовал непрерывно выводить в DAC константы. На потреблении это никак не отразилось
Огурцов
Цитата(MDD @ Apr 29 2009, 16:01) *
Тактовую частоту перепроверил и по скорости UARTa, и просто ножкой подрыгал

Отключите UART и не дрыгайте ножкой. Напряжение питания правильное ?
MDD
Цитата(Огурцов @ Apr 30 2009, 08:17) *
Отключите UART и не дрыгайте ножкой. Напряжение питания правильное ?

USART отключал. Он, кстати, ощутимо потребления не добавляет. Да и даташит обещал всего +7.5мкА на каждый модуль USART.
Ножкой тоже дрыгал лишь для проверки тактовой.
Питание правильное - и тестером-осциллографом смотрел, и AVRISP2 определил VTarget 3.3В
Т.е. картина даже по минимуму такая:
1.Настраиваем тактировние от 32МГц
2.Настраиваем все порты как выходы
3.Циклимся ничего не делая

Получаем потребление 33мА, что уже явно много. Если внешние порты оставить на ввод, то потребление заметно не меняется, разве что когда руку к ним подносишь... Пробовал затактироваться и от внутреннего RCгенератора 32МГц. Потребление не меняется.

Ну, а DAC - это похоже отдельная песня. Кстати, пронаблюдал эффект описанный в Erratе - при опоре выше 2.4В, выходной сигнал действительно сильно колбасит...
Rst7
Цитата
При 2МГц от внутреннего RC генератора имеем около 3мА, более-менее похоже на правду.


Фигня. Должно быть миллиампера полтора по даташиту, ну два - это вообще отсилы. Надо смотреть, какая-то периферия на полном ходу шпарит.
MDD
Цитата(Rst7 @ Apr 30 2009, 09:35) *
Фигня. Должно быть миллиампера полтора по даташиту, ну два - это вообще отсилы. Надо смотреть, какая-то периферия на полном ходу шпарит.


Кстати, да. Тоже повышено. Просто для моего применения этот режим неактуален, я и не перепроверил по таблице. А по графику примерно верно.
Сейчас попробовал затактироваться от кварца 16МГц. Получил 17мА.
Т.е. получается, что везде завышение в полтора раза.
То ли у меня чип какой-то поджаренный. "Практики" - АУ, отзовитесь со своими данными!
То ли и вправду периферия. Но я сам ничего специально не включаю, а по умолчанию вроде бы все лишнее должно быть изначально выключено. Пошел перечитывать даташиты...
Nanobyte
А судьи кто? Хм-м, что-то не то biggrin.gif
Ток измеряли чем? Если китайским тестером .... Пробовал как-то. Ерунда полная. Только стрелочным прибором, ибо потребление динамическое.
MDD
Ток измерял измерителем, встроенным в блок питания (самодельный).
Естественно перепроверил тестерами - китайскими и дешевым, и подороже.
И даже сейчас в угоду Вашей сомнительной гипотезе wink.gif достал с антресолей советский стрелочный - все показывают примерно одно и тоже.
Собака зарыта где-то не здесь...
Сейчас попробовал самый упрощенный вариант - просто вытер память программ.
В таком состоянии чип потребляет около 3мА.
Nanobyte
Цитата(MDD @ Apr 30 2009, 19:28) *
...И даже сейчас в угоду Вашей сомнительной гипотезе wink.gif

Сомнительной? Зря Вы так. Опыт приходит во время еды biggrin.gif Стрелочный прибор здесь гораздо более уместен.
Некоторые китайские ....изделия... очень бурно реагируют на неравномерный ток.
MDD
Мой опыт (а я подозреваю, что он не меньше Вашего) не столь категоричен в отношении цифровых тестеров.
Да и нет в данном случае никаких медленных "неравномерностей", все прекрасно усредняется...
Впрочем, давате оставим метрологические споры и подождем отчета еще хоть одного практика.
Смущает, что их почему-то до сих пор нет... Никак не думал, что окажусь в первых рядах xmega-испытателей biggrin.gif
_Алексей_
Теперь и я стал счастливым обладателем ATXMEGA32A4:)
При программировании столкнулся со следующей ситуацией: в AVRStudio 4.16 запускаю оболочку для программирования, программирую, но контроллер не реагирует. Закрываю оболочку программирования и контроллер оживает! Такого на mega-x не было. После программирования (и с запущенной оболочкой) контроллер сразу начинал работать.
Как побороть мою проблему?
MDD
Цитата(_Алексей_ @ May 6 2009, 05:32) *
Теперь и я стал счастливым обладателем ATXMEGA32A4:)

Где брали?
Меня "мелкие" кристаллы гораздо больше интересует, чем 128А1

Цитата
При программировании столкнулся со следующей ситуацией: в AVRStudio 4.16 запускаю оболочку для программирования, программирую, но контроллер не реагирует. Закрываю оболочку программирования и контроллер оживает! Такого на mega-x не было. После программирования (и с запущенной оболочкой) контроллер сразу начинал работать.
Как побороть мою проблему?


При программировании ATxmega128A1 через AVR ISP2 все как обычно. Контроллер стартует сразу после прошивки.
Может у Вас разъем программатора неправильно распаян?
_Алексей_
>Где брали?
Rainbow

>При программировании ATxmega128A1 через AVR ISP2 все как обычно. Контроллер стартует сразу после прошивки.
Может у Вас разъем программатора неправильно распаян?

Программирую с помощью JTAG ICE MK2 по PDI.
Если бы было распаяно не правильно, то контроллер бы не программировался и не работала бы отладка.
MDD
Цитата(_Алексей_ @ May 6 2009, 07:59) *
Rainbow

Спасибо за наводку.

Цитата
Программирую с помощью JTAG ICE MK2 по PDI.


С ним дел не имел. Но попробую предположить - может он сразу после прошивки переводит чип в режим пошаговой отладки через PDI?
_Алексей_
>Спасибо за наводку
Пожалуйстаsmile.gif

>С ним дел не имел. Но попробую предположить - может он сразу после прошивки переводит чип в режим пошаговой отладки через PDI?

Вряд ли. Посмотрел осциллографом состояние линий PDI_DATA и PDI_CLK и стало понятно. При запуске оболочки открывается сеанс связи с МК и не закрывается. А т.к. одна из эти линий совмещена с линией RST, то понятно почему МК не оживает.

MDD, Вы для программирования используете AVRStudio и PDI? Вроде 128A1 можно еще по JTAG шить, если не ошибаюсь.

В процессе изучения XMEGA возникает масса вопросов. FAQ еще никто не сделал?
Вот хочу изменить внутреннюю частоту с 2МГц на 32МГц, но не получается. Как я понял, надо активировать защиту защиту регистров (СРР регистр), изменить CLK_CTRL и OSC_CTRL, но не выходит. Запускаю отладчик и вижу, что регистр CLK_CTRL не изменяется.
В pdf не смог найти таблицы с описанием адресации всех регистров. Пишу на асме, надо знать к каким обращаться через out/sts.
MDD
Цитата(_Алексей_ @ May 6 2009, 08:51) *
MDD, Вы для программирования используете AVRStudio и PDI? Вроде 128A1 можно еще по JTAG шить, если не ошибаюсь.


Да, использую студию и AVR ISP2 через PDI. Через JTAG мне не чем шить.

Цитата
В процессе изучения XMEGA возникает масса вопросов. FAQ еще никто не сделал?
Вот хочу изменить внутреннюю частоту с 2МГц на 32МГц, но не получается. Как я понял, надо активировать защиту защиту регистров (СРР регистр), изменить CLK_CTRL и OSC_CTRL, но не выходит. Запускаю отладчик и вижу, что регистр CLK_CTRL не изменяется.
В pdf не смог найти таблицы с описанием адресации всех регистров. Пишу на асме, надо знать к каким обращаться через out/sts.


Да, я вот тоже привык по FAQ новые контроллеры изучать. А здесь похоже придется поучаствовать в его написании smile.gif
Прежде всего не лишним будет напомнить, что при изучении Xmega нужно пользоваться двумя документами - непосредственно даташитом на контроллер и общим мануалом. Мануал лежит здесь http://www.atmel.com/dyn/resources/prod_do...nts/doc8077.pdf
Теперь по тактированию. Для этого следует изучить апноту AVR1003: Using the XMEGA Clock System . Там есть пример кода, правда на С. Но есть и критическая секция, написанная на асме. Непосредственно переключение нужно делать быстро, за четыре такта, иначе не переключится.
Просмотр сишного листинга показывает, что теперь (по понятным причинам) к большинству регистров доступ идет через команды работы с памятью . Ниже пример тактирования от PLL (кварц 16МГц с умножением на 2) Привожу фрагмент листинга, чтобы был виден "ассемблер".


Код
   58          //Настраиваем тактирование
     59          //Кварц 16МГц, умножение на 2
     60          OSC.XOSCCTRL=0xcb; //Кварц(12-16),16К циклов
   \   00000000   EC0B               LDI     R16, 203
   \   00000002   93000052           STS     82, R16
     61          OSC.CTRL|=0x08; //Включаем кварцевый генератор
   \   00000006   E5E0               LDI     R30, 80
   \   00000008   E0F0               LDI     R31, 0
   \   0000000A   BFFB               OUT     0x3B, R31
   \   0000000C   8100               LD      R16, Z
   \   0000000E   6008               ORI     R16, 0x08
   \   00000010   8300               ST      Z, R16
   \   00000012   E5E1               LDI     R30, 81
     62          do{} while ((OSC.STATUS & 0x08)==0); //ожидаем готовности кв. генератора
   \                     ??main_0:
   \   00000014   8100               LD      R16, Z
   \   00000016   FF03               SBRS    R16, 3
   \   00000018   CFFD               RJMP    ??main_0
     63          OSC.PLLCTRL=0xc2;// PLL от кварца, К=2
   \   0000001A   EC02               LDI     R16, 194
   \   0000001C   8304               STD     Z+4, R16
     64          OSC.CTRL|=0x10;//Включаем PLL
   \   0000001E   E5E0               LDI     R30, 80
   \   00000020   8100               LD      R16, Z
   \   00000022   6100               ORI     R16, 0x10
   \   00000024   8300               ST      Z, R16
   \   00000026   E5E1               LDI     R30, 81
     65          do{} while ((OSC.STATUS & 0x10)==0); //Ожидаем готовности PLL
   \                     ??main_1:
   \   00000028   8100               LD      R16, Z
   \   0000002A   FF04               SBRS    R16, 4
   \   0000002C   CFFD               RJMP    ??main_1
     66          CCPwriteCLKtoPLL(); //переключаемся на тактирование от PLL
   \   0000002E   ....               RCALL   CCPwriteCLKtoPLL
     67          OSC.CTRL=0x18; //выключаем все генераторы, кроме кварца и PLL
   \   00000030   E108               LDI     R16, 24
   \   00000032   93000050           STS     80, R16

................................

226          //критическая секция для переключения источника тактирования
   CCPwriteCLKtoPLL:

   \   00000000   ED08               ldi r16,0xd8
   \   00000002   E014               ldi r17,0x04
   \   00000004   BF04               out 0x34,r16
   \   00000006   93100040         sts 64,r17
       0000000A   9508               RET
Зайцев Иван
Цитата(_Алексей_ @ May 6 2009, 10:59) *
Программирую с помощью JTAG ICE MK2 по PDI.
Если бы было распаяно не правильно, то контроллер бы не программировался и не работала бы отладка.


Схему подключения МКII выложить можете?
_Алексей_
MDD, спасибо за пример!
Действительно, надо было заглянуть в Application.

Рабочий пример на асме переключения на встроенный генератор 32МГц

;32 MHz Internal RC Oscillator Enable
ldi A,OSC_RC32MEN_bm
sts OSC_CTRL,A
;32 MHz Internal RC Oscillator Ready?
lds A,OSC_STATUS
sbrs A,1 ;OSC_RC32MRDY_bm
rjmp PC-3
;Configuration Change Protection Register. Protected IO register
ldi A,CCP_IOREG_gc
out CPU_CCP,A
;System Clock Selection. 32 MHz Internal RC Oscillator.
ldi A,CLK_SCLKSEL_RC32M_gc
sts CLK_CTRL,A

Не понятно как сейчас пользоваться командами SBRS и SBRС при использовании ATxmega32A4def.inc, т.к. SBRS и SBRС используют номер бита, а в ATxmega32A4def.inc биты преобразованы в hex-значения.

>Схему подключения МКII выложить можете?
Какая там схема... 2 проводка: RESET/PDI_CLK и PDI_DATA.
MDD
Цитата
>Схему подключения МКII выложить можете?
Какая там схема... 2 проводка: RESET/PDI_CLK и PDI_DATA.


Распайку разъема нужно смотреть в Студии: Help->AVR Tools User Guide
Хочу заметить, что на данный момент там цоколевка разъема именно под PDI для AVR ISP2 не приведена.
Ее нужно брать в разделе для JTAGICE mkII. Атмеловцы сделали распайку одинаковой с прицелом под STK600.
Зайцев Иван
Спасибо
уже нашел и посмотрел
ReAl
Цитата(MDD @ May 6 2009, 11:57) *
Хочу заметить, что на данный момент там цоколевка разъема именно под PDI для AVR ISP2 не приведена.

AVR studio 4.16 Build 628
Help/AVR Tools user guide -> AVRISP mkII User Guide/2:Hardware Description/2.5:Target Interface/2.5.2 PDI Interface

__________________________

Этой ATxmega128A1 чего нехватает, так это простейшего ремаппинга хотя бы SPI да UART-ы (дерущиеся по ногам между собой да с таймерами) хотя бы с пары портов на эти EBI-ческие, свободные при отсутствии внешней памяти, порты. Или хотя бы пару SPI бросить на порт К, который в режиме LPC2 свободен. А то всего много, а использовать в полный рост проблематично.

Ну ничего, про запрет прерывания на пару тактов после записи в SPL (отсутствие чего я лет пять назад в обсуждениях AVR записывал в их недостаток) сделали, может и это допатчат.
Огурцов
Этого нехватало еще at90s1200. Вообще, матрица нужна, чтобы коммутировать любую фичу на любой пин. Не торопятся - еще лет десять потребуется.
Spider
Ребят, а кто знает как заставить avr-gcc собирать код с 32х битными указателями? Ведь ATXMega потдерживает >64k памяти...
Rst7
Цитата
как заставить avr-gcc собирать код с 32х битными указателями?


Дык вроде пока никак.
Spider
А кто-нить знает как в ATXMega использовать внешнюю память больше 64к? AVR-gcc не знает ничего о поинтерах больше 16 бит sad.gif
Rst7
Пользуйте IAR. Тот знает.
SysRq
Цитата(Alexey Belyaev @ Jun 22 2009, 15:03) *
AVR-gcc не знает ничего о поинтерах больше 16 бит sad.gif

А если так?
CODE
#define GET_FAR_ADDRESS(var) \
({ \
uint_farptr_t tmp; \
\
__asm__ __volatile__( \
\
"ldi %A0, lo8(%1)" "\n\t" \
"ldi %B0, hi8(%1)" "\n\t" \
"ldi %C0, hh8(%1)" "\n\t" \
"clr %D0" "\n\t" \
: \
"=d" (tmp) \
: \
"p" (&(var)) \
); \
tmp; \
})
Rst7
Цитата
А если так?


Ужос.
ReAl
Цитата(SysRq @ Jun 22 2009, 19:47) *
А если так?
Только придётся все обращения через такой указатель тоже вручную делать.
SysRq
Цитата(ReAl @ Jun 22 2009, 22:14) *
Только придётся все обращения через такой указатель тоже вручную делать.
Ну вестимо так sad.gif
(Может быть человеку всего какой-то кусок данных за пределами 64к и нужен, может быть временно и это подойдет.)
Spider
Цитата(SysRq @ Jun 23 2009, 02:00) *
Ну вестимо так sad.gif
(Может быть человеку всего какой-то кусок данных за пределами 64к и нужен, может быть временно и это подойдет.)

Ну не совсем тот указатель. У ATXMeg для этого есть RAMPD RAMPX RAMPY RAMPZ регистры. Они работьают в паре с k регистром от STS к примеру. Сложно но можно.
Spider
Нашёл интересную особенность. Если перевести прерывания в Boot секцию, то обратно они уже не возвращаются.
Duhas
а не подскажете почему на Хмега нет полных даташитов? или их просто не доделали еще ?
vovanse
Почему не имеет? AVR XMEGA A Manual Preliminary - описание семейства, а, например, ATxmega64A1/128A1/192A1/256A1/384A1 Preliminary описание особенностей конкретного контроллера. http://www.atmel.com/dyn/products/product_...PN=ATxmega128A1
Duhas
ну вообще то Preliminary это как бы только подготовительна версия... особенности там допустим есть.. но подробно ничего не описано... все так, обзорно...
Leonmezon
Цитата(Duhas @ Jul 4 2009, 14:48) *
ну вообще то Preliminary это как бы только подготовительна версия... особенности там допустим есть.. но подробно ничего не описано... все так, обзорно...

Возможно и обзорно, но в принципе все работает (да и примеров на Atmel много и отвечают в течении 2-3 суток довольно подробно). Пока с Xmega - только одно проблема: в компиляторах каждые 3 месяца меняют для них *.h дополнительные файлы - иногда приходиться переписывать программу (по крайне мере ICC AVR 7.22 так и получилось). А так обещают к новому году написать много примеров и Application Builder под Xmega.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.