Using FAT with an Arduino/ Atmega328

I have an Arduino Pro 328 - 5V/16MHz
sku: DEV-09219 (bought it from Sparkfun).
Can the atmega328 be used for full featured FAT16 ?

I also have an atmega128 board,
can that be used as a full featured FAT16 or FAT32 ?

I'm currently using an arduino atmeag168 with a limited version of FAT called uFAT, but uFAT has a confusing way of storing data on an SD card.

PO'T

Fat 16 seems to be too big for the 328 also, (2k isnt much to work with when looking at Fat) ufat is the most suggested solution I have seen on the forum

Adafruit's WaveShield uses FAT16-formatted SD cards. The WaveShield works with both ATmega168 and 328.

I have been very content with the "Roland" library for 16-bit FAT on ATmega328. This library can also be configured for 32-bit FAT (greater then 2GB). I can do open / close / read / write / append / seek / create / delete. This library will maintain a proper FAT and grow files on demand. It will also time stamp my files through a callback if I desire. There is also support for file search/enumeration and sub directories to any level.

I've also tested the libraries from Seedstudio, Libellium and uFat2., but found issues (too restricted, buggy, poorly designed) with all.

http://www.roland-riegel.de/sd-reader/index.html