1.3
The SAMV7 Software Package will guide you through the best programming usage. Hefty examples of applications can be found here.
Microcontroller features
- ARM Cortex-M running at up to 300MHz
- 16 Kbytes of Icache and 16 Kbytes of Dcache with Error Code Correction (ECC)
- 16 zones Memory Protection Unit (MPU)
- DSP Instructions, Thumb®-2 instruction set
- Embedded Trace Module (ETM) with instruction trace stream, including Trace Port Interface Unit (TPIU)
Get Started
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 Getting Started example provides a simple template to start a new project on SAMV7.
Chip Library
Chip Library library consists of a set of functions, data structures and macros covering all peripherals. The development of each driver is driven by a common API (application programming interface) which standardizes the driver structure, the functions and the names of parameters.
- The Power Management Controller (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. PMC Clock Switching Example gives an example of how to switch from a clock to another (PLLA, PLLUTMI, 32K SLCK/internal RC, MCK) or change divider. 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 RTC alarm or WKUP pin.
- AFE (Analog-Front-End Controller) is based on a 12-bit Analog-to-Digital Converter (ADC) managed by an AFE Controller. AFE12 DMA Example shows how to transfer several samples processed automatically without any intervention of the processor thanks to the DMA. AFE temp sensor Example example is aimed to demonstrate the temperature sensor feature inside the device.
- TWI interconnects components on a unique two-wire bus, TWI EEPROM Example demonstrates how to use the TWI peripheral to access an external serial EEPROM. 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.
- TC includes four identical 16-bit Timer Counter channels, Each channel can be independently programmed to perform frequency measurement, event counting, interval measurement, pulse generation. TC Capture Waveform Example 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.
- PWM can generate output waveforms and configure it's characteristics. PWM with DMA Example make two leds blink thanks to the PWM.
- WDT can be used to prevent system lock-up if the software becomes trapped in a deadlock. Watchdog with IRQ Interrupt Example configures the watchdog and trigger a interrupt(or reset).
- The peripheral DMA operation will done by their own drivers DMAC transfers data from a source peripheral to a destination peripheral over one or more AMBA buses.
- 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 Basic SD/MMC Card Example gives details on how to implement SD drivers through HSMCI interface.Basic MultiMediaCard Example offers a set of functions to perform MultiMedia Card tests, and Basic SDIO Card Example detects SDIO device (Test on SPB104 Wifi SIP) connected and perform R/W operation on it.
- SPI is a synchronous serial data link capable of full-duplex communication with external devices in master or slave mode. SPI Example shows control of the SPI in loop back mode.
- 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. QSPI with Serialflash Example shows how to setup the QSPI in order to initialize, read and write a serial dataflash.
- SSC provides a synchronous communication link with external devices, SSC with DMA Audio Example describes the configuration required to connect the SSC to a device with an I2S-compatible serial bus.
- GMAC implements a 10/100 Mbps Ethernet MAC compatible with the IEEE 802.3 standard. GMAC Example enables the device to respond to a ping command sent by a host computer.
- 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 USB Device Mass Storage Example. The USB CDC serial converter shows how to implement USB Communication Device class based on the UDP peripheral. USB Audio Speaker Example details the implementation on USB Audio Device class.
Board Library
Board Library library includes a description of the board related device drivers plus some source code corresponding to components driver. The firmware library allows any device to be used in the user application without the need for in-depth study of each peripheral specifications.
- The DMAD provides DMA interface that can be invoked by the API. The driver use the routines to perform Direct Memory Access (DMA) operations. There are several peripherals (SPI , HSMCI, SSC , AFEC, TWI, USART) that can be handled to transfer between these peripherals and memory via DMA. The programming of a device's DMA controller is hardware specific, which is descripted is DMAC.
- lcdd_module Implement driver functions for LCD control and image display. lcdd_base implement LCD initialization, on/off and LCD back-light control. lcdd_draw provide draw text, image and basic shapes (line, rectangle, circle), see detail in LCD example.
- The SDRAMC provides the detail initialization sequence to configure SDRAM using The SDRAM Controller (SDRMC).
USB Library
USB Library provides a library of highly re-usable usb driver which can be integrated in user applications.
SPI Flash Library
User could access on an external dataflash or serial flash component through SPI. lib_spiflash combines SPI Interface which provide low level SPI interface shows the usage of the common spi framework. A Direct Memory Access Controller (DMAC) can also be used to reduce processor overhead, Dmad_module performs spi transfer and receive with DMAC. spi_serialflash are used in the example design to access Atmel SPI flash memory.