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

0 ... 107 108 109 110 111 112 113 ... 195

7.4. Предделители таймеров/счетчиков

Блоки предцелителей предназначены для формирования тактовых сигналов таймеров/счетчиков clkT0, clkTb clkT2, clkT3. Упрощенная структурная схема блока предделителя таймеров/счетчиков, не имеющих асинхронного режима работы, приведена на Рис. 7.5, а. Структурная схема блока предделителя таймеров/счетчиков, имеющих возможность работы в асинхронном режиме, приведена на Рис. 7.5, б.

Как показано на рисунке, в состав каждого блока входят собственно 10-битный предделитель, выходной мультиплексор (селектор тактового сигнала), а для таймеров, имеющих возможность работы в асинхронном режиме, — еще и входной мультиплексор исходного тактового сигнала. По последней схеме выполнен предделитель таймера/счетчика ТО моделей ATmega64x/128x и таймера/счетчика Т2 остальных моделей.

Следует иметь в виду, что все таймеры/счетчики каждой модели семейства, не имеющие асинхронного режима работы, используют один и тот же 10-битный предделитель. При этом управление тактовым сигналом каждого таймера/счетчика осуществляется индивидуально и будет описано при их рассмотрении.

clk/o

10-битный предделитель

Сброс

PSRx

о

Кроме ATmega 162х

о

Тактовый сигнал таймера/счетчика Тл

л = 0,1 3 1,2,3 0,1

для ATmega162x(PSRx=PSR310),

для ATmega64x и ATmega 128х (PSRx = PSR321),

для ATmega8515х/8535х ATmega8x/16х/32х

и ATmega 165х/325х/3250х/645х/6450х (PSRx= PSR10),

для АТтеда48х/88х/1б8х и ATmega 164х/324х/644х (PSRx= PSRSYNC), для ATmega640x/1280x/1281х/2560х/2561х (PSRx = PSRSYNC)

0,1

0,1,3,4,5


CSnO CSn1 CSn2

Vc\kJn

Тактовый сигнал таймера/счетчика Tn

л= 1 — для ATmega64x и ATmega128x(PSRx = PSR0); 2 — для ATmega8535x, ATmega8x/16x/32x, ATmega 162х

и ATmega 165х/325х/3250х/645х/6450х (PSRx = PSR2); 2 —дляАТтеда48х/88х/1б8х, ATmega164x/324x/644x

и ATmega640x/1280х/1281х/2560х/2561 х (PSRx = PSRASY).

б)

Рис. 7.5. Блок предцелителя таймеров/счетчиков: а — без асинхронного режима; б — с асинхронным режимом

Следует понимать, что предделители работают независимо от таймеров/счетчиков. Следствием этого является, в частности, неопределенный промежуток времени (1...7V+1 тактов исходного сигнала, где N — коэффициент деления предделителя) между разрешением таймера/счетчика и первым его отсчетом при работе совместно с предделителем. Чтобы уйти от этой неопределенности, можно воспользоваться средствами, описанными в следующем подразделе.

7.4.1. Управление предделителями

Помимо управления тактовым сигналом таймера/счетчика, все микроконтроллеры семейства позволяют осуществлять сброс предделите-лей, а отдельные модели позволяют также осуществлять их остановку. Для этого используется либо регистр специальных функций SFIOR, либо (в новых моделях) регистр управления таймеров/счетчиков GTCCR, расположенный по адресу $23 ($43). Формат этого регистра для различных моделей микроконтроллеров приведен на Рис. 7.6 (биты, не используемые для управления предделителями таймеров/счетчиков, указаны на рисунке как X).


X

X

X

X

X

X

X

PSR10

Чтение (Я)/Запись (W) Начальное значение

R/W 0

7

6

5

4

3

2

1

0

TSM

X

x

X

1

X

PSR2

PSR310

Чтение (Я)/Запись (W) Начальное значение

R/W 0

R/W 0

R/W 0

7

6

5

4

3

2

1

0

TSM

X

X

X

X

x

PSR0

PSR321

Чтение (R)/3anncb(W) Начальное значение

R/W

0

R/W 0

R/W

0

7

6

5

4

3

2

1

0

X

I

X

X

X

X

PSR2

PSR10

Чтение (Я)/Запись (W) Начальное значение

в)

R/W 0

R/W 0

7

6

5

4

3

2

1

0

TSM

PSR2

PSR10

Чтение (R)/3anncb(W) Начальное значение

R/W 0

R

0

R

0

R 0

R 0

R 0

R/W

0

R/W

0

7

6

5

4

3

2

1

0

TSM

PSRASY

PSRSYNC

Чтение (R)/3anncb(W) Начальное значение

R/W 0

R 0

R

0

R

0

R 0

R 0

R/W 0

R/W 0

ATmega8515x

ATmega 162х

ATmega64x ATmega 128x

ATmega8535x ATmega8x/16x/32x

ATmega 165x ATmega325x/3250x

ATmega48x/88x/168x ATmega 164x/324x/644x ATmega640x/1280x/1281x ATmega2560x/2561x

6)

Puc. 7.6. Управление предделителями таймеров/счетчиков — регистры SFIOR (а)

и GTCCR (б)

Для сброса предделителей таймеров/счетчиков используются биты PSRjc (PSRSYNC/PSRASY) регистра. При записи в эти биты лог. 1 предделители соответствующих таймеров/счетчиков переводятся в исходное состояние. Биты сбрасываются в 0 аппаратно после выполнения операции сброса. Напоминаю, что один предделитель, как правило, используется несколькими таймерами/счетчиками, и соответственно сброс предделителя повлияет на все таймеры/счетчики, которые его используют.

Остановка всех предделителей микроконтроллера осуществляется записью лог. 1 в бит TSM регистра SFIOR или GTCCR. Последующий запуск предделителей осуществляется записью в бит TSM лог. 0. Указанная функция может использоваться, в частности, для синхронизации тай-



0 ... 107 108 109 110 111 112 113 ... 195