8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 12 13 14 15 16 17 18 ... 55

Необходимо добавить, что для генерации скорости обмена с помощью таймера Т2 в соответствии с вышеприведенной формулой в его управляющем регистре T2CON требуется установить биты RCLK (бит 5), TCLK (бит 4), определяющие соответственно работу приемника и передатчика; кроме того, нужно запустить таймер Т2 (ТР2 - бит 2). Таким образом, при T2CON = ООПОЮОЬ = = 34h скорость обмена по RS232 будет определяться Т2.

И еще небольшое добавление: бит SMOD не влияет на скорость обмена при использовании Т2.

Пример 5.3. Проинициализировать интерфейс RS232 для получения скоростей обмена 115200 и 9600 бод с использованием таймера Т2.

ассемблер, FKB = 11059200 Гц, Кобм= 115200 бод

Ch,Fkb= 11059200 Гц, Кобм = 9600 бод

mov SCON,#52h ; Режим 1.

mov RCAP2H, ; Загрузка двух байт

#0ffh

mov RCAP2L,# -3 ; в регистр RCAP2. mov TH2,#0ffh : Загрузка двух байт mov TL2,# -3 ; в таймер Т2. mov T2CON,#34h ; Запуск Т2 и генератора бод.

SCON=0x52 Режим 1. RCAP2H=0xff Загрузка двух байт

RCAP2L= -36 в регистр RCAP2. TH2=0xff Загрузка двух байт TL2= -36 в таймер Т2. T2CON=0x34 Запуск таймера и генератора бод.

Некоторые микроконтроллеры последних лет выпуска, такие, например, как DS87C520, DS87C530 производства фирмы Dallas Semiconductor, современные, например, MSC1210 производства фирмы Texas Instruments, оборудованы специальным устройством, которое может изменять циклическую частоту работы процессора и периферийных устройств микроконтроллера, в частности таймера Т2. Это устройство, а точнее - регистр CKCON (ClocKCONtrol), присутствующий как в микроконтроллерах DS87C5XX, так и MSC1210, может делить входную частоту, подаваемую на таймер, либо на 12, либо на 4. Так вот, у микроконтроллера MSC1210 скорость обмена, генерируемая Т2, не зависит от значения регистра CKCON, а у микроконтроллера DS87C5XX - зависит и может изменяться. Это надо иметь в виду.

Как уже упоминалось, в некоторых микроконтроллерах ADUC8XX производства фирмы Analog Devices, например ADUC816, ADUC824, ADUC832, ADUC834, ADUC836 и др., используется часовой кварцевый резонатор с частотой 32768 Гц. Эти микроконтроллеры оборудованы специальным умножителем частоты (PLL), который умножает входную частоту (32768 Гц) на 384 (максимум), и в результате эффективная тактовая частота, на которой работает процессор и все периферийные устройства (в частности, таймеры), равна 32768-384 = 12582912 Гц. Очевидно, что получить скорость обмена 115200 Гц при такой тактовой частоте 48


либо с использованием таймеров Т1 или Т2, либо без них нельзя. Если для микроконтроллеров ADUC834 и ADUC836, оборудованных таймером ТЗ, специально предназначенным для генерации скорости обмена по RS232, этот вопрос снят (см. с. 50), то для того, чтобы микроконтроллеры ADUC816, ADUC824 и ADUC832 могли работать со скоростью обмена 115200 Гц, можно рекомендовать следующий прием.

Как известно, ближайшие числовые значения скоростей обмена по RS232 к числовому значению частоты 32768 Гц составляют 38400 и 28800 бод. Если на вход микроконтроллера XTAL1 (32 вывод корпуса MQFP-52) подать частоту 38400 либо 28800 Гц, то можно получить следующее. При подаче частоты 38400 Гц эту частоту можно программно умножить на 384/2 = 192, в результате эффективная тактовая частота работы процессора составит: 3 8 400-192 = 7372 800 Гц. При подаче частоты 28800 Гц, программно умножив ее на 384, можно получить: 28800-384 = 11059200 Гц. Как следует из приводимых примеров, если эффективная тактовая частота работы микроконтроллера равна 7372800 Гц, то получить скорость обмена 115200 бод можно либо вообще без использования таймера (пример 5.1), либо с использованием таймера Т2 (пример 5.3). При тактовой частоте 11059200 Гц получить скорость обмена 115200 бод можно, также воспользовавшись таймером Т2 (пример 5.3).

