How does it work?
DRAM Click is based on the APS6404L-3SQR, a 64Mb PSRAM (Pseudo-SRAM) memory with an SPI/QPI interface from AP Memory. Organized as 8M x 8 bits each, this high speed, high performance memory has a page size of 1024 bytes. It also incorporates a seamless, self-managed refresh mechanism specially designed to maximize the performance of the memory read operation (it does not require the support of DRAM refresh from the system host). It is most suitable for low-power and low-cost portable applications.
The APS6404L-3SQR communicates with the MCU using a SPI serial interface that also supports Quad SPI and the two most common modes, SPI Mode 0 (QSPI Mode 1), with a maximum SPI frequency of 133MHz. The APS6404L-3SQR includes an on-chip voltage sensor that is used to start the self-initialization process. When the main power supply voltage reaches a stable level at or above the minimum supply voltage level, the device will require 150μs and user-issued RESET Operation to complete its self-initialization process. The device powers up in SPI mode by default configuration but can also be switched into QPI mode. The CS pin must be set to high logic level before initiating any operations.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used as a reference, for further development.
Specifications
Type
DRAM
Applications
Can be used for low-power and low-cost portable applications
On-board modules
APS6404L-3SQR – 64Mb PSRAM (Pseudo-SRAM) memory from AP Memory
Key Features
Low power consumption, SPI/QPI with SDR mode, high performance, organized as 8M x 8bits, page size of 1024 bytes, self-managed refresh mechanism, software reset, and more
Interface
QSPI,SPI
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on DRAM Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
DRAM Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | – | 3.3 | – | V |
Memory Size | – | – | 64 | Mb |
Operating Temperature Range | -25 | +25 | +85 | °C |
Software Support
We provide a library for the DRAM Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for DRAM Click driver.
Key functions
-
dram_memory_write
This function writes a desired number of data bytes starting from the selected memory address. -
dram_memory_read
This function reads a desired number of data bytes starting from the selected memory address. -
dram_memory_read_fast
This function reads a desired number of data bytes starting from the selected memory address performing fast read feature.
Example Description
This example demonstrates the use of DRAM Click board™ by writing specified data to the memory and reading it back.
void application_task ( void )
{
uint8_t data_buf[ 128 ] = { 0 };
log_printf ( &logger, " Memory address: 0x%.6LXrn", ( uint32_t ) STARTING_ADDRESS );
memcpy ( data_buf, DEMO_TEXT_MESSAGE_1, strlen ( DEMO_TEXT_MESSAGE_1 ) );
if ( DRAM_OK == dram_memory_write ( &dram, STARTING_ADDRESS, data_buf, sizeof ( data_buf ) ) )
{
log_printf ( &logger, " Write data: %srn", data_buf );
Delay_ms ( 100 );
}
memset ( data_buf, 0, sizeof ( data_buf ) );
if ( DRAM_OK == dram_memory_read ( &dram, STARTING_ADDRESS,
data_buf, sizeof ( data_buf ) ) )
{
log_printf ( &logger, " Read data: %srnn", data_buf );
Delay_ms ( 3000 );
}
log_printf ( &logger, " Memory address: 0x%.6LXrn", ( uint32_t ) STARTING_ADDRESS );
memcpy ( data_buf, DEMO_TEXT_MESSAGE_2, strlen ( DEMO_TEXT_MESSAGE_2 ) );
if ( DRAM_OK == dram_memory_write ( &dram, STARTING_ADDRESS, data_buf, sizeof ( data_buf ) ) )
{
log_printf ( &logger, " Write data: %srn", data_buf );
Delay_ms ( 100 );
}
memset ( data_buf, 0, sizeof ( data_buf ) );
if ( DRAM_OK == dram_memory_read_fast ( &dram, STARTING_ADDRESS, data_buf, sizeof ( data_buf ) ) )
{
log_printf ( &logger, " Fast read data : %srnn", data_buf );
Delay_ms ( 3000 );
}
}
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.DRAM
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.