mirror of
https://github.com/apache/nuttx.git
synced 2026-08-06 21:19:03 +00:00
docs/avr/atmega/atmega1284p/boards/moteino-mega: Migrate README.txt
Migrate the legacy README.txt documentation to RST format following the standard board template. Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
This commit is contained in:
parent
4a1610ebbb
commit
f7f769d7cd
2 changed files with 143 additions and 270 deletions
|
|
@ -1,270 +0,0 @@
|
|||
README
|
||||
^^^^^^
|
||||
|
||||
This port was contributed by jeditekunum.
|
||||
|
||||
This is the README file for the port of NuttX to the MoteinoMEGA from
|
||||
LowPowerLab (http://www.lowpowerlab.com). The MoteinoMEGA is based
|
||||
on an Atmel ATMega1284P. As of this writing, documentation for the
|
||||
MoteinoMEGA board is available here:
|
||||
|
||||
https://lowpowerlab.com/shop/index.php?_route_=Moteino/moteinomega
|
||||
|
||||
Contents
|
||||
^^^^^^^^
|
||||
|
||||
o MoteinoMEGA Features
|
||||
o Pin Connections
|
||||
o DualOptiboot Bootloader
|
||||
o Toolchains
|
||||
o MoteinoMEGA Configuration Options
|
||||
o Configurations
|
||||
|
||||
MoteinoMEGA Features
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o 16MHz ATmega1284P Atmel 8bit AVR RISC Processor
|
||||
o 128Kbyte Flash
|
||||
o 16Kbyte RAM
|
||||
o 4Kbyte EEPROM
|
||||
o 2 High Speed Serial Ports
|
||||
o 8Ch 10bit Analog Input port
|
||||
|
||||
Pin Connections
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
-------------------- -----------------------------
|
||||
ATMega1284P Pinout MoteinoMEGA board connection
|
||||
-------------------- -----------------------------
|
||||
(left)
|
||||
1 AREF AR
|
||||
2 PA7 A7
|
||||
3 PA6 A6
|
||||
4 PA5 A5
|
||||
5 PA4 A4
|
||||
6 PA3 A3
|
||||
7 PA2 A2
|
||||
8 PA1 A1
|
||||
9 PA0 A0
|
||||
10 PB0 0
|
||||
11 PB1 1
|
||||
12 PB2 (INT2) 2/i2 (used by optional radio)
|
||||
13 PB3 (PWM0) 3
|
||||
14 PB4 (PWM1/SS) 4/SS (used by optional radio)
|
||||
15 PB5 (MOSI) 5/MO (used by optional radio/flash)
|
||||
16 PB6 (MISO/PWM2) 6/MI (used by optional radio/flash)
|
||||
17 PB7 (SCK/PWM3) 7/SCK (used by optional radio/flash)
|
||||
18 VOUT 3v3
|
||||
19 VIN VIN
|
||||
20 GND GND
|
||||
(bottom)
|
||||
21 DTR/RTS DTR
|
||||
22 TX0 v
|
||||
23 RX0 ^
|
||||
24 VIN
|
||||
25
|
||||
26 GND GND
|
||||
(right)
|
||||
27 GND GND
|
||||
28 VIN VIN
|
||||
29 VOUT 3v3
|
||||
30 RESET RST
|
||||
31 PD0 (RX0) 8/Serial 0 ^
|
||||
32 PD1 (TX0) 9/Serial 0 v
|
||||
33 PD2 (RX1/INT0) 10/Serial 0 ^/i0
|
||||
34 PD3 (TX1/INT1) 11/Serial 1 v/i1
|
||||
35 PD4 (PWM4) 12
|
||||
36 PD5 (PWM5) 13
|
||||
37 PD6 (PWM6) 14
|
||||
38 PD7 (PWM7) 15/LED
|
||||
39 PC0 (SCL) 16/SCL
|
||||
40 PC1 (SDA) 17/SDA
|
||||
41 PC2 (TCK) 18
|
||||
42 PC3 (TMS) 19
|
||||
43 PC4 (TDO) 20
|
||||
44 PC5 (TDI) 21
|
||||
45 PC6 22
|
||||
46 PC7 23 (used by optional flash)
|
||||
|
||||
DualOptiboot Bootloader
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o FTDI (or similar) USB-To-Serial converter with compatible connector
|
||||
configured for DTR (AdaFruit, SparkFun, etc)
|
||||
o Obtain ard-reset-arduino Python script
|
||||
(one source: https://github.com/mikaelpatel/Cosa/blob/master/build/Arduino-Makefile/bin/ard-reset-arduino)
|
||||
This script triggers the DTR pin to enter bootloader mode.
|
||||
o Obtain avrdude for your platform.
|
||||
|
||||
Bootloader operates at 115200 baud. It would be useful to create a short script
|
||||
that invokes ard-reset-arduino and then avrdude to load program. This script
|
||||
could then also, optionally, invoke miniterm.py or some other serial interface
|
||||
program for console.
|
||||
|
||||
Example:
|
||||
|
||||
APP=nuttx
|
||||
CPU=atmega1284p
|
||||
BAUD=115200
|
||||
PORT=/dev/tty.usbserial-A703X8PQ
|
||||
avr-size --mcu=$CPU -C --format=avr $APP
|
||||
ard-reset-arduino --verbose $PORT
|
||||
avrdude -q -V -p $CPU -C {location-of-avrdude.conf} -D -c arduino -b $BAUD \
|
||||
-P $PORT -U flash:w:${APP}.hex:i
|
||||
miniterm.py --port=$PORT --baud=$BAUD -q --lf
|
||||
|
||||
Toolchains
|
||||
^^^^^^^^^^
|
||||
|
||||
The toolchain may be selected using the kconfig-mconf tool (via 'make menuconfig'),
|
||||
by editing the existing configuration file (defconfig), or by overriding
|
||||
the toolchain on the make commandline with CONFIG_AVR_TOOLCHAIN=<toolchain>.
|
||||
|
||||
The valid values for <toolchain> are BUILDROOT, CROSSPACK, LINUXGCC and WINAVR.
|
||||
|
||||
This port was tested using the macOS / CROSSPACK tool chain, GCC version 4.8.1.
|
||||
Please see other NuttX documentation for toolchain details.
|
||||
|
||||
MoteinoMEGA Configuration Options
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=avr
|
||||
|
||||
CONFIG_ARCH_FAMILY - For use in C code:
|
||||
|
||||
CONFIG_ARCH_FAMILY=avr
|
||||
|
||||
CONFIG_ARCH_FAMILY_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_FAMILY_AVR=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=atmega
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip:
|
||||
|
||||
CONFIG_ARCH_CHIP_ATMEGA1284P=y
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the boards/ subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=moteino-mega
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_MOTEINO_MEGA=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_RAM_SIZE - Describes the installed DRAM. One of:
|
||||
|
||||
CONFIG_RAM_SIZE=(16*1024) - (16Kb)
|
||||
|
||||
CONFIG_RAM_START - The start address of installed SRAM
|
||||
|
||||
CONFIG_RAM_START=0x800100
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
|
||||
|
||||
Individual subsystems can be enabled:
|
||||
|
||||
CONFIG_AVR_INT0=n
|
||||
CONFIG_AVR_INT1=n
|
||||
CONFIG_AVR_INT2=n
|
||||
CONFIG_AVR_INT3=n
|
||||
CONFIG_AVR_INT4=n
|
||||
CONFIG_AVR_INT5=n
|
||||
CONFIG_AVR_INT6=n
|
||||
CONFIG_AVR_INT7=n
|
||||
CONFIG_AVR_WDT=n
|
||||
CONFIG_AVR_TIMER0=n
|
||||
CONFIG_AVR_TIMER1=n
|
||||
CONFIG_AVR_TIMER2=n
|
||||
CONFIG_AVR_TIMER3=n
|
||||
CONFIG_AVR_SPI=n
|
||||
CONFIG_AVR_USART0=y
|
||||
CONFIG_AVR_USART1=n
|
||||
CONFIG_AVR_ADC=n
|
||||
CONFIG_AVR_ANACOMP=n
|
||||
CONFIG_AVR_TWI=n
|
||||
|
||||
If the watchdog is enabled, this specifies the initial timeout. Default
|
||||
is maximum supported value.
|
||||
|
||||
CONFIG_WDTO_15MS
|
||||
CONFIG_WDTO_30MS
|
||||
CONFIG_WDTO_60MS
|
||||
CONFIG_WDTO_120MS
|
||||
CONFIG_WDTO_1250MS
|
||||
CONFIG_WDTO_500MS
|
||||
CONFIG_WDTO_1S
|
||||
CONFIG_WDTO_2S
|
||||
CONFIG_WDTO_4S
|
||||
CONFIG_WDTO_8S
|
||||
|
||||
ATMEGA specific device driver settings
|
||||
|
||||
CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
|
||||
console and ttys0 (default is the USART0).
|
||||
CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
|
||||
CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_USARTn_2STOP - Two stop bits
|
||||
|
||||
Configurations
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Common Configuration Notes
|
||||
--------------------------
|
||||
|
||||
1. Each MoteinoMEGA configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
tools/configure.sh moteino-mega:<subdir>
|
||||
|
||||
Where <subdir> is one of the configuration sub-directories described in
|
||||
the following paragraph.
|
||||
|
||||
2. These configurations use the mconf-based configuration tool. To
|
||||
change a configurations using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
4. Build with GCC disables CONFIG_DEBUG_OPT_UNUSED_SECTIONS by default.
|
||||
This is because the linker script was not checked to determine
|
||||
if it properly prevents removal of sections which the linker considers
|
||||
unreferenced but which must be present in the binary.
|
||||
|
||||
Configuration Sub-Directories
|
||||
-----------------------------
|
||||
|
||||
hello:
|
||||
The simple apps/examples/hello "Hello, World!" example.
|
||||
|
||||
nsh:
|
||||
Configures the NuttShell (nsh) located at examples/nsh. The
|
||||
Configuration enables only the serial NSH interfaces.
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
============
|
||||
Moteino-Mega
|
||||
============
|
||||
|
||||
.. tags:: arch:avr, chip:atmega1284p
|
||||
|
||||
This port was contributed by jeditekunum.
|
||||
|
||||
This is the README file for the port of NuttX to the MoteinoMEGA from
|
||||
LowPowerLab (http://www.lowpowerlab.com). The MoteinoMEGA is based on an Atmel
|
||||
ATMega1284P. As of this writing, documentation for the MoteinoMEGA board is
|
||||
available `here
|
||||
<https://lowpowerlab.com/shop/index.php?_route_=Moteino/moteinomega>`_.
|
||||
|
||||
MoteinoMEGA Features
|
||||
====================
|
||||
|
||||
* 16MHz ATmega1284P Atmel 8bit AVR RISC Processor
|
||||
* 128Kbyte Flash
|
||||
* 16Kbyte RAM
|
||||
* 4Kbyte EEPROM
|
||||
* 2 High Speed Serial Ports
|
||||
* 8Ch 10bit Analog Input port
|
||||
|
||||
Pinout
|
||||
======
|
||||
|
||||
==================== =============================
|
||||
ATMega1284P Pinout MoteinoMEGA board connection
|
||||
==================== =============================
|
||||
1 AREF AR
|
||||
2 PA7 A7
|
||||
3 PA6 A6
|
||||
4 PA5 A5
|
||||
5 PA4 A4
|
||||
6 PA3 A3
|
||||
7 PA2 A2
|
||||
8 PA1 A1
|
||||
9 PA0 A0
|
||||
10 PB0 0
|
||||
11 PB1 1
|
||||
12 PB2 (INT2) 2/i2 (used by optional radio)
|
||||
13 PB3 (PWM0) 3
|
||||
14 PB4 (PWM1/SS) 4/SS (used by optional radio)
|
||||
15 PB5 (MOSI) 5/MO (used by optional radio/flash)
|
||||
16 PB6 (MISO/PWM2) 6/MI (used by optional radio/flash)
|
||||
17 PB7 (SCK/PWM3) 7/SCK (used by optional radio/flash)
|
||||
18 VOUT 3v3
|
||||
19 VIN VIN
|
||||
20 GND GND
|
||||
21 DTR/RTS DTR
|
||||
22 TX0 v
|
||||
23 RX0 ^
|
||||
24 VIN
|
||||
25
|
||||
26 GND GND
|
||||
27 GND GND
|
||||
28 VIN VIN
|
||||
29 VOUT 3v3
|
||||
30 RESET RST
|
||||
31 PD0 (RX0) 8/Serial 0 ^
|
||||
32 PD1 (TX0) 9/Serial 0 v
|
||||
33 PD2 (RX1/INT0) 10/Serial 0 ^/i0
|
||||
34 PD3 (TX1/INT1) 11/Serial 1 v/i1
|
||||
35 PD4 (PWM4) 12
|
||||
36 PD5 (PWM5) 13
|
||||
37 PD6 (PWM6) 14
|
||||
38 PD7 (PWM7) 15/LED
|
||||
39 PC0 (SCL) 16/SCL
|
||||
40 PC1 (SDA) 17/SDA
|
||||
41 PC2 (TCK) 18
|
||||
42 PC3 (TMS) 19
|
||||
43 PC4 (TDO) 20
|
||||
44 PC5 (TDI) 21
|
||||
45 PC6 22
|
||||
46 PC7 23 (used by optional flash)
|
||||
==================== =============================
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
DualOptiboot Bootloader
|
||||
-----------------------
|
||||
|
||||
* FTDI (or similar) USB-To-Serial converter with compatible connector configured
|
||||
for DTR (AdaFruit, SparkFun, etc)
|
||||
* Obtain ``ard-reset-arduino`` Python script (`one source
|
||||
<https://github.com/mikaelpatel/Cosa/blob/master/build/Arduino-Makefile/bin/ard-reset-arduino>`_)
|
||||
This script triggers the DTR pin to enter bootloader mode.
|
||||
* Obtain `avrdude` for your platform.
|
||||
|
||||
Bootloader operates at 115200 baud. It would be useful to create a short script
|
||||
that invokes ``ard-reset-arduino`` and then avrdude to load program. This script
|
||||
could then also, optionally, invoke miniterm.py or some other serial interface
|
||||
program for console.
|
||||
|
||||
Example:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
APP=nuttx
|
||||
CPU=atmega1284p
|
||||
BAUD=115200
|
||||
PORT=/dev/tty.usbserial-A703X8PQ
|
||||
avr-size --mcu=$CPU -C --format=avr $APP
|
||||
ard-reset-arduino --verbose $PORT
|
||||
avrdude -q -V -p $CPU -C {location-of-avrdude.conf} -D -c arduino -b $BAUD \
|
||||
-P $PORT -U flash:w:${APP}.hex:i
|
||||
miniterm.py --port=$PORT --baud=$BAUD -q --lf
|
||||
|
||||
Toolchains
|
||||
----------
|
||||
|
||||
The toolchain may be selected in Kconfig by editing the existing configuration
|
||||
file (defconfig), or by overriding the toolchain on the make commandline with
|
||||
``CONFIG_AVR_TOOLCHAIN=<toolchain>``.
|
||||
|
||||
The valid values for ``<toolchain>`` are BUILDROOT, CROSSPACK, LINUXGCC and
|
||||
WINAVR.
|
||||
|
||||
This port was tested using the macOS / CROSSPACK tool chain, GCC version 4.8.1.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Each MoteinoMEGA configuration can be selected as follows:
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ tools/configure.sh moteino-mega:<config>
|
||||
|
||||
Where ``<config>`` is one of the configurations listed below.
|
||||
|
||||
hello
|
||||
-----
|
||||
|
||||
The simple "Hello, World!" example.
|
||||
|
||||
nsh
|
||||
---
|
||||
|
||||
Configures the NuttShell (nsh). The configuration enables only the serial NSH
|
||||
interfaces.
|
||||
Loading…
Add table
Add a link
Reference in a new issue