AVR32: Difference between revisions
→top: not needed |
→Implementations: Not all UC3 cores included an FPU; it was first introduced in the AT32UC3C series of devices. |
||
Line 52: | Line 52: | ||
== Implementations == |
== Implementations == |
||
The AVR32 architecture was used only in Atmel's own products. In 2006, Atmel launched the AVR32A: The AVR32 AP7 core, a 7-stage [[Instruction pipeline|pipelined]], [[cache (computing)|cache]]-based design platform.<ref name="techref"/> This "AP7000" implements the AVR32B architecture, and supports [[SIMD]] (single instruction multiple data) [[Digital signal processor|DSP]] ([[digital signal processing]]) instructions to the [[RISC]] instruction-set, in addition to Java hardware acceleration. It includes a Memory Management Unit (MMU) and supports operating systems like [[Linux]]. In early 2009, the rumored AP7200 follow-on processor was held back, with resources going into other chips. |
The AVR32 architecture was used only in Atmel's own products. In 2006, Atmel launched the AVR32A: The AVR32 AP7 core, a 7-stage [[Instruction pipeline|pipelined]], [[cache (computing)|cache]]-based design platform.<ref name="techref"/> This "AP7000" implements the AVR32B architecture, and supports a hardware [[floating-point unit|FPU]], [[SIMD]] (single instruction multiple data) [[Digital signal processor|DSP]] ([[digital signal processing]]) instructions to the [[RISC]] instruction-set, in addition to Java hardware acceleration. It includes a Memory Management Unit (MMU) and supports operating systems like [[Linux]]. In early 2009, the rumored AP7200 follow-on processor was held back, with resources going into other chips. |
||
In 2007, Atmel launched the second AVR32: The AVR32 UC3 core. This is designed for microcontrollers, using on-chip flash memory for program storage and running without an MMU (memory management unit). The AVR32 UC3 core uses a three-stage [[Instruction pipeline|pipelined]] Harvard architecture specially designed to optimize instruction fetches from on-chip [[flash memory]].<ref>{{cite web|url=http://atmel.com/dyn/resources/prod_documents/doc32002.pdf |title=AVR32UC Technical Reference Manual |publisher=[[Atmel]] |access-date=2008-06-15 |url-status=dead |archive-url=https://web.archive.org/web/20090205015739/http://www.atmel.com/dyn/resources/prod_documents/doc32002.pdf |archive-date=2009-02-05 }}</ref> The AVR32 UC3 core implements the AVR32A architecture. It shares the same instruction set architecture (ISA) as its AP7 sibling, but differs by not including the optional SIMD instructions or Java support. It shares more than 220 instructions with the AVR32B. The ISA features atomic bit manipulation to control on-chip peripherals and general purpose I/Os and fixed point [[Digital signal processor|DSP]] arithmetic. |
In 2007, Atmel launched the second AVR32: The AVR32 UC3 core. This is designed for microcontrollers, using on-chip flash memory for program storage and running without an MMU (memory management unit). The AVR32 UC3 core uses a three-stage [[Instruction pipeline|pipelined]] Harvard architecture specially designed to optimize instruction fetches from on-chip [[flash memory]].<ref>{{cite web|url=http://atmel.com/dyn/resources/prod_documents/doc32002.pdf |title=AVR32UC Technical Reference Manual |publisher=[[Atmel]] |access-date=2008-06-15 |url-status=dead |archive-url=https://web.archive.org/web/20090205015739/http://www.atmel.com/dyn/resources/prod_documents/doc32002.pdf |archive-date=2009-02-05 }}</ref> The AVR32 UC3 core implements the AVR32A architecture. It shares the same instruction set architecture (ISA) as its AP7 sibling, but differs by not including the optional SIMD instructions or Java support. The FPU instruction set is optional, and was not implemented in the initial families of UC3 microcontrollers. It shares more than 220 instructions with the AVR32B. The ISA features atomic bit manipulation to control on-chip peripherals and general purpose I/Os and fixed point [[Digital signal processor|DSP]] arithmetic. |
||
Both implementations can be combined with a compatible set of peripheral controllers and buses first seen in the [[AT91SAM]] ARM-based platforms. Some peripherals first seen in the AP7000, such as the high speed USB peripheral controller, and standalone DMA controller, appeared later in updated ARM9 platforms and then in the ARM Cortex-M3 based products. |
Both implementations can be combined with a compatible set of peripheral controllers and buses first seen in the [[AT91SAM]] ARM-based platforms. Some peripherals first seen in the AP7000, such as the high speed USB peripheral controller, and standalone DMA controller, appeared later in updated ARM9 platforms and then in the ARM Cortex-M3 based products. |
||
Line 60: | Line 60: | ||
Both AVR32 cores include a [[Nexus (standard)|Nexus]] class 2+ based On-Chip Debug framework build with [[JTAG]]. |
Both AVR32 cores include a [[Nexus (standard)|Nexus]] class 2+ based On-Chip Debug framework build with [[JTAG]]. |
||
The UC3 core, announced at the Electronica 2010 in Munich Germany on November 10, 2010, |
The UC3 C core, announced at the Electronica 2010 in Munich Germany on November 10, 2010, was the first member of the UC3 family to implement FPU support.<ref>{{cite web | url=https://web.archive.org/web/20101122050804/http://www.atmel.com/dyn/products/view_detail.asp?FileName=Atmel_Introduces_First_32-bit_AVR_Microcontroller_UC3.html&family_id=607 | title=Atmel Introduces First 32-bit AVR Microcontroller Featuring Floating Point Unit | publisher=[[Atmel]] | access-date=2011-03-26}}</ref> |
||
== Devices == |
== Devices == |
Revision as of 18:50, 26 August 2022
This article needs additional citations for verification. (July 2017) |
Designer | Atmel |
---|---|
Bits | 32-bit |
Version | Rev 2 |
Design | RISC |
Encoding | Variable |
Endianness | Big |
Extensions | Java virtual machine |
Registers | |
15 |
AVR32 is a 32-bit RISC microcontroller architecture produced by Atmel. The microcontroller architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm and CPU architect Erik Renno in Atmel's Norwegian design center.
Most instructions are executed in a single-cycle. The multiply–accumulate unit can perform a 32-bit × 16-bit + 48-bit arithmetic operation in two cycles (result latency), issued once per cycle.
It does not resemble the 8-bit AVR microcontroller family, even though they were both designed at Atmel Norway, in Trondheim. Some of the debug-tools are similar.
Support for AVR32 has been dropped from Linux as of kernel 4.12;[1] Atmel has switched mostly to M variants of the ARM architecture.
Architecture
The AVR32 has at least two micro-architectures, the AVR32A and AVR32B. These differ in the instruction set architecture, register configurations and the use of caches for instructions and data.[2]
The AVR32A CPU cores are for inexpensive applications. They do not provide dedicated hardware registers for shadowing the register file, status and return address in interrupts. This saves chip area at the expense of slower interrupt-handling.
The AVR32B CPU cores are designed for fast interrupts. They have dedicated registers to hold these values for interrupts, exceptions and supervisor calls. The AVR32B cores also support a Java virtual machine in hardware.[3]
The AVR32 instruction set has 16-bit (compact) and 32-bit (extended) instructions, similar to e.g. some ARM, with several specialized instructions not found in older ARMv5 or ARMv6 or MIPS32. Several U.S. patents are filed for the AVR32 ISA and design platform.
Just like the AVR 8-bit microcontroller architecture, the AVR32 was designed for high code density (packing much function in few instructions) and fast instructions with few clock cycles. Atmel used the independent benchmark consortium EEMBC to benchmark the architecture with various compilers and consistently outperformed both ARMv5 16-bit (Thumb) code and ARMv5 32-bit (ARM) code by as much as 50% on code-size and 3× on performance.[citation needed]
Atmel says the "picoPower" AVR32 AT32UC3L consumes less than 0.48 mW/MHz in active mode, which it claimed, at the time, used less power than any other 32-bit CPU.[4] Then in March 2015, they claim their new Cortex-M0+-based microcontrollers, using ARM Holdings' ARM architecture, not their own instruction set, "has broken all ultra-low power performance barriers to date."[5]
Implementations
The AVR32 architecture was used only in Atmel's own products. In 2006, Atmel launched the AVR32A: The AVR32 AP7 core, a 7-stage pipelined, cache-based design platform.[3] This "AP7000" implements the AVR32B architecture, and supports a hardware FPU, SIMD (single instruction multiple data) DSP (digital signal processing) instructions to the RISC instruction-set, in addition to Java hardware acceleration. It includes a Memory Management Unit (MMU) and supports operating systems like Linux. In early 2009, the rumored AP7200 follow-on processor was held back, with resources going into other chips.
In 2007, Atmel launched the second AVR32: The AVR32 UC3 core. This is designed for microcontrollers, using on-chip flash memory for program storage and running without an MMU (memory management unit). The AVR32 UC3 core uses a three-stage pipelined Harvard architecture specially designed to optimize instruction fetches from on-chip flash memory.[6] The AVR32 UC3 core implements the AVR32A architecture. It shares the same instruction set architecture (ISA) as its AP7 sibling, but differs by not including the optional SIMD instructions or Java support. The FPU instruction set is optional, and was not implemented in the initial families of UC3 microcontrollers. It shares more than 220 instructions with the AVR32B. The ISA features atomic bit manipulation to control on-chip peripherals and general purpose I/Os and fixed point DSP arithmetic.
Both implementations can be combined with a compatible set of peripheral controllers and buses first seen in the AT91SAM ARM-based platforms. Some peripherals first seen in the AP7000, such as the high speed USB peripheral controller, and standalone DMA controller, appeared later in updated ARM9 platforms and then in the ARM Cortex-M3 based products.
Both AVR32 cores include a Nexus class 2+ based On-Chip Debug framework build with JTAG.
The UC3 C core, announced at the Electronica 2010 in Munich Germany on November 10, 2010, was the first member of the UC3 family to implement FPU support.[7]
Devices
AP7 core
On April 10, 2012 Atmel announced the End of Life of AP7 Core devices from April 4, 2013.[8]
UC3 core
If the devicename ends in *AU this is an Audio version, these allow the execution of Atmel licensed Audio firmware IPs.
If the devicename ends in *S it includes an AES Crypto Module.
- A0/A1 Series – devices deliver 91 Dhrystone MIPS (DMIPS) at 66 MHz (1 flash wait-state) and consume 40 mA @66 MHz at 3.3 V.
- AT32UC3A0128
- AT32UC3A0128AU
- AT32UC3A0256
- AT32UC3A0256AU
- AT32UC3A0512
- AT32UC3A0512AU
- AT32UC3A1128
- AT32UC3A1256AU
- AT32UC3A1512
- AT32UC3A1512AU
- A3/A4 Series – devices deliver 91 Dhrystone MIPS (DMIPS) at 66 MHz and consume 40 mA @66 MHz at 3.3 V.
- AT32UC3A364
- AT32UC3A364S
- AT32UC3A3128
- AT32UC3A3128S
- AT32UC3A3256
- AT32UC3A3256AU
- AT32UC3A3256S
- AT32UC3A464
- AT32UC3A464S
- AT32UC3A4128
- AT32UC3A4128S
- AT32UCA4256
- AT32UC3A4256S
- B Series – deliver 72 Dhrystone MIPS (DMIPS) at 60 MHz and consume 23 mA @66 MHz at 3.3V.
- AT32UC3B064
- AT32UC3B0128
- AT32UC3B0128AU
- AT32UC3B0256
- AT32UC3B0512
- AT32UC3B0512AU
- AT32UC3B164
- AT32UC3B1128
- AT32UC3B1256
- AT32UC3B1512
- C Series – devices deliver 91 Dhrystone MIPS (DMIPS) at 66 MHz and consume 40 mA @66 MHz at 3.3 V.
- AT32UC3C064C
- AT32UC3C0128C
- AT32UC3C0256C
- AT32UC3C0512C
- AT32UC3C0512CAU
- AT32UC3C164C
- AT32UC3C1128C
- AT32UC3C1256C
- AT32UC3C1512C
- AT32UC3C264C
- AT32UC3C2128C
- AT32UC3C2256C
- AT32UC3C2512C
D Series – The low-power UC3D embeds SleepWalking technology that allows a peripheral to wake the device from sleep mode.
- L Series – deliver 64 Dhrystone MIPS (DMIPS) at 50 MHz and consume 15 mA @50 MHz at 1.8 V.
- AT32UC3L016
- AT32UC3L032
- AT32UC3L064
- AT32UC3L0128
- AT32UC3L0256
- ATUC64L3U
- ATUC128L3U
- ATUC256L3U
- ATUC64L4U
- ATUC128L4U
- ATUC256L4U
Boards
- AT32AP7000 development environment (STK1000)
- AT32AP7000 Network Gateway Kit (NGW100)
- AT32AP7000 board with FPGA, video decoder and Power over Ethernet (Hammerhead)
- AT32AP7000 Indefia Embedded Linux Board with ZigBee support
- All AT32UC3 Series Generic Evaluation platform (STK600)
- AT32UC3A0/1 Series Evaluation Kit (EVK1100)
- AT32UC3A0/1 Series Audio Evaluation Kit (EVK1105)
- AT32UC3A3 Series Evaluation Kit (EVK1104)
- AT32UC3B Series Evaluation Kit (EVK1101)
- AT32UC3B Breadboard module (Copper)
- AT32UC3A1 Breakout/Small Development board (Aery32)
See also
References
- ^ "avr32: remove support for AVR32 architecture". GitHub. Retrieved 2017-09-21.
- ^ "AVR32 Architecture Document" (PDF). Atmel. Archived from the original (PDF) on 2012-03-24. Retrieved 2008-06-15.
- ^ a b "AVR32 AP Technical Reference Manual" (PDF). Atmel. Archived (PDF) from the original on 3 December 2008. Retrieved 2008-12-12.
- ^ "Proven, Innovative Microcontroller Technologies with Low Power and High Performance" (Press release).
Atmel Introduces AVR32 Microcontroller which Lowers Industry's Best Power Consumption by 63%; picoPower AVR32 AT32UC3L Microcontroller offers less than 0.48 mW/MHz Active and below 100 nA Sleep Mode
- ^
"SAM L family now the world's lowest power ARM Cortex-M based solution". 30 March 2015. Archived from the original on 27 April 2015. Retrieved 27 April 2015.
These Cortex-M0+-based MCUs can maintain system functionality, all while consuming just one-third the power of comparable products on the market today. This device delivers ultra-low power running down to 35μA/MHz in active mode, consuming less than 900nA with full 32kB RAM retention.[..]
"In Atmel's announcement last year for the company's SAM L21 family, I had pointed out the amazingly low current consumption ratings for both the active and sleep mode operation of this product family – now I can confirm this opinion with concrete data derived from the EEMBC ULPBench," explained Markus Levy, EEMBC President and Founder. "Atmel achieved the lowest power of any Cortex-M based processor and MCU in the world because of its patented ultra-low power picoPower technology. These ULPBench results are remarkable, demonstrating the company's low-power expertise utilizing DC-DC conversion for voltage monitoring, as well as other innovative techniques."
While running the EEMBC ULPBench, the SAM L21 achieves a staggering score of 185, the highest publicly-recorded score for any Cortex-M based processor or MCU in the world — and significantly higher than the 167 and 123 scores announced by other vendors. The SAM L21 family consumes less than 940nA with full 40kB SRAM retention, real-time clock and calendar and 200nA in the deepest sleep mode. - ^ "AVR32UC Technical Reference Manual" (PDF). Atmel. Archived from the original (PDF) on 2009-02-05. Retrieved 2008-06-15.
- ^ "Atmel Introduces First 32-bit AVR Microcontroller Featuring Floating Point Unit". Atmel. Retrieved 2011-03-26.
- ^ "Smart | Connected | Secure | Microchip Technology".
External links
- Atmel AVR32* "AVR32 Linux Project". Archived from the original on September 2, 2011. Retrieved May 9, 2013. (now dead) contained recent Linux kernel patches and GCC / binutils and so on.