Fast ADC and DAC on Arduino required
Posted: Thu Oct 21, 2021 10:18 pm
Hi guys
Since my last post here (viewtopic.php?f=7&t=986) I’ve been working on a solution for the lack of memory issue that I need for program storage. Initially working with Daisy Seed (DS), I realized that the available 128 Kb of STM32H750IB processor wasn’t enough. Although I knew that the code can be stored in an external SD using QSPI, that isn’t an easy task to do. I mean, there are several issues to make things work, and there are no easy ways to do that. Even considering that Daisy Seed is a powerful board, I decided to migrate the project to DevEBOX (DB), a generic STM32H743VIT based board, with 1 Mb flash. But what in fact I didn’t know was that I was trying to escape from a pitfall just to fall into several others. To make things clear, I need a time interrupt function running at 44100 Hz and a fast ADC and DAC functions to be called inside it. This is perfectly achieved with Daisy Seed on Arduino IDE, using its own library. So, on DB I shouldn't expect anything different since their processors are almost the same. However, all the tools that worked with Daisy Seed didn’t work with DB, like callback and analog functions, essential to my sound processing project. Recently I found an example on net that shows a time interrupt function based on HardwareTimer, that worked as expected on DB. On the other side, the Arduino’s analogRead is ridiculously slow, taking 40% of processing time, and 3% of analogWrite. I wonder if someone may have some fast functions for ADC and DAC that suits to me (probably based on HAL).
Best regards.
Since my last post here (viewtopic.php?f=7&t=986) I’ve been working on a solution for the lack of memory issue that I need for program storage. Initially working with Daisy Seed (DS), I realized that the available 128 Kb of STM32H750IB processor wasn’t enough. Although I knew that the code can be stored in an external SD using QSPI, that isn’t an easy task to do. I mean, there are several issues to make things work, and there are no easy ways to do that. Even considering that Daisy Seed is a powerful board, I decided to migrate the project to DevEBOX (DB), a generic STM32H743VIT based board, with 1 Mb flash. But what in fact I didn’t know was that I was trying to escape from a pitfall just to fall into several others. To make things clear, I need a time interrupt function running at 44100 Hz and a fast ADC and DAC functions to be called inside it. This is perfectly achieved with Daisy Seed on Arduino IDE, using its own library. So, on DB I shouldn't expect anything different since their processors are almost the same. However, all the tools that worked with Daisy Seed didn’t work with DB, like callback and analog functions, essential to my sound processing project. Recently I found an example on net that shows a time interrupt function based on HardwareTimer, that worked as expected on DB. On the other side, the Arduino’s analogRead is ridiculously slow, taking 40% of processing time, and 3% of analogWrite. I wonder if someone may have some fast functions for ADC and DAC that suits to me (probably based on HAL).
Best regards.