У меня была недавно история с этим несчастным RC-генератором: по RS232 был обмен а как слегка плата нагрелась - обмен прекратился. Как потом выяснилось - навсегда. Голову ломал пару дней, контроллер заложенный алгоритм отрабатывал но обмена небыло. И еще осицллографа небыло. Жуть. В общем пришел к выводу что OSСCAL слетел - написал небольшую программу где в МЦУ каждые 0,5сек инкрементировалось значение регистра OSСCAL от 0 до 255 и высылался пробный 5-байтовый пакет куда были заложены текущие значения OSCCAL. Пакет кодировался контрольной суммой CRC8. Результат я смотрел на компе - если на приеме пакет битый (контрольная сумма не проходила) значит не то, если окей -то коэффициент подходит. Из проведенного опыта выяснил, что подходил целый диапазон значение OSCCAL - что-то вроде 0х55..0х78, я брал среднее арифметическое и при инициализации присваивал регистру OSCCAL. Всё это, конечно, через заднее место но на тот момент выбора небыло. Потом всё же съездил за кварцем и конденсаторами. После этого случая в системы, где есть асинхронные интерфейсы - необходимо ставить кварц обязательно. RC- очень ненадежен в том плане что сильно плавает на температуре ато и вообще слетит. Подойдет, разве что, для какого-нибудь автономного датчика, который живет своей жизнью...
|