Alt_avalon_spi_command(), Software files, Software files -8 – Altera Embedded Peripherals IP User Manual
Page 114

alt_avalon_spi_command()
Prototype:
int alt_avalon_spi_command(alt_u32 base, alt_u32 slave,
alt_u32 write_length,
const alt_u8* wdata,
alt_u32 read_length,
alt_u8* read_data,
alt_u32 flags)
Thread-safe:
No.
Available from
ISR:
No.
Include:
Description:
This function performs a control sequence on the SPI bus. It supports only
SPI masters with data width less than or equal to 8 bits. A single call to this
function writes a data buffer of arbitrary length to the
mosi
port, and then
reads back an arbitrary amount of data from the
miso
port. The function
performs the following actions:
(1) Asserts the slave select output for the specified slave. The first slave select
output is 0.
(2) Transmits write_length bytes of data from wdata through the SPI
interface, discarding the incoming data on the
miso
port.
(3) Reads read_length bytes of data and stores the data into the buffer
pointed to by read_data. The
mosi
port is set to zero during the read transac‐
tion.
(4) De-asserts the slave select output, unless the flags field contains the value
ALT_AVALON_SPI_COMMAND_MERGE. If you want to transmit from
scattered buffers, call the function multiple times and specify the merge flag
on all the accesses except the last.
To access the SPI bus from more than one thread, you must use a semaphore
or mutex to ensure that only one thread is executing within this function at
any time.
Returns:
The number of bytes stored in the read_data buffer.
Software Files
The SPI core is accompanied by the following software files. These files provide a low-level interface to the
hardware.
•
altera_avalon_spi.h
—This file defines the core's register map, providing symbolic constants to access the
low-level hardware.
•
altera_avalon_spi.c
—This file implements low-level routines to access the hardware.
10-8
alt_avalon_spi_command()
UG-01085
2014.24.07
Altera Corporation
SPI Core