Как уже говорили другие, точная частота и стабильность частоты являются причинами использования внешнего керамического резонатора или кристалла. Резонатор в несколько раз точнее внутреннего RC-генератора и достаточно хорош для связи UART. Кристалл гораздо точнее и необходим, если вы используете другие типы связи, такие как CAN, USB или Ethernet.
Другая причина внешнего кристалла - выбор частоты. Кристаллы имеют широкий диапазон частот, в то время как внутренний генератор обычно имеет одну частоту с возможностью выбора 4x PLL. Некоторые новые 24-битные PIC с ядрами имеют как множитель, так и делитель в цепи тактовых импульсов, поэтому вы можете выбирать широкий диапазон частот от частоты одного внутреннего генератора.
Конечно, существуют различные приложения, которые по своей природе требуют точной частоты или времени, отличных от связи. Время - это свойство электроники, которое мы можем измерить наиболее точно дешево, поэтому иногда проблема превращается в измерение времени или генерацию импульсов с точной синхронизацией.
Тогда есть приложения, которые требуют некоторой долгосрочной синхронизации с другими блоками. Осциллятор 1% будет отключен более чем на 14 минут в день, если его использовать в качестве основы для часов реального времени. Точное долгосрочное время также может потребоваться без необходимости знать в реальном времени. Например, предположим, что вы хотите, чтобы несколько устройств с низким энергопотреблением просыпались один раз в час, чтобы обмениваться данными в течение нескольких секунд, а затем возвращаться в режим сна. Кристалл на 50 частей на миллион (очень легко получить) будет отключен не более чем на 180 мс в час. Хотя 1% RC генератор может быть выключен на 36 секунд. Это добавило бы значительную своевременность и, следовательно, требования к питанию устройствам, которые должны были общаться только в течение нескольких секунд каждый час.