00001 /*! \mainpage SAMV71 Xplained Ultra Software Package 00002 The SAMV7 Software Package will guide you through the best programming usage. Hefty examples of applications can be found \ref page_examples "here". 00003 00004 \section microcontroller_sec Microcontroller features 00005 - ARM Cortex-M running at up to 300MHz 00006 - 16 Kbytes of Icache and 16 Kbytes of Dcache with Error Code Correction (ECC) 00007 - 16 zones Memory Protection Unit (MPU) 00008 - DSP Instructions, Thumb®-2 instruction set 00009 - Embedded Trace Module (ETM) with instruction trace stream, including Trace Port Interface Unit (TPIU) 00010 00011 \section sec_getStarted Get Started 00012 The SAMV7 is a Cortex-M based processor. This processor is designed to achieve high system performance in power and cost-sensitive embedded applications. It is also designed to be fast and easy to program, no assembler code or deep knowledge of the architecture to create simple application are required. The \ref getting-started "Getting Started" example provides a simple template to start a new project on SAMV7. 00013 00014 \section libChip_sec Chip Library 00015 \ref libchip_page library consists of a set of functions, data structures and macros covering all peripherals. 00016 The development of each driver is driven by a common API (application programming interface) 00017 which standardizes the driver structure, the functions and the names of parameters. 00018 - The Power Management Controller (\ref pmc_module "PMC") optimizes power consumption by controlling all system and user peripheral clocks. The PMC enables/disables the clock inputs to many of the peripherals and the Core. 00019 \ref pmc_clock_switching gives an example of how to switch from a clock to another (PLLA, PLLUTMI, 32K SLCK/internal RC, MCK) or change divider. \ref sysc allows to measure the consumption of the core in different modes (idle mode, slow clock mode, backup mode), and how to wake-up from back-up mode with \ref rtc_module "RTC" alarm or WKUP pin. 00020 00021 - \ref AFEC_module "AFE" (Analog-Front-End Controller) is based on a 12-bit Analog-to-Digital Converter (ADC) managed by an AFE Controller. 00022 \ref afe12_dma shows how to transfer several samples processed automatically without any intervention of 00023 the processor thanks to the DMA. \ref afe_temp_sensor example is aimed to demonstrate the temperature sensor feature inside the device. 00024 00025 - \ref twi_module "TWI" interconnects components on a unique two-wire bus, \ref twi_eeprom demonstrates how to use the TWI peripheral to access an external serial EEPROM. 00026 \ref twi_slave demonstrates the TWI peripheral in slave mode. It mimics the behavior of a serial memory, enabling the TWI master to read and write data in its internal SRAM.\n 00027 00028 - \ref tc_module "TC" includes four identical 16-bit Timer Counter channels, Each channel can be independently programmed to perform 00029 frequency measurement, event counting, interval measurement, pulse generation. \ref tc_capture_waveform indicate how to use TC in capture mode to measure the pulse width and count the total pulse number of an external signal injected on TIOA pin. 00030 00031 - \ref pwm_module "PWM" can generate output waveforms and configure it's characteristics. \ref pwm make two leds blink thanks to the PWM. 00032 - \ref wdt_module "WDT" can be used to prevent system lock-up if the software becomes trapped in a deadlock. \ref wdt "Watchdog with IRQ Interrupt Example" configures the watchdog and trigger a interrupt(or reset). 00033 00034 - The peripheral DMA operation will done by their own drivers \ref dmac_module "DMAC" transfers 00035 data from a source peripheral to a destination peripheral over one or more AMBA buses. 00036 00037 - \ref hsmci_module "HSMCI" supports the MultiMedia Card (MMC) Specification V4.3, the SD Memory Card Specification V2.0, the SDIO V2.0 specification and CE-ATA V1.1. The \ref hsmci_sdcard "Basic SD/MMC Card Example" gives details on how to implement SD drivers through HSMCI interface.\ref hsmci_multimedia_card offers a set of functions to perform MultiMedia Card tests, and \ref hsmci_sdio detects SDIO device (Test on SPB104 Wifi SIP) connected and perform R/W operation on it. 00038 00039 00040 - \ref spi_module "SPI" is a synchronous serial data link capable of full-duplex communication with external devices in master or slave mode. \ref spi "SPI Example" shows control of the SPI in loop back mode. 00041 00042 - Quad SPI Interface (QSPI) is a synchronous serial data link that provides communication with external devices in master, it can be used in SPI mode or in Serial Memory mode. \ref qspi_flash shows how to setup the QSPI in order to initialize, read and write a serial dataflash. 00043 00044 - \ref ssc_module "SSC" provides a synchronous communication link with external devices, \ref ssc_dma_audio describes the configuration required to connect the SSC to a device with an I2S-compatible serial bus. 00045 00046 - \ref usart_module "USART" provides one full duplex universal synchronous asynchronous serial link. The USART can works in SPI mode, \ref usart_spi would show the example of reading and writing as master or slave. 00047 The usart asynchronous mode using DMA is shown in the \ref usart "USART example with DMA", and hardware flow control implementation is illustrated in \ref usart_hw_handshaking "USART hardware handshaking Example". 00048 00049 - \ref gmac_module "GMAC" implements a 10/100 Mbps Ethernet MAC compatible with the IEEE 802.3 standard. \ref gmac enables the device to respond to a ping command sent by a host computer. 00050 00051 - \ref usb_lib "UDP" is compliant with the Universal Serial Bus (USB) V2.0 high-speed device specification. An example on how to implement USB Mass Storage class is detailed in \ref usb_massstorage "USB Device Mass Storage Example". The \ref usb_cdc_serial "USB CDC serial converter" shows how to 00052 implement USB Communication Device class based on the UDP peripheral. \ref usb_audio_speaker "USB Audio Speaker Example" details the implementation on USB Audio Device class. 00053 00054 \section libboard_sec Board Library 00055 \ref lib_board library includes a description of the board related device drivers plus some source code corresponding to components driver. 00056 The firmware library allows any device to be used in the user application without the need for in-depth study of each peripheral specifications. 00057 00058 - The \ref dmad_module "DMAD" provides DMA interface that can be invoked by the API. 00059 The driver use the routines to perform Direct Memory Access (DMA) operations. 00060 There are several peripherals (\ref spi_module "SPI" , \ref mcid_module "HSMCI", \ref ssc_module "SSC" , \ref AFEC_module "AFEC", \ref twi_module "TWI", \ref usart_module "USART") that can be handled to transfer between these peripherals and memory via DMA. 00061 The programming of a device's DMA controller is hardware specific, which is descripted is \ref dmac_module "DMAC". 00062 - \ref lcdd_module Implement driver functions for LCD control and image display. \ref lcdd_base implement LCD initialization, on/off and LCD back-light control. \ref lcdd_draw provide draw text, image and basic shapes (line, rectangle, circle), see detail in \ref lcd. 00063 - The \ref sdram_module "SDRAMC" provides the detail initialization sequence to configure SDRAM using The SDRAM Controller (SDRMC). 00064 00065 \section usb_sec USB Library 00066 \ref usb_library provides a library of highly re-usable usb driver which can be integrated in user applications. 00067 00068 \section sec_spi SPI Flash Library 00069 User could access on an external dataflash or serial flash component through SPI. 00070 \ref lib_spiflash combines \ref spi_module "SPI Interface" which provide low level SPI interface shows the usage of the common spi framework. 00071 A Direct Memory Access Controller (DMAC) can also be used to reduce processor overhead, \ref dmad_module performs spi transfer and receive with DMAC. 00072 \ref spi_serialflash are used in the example design to access Atmel SPI flash memory. 00073 00074 */ 00075