AVR microcontrollers: Difference between revisions

Content deleted Content added
Features: add link; expand acronym
m Undid revision 1305031493 by Bender the Bot (talk) bot error fixed
 
(7 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|Family of microcontrollers}}
{{About|the series of AVR microcontrollers|the AVR instruction set|Atmel AVR instruction set}}
{{Confuse|automatic voltage regulator}}
 
[[File:Avr_logo.svg|right|thumb|AVR logo]]
Line 17 ⟶ 18:
Atmel says that the name AVR is not an acronym and does not stand for anything in particular. The creators of the AVR give no definitive answer as to what the term "AVR" stands for.<ref name="storyofavr" /> However, it is commonly accepted that AVR stands for '''A'''lf and '''V'''egard's '''R'''ISC processor.<ref>{{cite web|title=UNSW School of Computer Science and Engineering - General AVR Info|url=http://www.cse.unsw.edu.au/~pcb/avr/avr.html|url-status=dead|archive-url=https://web.archive.org/web/20120623131604/http://www.cse.unsw.edu.au/~pcb/avr/avr.html|archive-date=2012-06-23|access-date=2012-09-19|publisher=Cse.unsw.edu.au}}</ref> Note that the use of "AVR" in this article generally refers to the 8-bit RISC line of Atmel AVR microcontrollers.
 
The original AVR MCU was developed at a local [[Application-specific integrated circuit|ASIC]] house{{Clarify|reason=Meaningdesign of the phrase is unclear.|date=January 2023}}company in [[Trondheim, Norway]], called Nordic VLSI at the time, now [[Nordic Semiconductor]], where Bogen and Wollan were working as students.{{Citation needed|date=December 2010}} It was known as a μRISC (Micro RISC)<ref name="NTNU">[https://www.itk.ntnu.no/fag/TTK4155/2004/foiler_forelesninger/Atmel_AVR_Forelesning.pdf An introduction to Atmel and the AVR microcontroller]{{Dead link|date=February 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> and was available as silicon IP/building block from Nordic VLSI.<ref>{{Cite web |url=http://www.idi.ntnu.no/~dam/fag/digdat/DigDat301002.pdf |title=Embedded Systems and Microcontrollers |access-date=2018-10-01 |archive-url=https://web.archive.org/web/20041224014455/http://www.idi.ntnu.no/~dam/fag/digdat/DigDat301002.pdf |archive-date=2004-12-24 |url-status=dead }}</ref> When the technology was sold to Atmel from Nordic [[Very-large-scale integration|VLSI]], the internal architecture was further developed by Bogen and Wollan at Atmel Norway, a subsidiary of Atmel. The designers worked closely with compiler writers at [[IAR Systems]] to ensure that the AVR instruction set provided efficient [[Compiler|compilation]] of [[High-level programming language|high-level languages]].<ref name="codesign">{{cite book|url=http://www.atmel.com/dyn/resources/prod_documents/COMPILER.pdf|title=The AVR Microcontroller and C Compiler Co-Design|last=Myklebust|first=Gaute|publisher=Atmel Norway|citeseerx=10.1.1.63.1447|access-date=2012-09-19}}</ref>
 
Among the first of the AVR line was the AT90S8515, which in a 40-pin DIP package has the same pinout as an [[Intel 8051|8051]] microcontroller, including the external multiplexed address and data bus. The polarity of the <span style="text-decoration: overline">RESET</span> line was opposite (8051's having an active-high RESET, while the AVR has an active-low <span style="text-decoration: overline">RESET</span>), but other than that the pinout was identical.
Line 226 ⟶ 227:
=== Development ===
AVRs have a large following due to the free and inexpensive development tools available, including reasonably priced development boards and free development software. The AVRs are sold under various names that share the same basic core, but with different peripheral and memory combinations. Compatibility between chips in each family is fairly good, although I/O controller features may vary.
 
The Atmel AVR GNU C/C++ [[cross compiler]], "avr-gcc" and "avr-g++", is used in both WinAVR and Atmel Studio.<ref>
Microchip.
[https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers "Toolchains for AVR Microcontrollers (MCUs)"].
</ref><ref>
Timothy S Margush.
"Some Assembly Required: Assembly Language Programming with the AVR Microcontroller".
2016.
[https://www.google.com/books/edition/Some_Assembly_Required/n5E3EQAAQBAJ?gbpv=1&pg=PA539 "Chapter 14: Programming the AVR in C"].
p. 539
</ref><ref>
J. M. Hughes.
[https://www.google.com/books/edition/Arduino_A_Technical_Reference/7oMpDAAAQBAJ "Arduino: A Technical Reference"].
2016.
p. 127-131.
</ref><ref>
Joe Pardue.
[https://www.google.com/books/edition/C_Programming_for_Microcontrollers/jAzuNAAACAAJ "C Programming for Microcontrollers: Featuring ATMEL's AVR Butterfly and the Free WinAVR Compiler"].
2005.
</ref><ref>
Elliot Williams.
[https://www.google.com/books/edition/AVR_Programming/y7C2AgAAQBAJ "AVR Programming"].
2014.
</ref>
The Arduino team borrowed from WinAVR for the Windows version of the [[Arduino Software|Arduino software]].<ref>
Dale Wheat.
[https://www.google.com/books/edition/Arduino_Internals/U6EtJwBzY1oC "Arduino Internals"].
2011.
p. 227.
</ref>
 
See [[#External links|external links]] for sites relating to AVR development.
Line 515 ⟶ 546:
USB-based AVRs have been used in the Microsoft Xbox hand controllers. The link between the controllers and Xbox is USB.
 
Numerous companies produce AVR-based microcontroller boards intended for use by hobbyists, robot builders, experimenters and small system developers including: Cubloc,<ref>{{cite web|url=http://www.cubloc.com/|title=Comfile Technology|publisher=Comfile Technology, Inc.|access-date=13 January 2013|archive-date=17 January 2013|archive-url=https://web.archive.org/web/20130117112843/http://www.cubloc.com/|url-status=dead}}</ref> gnusb,<ref>{{cite web|url=httphttps://gnusb.sourceforge.net/|title=gnusb: Open Source USB Sensor Box|access-date=13 January 2013}}</ref> [[BasicX]],<ref>{{cite web|url=http://www.basicx.com/|title=BasicX|publisher=NetMedia, Inc.|access-date=13 January 2013|archive-url=https://web.archive.org/web/20130523182113/http://basicx.com/|archive-date=23 May 2013|url-status=dead}}</ref> Oak Micros,<ref>{{cite web|url=http://oakmicros.com/content/index.php|title=Welcome to Oak Micros|work=Oak Micros|publisher=Oak Micros|url-status=dead|archive-url=https://web.archive.org/web/20121025082936/http://oakmicros.com/content/index.php|archive-date=2012-10-25|access-date=13 January 2013}}</ref> ZX Microcontrollers,<ref>{{cite web|url=http://www.zbasic.net/|title=ZBasic|access-date=13 January 2013}}</ref> and myAVR.<ref>{{cite web|url=http://www.myavr.com/|title=myAVR|publisher=Laser & Co. Solutions GmbH|access-date=13 January 2013}}</ref> There is also a large community of [[Arduino-compatible boards]] supporting similar users.
 
[[Schneider Electric]] used to produce the M3000 Motor and Motion Control Chip, incorporating an Atmel AVR Core and an advanced motion controller for use in a variety of motion applications but this has been discontinued.<ref>{{cite web|url=http://www.imshome.com/products/m3000.html|title=M3000 Motion controller on a chip|work=imshome.com|publisher=Schneider Electric Motion USA|url-status=dead|archive-url=https://web.archive.org/web/20091202120117/http://www.imshome.com/products/m3000.html|archive-date=2009-12-02|access-date=2011-08-02}}</ref>