I want to use a Kinetis microcontroller where I'll implement a USB MSD bootloader as descripted in th AN4368.
I prefer not to use a "too big" and "too expensive" micro for that, so the question is: what is the minimum Kinetis micro that supports a USB MSD bootloader? The application shouldn't take too much Flash space.
After reading AN4368, I understand USB MSD bootloader takes about 64KB. So I have to choose a microcontroller with a Flash memory greater than 64KB... is it correct?
I'm also reading about many problems implementing USB MSD bootloader on K20... should I avoid it and choose K60 as in the application note?
Your processor needs enough Flash for the boot loader PLUS the largest application that you will be loading (considering any additional flash space required by the application for parameters etc., if it uses them). The smaller the loader the smaller the chip that could possibly be used.
It is to be noted that a USB MSD host loader will always be larger than a USB-MSD device loader. This is because the MSD host requires FAT and an MSD device doesn't (it just needs to emulate a small part of it). In situations where the smallest possible device is to be used the MSD device mode should be seriously considered.
As an example, a USB-MSD device loader requires about 13k of Flash and so will allow about 50k applications to be run on top of it on a small Kinetis with 64k Flash. In cost sensitive applications this may allow the next size memory footprint to be avoided.
There are a variety of USB-MSD device loaders here µTasker Test Software and Demos
These are 13k in size when only the USB-MSD device loader is required. With USB-MSD, UART and SD card at the same time it requires around 25k of space; SD card loading also requires FAT. At the momet there is no USB-MSD host mode available but experiments with USB host and FAT suggest that it will be possible in about 21k of Flash and a loader including USB-MSD host, USB-MSD device, UART and SD card all at the same time should be possible with around 28k of Flash space, due to the fact that large amounts of the code modules are shared.
P.S. There is essentially no difference between any parts of USB-MSD loading code for either K20 or K60 devices (or any other parts, including KL family). The only problems that could arise would be due to software design not correctly handling a very few low level HW details.
I am doing USB MSDboot loader using mqx and I am referring AN4368 app note ,and also software but there are problem comes USBopen read write all function related to USB work properly but problem come at the time of flash erase and flash write plz can any one support me
Thank you Mark for your suggestion, but I need a USB MSD host bootloader. As you can understand, with a host-type bootloader the firmware upgrade can be perfomed without a PC, you need only a USB pendrive. This is crucial in my application.