- •Глава 1. Описание отладочной платы………....5
- •Глава 2. Процессор tms320g5535…..…….....………….6
- •Глава 3. Аудио кодек aic3204………………………...29
- •Глава 4. Программирование цсп 5535…………....31
- •Глава 5. Примеры выполнения заданий……....36
- •Глава 1. Описание отладочной платы
- •Описание tms320c5535 eZdsp usb Stick
- •Технические характеристики платы
- •Глава 2. Процессор tms320g5535
- •2.1. Блок-схема и описание процессора tms320c5535
- •2.2. Память процессора и адресное пространство
- •2.3. Тактовый генератор
- •2.4. Прерывания и таблица векторов прерывания
- •2.5. Управление конфигурацией
- •2.6. Контроллер dma
- •2.7. Таймеры
- •2.8. Аналого-цифровой преобразователь (ацп) sar adc
- •2.9. Интерфейс i2c (Inter-Integrated Circuit)
- •2.10. Интерфейс i2s (Inter-ic Sound)
- •2.11. Блок ввода/вывода цифровой информации gpio (general-purpose input/output)
- •2.12. Блок последовательного интерфейса uart
- •2.13. Блок rtc (Real Time Clock)
- •Глава 3. Аудио кодек aic3204
- •Глава 4. Программирование цсп 5535
- •4.1. Программное обеспечение для работы с цсп Texas Instruments
- •4.2. Порядок работы в среде ccs
- •4.3.Особенности создания проекта для eZdsp usb5535 Stick
- •Глава 5. Примеры выполнения заданий
- •5.1. Реализация эффектов эхо и реверберации
- •5.2. Описание функций, используемых в проекте эхо и реверберация
- •5.3.Генератор синусоидального сигнала
- •5.4.Генерация dtmf сигнала
- •5.5.Реализация фильтра с конечной импульсной характеристикой
2.5. Управление конфигурацией
В процессоре выделены специальные регистры, в которых задаётся конфигурация, набор и подключение периферийных блоков.
External Bus Selection Register (EBSR). Этот регистр определяет подключение последовательных портов (serial port 1,2) к интерфейсам I2S0,1; SD0,1 и мультиплексирование двадцати одного вывода процессора для I2S2,3; UART; SPI и GPIO. Изменение конфигурации возможно только в начале программы, после её загрузки в память, когда производится конфигурация процессора и не возможно при выполнении программы.
Три регистра PDINHIBR1,2,3 (Pull-Down Inhibit Register) позволяют управлять так называемым “подтягиванием” т.е. подключением вывода процессора через сопротивление к питанию (pull-up) или общему проводу (pull-down) внутри процессора. Эта функция позволяет повысить помехоустойчивость при чтении и записи цифровых данных.
В данном процессоре предусмотрена возможность программного сброса. В 16-ти битный регистр PSRCR (Peripheral Software Reset Counter Register) заносится количество тактов процессора, т.е. определяется время, через которое должен произойти сброс. Рекомендуемая величина, не меньше 08h. В регистре PRCR (Peripheral Reset Control Register) указываются те периферийные блоки, в которых должен произойти сброс. Периферийные блоки в последнем регистре объединены в группы. Могут сбрасываться следующие группы либо I2S2, I2S3, UART и SPI, либо MMC/SD0, MMC/SD1, I2S0 и I2S1, либо DMA 0-3 контроллеры, либо USB контроллер, либо все таймеры, либо I2C.
2.6. Контроллер dma
Контроллер DAM или контроллер прямого доступа к памяти позволяет производить перемещение данных между внутренней, внешней памятью и периферийными устройствами контроллера без участия процессорного ядра. В этом случае пока происходит передача данных, процессор может быть занят другими задачами. Окончание процесса передачи данных фиксируется через прерывание. В данном процессоре есть четыре контроллера DMA 0-3 и каждый контроллер имеет своих четыре канала. Таким образом, всего 16-ть каналов. Каждый контроллер DMA может работать только с определённым набором периферийных устройств, расположенных на кристалле.
Пользователь может перевести любой контроллер DMA в режим пониженного энергопотребления путём выключения входного тактирующего сигнала в регистрах PCGCR1 и PCGCR2 (Peripheral Clock Gating Configuration Register).
Блок-диаграмма каждого DMA контроллера содержит:
-четыре канала.
-регистр интерфейсного порта. Через этот порт центральный процессор имеет доступ к DMA контролеру для управления.
-интерфейсный порт данных. Через этот порт DMA Контроллер имеет доступ к внутренней или внешней памяти и периферии.
-передаваемые данные направляются по четырём каналам.
-один FIFO 64-е байта. Данные, читаемые из источника, размещаются в этом FIFO. В каждый момент времени к FIFO имеет доступ только один из четырёх каналов DMA.
Перед началом программирования канала должен быть сброшен бит EN = 0 в регистре DMACHmTCR2. Программирование канала при EN=1 может привести к непредсказуемым последствиям.
Набор настроек-конфигураций канала, при которых происходит передача данных, называется контекстом (context). Каждый из четырёх каналов имеет структуру регистров для программирования контекста.
DMACHmSSAL регистр стартового адреса источника (младшая часть)
DMACHmSSAU регистр стартового адреса источника (старшая часть)
DMACHmDSAL регистр стартового адреса назначения (младшая часть)
DMACHmDSAU регистр стартового адреса назначения (старшая часть)
При передаче данных используется байтовая адресация. В связи с этим распределение памяти видится контроллером DMA и процессором по-разному. Контроллер DMA читает память по адресам, полученным путём добавочного смещения (offset).
Первый адрес, с которого начинается чтение данных, называется адресом источника (source start address), первый адрес с которого начинается запись, называется адресом назначения (destination start address). Чтение данных производится из адреса источника первоначально в FIFO. А запись в адрес назначения проходит тоже через FIFO.
Преобразование адресов CPU в адреса DMA отображено в соответствующих таблицах описания процессора. Вкратце можно сказать, что для получения адреса в DARAM надо к адресу CPU прибавить величину 01 0000h, а для получения адреса в SARAM прибавить величину 0008 0000h. Распределение адресов описано в файле tms320v5535.pdf (page14-15). Когда в качестве источников или устройств назначения используются периферийные узлы, то регистры DMACHmSSA и DMACHmDSA записываются адреса регистров периферии. В зависимости от поля DST/SRCAMODE (DMACHmTCR2) адрес может инкрементироваться после каждой передачи, что необходимо для памяти, а может оставаться тем же, что необходимо для периферии.
При DMA возможна пакетная передача данных от 1-го до 16-ти двойных слов.
Передача данных по DMA может происходить синхронизовано с определёнными событиями. Для этого в каждом из 16-ти каналов может быть установлен бит 2 (SYNCMODE) в регистре DMACHmTCR2. Если синхронизация по событию разрешена, то канал будет ожидать этого события от периферии и только после этого начнётся чтение из адреса источника. Передача будет происходить до окончания передачи блока. Если во время передачи происходит ещё одно событие, то оно игнорируется, что может привести к потере данных.
Перечень событий определяется в 4-х битном поле регистров DMAnCESR1 и DMAnCESR2. Такими событиями могут быть передача или приём данных по последовательным портам, переполнение таймеров, окончание преобразования в АЦП.
Если не предусмотрена синхронизация, то передача данных начинается сразу после разрешения канала (бит EN = 1 в регистре DMACHmTCR2).
Если одновременно с передачей по DMA центральный процессор CPU тоже обращается к той же памяти, то процессор имеет приоритет и DMA передача возобновляется после окончания обращения CPU.
Длительность передачи по DMA определяется основной тактовой частотой, количеством одновременно работающих контроллеров и каналов DMA, временем появления синхронизирующих сигналов, количеством тактов при обращении к внешней памяти и т.д.
Вместе с общим сбросом процессора, может быть сброшен и отдельно контроллер DMA. Это выполняется через бит DMA_RST в регистре PRCR. Необходимо заметить, что входные в DMA контроллер тактовые импульсы должны быть разрешены перед сбросом. После сброса во всех регистрах DMA устанавливаются значения по умолчанию и контроллер не запущен.
Каждый из контроллеров DMA может быть введён в режим пониженного энергопотребления путём отключения тактовых импульсов в регистре PCGCR.
Последовательность инициализации DMA передачи включает следующие пункты:
-вывод DMA контроллера из состояния RESET путём DMA_RST=0 в регистре PRCR.
-разрешение тактовых импульсов для каждого контроллера DAM установкой бита DMAnCG=0 в регистрах PCGCR1 и PCGCR2.
-очистка общего флага прерывания в регистре IFR0 путём записи 1 в 8-й бит. Очистка флагов прерывания для всех 16-ти каналов путём записи 1 в биты регистра DMAIFR (поле DMAnCHmIF, где n-номер контроллера DMA, m-номер канала).
-установка разрешения прерываний по 16-ти каналам DMA путём установки 1 в разряды DMAnCHmIE (n-номер контроллера, m-номер канала) 16-ти битного регистра DMAIER. Кроме этого должен быть выставлен бит разрешения прерывания INTEN в регистре DMACHmTCR2 для каждого канала.
-при использовании синхронизирующих событий выбирается тип этого события в поле CHmEVT регистров DMAnCESR1 и DMAnCESR2. Синхронизация разрешается установкой бита SYNCMODE в регистре DMACHmTCR2 для каждого канала.
-загрузка стартового адреса источника данных в регистры DMACHmSSAL и DMACHmSSAU (m-номер канала).
-загрузка стартового адреса назначения в регистры DMACHmDSAL и DMACHmDSAU.
-загрузка в регистр DMACHmTCR1 количества двойных слов. В поле LENGTH заносится величина в байтах. Т.е. если надо передать 256 двойных слов, то заносится величина 256*4=1024.
-установка дополнительных параметров передачи: автоматическая перезагрузка контрольных регистров адреса источника и адреса назначения после окончания передачи и автоматический запуск новой передачи данных (SYNCMODE=1), инкрементирование или нет адресов источника и назначения (DSTAMODE, SRAMODE), установка пакетной передачи BURSTMODE, включение режима PING-PONG.
-установить рабочие режимы периферии, когда DMA работает в периферийными блоками.
-разрешить DMA канал путём установки бита EN=1 и в случае синхронизации SYNCMODE = 1 в регистре DMACHmTCR2.
