Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
QSPI Class Reference
[Drivers]
A QSPI Driver, used for communicating with QSPI slave devices. More...
#include <QSPI.h>
Inherits NonCopyable< QSPI >.
Public Member Functions | |
QSPI (PinName io0, PinName io1, PinName io2, PinName io3, PinName sclk, PinName ssel=NC, int mode=0) | |
Create a QSPI master connected to the specified pins. | |
qspi_status_t | configure_format (qspi_bus_width_t inst_width, qspi_bus_width_t address_width, qspi_address_size_t address_size, qspi_bus_width_t alt_width, qspi_alt_size_t alt_size, qspi_bus_width_t data_width, int dummy_cycles) |
Configure the data transmission format. | |
qspi_status_t | set_frequency (int hz=ONE_MHZ) |
Set the qspi bus clock frequency. | |
qspi_status_t | read (int address, char *rx_buffer, size_t *rx_length) |
Read from QSPI peripheral with the preset read_instruction and alt_value. | |
qspi_status_t | write (int address, const char *tx_buffer, size_t *tx_length) |
Write to QSPI peripheral using custom write instruction. | |
qspi_status_t | read (int instruction, int alt, int address, char *rx_buffer, size_t *rx_length) |
Read from QSPI peripheral using custom read instruction, alt values. | |
qspi_status_t | write (int instruction, int alt, int address, const char *tx_buffer, size_t *tx_length) |
Write to QSPI peripheral using custom write instruction, alt values. | |
qspi_status_t | command_transfer (int instruction, int address, const char *tx_buffer, size_t tx_length, const char *rx_buffer, size_t rx_length) |
Perform a transaction to write to an address(a control register) and get the status results. | |
Protected Member Functions | |
virtual void | lock (void) |
Acquire exclusive access to this SPI bus. | |
virtual void | unlock (void) |
Release exclusive access to this SPI bus. | |
Private Member Functions | |
MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &) | |
NonCopyable copy constructor. | |
MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator | |
NonCopyable copy assignment operator. |
Detailed Description
A QSPI Driver, used for communicating with QSPI slave devices.
The default format is set to Quad-SPI(1-1-1), and a clock frequency of 1MHz Most QSPI devices will also require Chip Select which is indicated by ssel.
- Note:
- Synchronization level: Thread safe
Example:
// Write 4 byte array to a QSPI slave, and read the response, note that each device will have its specific read/write/alt values defined #include "mbed.h" #define CMD_WRITE 0x02 #define CMD_READ 0x03 #define ADDRESS 0x1000 // hardware ssel (where applicable) QSPI qspi_device(QSPI_FLASH1_IO0, QSPI_FLASH1_IO1, QSPI_FLASH1_IO2, QSPI_FLASH1_IO3, QSPI_FLASH1_SCK, QSPI_FLASH1_CSN); // io0, io1, io2, io3, sclk, ssel int main() { char tx_buf[] = { 0x11, 0x22, 0x33, 0x44 }; char rx_buf[4]; int buf_len = sizeof(tx_buf); qspi_status_t result = qspi_device.write(CMD_WRITE, 0, ADDRESS, tx_buf, &buf_len); if (result != QSPI_STATUS_OK) { printf("Write failed"); } result = qspi_device.read(CMD_READ, 0, ADDRESS, rx_buf, &buf_len); if (result != QSPI_STATUS_OK) { printf("Read failed"); } }
Definition at line 73 of file QSPI.h.
Constructor & Destructor Documentation
QSPI | ( | PinName | io0, |
PinName | io1, | ||
PinName | io2, | ||
PinName | io3, | ||
PinName | sclk, | ||
PinName | ssel = NC , |
||
int | mode = 0 |
||
) |
Create a QSPI master connected to the specified pins.
io0-io3 is used to specify the Pins used for Quad SPI mode
- Parameters:
-
io0 1st IO pin used for sending/receiving data during data phase of a transaction io1 2nd IO pin used for sending/receiving data during data phase of a transaction io2 3rd IO pin used for sending/receiving data during data phase of a transaction io3 4th IO pin used for sending/receiving data during data phase of a transaction sclk QSPI Clock pin ssel QSPI chip select pin mode Mode specifies the SPI mode(Mode=0 uses CPOL=0, CPHA=0, Mode=1 uses CPOL=1, CPHA=1) default value = 0
Member Function Documentation
qspi_status_t command_transfer | ( | int | instruction, |
int | address, | ||
const char * | tx_buffer, | ||
size_t | tx_length, | ||
const char * | rx_buffer, | ||
size_t | rx_length | ||
) |
Perform a transaction to write to an address(a control register) and get the status results.
- Parameters:
-
instruction Instruction value to be used in instruction phase address Some instruction might require address. Use -1 if no address tx_buffer Buffer containing data to be sent to peripheral tx_length Pointer to a variable containing the length of data to be transmitted, and on return this variable will be updated with the actual number of bytes written rx_buffer Buffer for data to be read from the peripheral rx_length Pointer to a variable containing the length of rx_buffer, and on return this variable will be updated with the actual number of bytes read
- Returns:
- Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
qspi_status_t configure_format | ( | qspi_bus_width_t | inst_width, |
qspi_bus_width_t | address_width, | ||
qspi_address_size_t | address_size, | ||
qspi_bus_width_t | alt_width, | ||
qspi_alt_size_t | alt_size, | ||
qspi_bus_width_t | data_width, | ||
int | dummy_cycles | ||
) |
Configure the data transmission format.
- Parameters:
-
inst_width Bus width used by instruction phase(Valid values are QSPI_CFG_BUS_SINGLE, QSPI_CFG_BUS_DUAL, QSPI_CFG_BUS_QUAD) address_width Bus width used by address phase(Valid values are QSPI_CFG_BUS_SINGLE, QSPI_CFG_BUS_DUAL, QSPI_CFG_BUS_QUAD) address_size Size in bits used by address phase(Valid values are QSPI_CFG_ADDR_SIZE_8, QSPI_CFG_ADDR_SIZE_16, QSPI_CFG_ADDR_SIZE_24, QSPI_CFG_ADDR_SIZE_32) alt_width Bus width used by alt phase(Valid values are QSPI_CFG_BUS_SINGLE, QSPI_CFG_BUS_DUAL, QSPI_CFG_BUS_QUAD) alt_size Size in bits used by alt phase(Valid values are QSPI_CFG_ADDR_SIZE_8, QSPI_CFG_ADDR_SIZE_16, QSPI_CFG_ADDR_SIZE_24, QSPI_CFG_ADDR_SIZE_32) data_width Bus width used by data phase(Valid values are QSPI_CFG_BUS_SINGLE, QSPI_CFG_BUS_DUAL, QSPI_CFG_BUS_QUAD) dummy_cycles Number of dummy clock cycles to be used after alt phase
void lock | ( | void | ) | [protected, virtual] |
qspi_status_t read | ( | int | instruction, |
int | alt, | ||
int | address, | ||
char * | rx_buffer, | ||
size_t * | rx_length | ||
) |
Read from QSPI peripheral using custom read instruction, alt values.
- Parameters:
-
instruction Instruction value to be used in instruction phase alt Alt value to be used in Alternate-byte phase. Use -1 for ignoring Alternate-byte phase address Address to be accessed in QSPI peripheral rx_buffer Buffer for data to be read from the peripheral rx_length Pointer to a variable containing the length of rx_buffer, and on return this variable will be updated with the actual number of bytes read
- Returns:
- Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
qspi_status_t read | ( | int | address, |
char * | rx_buffer, | ||
size_t * | rx_length | ||
) |
Read from QSPI peripheral with the preset read_instruction and alt_value.
- Parameters:
-
address Address to be accessed in QSPI peripheral rx_buffer Buffer for data to be read from the peripheral rx_length Pointer to a variable containing the length of rx_buffer, and on return this variable will be updated with the actual number of bytes read
- Returns:
- Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
qspi_status_t set_frequency | ( | int | hz = ONE_MHZ ) |
void unlock | ( | void | ) | [protected, virtual] |
qspi_status_t write | ( | int | instruction, |
int | alt, | ||
int | address, | ||
const char * | tx_buffer, | ||
size_t * | tx_length | ||
) |
Write to QSPI peripheral using custom write instruction, alt values.
- Parameters:
-
instruction Instruction value to be used in instruction phase alt Alt value to be used in Alternate-byte phase. Use -1 for ignoring Alternate-byte phase address Address to be accessed in QSPI peripheral tx_buffer Buffer containing data to be sent to peripheral tx_length Pointer to a variable containing the length of data to be transmitted, and on return this variable will be updated with the actual number of bytes written
- Returns:
- Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
qspi_status_t write | ( | int | address, |
const char * | tx_buffer, | ||
size_t * | tx_length | ||
) |
Write to QSPI peripheral using custom write instruction.
- Parameters:
-
address Address to be accessed in QSPI peripheral tx_buffer Buffer containing data to be sent to peripheral tx_length Pointer to a variable containing the length of data to be transmitted, and on return this variable will be updated with the actual number of bytes written
- Returns:
- Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
Generated on Tue Aug 9 2022 00:37:38 by
