I'm developing a data logger that I'd like to be field upgradable from a USB flash drive. So I'm looking for an ARM Cortex (M0, M0+, M3, or ??) based microcontroller with USB Host or OTG capability that has at least 256K flash and 32K SRAM that can store data to a USB flash drive and also be able to upgrade the firmware from the flash drive.
Ideally it operates as a mass storage device: the user can plug the USB flash drive into their PC, download their recorded data files, and, if there's new firmware available, they can just drop a new binary on the flash drive and the microcontroller would detect the new file and automatically do the update. Preferably the microcontroller has the USB stack and boot support in ROM and does all this with minimal programming (i.e. I could detect and verify the update file and jump to a ROM USB firmware updater).
I've looked at maybe the NXP LPC11U68 but I think it is USB device only. Or some of their kinetis microcontrollers, but it's unclear if they work this way or require the user to download USB DFU drivers.
It doesn't need a lot of I/O. Just i2c, spi, and a few GPIO. Lower pin count is better for low power and board space. 50MHz or faster.
Thanks for any recommendations.