Dokładnie takie rozwiązanie jak napisał wyżej już tmf, czyli np dwa bufory po 512 bajtów najspokojniej w świecie wystarczy do takiego celu o jaki pyta autor wątku. Powiem więcej, wykonywanie pomiarów co 2 ms to STRASZNIE POWOLNY proces i wystarczyłyby nawet dwa bufory po 256 a nawet po 128 jak nie 64 bajty żeby dokonywać zapisów na kartę SD i to jeszcze z użyciem FAT32. Poza tym do takiego celu wystarczyłaby zwykła nawet stara i powolna karta pamięci.
A jeśli użyć szybkich kart pamięci np "Class 10", to można zapisywać na kartę bez przeszkód nawet dane próbkowane z częstotliwością 6kHz i nawet większą (nawet do 9kHz - 12kHz) bez żadnych strat. Poza tym im wyższa częstotliwość można zwiększyć nieco ilość tych buforów np 3x512 albo 4x512 i zrobić do nich dostęp cykliczny.
Na dowód tego proszę sobie zobaczyć
LINK, gdzie przy użyciu zwykłego procka ATmega644P oraz FatSF można zrobić nagrywanie na kartę pamięci dźwięków z próbkowaniem 9 kHz. (a nawet więcej). Cóż więc znaczy zrobienie tego z próbkowaniem 500Hz czyli 2ms ????
dwa bufory i po sprawie - żaden, nawet najmniejszy kłopot i to z użyciem FAT32.
Reasumując, w przerwaniu co 2ms odczytujesz próbki z ADC i zapisujesz je kolejno do pamięci RAM, podzielonej na 2 bufory. Gdy skończy się zapis do pierwszego bufora, w pętli głównej rozpoczynasz zapis na kartę pamięci tego pierwszego bufora, a w tym czasie przerwanie napełnia próbkami drugi bufor. Gdy napełni się drugi bufor próbkami, to cykl się powtarza, w pętli głównej rozpoczynasz zapis na kartę tego bufora, a w przerwaniu już rozpoczynasz zapis nowych próbek do pierwszego bufora. To bardzo ładnie działa.