d6f7821b15
Mac OS X was renamed to macOS at some point. Update references to OSX, OS X, Mac OS X, Mac OSX, and other permutations, to macOS, in README files and in comments of other files.
267 lines
7.7 KiB
Plaintext
267 lines
7.7 KiB
Plaintext
README
|
|
^^^^^^
|
|
|
|
This port conributed 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.
|
|
|
|
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.
|