SAM4E-EK: NSH configuration now has DMA-based SPI and AT25 Serial FLASH suported enabled by default
This commit is contained in:
parent
bda62b0502
commit
4d34848389
@ -6998,4 +6998,6 @@
|
||||
HSMCI block driver (2014-3-13).
|
||||
* arch/arm/src/sam34/sam_dmac.c and sam_spi.c: Fixes to DMA in general
|
||||
and to SPI in particular (2014-3-14).
|
||||
|
||||
* configs/sam4e-ek/nsh: DMA-based SPI and a FAT file system on the
|
||||
AT25 Serial FLASH are now supported by default in the NSH configuration
|
||||
(2014-3-14).
|
||||
|
@ -20,6 +20,7 @@ Contents
|
||||
- LEDs
|
||||
- Serial Console
|
||||
- Networking Support
|
||||
- AT25 Serial FLASH
|
||||
- SAM4E-EK-specific Configuration Options
|
||||
- Configurations
|
||||
|
||||
@ -343,8 +344,8 @@ Serial Console
|
||||
By default serial console is configured for 115000, 8-bit, 1 stop bit, and
|
||||
no parity.
|
||||
|
||||
Networking
|
||||
==========
|
||||
Networking Support
|
||||
==================
|
||||
|
||||
Networking support via the can be added to NSH by selecting the following
|
||||
configuration options.
|
||||
@ -502,6 +503,89 @@ Networking
|
||||
a network because additional time will be required to fail with timeout
|
||||
errors.
|
||||
|
||||
AT25 Serial FLASH
|
||||
=================
|
||||
|
||||
Connections
|
||||
-----------
|
||||
|
||||
Both the SAM4E-EK include an Atmel AT25DF321A, 32-megabit, 2.7-volt
|
||||
SPI serial flash. The SPI
|
||||
connection is as follows:
|
||||
|
||||
------ ------- ---------------
|
||||
SAM4E AT25 SAM4E
|
||||
GPIO PIN FUNCTION
|
||||
------ ------- ---------------
|
||||
PA13 SI MOSI
|
||||
PA12 SO MIS0
|
||||
PA14 SCK SPCK
|
||||
PA5 /CS NPCS3 (pulled high externally)
|
||||
------ ------- ---------------
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Support for the serial FLASH can be enabled in these configurations. These
|
||||
are the relevant configuration settings. These settings (1) Enable SPI0,
|
||||
(2) Enable DMAC0 to support DMA transfers on SPI for best performance,
|
||||
(3) Enable the AT25 Serial FLASH, and (3) Set up NuttX to configure the
|
||||
file system on the AT25 FLASH:
|
||||
|
||||
System Type -> ATSAM3/4 Peripheral Support
|
||||
CONFIG_SAM34_SPI0=y : Enable SPI0
|
||||
CONFIG_SAM34_DMAC0=y : Enable DMA controller 0
|
||||
|
||||
System Type -> SPI device driver options
|
||||
CONFIG_SAM34_SPI_DMA=y : Use DMA for SPI transfers
|
||||
CONFIG_SAM34_SPI_DMATHRESHOLD=4 : Don't DMA for small transfers
|
||||
|
||||
Device Drivers -> SPI Driver Support
|
||||
CONFIG_SPI=y : Enable SPI support
|
||||
CONFIG_SPI_EXCHANGE=y : Support the exchange method
|
||||
|
||||
Device Drivers -> Memory Technology Device (MTD) Support
|
||||
CONFIG_MTD=y : Enable MTD support
|
||||
CONFIG_MTD_AT25=y : Enable the AT25 driver
|
||||
CONFIG_AT25_SPIMODE=0 : Use SPI mode 0
|
||||
CONFIG_AT25_SPIFREQUENCY=20000000 : Use SPI frequency 12MHz
|
||||
|
||||
The AT25 is capable of operation at 20MHz. However, if you experience
|
||||
any issues with the AT25, then lower this frequency may give more
|
||||
predictable performance.
|
||||
|
||||
File Systems -> FAT
|
||||
CONFIG_FS_FAT=y : Enable and configure FAT
|
||||
CONFIG_FAT_LCNAMES=y : Upper/lower case names
|
||||
CONFIG_FAT_LFN=y : Long file name support (See NOTE)
|
||||
CONFIG_FAT_MAXFNAME=32 : Limit filename sizes to 32 bytes
|
||||
|
||||
NOTE: Use care if you plan to use FAT long file name feature in a product;
|
||||
There are issues with certain Microsoft patents on the long file name
|
||||
technology.
|
||||
|
||||
Application Configuration -> NSH Library
|
||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||
|
||||
Board Selection
|
||||
CONFIG_SAM4EEK_AT25_AUTOMOUNT=y : Mounts AT25 for NSH
|
||||
CONFIG_SAM4EEK_AT25_FTL=y : Create block driver for FAT
|
||||
|
||||
You can then format the AT25 FLASH for a FAT file system and mount the
|
||||
file system at /mnt/at25 using these NSH commands:
|
||||
|
||||
nsh> mkfatfs /dev/mtdblock0
|
||||
nsh> mount -t vfat /dev/mtdblock0 /mnt/at25
|
||||
|
||||
Then you an use the FLASH as a normal FAT file system:
|
||||
|
||||
nsh> echo "This is a test" >/mnt/at25/atest.txt
|
||||
nsh> ls -l /mnt/at25
|
||||
/mnt/at25:
|
||||
-rw-rw-rw- 16 atest.txt
|
||||
nsh> cat /mnt/at25/atest.txt
|
||||
This is a test
|
||||
|
||||
SAM4E-EK-specific Configuration Options
|
||||
=======================================
|
||||
|
||||
@ -793,7 +877,12 @@ Configurations
|
||||
CONFIG_NSH_DHCPC=y : Tells NSH to use DHCPC, not
|
||||
: the fixed addresses
|
||||
|
||||
4. This configuration has been used for verifying the touchscreen on
|
||||
4. This configuration has the DMA-based SPI0 and AT25 Serial FLASH
|
||||
support enabled by default. This can be easily disabled or
|
||||
reconfigured (See see the configuration settings and usage notes
|
||||
above in the section entitled "AT25 Serial FLASH").
|
||||
|
||||
5. This configuration has been used for verifying the touchscreen on
|
||||
on the SAM4E-EK LCD. With these modifications, you can include the
|
||||
touchscreen test program at apps/examples/touchscreen as an NSH built-in
|
||||
application. You can enable the touchscreen and test by modifying the
|
||||
@ -837,7 +926,7 @@ Configurations
|
||||
CONFIG_DEBUG_VERBOSE=y : Enable verbose debug output
|
||||
CONFIG_DEBUG_INPUT=y : Enable debug output from input devices
|
||||
|
||||
4. Enabling HSMCI support. The SAM3U-KE provides a an SD memory card
|
||||
6. Enabling HSMCI support. The SAM3U-KE provides a an SD memory card
|
||||
slot. Support for the SD slot can be enabled with the following
|
||||
settings:
|
||||
|
||||
@ -868,3 +957,5 @@ Configurations
|
||||
has been verified. HSMCI and touchscreen have not been tested (the
|
||||
above notes came from the SAM3U-EK and have not been yet been tested
|
||||
on the SAM4E-EK).
|
||||
2014-3-14: The DMA-based SPI appears to be functional and can be used
|
||||
to support a FAT file system on the AT25 Serial FLASH.
|
||||
|
@ -188,7 +188,8 @@ CONFIG_ARCH_CHIP_SAM4E=y
|
||||
# CONFIG_SAM34_CMCC is not set
|
||||
# CONFIG_SAM34_DACC is not set
|
||||
# CONFIG_SAM34_EIC is not set
|
||||
# CONFIG_SAM34_DMAC0 is not set
|
||||
CONFIG_SAM34_DMAC0=y
|
||||
# CONFIG_SAM34_DMAC1 is not set
|
||||
CONFIG_SAM34_EMAC=y
|
||||
# CONFIG_SAM34_HSMCI is not set
|
||||
# CONFIG_SAM34_NAND is not set
|
||||
@ -197,7 +198,7 @@ CONFIG_SAM34_EMAC=y
|
||||
# CONFIG_SAM34_RTC is not set
|
||||
# CONFIG_SAM34_RTT is not set
|
||||
# CONFIG_SAM34_SMC is not set
|
||||
# CONFIG_SAM34_SPI0 is not set
|
||||
CONFIG_SAM34_SPI0=y
|
||||
# CONFIG_SAM34_TC0 is not set
|
||||
# CONFIG_SAM34_TC1 is not set
|
||||
# CONFIG_SAM34_TC2 is not set
|
||||
@ -230,6 +231,12 @@ CONFIG_SAM34_USART1=y
|
||||
# AT91SAM3/4 GPIO Interrupt Configuration
|
||||
#
|
||||
|
||||
#
|
||||
# AT91SAM3/4 SPI device driver options
|
||||
#
|
||||
CONFIG_SAM34_SPI_DMA=y
|
||||
CONFIG_SAM34_SPI_DMATHRESHOLD=4
|
||||
|
||||
#
|
||||
# AT91SAM3/4 EMAC device driver options
|
||||
#
|
||||
@ -256,7 +263,7 @@ CONFIG_SAM34_EMAC_ISETH0=y
|
||||
#
|
||||
# CONFIG_ARCH_NOINTC is not set
|
||||
# CONFIG_ARCH_VECNOTIRQ is not set
|
||||
# CONFIG_ARCH_DMA is not set
|
||||
CONFIG_ARCH_DMA=y
|
||||
CONFIG_ARCH_HAVE_IRQPRIO=y
|
||||
# CONFIG_CUSTOM_STACK is not set
|
||||
# CONFIG_ADDRENV is not set
|
||||
@ -325,6 +332,8 @@ CONFIG_NSH_MMCSDMINOR=0
|
||||
#
|
||||
CONFIG_SAM4EEK_96MHZ=y
|
||||
# CONFIG_SAM4EEK_120MHZ is not set
|
||||
CONFIG_SAM4EEK_AT25_AUTOMOUNT=y
|
||||
CONFIG_SAM4EEK_AT25_FTL=y
|
||||
|
||||
#
|
||||
# RTOS Features
|
||||
@ -404,7 +413,11 @@ CONFIG_DEV_NULL=y
|
||||
# CONFIG_PWM is not set
|
||||
# CONFIG_ARCH_HAVE_I2CRESET is not set
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_OWNBUS is not set
|
||||
CONFIG_SPI_EXCHANGE=y
|
||||
# CONFIG_SPI_CMDDATA is not set
|
||||
# CONFIG_SPI_BITBANG is not set
|
||||
# CONFIG_I2S is not set
|
||||
# CONFIG_RTC is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
@ -415,7 +428,33 @@ CONFIG_DEV_NULL=y
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_LCD is not set
|
||||
# CONFIG_MMCSD is not set
|
||||
# CONFIG_MTD is not set
|
||||
CONFIG_MTD=y
|
||||
|
||||
#
|
||||
# MTD Configuration
|
||||
#
|
||||
# CONFIG_MTD_PARTITION is not set
|
||||
# CONFIG_MTD_BYTE_WRITE is not set
|
||||
# CONFIG_MTD_CONFIG is not set
|
||||
# CONFIG_MTD_CONFIG_RAM_CONSOLIDATE is not set
|
||||
|
||||
#
|
||||
# MTD Device Drivers
|
||||
#
|
||||
# CONFIG_MTD_NAND is not set
|
||||
# CONFIG_RAMMTD is not set
|
||||
# CONFIG_MTD_AT24XX is not set
|
||||
CONFIG_MTD_AT25=y
|
||||
CONFIG_AT25_SPIMODE=0
|
||||
CONFIG_AT25_SPIFREQUENCY=20000000
|
||||
# CONFIG_MTD_AT45DB is not set
|
||||
# CONFIG_MTD_M25P is not set
|
||||
# CONFIG_MTD_SMART is not set
|
||||
# CONFIG_MTD_RAMTRON is not set
|
||||
# CONFIG_MTD_SST25 is not set
|
||||
# CONFIG_MTD_SST25XX is not set
|
||||
# CONFIG_MTD_SST39FV is not set
|
||||
# CONFIG_MTD_W25 is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
|
||||
#
|
||||
@ -584,8 +623,9 @@ CONFIG_FS_READABLE=y
|
||||
CONFIG_FS_WRITABLE=y
|
||||
# CONFIG_FS_RAMMAP is not set
|
||||
CONFIG_FS_FAT=y
|
||||
# CONFIG_FAT_LCNAMES is not set
|
||||
# CONFIG_FAT_LFN is not set
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
# CONFIG_FS_FATTIME is not set
|
||||
# CONFIG_FAT_DMAMEMORY is not set
|
||||
# CONFIG_NFS is not set
|
||||
@ -918,6 +958,7 @@ CONFIG_NSH_MAX_ROUNDTRIP=20
|
||||
#
|
||||
# FLASH Erase-all Command
|
||||
#
|
||||
# CONFIG_SYSTEM_FLASH_ERASEALL is not set
|
||||
|
||||
#
|
||||
# NxPlayer media player library / command Line
|
||||
|
Loading…
Reference in New Issue
Block a user