I am using the STM32f4 series. My goal to drive an external parallel loaded DAC using data from the internal SRAM. So, I need to update the data on a GPIO port and then toggle a pin connected to the load control signal on the DAC to load the new data for each update.
So, my code looks something like this:
GPIOE->BSRRH = 0x8000;
GPIOE->BSRRL = 0x8000;
GPIOE->ODR = DAC0[i];
Everything works and the update speed is roughly 19 MHz.
I am using a 12 bit DAC, so I tried combining the ODR and BSRRL commands by making bit 15 the load signal and always high regardless of the rest of the data to save one step. This increased the speed to 21 MHz.
I have the core clocked at 168 MHz and the GPIO at 100 MHz speed. Anyone know a way to do this faster?