I am working on storing data from Portenta H7's ADC through a high sample rate (>100kSa/sec) per channel. I am using 2 ADC channel for my work. Through the forum, I learned that the serial. print command reduces the sampling rate. Therefore one of the suggestions was to use the onboard available Portenta H7's 8MB SDRAM to store the sample values and then retrieving them after the sampling period. My sampling time is between 3-5 seconds so it is well within the storage limit of this SDRAM.

However, since I have no previous experience with microcontrollers, I am struggling to find a starting point for accessing this SDRAM for saving my data? Any suggestions from your side are most welcomed.

Please do recommend If you have any other ideas about managing the data for faster sampling.

You can find the Portenta H7 information here. https://store.arduino.cc/usa/portenta-h7. Portenta has STM32H747 dual-core processor.

Thank you all.

  • 1
    1. The Portenta has 8 MB (megabytes, not gigabytes) of SDRAM. 2. You shouldn't have to do anything special for accessing the RAM. Just create a couple of arrays (one per channel) large enough to hold your data burst. The compiler should allocate RAM space for them. Feb 7 '21 at 8:42
#include <SDRAM.h>

SDRAMClass ram;
uint8_t *b;
void setup() {
  b = (uint8_t *)ram.malloc(320 * 240 * sizeof(uint8_t));

The way to do it is to use the SDRAM library for the portenta. Above you see an example for a uint8 array.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.