EasyManua.ls Logo

Atmel SAM4 Series User Manual

Atmel SAM4 Series
26 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #23 background imageLoading...
Page #23 background image
AT07334: SAM4 TWI Master Mode Driver [APPLICATION NOTE]
42274A-MCU-05/2014
23
Note
The read/write functions will enable and disable the corresponding interrupt sources.
8.4 Usage Steps
8.4.1 twim_basic_usage_code
We can send data to the target slave device. Firstly, the data package should be prepared. In one data package,
several items should be set; the target slave address, the internal address (if needed), the length of the internal
address (if needed), the data buffer to be written, and the length of the data buffer.
twi_package_t packet_tx;
packet_tx.chip = TARGET_SLAVE_ADDRESS; // The address of the TWI Slave device.
packet_tx.addr[0] = (INTERNAL_ADDRESS >> 16) & 0xFF;
packet_tx.addr[1] = (INTERNAL_ADDRESS >> 8) & 0xFF;
packet_tx.addr_length = INTERNAL_ADDRESS_LENGTH;
packet_tx.buffer = (void *) data_buf_tx;
packet_tx.length = DATA_BUF_TX_LENGTH;
Note
The TWIM driver supports 1-3 bytes of internal address.
After the data package is ready, we can call twi_master_write() to send the package to the slave address. The
callback set before will be handled in ISR.
twi_master_write(TWIM1, &packet_tx);
Note
If the function returns STATUS_OK, the package has been sent to the target slave device
successfully. Otherwise, the transmission fails.
We can receive data from the target slave device. Firstly, the data package should be prepared. In one data
package, several items should be set; the target slave address, the internal address (if needed), the length of the
internal address (if needed), the data buffer used to store received data and the length of the data to be received.
twi_package_t packet_rx;
packet_rx.chip = TARGET_SLAVE_ADDRESS;
packet_rx.addr[0] = (INTERNAL_ADDRESS >> 16) & 0xFF;
packet_rx.addr[1] = (INTERNAL_ADDRESS >> 8) & 0xFF;
packet_rx.addr_length = INTERNAL_ADDRESS_LENGTH;
packet_rx.buffer = (void *) data_buf_rx;
packet_rx.length = DATA_BUF_RX_LENGTH;
Note
The TWIM driver supports 1-3 bytes of internal address.
Once the data package is ready, we can call twi_master_read() to receive a data package, in responde, from the
slave device. The callback set before will be handled in ISR.
twi_master_read(TWIM1, &packet_rx);
Note
If the function returns STATUS_OK, the package has been received from the target slave device and
the data has been stored in the data buffer successfully. Otherwise, the transmission failed.

Table of Contents

Question and Answer IconNeed help?

Do you have a question about the Atmel SAM4 Series and is the answer not in the manual?

Atmel SAM4 Series Specifications

General IconGeneral
ArchitectureARM Cortex-M4
DAC12-bit, up to 2 channels
Communication InterfacesUSB, USART, SPI, I2C, CAN
Operating Voltage1.62V to 3.6V
Package TypesBGA, QFN
Operating Temperature-40°C to +85°C

Summary

Prerequisites

Module Overview

TWI Bus Topology

Describes the physical layout and components of the TWI bus, including pull-up resistors.

Examples

API Overview

Variable and Type Definitions

Details the variable and type definitions used within the TWIM driver API, including transfer status and callback types.

Structure Definitions

Describes the structure definitions for configuring the TWIM module, such as twim_config and twim_package.

Macro Definitions

Lists and explains the macro definitions used for TWI driver compatibility and configuration settings.

Function Definitions

Details the available functions for controlling the TWIM module, including read, write, and configuration operations.

Enumeration Definitions

Explains the enumerated type definitions, such as twim_transfer_status, for driver status reporting.

Special Considerations

Extra Information

Acronyms

Provides a list of acronyms and their definitions used throughout the TWIM driver documentation.

TWIM Master Example

Purpose

States the objective of the TWIM Master Example, which is to demonstrate driver usage for EEPROM access.

Requirements

Lists the necessary hardware and software requirements for running the TWIM Master Example.

Connections for Board: SAM4L Xplained Pro

Details the specific pin connections required for the SAM4L Xplained Pro board to interface with an EEPROM.

Connections for Board: SAM4L-EK

Details the specific pin connections required for the SAM4L-EK board to interface with an EEPROM.

Description

Outlines the steps involved in the TWIM Master Example: writing data, reading data, and comparing results.

Usage

Provides instructions on how to build, download, and run the TWIM Master Example on the evaluation board.

Quick Start Guide

Use Cases

Presents different use cases for the SAM4 TWI Master Mode Driver, highlighting TWIM Basic Usage.

TWIM Basic Usage

Demonstrates the basic steps required to initialize the TWIM module for fundamental operation.

Setup Steps

Guides the user through the essential setup steps, including prerequisites and workflow for configuring the TWIM module.

Usage Steps

Details the practical steps for sending and receiving data using the TWIM driver, including code examples.