mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
c1c25b0644
- Use the common logic to translate from a bootloader to concrete flasher flags - Extended documentation on how to use optiboot as alternative bootloader, as the stock bootloader is affected by a bug preventing the use of RIOT's pm_reboot() implementation
65 lines
2.8 KiB
Plaintext
65 lines
2.8 KiB
Plaintext
/**
|
|
@defgroup boards_arduino-nano Arduino Nano
|
|
@ingroup boards
|
|
@brief Support for the Arduino Nano board
|
|
|
|
## Overview
|
|
|
|
The Arduino Nano is the cheapest member of the Arduino family. It is based on
|
|
Atmel's AVR architecture and sports an ATmega328p MCU. It is like many Arduinos
|
|
extensible by using shields.
|
|
|
|
### MCU
|
|
| MCU | ATmega328p |
|
|
|:------------- |:--------------------------------------------- |
|
|
| Family | AVR/ATmega |
|
|
| Vendor | Atmel |
|
|
| RAM | 2 KiB |
|
|
| Flash | 32 KiB (2 KiB reserved for the bootloader) |
|
|
| Frequency | 16 MHz |
|
|
| Timers | 3 (2x 8bit, 1x 16bit) |
|
|
| ADCs | 6 analog input pins |
|
|
| UARTs | 1 |
|
|
| SPIs | 1 |
|
|
| I2Cs | 1 (called TWI) |
|
|
| Vcc | 5.0V |
|
|
| MCU Datasheet | [ATmega328p datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf) |
|
|
| Board Manual | [Board Manual](https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf) |
|
|
|
|
## Flashing the Device
|
|
Flashing RIOT on the Arduino Nano is quite straight forward, just connect your
|
|
Arduino Nano via the USB connector to your host computer and type:
|
|
|
|
`make BOARD=arduino-nano flash`
|
|
|
|
This should take care of everything!
|
|
|
|
We use the open `avrdude` tool to write the new code into the ATmega328p's
|
|
flash
|
|
|
|
## Using Optiboot
|
|
|
|
You can use the [Optiboot](https://github.com/Optiboot/optiboot) bootloader
|
|
instead of the stock bootloader for faster programming. Optiboot also is
|
|
smaller (512 byte instead of 2 KiB), so that 1.5 KiB more program memory is
|
|
available for RIOT. Refer to the project page for instructions on how to
|
|
build an flash the bootloader. Don't forgot to also update the fuse settings
|
|
to set the bootloader size to 256 words (512 bytes).
|
|
|
|
Compile and flash with `make BOARD=arduino-nano BOOTLOADER=optiboot flash` or
|
|
use `export ARDUINO_NANO_BOOTLOADER=optiboot` in order to not have to specify
|
|
the bootloader during compilation and flashing.
|
|
|
|
## Issues
|
|
|
|
### RIOT Stuck in Reboot Loop
|
|
|
|
If RIOT is stuck in a reboot loop e.g. after restarting the device with the
|
|
`reboot` shell command, this is likely caused by an
|
|
[issue with the stock bootloader](https://forum.arduino.cc/index.php?topic=150419.0)
|
|
that can be solved by using Optiboot as bootloader instead (see above).
|
|
|
|
## Caution
|
|
Don't expect having a working network stack due to very limited resources.
|
|
*/
|