They have improved their chips, and with sligtly later model units
(when they started getting fractional baud generators), they were
better, but their peripherals haven't improved much. Once one gets
used to the expceptional number of possibilities the peripherals from
Freescale have, then it simply makes no sense using NXP devices unless
one's volumes are such that one can amortize the MUCH larger
development costs of using the inferior NXP devices.
For instance if one has to communicate with multiple SPI devices on
one port, and one wish to do so from different interrupt routines, the
QSPI peripheral from Freescale controls the Chip Select line for each
SPI peripheral directly in hardware, hence one need not wait fro an
SPI transfer to complete so that one can deselect the CS line for one
peripheral before starting a transfer to another peripheral. The QSPI
handles a number of SPI transfers to different SPI devices totally in
hardware. This allows a MUCH slower Freescale device to handle the
same load as a MUCH faster similar device from NXP or ST.
Another example which does not directly reflect the NXP MCU's
capability is the following. If one has a half duplex serial channel
and one need to switch to listen mode after one has transmitted a
message. Then if the MCU supports a status bit that indicates when the
last bit has been transmitted on to the wire as it were, not just that
the transmit FIFO is empty, then it simplifies the code tremedously
compared to an MCU that only has a status bit that indicates when
the transmit FIFO is empty.
One can get around these sorts of things in software, but it adds
complexity, which adds development time and a much greater
chance for bugs.
Regards
Anton Erasmus