- •Глава 1. Описание отладочной платы………....5
- •Глава 2. Процессор tms320g5535…..…….....………….6
- •Глава 3. Аудио кодек aic3204………………………...29
- •Глава 4. Программирование цсп 5535…………....31
- •Глава 5. Примеры выполнения заданий……....36
- •2.1. Блок-схема и описание процессора tms320c5535
- •Глава 1. Описание отладочной платы
- •Описание tms320c5535 eZdsp usb Stick
- •Технические характеристики платы
- •Глава 2. Процессор tms320g5535
- •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.Реализация фильтра с конечной импульсной характеристикой
5.2. Описание функций, используемых в проекте эхо и реверберация
Функция USBSTK5515_init() производит инициализацию процессора и подачу на все периферийные устройства тактовых импульсов. Последнее достигается установкой 0-го значения всем битам регистров процессора PCGCR1 и PCGCR2 расположенных по адресу 1С02h и 1C03h.
Функция USBSTK5505_I2C_init() инициализирует интерфейс I2C, который используется для настройки кодека. USBSTK5505_GPIO_setDirection(GPIO26,GPIO_OUT) конфигурирует вывод процессора общего назначения GPIO26 как выход. USBSTK5505_GPIO_setOutput(GPIO26, 1) устанавливает на GPIO26 логическую единицу, который подаётся на вход кодека Chip Select, подключая таким образом чип аудио кодека AIC3204.
Функция aic3204_init() осуществляет инициализацию кодека. Это происходит в несколько этапов:
-настройка последовательной шины
-конфигурация тактовых импульсов
-конфигурация цифро-аналогового преобразователя
-конфигурация аналого-цифрового преобразователя
-настройка интерфейса I2S
По I2S осуществляется высокоскоростной двухсторонний обмен данными между кодеком и процессором.
В USBSTK5515_ULED_init() происходит инициализация светодиодов на плате USB Stick.
Каждый отсчёт (sample) сигнала обрабатывается по-отдельности. Сначала мы должны считать цифровой сигнал. Это делает функция aic3204_codec_read(&left_input, &right_input). Для этого в функции переменным left_input и right_input присваиваются значения регистров процессора I2SRXLT1 (Receive Left Data 1 Register) и I2SRXRT1 (Receive Right Data 1 Register).
Полученные данные для левого и правого канала, преобразуются в один с помощью функции stereo_to_mono(left_input, right_input). В этой функции находится среднее арифметическое значение между left_input и right_input, результат записывается в переменную mono_input.
Теперь можно осуществить преобразования над данными. Функции echo(mono_input) и reverberation(mono_input).
В конце программы, с помощью функции aic3204_disable() отключается I2S интерфейс и устанавливаем состояние аудио кодека на сброс/выключен.
5.3.Генератор синусоидального сигнала
В задании для генерации (Chapter 4) синусоидального сигнала используется стандартная библиотека dsplib, которая предоставляется Texas Instruments. В этой библиотеке содержится много полезных функций для работы с ЦСП:
функция Быстрого Преобразования Фурье
функции синуса, косинуса, тангенса
функции экспоненты и логарифма
Каждая из функций, оптимизирована для работы с конкретным процессором.
В микропроцессорной технике генерация тестовых гармонических сигналов используется постоянно. Применяются два подхода. В первом случае значения полупериода гармонического сигнала представляются в виде таблицы. Чем точнее должен быть сгенерирован сигнал, тем больше размер этой таблицы. Этот метод имеет главное достоинство, быстрое получение результата. Недостаток – низкая точность при генерации высоких частот. Второй подход заключается в представлении синуса и косинуса в виде степенного ряда. Этот подход и используется в DSPLIB (TI). Достоинство – высокая точность, зависящая от количества составляющих ряда. Недостаток – длительность вычислений.
Для наблюдения за результатом выполнения программы на ЦСП, подключим STEREO OUT платы (Рис. 5.14.) к линейному входу звуковой карты компьютера и с помощью программы Cool Edit, будем записывать сигнал сгенерированный ЦСП. Зададим различные значения частоты и амплитуды для левого и правого каналов:
left_output = generate_sinewave_1(250, 5000);
right_output = generate_sinewave_2(500, 10000);
На левом канале стерео выхода мы увидим синусоидальный сигнал с частотой равной 250 Гц и амплитудой 5000, а для правового канал частота будет равна 500 Гц и амплитуда 10000. Результат генерации мы можем наблюдать в окне программы Cool Edit (Рисунок 5.15). Так же результаты работы программы можно наблюдать на экране осциллографа.
Рис. 5.14.Подключенный к STEREO OUT
Рис. 5.15.Результат генерации синуса
Для генерации сигнала используется функция sine() (sine ( &count, &sinusoid, 1);). Она принимает три параметра:
-count - адрес памяти, в котором содержится значение частоты
-sinusoid - адрес памяти, в который помещается рассчитанное значение синуса
-третий параметр всегда 1
Функция sine() вычисляет синус угла. Для этого на вход функции подается число с фиксированной точкой, которое соответствует значению угла:
-0 соответствует 0o
-16383 соответствует 90o
-32767 соответствует 180o
-2 * 32767 соответствует 360o
