Разработка синтезатора сигналов в виде усеченной синусоиды с программно-изменяемой частотой, страница 2

4. Режим ПДП является самым скоростным способом обмена, который реализуется с помощью специальных аппаратных средств -  контроллеров ПДП. Контроллер ПДП К1810ВТ37 используется в составе устройства для реализации прямого доступа к памяти по четырем независимым каналам и тактируется от генератора КР1810ГФ84 импульсами PCLK, которые вдвое меньше частоты CLK.  Контроллер ПДП позволяет реализовать ввод  данных с ПЗУ на ЦАП.

5. Цифроаналоговый преобразователь (ЦАП)  К1108ПА1 осуществляет преобразование цифрового 8-разрядного параллельный кода в аналоговый сигнал. Управление работой микросхемы в  системе определяет таймер и КПДП. Таймер формирует необходимый сигнал, который  подается  на вход запроса  на ПДП (DREQ0), затем КПДП выдает сигнал с выхода  DACK1 на вход разрешение  записи интерфейса ЦАП.  Таким образом, на ЦАП поступают данные, которые необходимо преобразовать. Интерфейсом для ЦАП служит регистр 1533ИР33 необходимый для защёлкивания данных. 

Программирование микросхем

1. Программирование таймера.  Таймер  необходимо запрограммировать так, чтобы он работал во втором режиме – режиме импульсного генератора частоты.

При этом один из каналов таймера работает как делитель входной частоты    на N. Режим два является режимом с автозагрузкой, то есть    после окончания цикла счета счетчик таймера СЕ автоматически перезагружается и счет повторяется.

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

Проектируемым устройством используется нулевой канал таймера.

 

0

0

1

1

0

1

0

0

Канал 0

Чтение/запись младшего, затем старшего байта

Не используется

Режим 2

Двоичный счет

 

Примем частоту сигнала, который нужно получить на выходе, равной 50 Гц. Тогда константа пересчета для таймера будет равна .

2. Программирование  КПДП.

 Для реализации прямого доступа к памяти используется четыре независимых канала. Каждый канал имеет 6-разрядный регистр режима MR определяющий режим его работы. В регистр режима необходимо загрузить управляющее слово, которое задаст режим работы, тип передачи и адрес канала. В работе данной системы будет использован нулевой канал, который будет служить для передачи данных из ПЗУ на ЦАП.

Формат команды установки режима

0

0

0

1

1

0

0

0

Передача по требованию

Инкременти-рование

Режим автоинициализации

Цикл чтения памяти

Канал 0

 При записи команды установки  режима на разряды шины адреса  А3 – А0 должны  выставлены следующие значения:

А3

А2

А1

А0

1

0

1

1

Регистр команд CR определяет основные параметры работы канала,  в него также записывается управляющее слово.         

Формат команды управления

1

1

0

0

0

0

0

0

DACK

Высокий уровень

DREQ

Низкий уровень

нормальный цикл записи

Фиксиро-ванный приоритет

Нормаль-ная работа

Разреше-ние ПДП

Нет захвата канала

Нормаль-ная работа

При записи команды режима на разряды шины адреса А3 – А0 должны  выставлены следующие значения:

А3

А2

А1

А0

1

0

0

0

Регистр циклов CWR хранит число слов предназначенных для передачи, загружаемая в этот регистр константа должна быть на единицу больше числа слов. Один период синусоиды содержит 800 отсчетов, тогда в регистр циклов помещается число 801 (321h).   

При загрузке младшего/ старшего байта в регистр циклов канала 0 на разряды шины адреса А3 – А0 должны  выставлены следующие значения:

А3

А2

А1

А0

0

0

0

1

В регистр базового адреса BAR помещается начальный адрес памяти, отсчеты хранятся в ПЗУ в диапазоне 00h – 31Fh, с адреса 320h записана программа работы устройства.

При загрузке младшего/старшего байта в регистр BAR канала 0 на разряды шины адреса А3 – А0 должны  выставлены следующие значения:

А3

А2

А1

А0

0

0

0

0

Программа

Адрес

Команда

Комментарий

   320h:           MOV AX, 0000h                     

                       MOV DX, AX                   ; инициализация сегментных регистров

                       MOV AL, 34h      

                       MOV  DX, 43h

                       OUT DX, AL        ; загрузка управляющего слова в нулевой канал  

                                                     таймера                    

                       MOV AL, 64h     

                       OUT DX, 40h

                       OUT DX,AL    ;загрузка  младшего байта константы пересчета

                                                 таймера

                      MOV AL, 00h

                      OUT DX, AL      ; загрузка старшего байта константы пересчета

                                                 таймера

                       MOV AL, 18h

                      MOV DX, 01bh

                      OUT  DX, AL      ;загрузка  управляющего слова в регистр режима     

                                                  КПДП

                      MOV AL, C0h

                      MOV DX, 18h

                      OUT DX, AL       ; загрузка команды управления в регистр команд

                                                    КПДП

                      MOV AL, 21h

                      MOV DX, 0011h

                      OUT DX,AL          ;загрузка  младшего байта в режим циклов

                      MOV AL, 03h

                      OUT DX,AL         ;загрузка  старшего байта в режим циклов

                      MOV AL, 00h

                      MOV DX, 0000h

                      OUT DX,AL           ;загрузка  младшего байта адреса ПЗУ