69 lines
1.2 KiB
Plaintext
69 lines
1.2 KiB
Plaintext
= Arduino Nano =
|
|
|
|
A very small arduino product, better for hobby embedding
|
|
|
|
see [[arduino_techniques|Programming Techniques]]
|
|
|
|
== Features ==
|
|
|
|
* ATMEL AVR ATmega328P microcontroller
|
|
* 8 bit @16Mhz
|
|
* 2Kbytes SRAM
|
|
* 32Kbytes flash
|
|
* 1Kbytes EEPROM
|
|
* Three on board LED's
|
|
* 20 IO pins
|
|
* 6 PWM and 6 ADC
|
|
|
|
== Notes ==
|
|
|
|
=== Memory ===
|
|
|
|
* AVR instructions are 16 or 32bits wide, therefore the flash is 16K x 16
|
|
* EEPROM has endurance of ~10000 write cycles
|
|
* Program counter is 14 bits wide
|
|
* First 32 memory locations (0x0000 - 0x001F) are registers
|
|
* Next 64 registers are standard IO (0x0020 - 0x005F)
|
|
* Next 160 are extended IO (0x0060 - 0x00FF)
|
|
* Everything else is SRAM (0x0100 - 0x08FF)
|
|
|
|
=== IO ===
|
|
|
|
* GPIO pins
|
|
* Have a Data Direction Register (DDR)
|
|
- Sets if data should go in or out
|
|
* Is kept up via a [[multiplexer]] to decide which bit
|
|
|
|
=== Pins ===
|
|
|
|
* PortC
|
|
- Port C data regiser
|
|
- 0x28
|
|
- R/W 8bits
|
|
* DDRC
|
|
- Port C data direction register
|
|
- 0x27
|
|
- R/W 8bits
|
|
* PINC
|
|
- Port C input pints address
|
|
- 0x26
|
|
- R 8bits
|
|
* PortB
|
|
- Port B data register
|
|
- 0x25
|
|
- R/W 8bits
|
|
* DDRB
|
|
- Port B data direction register
|
|
- 0x24
|
|
- R/W 8bits
|
|
* PINB
|
|
- Port B Input pins address
|
|
- 0x23
|
|
- R 8bit
|
|
|
|
Same pattern:
|
|
* PortD
|
|
- 0x2B - 0x29
|
|
|
|
[[embedded]]
|