
- •Модуль 3: Цифровой ввод/вывод С28x
- •Карта памяти TMS320F2812
- •C28x Структура регистров GPIO
- •C28x Назначение выводов
- •C28x структура
- •C28x Регистры мультиплексора /
- •C28x Регистры данных GPIO
- •C28x Генератор / PLL Модуль
- •Управляющий регистр
- •Сторожевой таймер
- •Управляющий регистр
- •Результат записи WDKEY
- •Системный регистр статуса и управления
- •Режимы пониженного
- •Регистр управления режимом пониженного энергопотребления 0
- •Регистр управления режимом
- •Выход из режима пониженного энергопотребления
- •Лабораторная работа 2:
- •Лабораторная работа 2:
- •Регистры определены в файле
- •Регистры определены в файле
- •Лабораторная работа 2A
- •Лабораторная работа 3: Вывод
- •Лабораторная работа 3A
- •Лабораторная работа 3A
- •Лабораторная работа 3B

Лабораторная работа 2:
Вывод через цифровые порты
Цель : ВоспользоватьсяB0...8-юB7индикаторами (LED), присоединенными к выводам GPIO B0-B7, для демонстрации поочередного зажигания светодиодов слева направо и обратно
Файлы проекта:
1. Си – исходный файл: “Lab2.c”
2. Файл определения регистров:
“DSP281x_GlobalVariableDefs.c
3. Командный файл компоновки: EzDSP_RAM_lnk.cmd
4. Библиотека реального времени
“rts2800Воспользуйтесьml.lib программным циклом для организации пауз
Лаб. работа Решение 3 - 22

Лабораторная работа 2:
Вывод через цифровые порты
Регистры - лабораторнойB0...B7работы 2:
• Инициализация DSP: |
: |
WDCR |
|
• Управление сторожевым таймером (WD) |
|
||
• Тактовый регистр PLL |
: |
PLLCR |
|
• Делитель для высокой тактовой частоты : |
HISPCP |
|
|
• Делитель для низкой тактовой частоты |
: |
LOSPCP |
|
• Регистр управления тактами периферии |
: |
PCLKCR |
|
• Системный регистр управления и статуса: |
SCSR |
|
|
• Доступ к индикаторам (LED) (B0...B7): |
: |
GPB |
|
• GPB Регистр мультиплексора |
: |
||
• GPB Регистр направления |
GPBDIR |
||
• GPB Регистр конфигурации |
: |
GPBQUAL |
|
• GPB Регистр данных |
: |
GPBDAT |
3 - 23

Регистры определены в файле
‘DSP281x_GlobalVariableDefs.c’
•Данный файл определяет все глобальные переменные периферии.
•Файл использует предопределенные структуры (смотри ..\include ) и объекты, например “GpioDataRegs” :
#pragma
DATA_SECTION(GpioDataRegs,"GpioDataRegsFile"); volatile struct GPIO_DATA_REGS GpioDataRegs;
или “GpioMuxRegsFile” :
#pragma
DATA_SECTION(GpioMuxRegs,"GpioMuxRegsFile"); volatile struct GPIO_MUX_REGS GpioMuxRegs;
•Структуры объединяют все регистры одной
•группы, например : GpioDataRegs.GPBDAT |
|
Для каждого регистра существует как общий |
|
доступ к 16 битам (“all”) так и к одному биту |
3 - 24 |
(“bit”) , например : |

Регистры определены в файле
‘DSP281x_GlobalVariableDefs.c’
•Имя DATA_SECTION ( ”GpioDataRegsFile” ) используется компоновщиком, в соответствии с командным файлом компоновки, для связи секции переменных ( ”GpioDataRegs”) с физическим адресом в памяти.
•Основной заголовочный файл ‘DSP281x_Device.h’ включает все предопределенные структуры для всей периферии ЦП.
•Все, что необходимо выполнить:
(1)сделать ‘DSP281x_GlobalVariableDefs.c’ частью проекта
(2)включить ‘DSP281x_Device.h’ в основной Си 3 - 25

Лабораторная работа 2A
Измените исходный Си-код:
•включите два LED индикатора ( B7 и B0 )
•пусть индикаторы зажигаются попарно,
двигаясь к центру ( B6 и B1, B5 и B2, … )
•продолжайте перемещение, до тех
пор пока не загорятся центральные
• повторите этоB7в обратноми B0 = включенопорядке
B6 и B1 = включено
B5 и B2 = включено
B4 и B3 = включено
3 - 26

Лабораторная работа 3: Вывод
через цифровые порты GPIO Цель: B15..B8
•Подключить 8 DIP-переключателей к порту GPIO B (B15...B8)
•Подключить 8 LED индикаторов к порту GPIO B (B7...B0)
•Прочитать состояние переключателей и отобразить их статус на LED индикаторах
Файлы проекта: |
|
1. Исходный Си-файл: |
|
“Lab3.c” |
|
2. Файл опред. Регистров: |
|
“DSP28_GlobalVariableDefs.c” |
|
3. Командный файл компоновки: |
Решение 3 - 27 |
“EzDSP_RAM_lnk.cmd” |

Лабораторная работа 3A
“Knight - Rider” плюс управление частотой:
• измените лабораторную работу 2 :
• выполните чтение состояния DIP
переключателей с входов ( B15-B8 )
• изменяйте частоту моргания LED
индикаторов (B7-B0) в зависимости от состояния DIP переключателей, например изменяйте интервал моргания LED индикаторов от 10 сек до 0.01 сек.
• включите сторожевой таймер (WD) !
• убедитесь, что в основном цикле
Решение
программы сторожевой таймер (WD)3 - 28

Лабораторная работа 3A |
|
(продолжение) |
|
Настройка сторожевого таймера : |
|
• |
|
Не запрещайте сторожевой таймер |
|
•(WD) ! |
|
Внутри основного цикла программы |
|
выполните команду сброса |
|
сторожевого таймера (WDKEY) |
|
•прежде, чем он переполнится. |
|
Внесите программную задержку в |
|
функцию и экспериментируйте с |
|
различным периодом задержки. |
|
Чему равен период, прежде чем |
|
сторожевой таймер (WD) сбросит |
3 - 29 |
|

Лабораторная работа 3B
Добавить управление стартом и остановкой
(воспользуйтесь лабораторной работой 2 для
начала)
•GPIO-D1 и D6 присоединены к двум
кнопкам. Если они нажаты, будет
•прочитано значение 0, иначе 1. |
|
Используйте D1 для запуска |
|
моргания LED индикаторами и D6 |
|
для остановки. Если D1 нажать |
|
снова, моргание должно быть |
|
продолжено снова. |
Решение 3 - 30 |
