Updated SAMA5D3x-EK README file

This commit is contained in:
Gregory Nutt 2013-11-11 16:17:13 -06:00
parent 572dec84ae
commit a544acfce4

View File

@ -81,9 +81,10 @@ Contents
- SAMA5 ADC Support
- SAMA5 PWM Support
- OV2640 Camera Interface
- WM8904 Audio Codec Interface
- I2S Audio Support
- SAMA5D3x-EK Configuration Options
- Configurations
- To-Do List
Development Environment
=======================
@ -978,11 +979,16 @@ OV2640 Camera Interface
PC26 C ISI_D11 29 ISI_D11
30 GND
WM8904 Audio Codec Interface
============================
I2S Audio Support
=================
Connectivity
------------
The SAMA5D3x-EK has two devices on-board that can be used for verification
of I2S functionaly: HDMI and a WM8904 audio CODEC. As of this writing,
the I2S driver is present, but there are not drivers for either the HDMI
or the WM8904.
WM8904 Audio CODEC Interface
----------------------------
------------- ---------------- -----------------
WM8904 SAMA5D3 NuttX Pin Name
@ -999,11 +1005,66 @@ WM8904 Audio Codec Interface
1 IRQ/GPIO1 PD16 INT_AUDIO N/A
------------- ---------------- -----------------
Configuration
-------------
I2S Loopback Test
-----------------
nxplayer
--------
The I2S driver was verified using a special I2C character driver (at
nuttx/drivers/audio/i2schar.c) and a test driver at apps/examples/i2schar.
The I2S driver was verified in loopback mode with no audio device.
[NOTE: The above statement is anticipatory: As of this writing I2S driver
verification is underway and still not complete].
This section describes the modifications to the NSH configuration that were
used to perform the I2S testing:
System Type -> SAMA5 Peripheral Support
CONFIG_SAMA5_SSCO=y : Enable SSC0 driver support
CONFIG_SAMA5_DMAC0=y : DMAC0 required by SSC0
Alternatively, SSC1 could have be used:
System Type -> SAMA5 Peripheral Support
CONFIG_SAMA5_SSC1=y : Enable SSC0 driver support
CONFIG_SAMA5_DMAC1=y : DMAC0 required by SSC0
System Type -> SSC Configuration
CONFIG_SAMA5_SSC_MAXINFLIGHT=16 : Up to 16 pending DMA transfers
CONFIG_SAMA5_SSC0_MASTER=y : Master mode
CONFIG_SAMA5_SSC0_DATALEN=16 : 16-bit data
CONFIG_SAMA5_SSC0_RX=y : Support a receiver
CONFIG_SAMA5_SSC0_RX_RKINPUT=y : Receiver gets clock from RK input
CONFIG_SAMA5_SSC0_TX=y : Support a transmitter
CONFIG_SAMA5_SSC0_TX_MCKDIV=y : Transmitter gets clock from MCK/2
CONFIG_SAMA5_SSC0_MCKDIV_SAMPLERATE=48000 : Sampling at 48K samples/sec
CONFIG_SAMA5_SSC0_TX_TKOUTPUT_CONT=y : Outputs clock on TK
CONFIG_SAMA5_SSC0_LOOPBACK=y : Loopmode mode connects RD/TD and RK/TK
Audio
CONFIG_AUDIO=y : Audio support needed
: Defaults should be okay
Drivers -> Audio
CONFIG_I2S=y : General I2S support
CONFIG_AUDIO_DEVICES=y : Audio device support
CONFIG_AUDIO_I2SCHAR=y : Build I2S character driver
The following describes how I have the test application at
apps/examples/i2schar configured:
CONFIG_EXAMPLES_I2SCHAR=y
CONFIG_EXAMPLES_I2SCHAR_DEVPATH="/dev/i2schar0"
CONFIG_EXAMPLES_I2SCHAR_TX=y
CONFIG_EXAMPLES_I2SCHAR_TXBUFFERS=4
CONFIG_EXAMPLES_I2SCHAR_TXSTACKSIZE=1536
CONFIG_EXAMPLES_I2SCHAR_RX=y
CONFIG_EXAMPLES_I2SCHAR_RXBUFFERS=4
CONFIG_EXAMPLES_I2SCHAR_RXSTACKSIZE=1536
CONFIG_EXAMPLES_I2SCHAR_BUFSIZE=256
CONFIG_EXAMPLES_I2SCHAR_DEVINIT=y
Library Routines
CONFIG_SCHED_WORKQUEUE=y : Driver needs work queue support
SAMA5D3x-EK Configuration Options
=================================
@ -2848,3 +2909,55 @@ Configurations
2013-7-31: Using delay loop calibration from the hello configuration.
That configuration runs out of internal SRAM and, as a result, this
configuration needs to be recalibrated.
To-Do List
==========
1) Currently the SAMA5Dx is running at 396MHz in these configurations. This
is because the timing for the PLLs, NOR FLASH, and SDRAM came from the
Atmel NoOS sample code which runs at that rate. The SAMA5Dx is capable
of running at 528MHz, however. The setup for that configuration exists
in the Bareboard assembly language setup and should be incorporated.
2) Currently, these configurations keep all .bss and .data in internal SRAM.
The SDRAM is available for heap, but not for static data. This is
because the SDRAM does not get configured until after the system has
booted; until after .bss and .data have been initialized. To change
this, the solution would be to port the Bareboard assembly language
setup into the NuttX assembly language startup and execute it BEFORE
initializing .bss and .data.
3) Neither USB OHCI nor EHCI support Isochronous endpoints. Interrupt
endpoint support in the EHCI driver is untested.
4) HSCMI TX DMA support is currently commented out.
5) I believe that there is an issue when the internal AT25 FLASH is
formatted by NuttX. That format works fine with Linux, but does not
appear to work with Windows. Reformatting on Windows can resolve this.
NOTE: This is not a SAMA5Dx issue.
6) CAN testing has not yet been performed due to issues with cabling. I
just do not have a good test bed (or sufficient CAN knowledge) for
good CAN testing.
7) The NxWM example does not work well. This example was designed to work
with much smaller displays and does not look good or work well with the
SAMA5Dx-EKs 800x480 display.
8) There are lots of LCDC hardware features that are not tested with NuttX.
The simple NuttX graphics system does not have support for all of the
layers and other features of the LCDC.
9) I have a Camera, but there is still no ISI driver. I am not sure what to
do with the camera. NuttX needs something liek V4L to provide the
definition for what a camera driver is supposed to do.
10) NAND. There is no NAND support. A NAND driver is a complex thing
because it must support not only basic NAND access but also bad block
detection, sparing and ECC. Lots of work!
11) GMAC has only been tested on a 10/100Base-T network. I don't have a
1000Base-T network to support additional testing.
12) I2S testing. Underway now.