Hmmm, aspetta aspetta, stiamo parlando di un ADC esterno, non ho letto bene il primo post. In questo caso, posto che l'ADC sia abbastanza veloce, possiamo fare due conti.
Supponiamo di fare una lettura dell'ADC (esterno) e una scrittura in RAM (esterna) con una ventina di istruzioni; allora a 20MHz risulta:
20 (istruzioni) x 50ns (clock) x 4 (cicli per istruzione) = 4 microsecondi
e si riesce quindi a campionare a 250kHz. Non è comunque un granché.
La soluzione sarebbe usare della logica esterna con un contatore per gli indirizzi della RAM e una piccola macchina a stati che si occupa di incrementare il contatore, leggere l'ADC, e scrivere in RAM; riempita la RAM si libera il bus e si legge la RAM direttamente dal PIC. Non è banale, ma non credo che sia impossibile; Lorenzo (che spesso scrive in questo gruppo) aveva a suo tempo pensato ad un progetto simile che usava una CPLD Xilinx per contenere la logica.