Как получить частоты 28800 и 38400 Гц? Кварцевые резонаторы на такие частоты очень большая редкость, они, как правило, весьма громоздки, дорого стоят и имеют небольшую стабильность. Однако, если взять достаточно распространенные кварцевые резонаторы с частотами 1228800, 2457600 и 1843200 Гц, сделать простейший генератор и делитель частоты, то можно добиться требуемого: 1228800/32 = 38400 Гц, 2457600/64 = 3 8 400 Гц и 1843200/64 = 28800 Гц. (Схемы генератора и делителя на 32 или 64 приведены в гл. 9).

Нельзя не упомянуть о двух небольших проблемах, возникающих при использовании частот, отличающихся от 32768 Гц, в микроконтроллерах ADUC8XX.

Первая касается работы цифрового низкочастотного фильтра, установленного в тракт сигма-дельта АЦП. В описании микроконтроллера указано, что частота среза фильтра устанавливается автоматически в зависимости от частоты, с которой производится оцифровка аналогового сигнала (точнее, от частоты Найквиста-Котельникова). Автомат, устанавливающий частоту среза фильтра, в качестве временной базы использует как раз частоту 32768 Гц (плюс содержимое PLL). При изменении частоты 32768 Гц в ту или иную сторону частота среза фильтра будет несколько отличаться от стандартного значения. В связи с этим, как утверждают произ-4-449


водители микроконтроллера, возможна некая несогласованность в работе фильтра с АЦП. К счастью, особенной проблемы здесь нет по двум причинам. Во-первых, частоты 38400 Гц и 28800 Гц отличаются от частоты 32768 Гц не более чем на 17% и 14% соответственно, а во-вторых, цифровой фильтр (sinx/x)3, который установлен в этих микроконтроллерах, не идеален, и имеет достаточно пологую (если попытаться ее осреднить) частотную характеристику с множеством полюсов (с затуханием до 120 дБ и более). В связи с этим изменение частоты 32768 Гц на 14% или 17%, на взгляд автора, вряд ли повлияет на результаты работы АЦП.

Вторая проблема касается интервального таймера, входящего в микроконтроллер. Этот интервальный таймер, так же, как и вышеупомянутый цифровой фильтр, использует временную базу, связанную с частотой 32768 Гц. В частности, минимальный интервал времени, с которым работает таймер, равен 1/128 с. Изменение частоты, подаваемой в микроконтроллер, на 14% здесь уже сильно повлияет на точность интервального таймера. Однако, поскольку программисту точно известна частота, с которой работает микроконтроллер (а именно 38400 Гц либо 28800 Гц), на взгляд автора, не составляет большого труда сделать программную коррекцию интервального таймера.

Инициализация RS232 с использованием таймера ТЗ. В микроконтроллерах ADUC834, ADUC836 введен дополнительный четвертый таймер ТЗ, который совместно с делителем, также входящим в микроконтроллер, позволяет устанавливать скорость обмена по RS232 вплоть до 230400 бод (в том числе и 115200 бод) с ошибкой, не превышающей 0,2%.

Для установки генератора скорости обмена с помощью таймера ТЗ используются два регистра: T3CON и T3FD. Значения бит регистра T3CON приведены в табл. 5.3.

Значение DIV рассчитывается по следующей формуле и округляется до ближайшего минимального целого:

nrv log[FTa/(32Ko6M)] . log (2)

основание логарифма может быть любым.

Значение T3FD рассчитывается по следующей формуле и округляется до ближайшего целого:

T3FD = I*™ .

*- обм

После того как значения DIV и T3FD подсчитаны, можно определить скорость обмена:

2D1V(T3FD + 64)



0 ... 12 13 14 15 16 17 18 ... 55