ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
120479
Evgeny_CD, Архитектор (18.05.2008 19:53, просмотров: 43247)
XMEGA: будущее, которого мы так долго ждали, наступило. Итак, на сайте атЫмеля появились полноценные доки по семейству. Само семейство пока еще недоступно в виде чипов на складах дистрибуторов, но такая позиция уже есть в прайсах. Ысче немного, Ысче чуть чуть, и можно будет запаивать. Далее все рассматривается на примере ATxmega128A1 Что обращает на себя внимание. 1. ATxmega64A1/128A1/192A1/256A1 Preliminary (75 pages, revision B, updated 5/08) http://www.atmel.c …_documents/doc8067.pdf Смотрим секцию errata :) и видим - ATxmega128A1 rev. G. Т.е. предыдущие версии A-F убились ап стенку, так и не выйдя в свет. Вызывает уважение по сравнению с ситуацией на рынке ARM - там erratы к современным чипам просто вызывают депрессию. Сама errata вполне терпимая. Видно, что в предыдущих errata'х народ дожимал цифровые глюки, а теперь осталось некоторое количество аналоговых - нелинейности по напряжению и пр. То, что нет errat в части DMA, арбитража шин и т.д., и то, что это rev. G, дает некоторую надежду на вылеченность системных багов. 2. Накристальная периферия. То, ради чего все затевалось. * RC генераторы - аж целых 4 штуки: 32 kHz Int. ULP; 32 kHz Int. Osc.; 2 MHz Int. Osc.; 32 MHz Int. Osc. Просто праздник какой-то. * 8 UART - это уже обсуждали * 16 битный RTC с прескалером (с коэф. от 1(!) до 1024), у которого есть Compare Match регистр - это просто праздник какой-то для всех, кто, например, делает коммуникационные протоколы * Event system - пока еще мною не познанная замолодь, но из описаний следует, что это эффективная шняга для обработки событий. AVR1001: Getting Started With the XMEGA Event System (8 pages, revision A, updated 2/08) http://www.atmel.c …_documents/doc8071.pdf * DMA • The DMA Controller allows high-speed transfers with minimal CPU intervention – from one memory area to another – from memory area to peripheral – from peripheral to memory area – from peripheral to another peripheral Заметим, что DMA во всяких там SAM - "жалкое подобие левой руки" DMA XMEGA. И меговское DMA работает на всей SRAM - прЭвЭд dsPIC. * 12 бит DAC (1 Мгц) и ADC (2 Мгц). Хоть в реальности они и получились 10 битными, все равно очень даже! * AWeX – Advanced Waveform Extension. Внушительный блок для всяких PWM приложений. * External Bus Interface for up to 128M bit SDRAM - токо в описании я что-то ничего про SDRAM не нашел :) 3. Жручесть. В варианте ULP, RTC,WDT, BOD Enabled обещают не более 2 мка при 3.3В. Типовой CR2016 имеет емкость 90 mAh, CR2032 - 230 mAh. 0,002*24*365*5=87.6 ма*ч энергии на 5 лет. 5 лет от CR2016 - большего на практике нафиг не надо. Т.е. дальнейшее уменьшение тока потребления суть маркетинговый развод, по технике это будет эффективно только для очень специфичных применений. To ensure safe operation it is always recommended to have a brown-out detector (BOD) enabled. This has to be either internal in the microcontroller or an external device. The brown-out detector will ensure that the microcontroller is held in reset if VCC is lower than minimum. The XMEGA BOD has a new and innovative sampling mode. In sampling mode, the BOD is turned on only once per ms to check status of VCC. If everything is OK, the BOD is turned off and remains off until next checkpoint. This gives XMEGA a max power consumption of 2 мкA in Power Save mode with a 32 kHz crystal running, Real Time Counter operating, Watchdog Timer enabled and BOD operative with max 1 ms reaction time. To achieve the same performance, TI MSP430 devices need to enable the System Voltage Supervisor that consumes up to 15 мкA. Тута все подробно расписано. Introducing a New Breed of Microcontrollers for 8/16-bit Applications (White Paper, 15 pages, revision A, updated 02/08) http://www.atmel.c …_documents/doc7926.pdf "На ходу" жручесть тоже очень даже хороша: 2 MHz VCC = 1.8V All PRR Set Internal RC 720 мкА. Или в терминах CR2032 (230 mAh) 13 суток непрерывной работы! Для CR123A (1600 mAh) это 92 дня работы. По моему опыту - ATmega на 3.68 Мгц - это прием POCSAG 1200 бит/сек, включая 8 кратный oversampling, DPLL, БЧХ декодер и пр (C код без asm вставок! Но C код продуманный, конечно). Причем это без DMA. Так что 2 Мгц для XMEGA - это весьма немало. При питании 1.8В - до 12 Мгц, 32 Мгц - от 2.7В. Так что процык получился весьма зажигательный. MSP430 нервно курит (понятно, что 32Мгц XMEGA будет быстрее 16 Мгц MSP430, разве только что умножитель 16х16 спасет MSP430). 4. Цены - ABN Universal,Inc., например, дает для ATXMEGA128A1-AU 9,97 $ в розницу - достаточно обнадеживающе. Это на проц с 8К RAM, 4K EEPROM, 128K FLASH, 78 IO пинов. Для примера - MSP430F2618TPNR - FLASH 116K x 8 + 256B, SRAM 8Kx8, A/D 8x12b; D/A 2x12b, 64 IO пинов имеет в розницу цены $13.16 на www.digikey.com Выводы: атЫмель таки сделал лучший 8 бит контроллер. И, уверен, будет заслуженно снимать с него сливки ближайшие лет 5. Конечно, будет ламье, которое с криками "32 лучше 16 лучше 8" убежит применять всякое многобитное барахло, но найдутся серьезные юзера, которые смогут выжать все из этого кристалла (а в серии 10к, я уверен, этот кристальчик даст фору по цене очень и очень многим) http://www.atmel.c ….html&SEC_NAME=Product Availability and Pricing. The first devices, ATxmega128A1 and ATxmega64A1 are both offered in 100-pin TQFP and BGA packages and are available now. Volume prices for 10k units are US$3.75 and US$3.50, respectively. Other XMEGA devices will be available during 2Q or 3Q of 2008. Что касается перспектив, то тут все просто замечательно! AVR XMEGA 8/16-bit High Performance Low Power Flash Microcontrollers (Flyer, 4 pages, revision B, updated 03/08) http://www.atmel.c …_documents/doc7925.pdf ATxmega384A1 384k FLASH, 4k EERPOM, 32k SRAM (!). Основной кайф от XMEGA следующий. В общем, по своим основным параметрам, он умеренно чемпионский - MSP430 уверенно дышит в спину. Кроме одного - соотношение цены и объема памяти. 64К команд (при очень эффективной системе команд, которая хорошо ложится под С) и 8 К ОЗУ - этого вполне достаточно, чтобы использовать вполне взрослую ОСьку типа uCOS. И комфортно писать очень сложные приложения, которые будут годами работать от CR2032. Наличие ОСьки позволяет по полной программе использовать технологию синтетических портов. Т.е., например, при разработе ZigBee девайса, можно взять платку с CPU + RF, один SPI канал, например, выделить на связь с "большим процессором", на втором XMEGA сделать конвертер SPI<->USB (FTDI), и вести разработку в Win32, при этом имея виртуальные драйвера периферии, полностью эквивалентные "боевой" периферии. При такой технологии отпадает необходимость в аццком симуляторе периферии XMEGA (такие симуляторы, как показывает практика, до конца отдебажить невозможно), а разрабатывать под Win32 (или под Linux - если профи, то изопениссуально), все таки куда приятнее, чем дебажить кристалл при помощи самого продвинутого джЫтага. В приведенной выше схеме за счет DMA в XMEGA можно организовать дуплексный канал связи порядка 1 Мбайт/сек (2 чипа FTDI на раные USB порты, дрова D2XX drivers дают 1 Megabyte / second ) с "большим процессором". В упомянутом выше документе http://www.atmel.c …_documents/doc7926.pdf на 7 странице есть чудная табличка о загрузке проца. XMEGA UART communication with and without DMA. При 3500 бит/сек мы имеем 5.17% CPU load (непонятно, на какой тактовой, симплекс или дуплекс). Т.е. при организации 1 Мбайт/сек дуплексного канала можно ожидать загруки проца порядка 25% при тактовой 32 Мгц. Т.е. если внешняя периферия порождает поток данных не более 1 мбайт/сек, то у проца будет возможность "отогнать" его на "большой" процессор, принять обработанные данные, и потратить 75% своего времени на доволнительную обработку данных - приписать к блоку отсчетов ADC время, когда эти отсчеты были взяты, поймать время по таймеру и выплюнуть синхронного блок выходных отсчетов и т.д. В общем, читаем pdf моих старых постов по синтетическим портам и виртуальной разработке, и можно приступать к созданию конкурентов автономных радиоканальных девайсов типа ZigBee :)