Прибор для измерения частоты на базе микроконтроллера MSP430, страница 2

     В качестве источника питания для МК выберем батарейку 3V. Питание подается на вывод DVcc МК. При напряжении питания 3V максимально достижимая частота процессора 2.2 MHz, что вполне достаточно для нашего прибора. После подачи электропитания (сигнал PUC – Power-Up Clear) в регистре SCFQCTL, содержащем множитель N частоты fACLK=32768 Hz, вырабатываемой базовым генератором, по умолчанию выставляется значение 31. Таким образом, частота тактирования ядра fMCLK, определяемая по формуле fMCLK = (N+1)*fACLK, равна 1048576 Гц. Значит, при питании 3V и частоте 1 MHz в активном режиме прибор будет потреблять 300 мкА. В режиме малого энергопотребления LPM3 прибор потребляет 1.6 мкА и переходит из режима LMP3 в активный режим (AM) менее чем за 6 мкс. Далее будет показано, что в AM прибор будет находиться только 3.91% времени, а значит батарейка прослужит длительное время.

     Измеряемые сигналы подаются на линии P0.3 и P0.4 порта в/в с помощью 2-х разъемов TB-01A.

 Для пересылки данных между МК и ПК используется интерфейс RS232. Для реализации функции UART необходимы 8-bit T/C и выводы порта P0.1 и P0.2. Во всех МК семейства MSP430x3xx вывод P0.1 можно подавать на блок RXD_FF(receive data flip-flop), а вывод P0.2 на блок TXD_FF(transmit data flip-flop). Биты, поступившие в блоки RXD_FF и TXD_FF, можно считать из регистра управления 8-bit T/C (TCCTL) c битов RXD и TXD соответственно. 8-bit T/C можно настроить так, что по приходу сигнала Carry от T/C получаемый бит данных автоматически «запирается» в бите RXD, а передаваемый бит данных «выталкивается» из бита TXD.

Вывод МК P0.1/RxD соединяется с выводом R1out трансивера, а вывод МК P0.2/TxD соединяется с выводом T1in трансивера. ПК подключается к трансиверу с помощью разъема DB9M к выводам R1in и T1out.

Биполярные сигналы получаются с помощью внешних емкостей, присоединяемых к трансиверу. Емкости С1 и С3 преобразуют +5V в +10V, а емкости С2 и С4 преобразуют +5V в -10V.         

IV. Анализ погрешностей и выбор метода измерения частоты

     При измерении частоты возможны три источника погрешностей:

1.  Нестабильность частоты кварцевого резонатора

2.  Задержки, связанные с обработчиками прерываний

3.  Методическая погрешность

Погрешность от первого источника, кварцевого резонатора, очень незначительна. Очевидно, что она будет зависеть от стабильности частоты выбранного кварцевого резонатора. Выберем для нашего прибора кварцевый резонатор РК169 32768Гц, имеющий стабильность частоты 75ppm (parts per million). 75 ppm означает, что на каждый 1 миллион Герц частота может отклоняться на +/- 75 Hz. Для нашего резонатора получаем:

(75Hz  / 1MHz)  *  (32768Hz / 1MHz  )   = 2.46 * 10^(-6)     

Получаем, что на каждые 32768 Гц частота может отклоняться на +/- 2.46 * 10^(-6) Гц, т.е. относительная погрешность измерений, вносимая кварцевым резонатором, будет равна:

Error = (2.46 * 10^(-6)  /  32768  ) * 100%  =  7.5 * 10^(-9) %

     Второй источник погрешностей – задержка выполнения  процедуры обработки прерываний ядром МК. Для проведения измерений в реальном режиме времени следует придерживаться следующих рекомендаций:

  • Самой первой инструкцией, следующей за обработкой чувствительных ко времени команд, должна быть инструкция EINT. Это обеспечивает вложенную обработку прерываний – благодаря стековой архитектуре МК семейства MSP430
  • Тело обработчика прерываний должно быть как можно меньше. В теле обработчика должны выполняться только абсолютно необходимые команды (инкрементирование счетчиков, обновление статусных байтов и т.д.). Команды, требующие больших временных затрат, должны выноситься в основную программу.

Не соблюдение этих простых правил может привести к задержкам обработки данных и, как следствие, потери информации.

Затраты обработчика прерываний можно разделить на 2 основные части:

·  Дополнительная – состоит из суммы тактов, необходимых CPU для обработки прерывания (сохранение программного счетчика PC и статусного регистра SR, определение источника прерывания, восстановление PC и SR).