
There are many problems when implement arbitrary waveform; first, the flash memory (ROM) inside of the AVR microcontroller is used to store the program and constant waveform patterns, it cannot be change; second, the internal data memory (RAM) is used dynamic address allocation method to store data, also, it's not enough space. (Screen capture above shown when storing sine wave pattern to the data memory, it can't reconstruct completely.)

One of the solution to fix this problem is used the external memory - SD/MMC card. It provides a large capacity to store the different waveform pattern files, but it can't run the waveform directly, so I need design a program to load the waveform file first, from SD/MMC card to the EEPROM memory that inside of AVR microcontroller.