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

·  регистр или байт/слово RAM для отслеживания передаваемых/получаемых битов (назовем его BitCnt)

В режиме получения данных, 8-bit T/C конфигурируется так, что спадающий фронт на линии P0.1 означает приход стартового бита и автоматически настраивает 8-bit T/C на работу. Для этого устанавливается в 1 первый бит регистра выбора отрицательного/положительного фронта, по которому будет генерироваться прерывание (P0IES), и устанавливается в 1 третий бит регистра разрешения прерываний IE1. Для 8-bit T/C и P0.1 используется один вектор прерывания. Установка в 1 бита ISCTL в регистре TCCTL назначает сигнал carry от 8-bit T/C источником прерывания. Затем 8-bit T/C работает так, что бит данных, поступающий на контакт P0.1, «запирается» в бите RXD регистра TCCTL – и генерируется прерывание, 8-bit T/C вырабатывает сигнал carry. Теперь программными средствами бит данных из RXD записывается в буфер RXTXData. Регистр TCPLD определяет точный временной интервал, по истечении которого T/C получает следующий бит данных. Следующий сигнал переполнения carry генерируется в середине следующего бита данных.

В режиме передачи данных, каждый бит данных из буфера RXTXData программными средствами помещается в бит TXD регистра TCCTL, который затем 8-bit T/C передает на контакт P0.2. Сигнал переполнения от 8-bit T/C автоматически «выталкивает» бит TXD на вывод P0.2. Затем 8-bit T/C автоматически перезапускается с помощью регистра TCPLD и продолжает пересылку данных.

            Скорость передачи данных измеряется в бодах и задается двумя регистрами: UBR1 и UBR0. В зависимости от заданной скорости передачи данных, высчитывается битовый интервал в 8-bit T/C. Битовый интервал это интервал, в течение которого 8-bit T/C «запирает» бит данных в RXD или «выталкивает» бит данных из TXD, и находится просто как отношение частоты тактирования T/C и скорости передачи данных в бодах. Вычисленный битовый интервал загружается в регистр TCPLD, который автоматически активирует 8-bit T/C.   

Приложение 1. Схема электрическая принципиальная

Приложение 2. Спецификация элементов схемы

Позиционное обозначение

Наименование/Номинал

Количество

Микросхемы

DD1

MSP430C325

1

DD2

ADM232A

1

Резонатор кварцевый

Q1

РК169 32768Гц

1

Конденсаторы

С1-С5

К10-17-H50-0,1мкФ

5

Разъемы

X1-X2

TB-01A

2

X3

DB9M

1

Приложение 3. Листинг программы freq_measure.asm

; *******************************************************

; * Frequency Measurement Program (without RS232 setup) *

; *******************************************************

;Определение символических констант

RAM_orig  .set 00200h    ; RAMStartaddress

ROM_orig  .set 0C000h     ; ROM Start

Stack     .set 00400h    ; RAM Stackpointer

I_vectors .set 0FFFFh    ; Interrupt vectors

Main      .equ ROM_orig  ; Program Start

;

; CPU Registers Used

sec_counter    .equ R5  ; Register used to count BT secs

N1_LSB         .equ R6  ; Low word of counter for P0.3

N1_MSB         .equ R7  ; High word of counter for P0.3

N2_LSB         .equ  R8  ; Low word of counter for P0.4

N2_MSB         .equ R9  ; High word of counter for P0.4  

;

; Выделение позиций битов для BASICTIMER

BTIE      .equ 080h       ; BT interrupt enable bit

IP0       .equ 001h      ; separate bit addresses

IP1       .equ 002h       ;    of BTCTL register

IP2       .equ 004h

DIV       .equ 020h

SSEL      .equ 080h

;

; Выделение позиций битов для Port0

P0IFG3    .equ 008h     ; interrupt flag for P0.3 line

P0IFG4    .equ 010h     ; interrupt flag for P0.4 line

;

; LPM3 bits in SR

LPM3      .equ 0D0h